KEYBOARD CONTROLLER VGA CONTROLLER ONLINE MOHAMAD...

24
KEYBOARD CONTROLLER VGA CONTROLLER ONLINE MOHAMAD SHARIF BIN ABU BAKAR This thesis is submitted as partial fulfillment of the requirements for the award of the Bachelor of Electrical Engineering (Hons.) (Electronics) Faculty of Electrical & Electronics Engineering Universiti Malaysia Pahang OCTOBER, 2010

Transcript of KEYBOARD CONTROLLER VGA CONTROLLER ONLINE MOHAMAD...

Page 1: KEYBOARD CONTROLLER VGA CONTROLLER ONLINE MOHAMAD …umpir.ump.edu.my/id/eprint/1993/1/Mohamad_Sharif_Abu... · 2015-03-03 · I would like to extend our sincere appreciation to our

KEYBOARD CONTROLLER VGA CONTROLLER ONLINE

MOHAMAD SHARIF BIN ABU BAKAR

This thesis is submitted as partial fulfillment of the requirements for the award of the

Bachelor of Electrical Engineering (Hons.) (Electronics)

Faculty of Electrical & Electronics Engineering

Universiti Malaysia Pahang

OCTOBER, 2010

Page 2: KEYBOARD CONTROLLER VGA CONTROLLER ONLINE MOHAMAD …umpir.ump.edu.my/id/eprint/1993/1/Mohamad_Sharif_Abu... · 2015-03-03 · I would like to extend our sincere appreciation to our

ii

“All the trademark and copyrights use herein are property of their respective owner.

References of information from other sources are quoted accordingly; otherwise the

information presented in this report is solely work of the author.”

Signature : ____________________________

Author : MOHAMAD SHARIF BIN ABU BAKAR

Date : 29 OCTOBER 2010

Page 3: KEYBOARD CONTROLLER VGA CONTROLLER ONLINE MOHAMAD …umpir.ump.edu.my/id/eprint/1993/1/Mohamad_Sharif_Abu... · 2015-03-03 · I would like to extend our sincere appreciation to our

iv

“I hereby acknowledge that the scope and quality of this thesis is qualified for the

award of the Bachelor Degree of Electrical Engineering

(Electronics)”

Signature : ______________________________________________

Name : NOR FARIZAN BINTI ZAKARIA

Date : 30 NOVEMBER 2010

Page 4: KEYBOARD CONTROLLER VGA CONTROLLER ONLINE MOHAMAD …umpir.ump.edu.my/id/eprint/1993/1/Mohamad_Sharif_Abu... · 2015-03-03 · I would like to extend our sincere appreciation to our

v

ACKNOWLEDGMENT

In the name of Allah swt the Beneficient,the Merciful…

First of all, I present my gratitude towards the almighty god for being able to

finish this project this far. Without his blessing, this project can’t be started. During

doing this project, I realize many great people who is around me, my friends, my

supervisor, my family and the lecturers of Faculty of Electrical and Electronic

Engineering (FKEE).

I would like to extend our sincere appreciation to our academic associates,

especially to my supervisor Madam Nor Farizan Binti Zakaria for his continuous

support and encouragement. Secondly, to the Dean of the Faculty of Electrical &

Electronic Engineering. Besides that, I would like to thanks our lecturers , staff of the

laboratory of electrical and electronic engineering, my parents and to my friends for

their valuable support, contribution and help.

Last but not least, I also would like to thank everybody who was important

to the successful realization of this project, as well as expressing my apology that I

could not mention personally one by one. Once again, thank you very much.

Page 5: KEYBOARD CONTROLLER VGA CONTROLLER ONLINE MOHAMAD …umpir.ump.edu.my/id/eprint/1993/1/Mohamad_Sharif_Abu... · 2015-03-03 · I would like to extend our sincere appreciation to our

vi

ABSTRACT

This project describes about the design of VGA (Video Graphic Array)

Controller and PS-2 keyboard controller using combination of three bit input data to

control eight differences colours to display text at monitor by using keyboard as

database online for the input. Three colour signal referred to collectively as R (red),

G (green) and B (blue) signal. The VGA monitor using resolution of 640 by 480 by

mode to display colours. The project constructed by using Xilinx ISE 10.1 software

and Xilinx Spartan-3E board to develop the project into a complete module. The

project using the Finite State Machine (FSM) technique to generate HDL coding

based on the VGA timing diagram specification. To get VGA monitor controller

properly, the timing diagram must be correctly. The design will be written using

VHDL (VHSIC Hardware Description Language) coding style based on FSM to

ensure the VGA controller and PS-2 controller work properly. The behavioral

simulation was done by using Xilinx ISE Tool software to verify the functionality of

the design. The Spartan 3E starter Kit board was chosen to implement the design.

Page 6: KEYBOARD CONTROLLER VGA CONTROLLER ONLINE MOHAMAD …umpir.ump.edu.my/id/eprint/1993/1/Mohamad_Sharif_Abu... · 2015-03-03 · I would like to extend our sincere appreciation to our

vii

ABSTRAK

Projek ini menerangkan tentang mereka bentuk pengawal VGA (Susunan

Grafik Video) dan pengawal PS/2 papan kekunci dengan menggunakan gabungan

tiga bit data input untuk mengawal lapan perbezaan warna untuk memaparkan teks di

monitor dengan menggunakan papan kekunci sebagai talian pangkalan data untuk

sistem input. Tiga isyarat warna kolektif merujuk kepada R (merah), G (hijau) dan B

(biru) isyarat. Monitor VGA dengan resolusi mode 640 x 480 digunakan untuk

memaparkan warna. Projek ini dibuat dengan menggunakan perisian Xilinx ISE 10.1

dan papan Xilinx Spartan-3E untuk membangunkan projek ini menjadi modul yang

lengkap. Projek ini menggunakan teknik mesin keadaan terhad (FSM) untuk

menghasilkan bahasa keterangan peranti keras (HDL) kod berdasarkan pada

spesifikasi VGA diagram waktu. Untuk mendapatkan pengawal monitor VGA

dengan betul, diagram waktu harus benar. Reka bentuk ini akan ditulis dengan

menggunakan gaya kod VHSIC bahasa keterangan peranti keras (VHDL)

berdasarkan FSM untuk memastikan pengawal VGA dan pengawal PS/2 berfungsi

dengan betul. Simulasi perilaku dilakukan dengan menggunakan perisian Xilinx ISE

untuk mengesahkan fungsi reka bentuk. Papan Spartan 3E starter Kit dipilih untuk

melaksanakan reka bentuk ini.

Page 7: KEYBOARD CONTROLLER VGA CONTROLLER ONLINE MOHAMAD …umpir.ump.edu.my/id/eprint/1993/1/Mohamad_Sharif_Abu... · 2015-03-03 · I would like to extend our sincere appreciation to our

viii

TABLE OF CONTENTS

CHAPTER TITLE PAGE

1

TITLE

DECLARATION

DEDICATION

ACKNOWLEDGMENT

ABSTRACT

ABSTRAK

TABLE OF CONTENTS

LIST OF FIGURES

LIST OF ABBREVIATIONS

LIST OF TABLES

INTRODUCTION

1.1 Introduction

1.2 Problem Statement

1.3 Project Objective

1.4 Project Scopes

1.5 Thesis Outline

i

ii

iii

iv

vi

vii

viii

xi

xiv

xv

1

2

3

4

4

Page 8: KEYBOARD CONTROLLER VGA CONTROLLER ONLINE MOHAMAD …umpir.ump.edu.my/id/eprint/1993/1/Mohamad_Sharif_Abu... · 2015-03-03 · I would like to extend our sincere appreciation to our

ix

2

3

LITERATURE REVIEW

2.1 Introduction

2.2 VGA Controller

2.2.1 VGA Interface Signals

2.2.2 VGA Interface Definition

2.2.3 VGA Color Signal

2.2.4 VGA Timing Control

2.2.5 VGA Monitor

2.3 PS-2 Keyboard Controller

2.3.1 Make Code

2.3.2 Break Code

2.3.3 Scan Code

2.4 Field-Programmable Gate Array (FPGA)

2.5 VHSIC Hardware Descriptions Language (VHDL)

METHODOLOGY

3.1 Introduction

3.2 Design Flow

3.3 Block Diagram Of the System

3.4 Hardware and Software

3.4.1 Xilinx Spartan-3E Starter Kit Board

3.4.2 Monitor

3.4.3 Keyboard

3.4.4 Xilinx ISE Software Tool 10.1

3.5 Block Diagram of VGA Controller

3.6 Architecture of VGA Controller

3.7 Block Diagram of PS-2 Keyboard Controller

3.8 The VGA Controller RTL Schematic from ISE Simulator

3.8.1 VGA Top Level Module

3.8.2 Integrate Between Module

3.8.3 Clock Divider Module

5

5

6

7

7

8

9

10

11

11

11

13

14

16

16

17

18

19

19

20

21

22

22

23

25

26

26

27

28

Page 9: KEYBOARD CONTROLLER VGA CONTROLLER ONLINE MOHAMAD …umpir.ump.edu.my/id/eprint/1993/1/Mohamad_Sharif_Abu... · 2015-03-03 · I would like to extend our sincere appreciation to our

x

4

5

3.8.4 Pixel Counter Module

3.8.5 Line Counter Module

3.8.6 Comparator Module

3.8.7 Picture Generator Module

3.8.8 Decoder Module

RESULT AND DISCUSSION

4.1 Introduction

4.2 The VGA Controller Simulation Graph

4.2.1 VGA Top Simulation

4.2.2 Pixel Counter Simulation

4.2.3 Line Counter Simulation

4.3 Output Results

CONCLUSION

5.0 Conclusion

5.1 Recommendation

REFRENCE

APPENDIX

Appendix A- Introduction to VHDL For Synthesis Workshop

Appendix B- The VHDL Coding Program Listing

29

30

31

32

33

34

34

34

35

36

37

38

41

41

42

43

Page 10: KEYBOARD CONTROLLER VGA CONTROLLER ONLINE MOHAMAD …umpir.ump.edu.my/id/eprint/1993/1/Mohamad_Sharif_Abu... · 2015-03-03 · I would like to extend our sincere appreciation to our

xi

LIST OF FIGURES

FIGURE NO. TITLE PAGE

1.0 VGA port connection to monitor 1

2.1 VGA display port 7

2.2 Horizontal timing 8

2.3 Vertical timing 9

2.4 VGA monitor 10

2.5 The keyboard layout with codes 12

2.6 Keyboard alpha numeric scan code 13

3.1 Design flow of the System 17

3.2 Block diagram of the system 18

3.3 The Spartan 3E Starter Kit Board 20

3.4 Monitor 21

3.5 Keyboard 21

3.6 Xilinx ISE Software Tool 10.1 22

3.7 Block diagram of VGA Controller 23

3.8 Architecture of VGA Controller 23

3.9 Block diagram of Keyboard Controller 25

3.10 VGA top level module 26

Page 11: KEYBOARD CONTROLLER VGA CONTROLLER ONLINE MOHAMAD …umpir.ump.edu.my/id/eprint/1993/1/Mohamad_Sharif_Abu... · 2015-03-03 · I would like to extend our sincere appreciation to our

xii

3.11 The integrate between module 27

3.12 Clock divider module 28

3.13 Pixel counter module 29

3.14 Line counter module 30

3.15 Comparator module 31

3.16 Picture generator module 32

3.17 Decoder module 33

4.1 VGA top simulation 35

4.2 Pixel Counter Simulation 36

4.3 Line Counter Simulation 37

4.4 Output Results 38

Page 12: KEYBOARD CONTROLLER VGA CONTROLLER ONLINE MOHAMAD …umpir.ump.edu.my/id/eprint/1993/1/Mohamad_Sharif_Abu... · 2015-03-03 · I would like to extend our sincere appreciation to our

xiv

LIST OF ABBREVIATIONS

VGA - Video Graphic Array

FPGA - Field-Programmable Logic Array

VHDL - VHSIC Hardware Descriptions Language

VHSIC - Very-High-Speed Integrated Circuit

HDL - Hardware Description Language

ASIC - Application-Specific Integrated Circuit

CLB - Configurable Logic Blocks

PLD - Programmable Logic Device

RTL - Register Transfer Level

DCM - Digital Clock Manager

Page 13: KEYBOARD CONTROLLER VGA CONTROLLER ONLINE MOHAMAD …umpir.ump.edu.my/id/eprint/1993/1/Mohamad_Sharif_Abu... · 2015-03-03 · I would like to extend our sincere appreciation to our

xv

LIST OF TABLES

TABLE NO TITLE PAGE

2.1

2.2

List of frequencies corresponding to resolutions

3 bit display color codes

6

8

Page 14: KEYBOARD CONTROLLER VGA CONTROLLER ONLINE MOHAMAD …umpir.ump.edu.my/id/eprint/1993/1/Mohamad_Sharif_Abu... · 2015-03-03 · I would like to extend our sincere appreciation to our

CHAPTER 1

INTRODUCTION

1.1 Introduction

The term VGA stands for Video Graphic Array. This VGA is a graphics display

systems for PCs developed by IBM. VGA has become one of the factor standards for

PCs. In graphics, generally the resolution is either 640 by 480 within 16 colours or 320

by 200 within 256 colours. While this resolution has been superseded in the personal

computer market, it is becoming a popular resolution on mobile devices. Figure 1.0

shows overview of VGA port connection to a monitor.

Figure 1.0: VGA port connection to a monitor

Page 15: KEYBOARD CONTROLLER VGA CONTROLLER ONLINE MOHAMAD …umpir.ump.edu.my/id/eprint/1993/1/Mohamad_Sharif_Abu... · 2015-03-03 · I would like to extend our sincere appreciation to our

2

A keyboard is an input device, which uses an arrangement buttons or key to act

as mechanical levers or electronic switch. The PS/2 keyboard was originally an

extension of the AT devices which is developed by IBM. It supported a few additional

host-to-keyboard commands and featured a smaller connector. All communication

between the host and the keyboard uses an IBM protocol.

This project describes about the design of VGA Controller and Keyboard

Controller using combination of three bit input data to control eight differences color to

display text at monitor by using keyboard as database online for the input.

1.2 Problem Statement

Usually, we saw that any announcement at bulletin board is not attractive such

as text static. Furthermore, many papers are used to make an announcement at the

bulletin board which is wastage occurs. To encounter this problem, Video Graphics

Array (VGA) are used in this system to display any text, image and figure to the screen

to make announcement at bulletin board such as monitor or Television which is more

attractive such as text can move with various movement. Besides, this VGA is reduce

the paper are used at the Bulletin board and also saving time to make any

announcement. This VGA are used in this system because it has a high definition

resolution video standard and the ability to transmit a sharp detailed image.

This VGA is implemented in Xilinx Spartan-3E FPGA starter kit board. By

using this board, we can easily design a digital system which is based on FPGA which

to realize real time of display. Controlling VGA through FPGA, we can make use of

tiny and flexibility chip which is advantage of FPGA and work out these weaknesses

such as inflexibility of processor and too much space-taking. As we can get the

characters display rid of.

Page 16: KEYBOARD CONTROLLER VGA CONTROLLER ONLINE MOHAMAD …umpir.ump.edu.my/id/eprint/1993/1/Mohamad_Sharif_Abu... · 2015-03-03 · I would like to extend our sincere appreciation to our

3

VGA is commonly used in computer monitors as a standard industrial display

interface. This standard has defined many parameters of VGA, such as display

resolution, refreshing rates, synchronization signal timing, signal polarity and RGB

signals electrical level. The reason that VGA is called Video Graphics Array is monitor

displays a frame of image data finally is an array which is composed of M line and N

row pixel spot. M×N is set on the display resolution. VGA Controller and PS-2

Keyboard Controller is a method used to make VGA display interface. The construction

of VGA display system by this method is small, low power loss, reliable and can be

applied to many occasions.

1.3 Objectives

The objectives of project are to:

i. Design a VGA Controller using VHDL code with Xilinx ISE Tool software.

ii. Design a PS-2 Keyboard controller using VHDL code with Xilinx ISE Tool

software.

iii. Implement the two controllers such that a VGA Controller and a PS/2

keyboard can be interfaced on the Xilinx Spartan-3E FPGA starter kit board.

iv. Display at the monitor.

Page 17: KEYBOARD CONTROLLER VGA CONTROLLER ONLINE MOHAMAD …umpir.ump.edu.my/id/eprint/1993/1/Mohamad_Sharif_Abu... · 2015-03-03 · I would like to extend our sincere appreciation to our

4

1.4 Scope of Project

The scopes of this project are:

i. Three bit input data to control eight difference color display at monitor.

ii. The VGA signal timing using the resolution 640 by 480 pixels with the

25MHz pixel clock and 60Hz to display at monitor.

iii. Database online using PS/2 keyboard for the input.

1.5 Thesis Organization

This thesis consists of five chapters. The first chapter is introduction of the

project, problem statement, project objective and scope of project.

Chapter 2 presents the related references that have been studied and used in the

implementation of this project. The controller used is also introduced in this chapter.

Chapter 3 would elaborate more about the project methodology which clearly

explained about how this project is planned and organized in order to complete this

project.

Chapter 4 presents the result for the system designed and discussion of overall

result.

In the final chapter which is chapter 5, the project research is summarized and

the recommendation for future works is presented.

Page 18: KEYBOARD CONTROLLER VGA CONTROLLER ONLINE MOHAMAD …umpir.ump.edu.my/id/eprint/1993/1/Mohamad_Sharif_Abu... · 2015-03-03 · I would like to extend our sincere appreciation to our

CHAPTER 2

LITERATURE REVIEW

2.1 Introduction

This chapter describes and gives information about VGA controller, ps/2

keyboard controller, FPGA and VHDL that are related to this project. All the

information is studied from three main sources which is journal, books and internet.

This information will be the guideline for this research.

2.2 VGA Controller

Video Graphics Array (VGA) is mostly used for computer monitors, with a

high-definition resolution video standard. It has the ability the ability to transmit a sharp

detailed image. VGA uses separate wires to transmit the three color component signals,

vertical and horizontal synchronization signals. Red, green and blue are three signals

that send color information to VGA monitor. There are four main components in VGA

controller which are VGA interface signals, VGA interface definition, VGA control

signal, VGA timing Control and VGA monitor.

Page 19: KEYBOARD CONTROLLER VGA CONTROLLER ONLINE MOHAMAD …umpir.ump.edu.my/id/eprint/1993/1/Mohamad_Sharif_Abu... · 2015-03-03 · I would like to extend our sincere appreciation to our

6

2.2.1 VGA Interface Signals

There are two types VGA interface signals to display which is data signal, and

the other one is control signal. Data signal have three part which is Red, Green and Blue

and for control signal have two part which is Horizontal Synchronization and Vertical

Synchronization. There are different frequencies of the horizontal synchronization

signal and vertical synchronization signal for the changeable output resolution. Here is a

table to imply the range of frequencies corresponding to these common resolutions.[1]

They are just shown in Table 2.1.

Table 2.1: List of Frequencies Corresponding to Resolutions.

Resolution Horizontal

Synchronization(Hz)

Vertical

Synchronization(Hz)

Pixel Clock

(MHz)

640×480 31.496 59.940 25.175

800×600 48.077 72.188 50.000

800×600 48.875 75.000 49.500

1024×768 48.363 60.004 65.000

1024×768 56.476 70.049 75.000

In VGA control based on FPGA, we only need to consider these five signals

which are horizontal synchronization signal, vertical synchronization signal, red data

signal, green data signal and blue data signal. As the five signals can be sent to VGA

interface from FPGA, we can make the control of VGA.[1]

Page 20: KEYBOARD CONTROLLER VGA CONTROLLER ONLINE MOHAMAD …umpir.ump.edu.my/id/eprint/1993/1/Mohamad_Sharif_Abu... · 2015-03-03 · I would like to extend our sincere appreciation to our

7

2.2.2 VGA Interface Definition

VGA interface sends corresponding display signals to display through DB-15

linker which is directly connected to Monitor or LCD by monitor cable. There are 15

pinholes which are asymmetrically divided into 3 lines, and there are 5 on each line.[1]

Here is Figure 2.1 showing how these pinholes are arranged.

Figure 2.1: VGA display port

2.2.3 VGA Color Signal

In this system, FPGA drives 5 VGA signals directly using series resistance.

Every color signal is linked to a resistance serially, and a bit of color signals are made

up of VGA_R, VGA_G and VGA_B. While, VGA_Hs and VGA_Vs drive level use

standard LVTTL or LVCMOS3 I/O. Finally, there will be 8 kinds of color according to

which level are VGA_R, VGA_GR, and VGA_BL.[1][2] They are just shown in Table

2.2.

Page 21: KEYBOARD CONTROLLER VGA CONTROLLER ONLINE MOHAMAD …umpir.ump.edu.my/id/eprint/1993/1/Mohamad_Sharif_Abu... · 2015-03-03 · I would like to extend our sincere appreciation to our

8

Table 2.2: 3-Bit Display Color Codes.

VGA_R VGA_G VGA_B Resulting Color

0 0 0 Black

0 0 1 Blue

0 1 0 Green

0 1 1 Cyan

1 0 0 Red

1 0 1 Pink

1 1 0 Yellow

1 1 1 White

2.2.4 VGA Timing Control

Timing of VGA signals are ruled by VESA. Here is a short introduction about

how FPGA drive the VGA display with 640×480@60Hz. In the standard of VGA

industry, the output frequency of pixel is 25.175MHz, and the frequencies of horizontal

scan and vertical scan are 31.496 KHz and 59.940 Hz. If display receives this standard

frequency, then the resolution will be 640×480, and refresh rate is 60Hz.[2] Figure 2.2

and Figure 2.3 show us the timing of VGA’s Horizontal timing and Vertical timing.

Figure 2.2: Horizontal Timing

Page 22: KEYBOARD CONTROLLER VGA CONTROLLER ONLINE MOHAMAD …umpir.ump.edu.my/id/eprint/1993/1/Mohamad_Sharif_Abu... · 2015-03-03 · I would like to extend our sincere appreciation to our

9

Figure 2.3: Vertical Timing

2.2.5 VGA Monitor

From Figure 2.4 below, it shows the VGA monitor with 640 columns by 480

rows. This VGA monitor is based on 25MHz clock. A single dot of colour on a video

monitor does not impact much information. A horizontal line of pixels carries a bit more

information. However, a frame composed of multiple lines can present an image on the

monitor screen. A frame of VGA video typically has 480 lines and each line usually

contains 640 pixels.[1]

Within the displays, current waveforms pass through the coils to produce

magnetic fields, which deflect electrons beam to transverse the display in a raster

pattern. The electrons move horizontally from left to the right and vertically from top to

bottom across the screen as shown in Figure 2.4.[3] The scan starts from row 0, column

0 at the top left corner and moves to the right until it reaches the last column in the row.

When the scan reaches the end of the row, it continues at the beginning of the next row.

When the scan reaches the last pixel at the bottom right corner of the screen, it goes

back to the top left corner of the screen, and repeats the scanning process again. The

information only would be display when the electron is forward directions from left to

the right and from top to the bottom, but when the electrons return back to the left of the

top edge of the screen, the information would not be display.

Page 23: KEYBOARD CONTROLLER VGA CONTROLLER ONLINE MOHAMAD …umpir.ump.edu.my/id/eprint/1993/1/Mohamad_Sharif_Abu... · 2015-03-03 · I would like to extend our sincere appreciation to our

10

Figure 2.4: VGA Monitor

2.3 PS-2 Keyboard Controller

The original keyboard design had a single chip microprocessor. Nowadays, a

customized controller chip is used. This keyboard controller chip control of all keyboard

matrix scanning, key de-bouncing and communications with the computer, and has an

internal buffer if the keystroke data cannot be sent immediately. The PC motherboard

decodes the data received from the keyboard via the PS/2 port using interrupt IRQ1.[4]

This keyboards do not generate is ASCII values. Typical AT keyboard having

more than 101 keys whereas a single byte could not store codes for all the individual

keys, plus these keys along with shift, control, or alt,etc. Furthermore, for some

functions there is no ASCII equivalent such as 'pageup', 'page down', 'insert', 'home' and

Page 24: KEYBOARD CONTROLLER VGA CONTROLLER ONLINE MOHAMAD …umpir.ump.edu.my/id/eprint/1993/1/Mohamad_Sharif_Abu... · 2015-03-03 · I would like to extend our sincere appreciation to our

11

others. There are two different types of scan codes which is make codes and break

codes.[4]

2.3.1 Make Code

A make code is deliver when a key is pressed or held down. Each key, including

'shift', 'control' and 'alt', sends a specific code when pressed. Cursor control keys,

'delete', 'page up', 'page down', 'ins', 'home' and 'end', send extended make codes. The

make code is overtake by 'EO'h to show an extended code. The only exception is the

'pause' key that starts with a unique 'El'h byte.

2.3.2 Break Code

A break code is delivering when a key is released. The break code is the make

code overtake by 'FO'h byte. For extended keys the break code has an 'EO'h overtake

the 'FO'h and make code value. The only exception is the 'pause' key as it does not have

a break code and does not auto-repeat when held down.

2.3.3 Scan Code

The set of make and break codes for each key possess a scan code set. There are

three standard scan code which is sets numbered of 1, 2, and 3 stored in the keyboard

controller. Scan code set 1 is keep for compatibility for older IBMXT computers. Scan

set 3 is very equal to the set 2 but the extended codes are different. If, for example, you

press 'shift' and 'A' then both keys will generate their own scan codes, the 'A' scan code

value is not changed if a shift or control key is also pressed. Pressing the letter 'A'

generates 'lC'h make code and when released the break code is 'FO'h, 'lC'h. The

keyboard layout with codes is shown in Figure 2.5 and keyboard alpha numeric scan

code in Figure 2.6.[4]