1 advanced features of keyboard processing suthida chaichomchuen [email protected]

22
1 Advanced Features of Keyboard Processing Suthida Chaichomchuen [email protected]

Upload: gerard-blake

Post on 24-Dec-2015

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1 Advanced Features of Keyboard Processing Suthida Chaichomchuen std@kmitnb.ac.th

1

Advanced Features of Keyboard Processing

Suthida Chaichomchuen

[email protected]

Page 2: 1 Advanced Features of Keyboard Processing Suthida Chaichomchuen std@kmitnb.ac.th

2

Introduction

• Shift status byte• Scan code• Keyboard buffer area

Page 3: 1 Advanced Features of Keyboard Processing Suthida Chaichomchuen std@kmitnb.ac.th

3

INT 21H FUNCTIONS

• 01H : Keyboard input with echo• 06H : Direct console I/O• 07H : Direct keyboard input without echo• 08H : Keyboard input without echo• 0AH : Buffered keyboard input• 0BH : Check keyboard status• 0CH : Clear buffer & invoke function

Page 4: 1 Advanced Features of Keyboard Processing Suthida Chaichomchuen std@kmitnb.ac.th

4

INT 16H FUNCTIONS

• 00H : Read a character• 01H : Determine if character present• 02H : Return current shift status• 05H : Keyboard write• 10H : Read keyboard character• 11H : Determine if character present• 12H : Return current shift status

Page 5: 1 Advanced Features of Keyboard Processing Suthida Chaichomchuen std@kmitnb.ac.th

5

Basic key types

• Standard characters– A-Z, 0-9, Characters: % $ #

• Extended function keys– Program function keys: <F1>, <Shift>+<F1>– Numeric keypad keys with NumLock toggled off: <

Home>, <End>, <Arrows>– <Alt>+alphabetics, <Alt>+program-function keys

• Control keys– <Alt>, <Ctrl>, <Shift>

Page 6: 1 Advanced Features of Keyboard Processing Suthida Chaichomchuen std@kmitnb.ac.th

6

Keyboard shift status

• Segment of data area is 40[0]H• First byte of current keyboard shift status at 4

0:17H• Bits set to 1 indicate following

– 7 : Insert active– 6 : CapsLock state active– 5 : NumLock state active– 4 : ScrollLock state active– 3 : <Alt> pressed– 2 : <Clrt> pressed– 1 : <Left Shift> pressed– 0 : <Right Shift> pressed

Page 7: 1 Advanced Features of Keyboard Processing Suthida Chaichomchuen std@kmitnb.ac.th

7

Keyboard shift status

• Second byte for the enhanced keyboard at 40:18H

• Bits set to 1 indicate following– 7 : Insert pressed– 6 : CapsLock pressed– 5 : NumLock pressed– 4 : ScrollLock pressed– 3 : Ctrl/NumLock (pause) active– 2 : SysReq pressed– 1 : Left Alt pressed– 0 : Left Ctrl pressed

Page 8: 1 Advanced Features of Keyboard Processing Suthida Chaichomchuen std@kmitnb.ac.th

8

INT 21H Function 01H

• Keyboard input with echo• Response to a <Ctrl>+<Break> request• AH = 01H• Value return

– AL <> 0 : ASCII character– AL = 0 : user has pressed an extended function key

• Example– MOV AH,01H– INT 21H

Page 9: 1 Advanced Features of Keyboard Processing Suthida Chaichomchuen std@kmitnb.ac.th

9

INT 21H Function 06H

• Direct console I/O• Input : load 0FFH into DL• Output : load ASCII character into DL• AH = 06H• Example

– MOV AH,06H– INT 21H

Page 10: 1 Advanced Features of Keyboard Processing Suthida Chaichomchuen std@kmitnb.ac.th

10

INT 21H Function 07H

• Direct keyboard input without echo• Not response to a <Ctrl>+<Break> request• AH = 07H• Example

– MOV AH,07H– INT 21H

Page 11: 1 Advanced Features of Keyboard Processing Suthida Chaichomchuen std@kmitnb.ac.th

11

INT 21H Function 08H

• Keyboard input without echo• Work like function 01H• AH = 08H• Example

– MOV AH,08H– INT 21H

Page 12: 1 Advanced Features of Keyboard Processing Suthida Chaichomchuen std@kmitnb.ac.th

12

INT 21H Function 0AH

• Buffered keyboard input• Inability to accept extended function keys• AH = 0AH• Example

– MOV AH,0AH– LEA DX,msg– INT 21H

Page 13: 1 Advanced Features of Keyboard Processing Suthida Chaichomchuen std@kmitnb.ac.th

13

INT 21H Function 0BH

• Check keyboard status• AH = 0BH• Return value to AL

– AL = FFH : character is available– AL = 00H : no character is available

• Example– MOV AH,0BH– INT 21H

Page 14: 1 Advanced Features of Keyboard Processing Suthida Chaichomchuen std@kmitnb.ac.th

14

INT 21H Function 0CH

• Clear keyboard buffer and invoke function• AH = 0CH• AL = required function• Example

– MOV AH,0CH– MOV AL,function– MOV DX,kbarea– INT 21H

Page 15: 1 Advanced Features of Keyboard Processing Suthida Chaichomchuen std@kmitnb.ac.th

15

INT 16H Function 00H

• Read a character• AH = 00H• Example

– MOV AH,00H– INT 16H

Page 16: 1 Advanced Features of Keyboard Processing Suthida Chaichomchuen std@kmitnb.ac.th

16

INT 16H Function 01H

• Determine whether a character is present• AH = 01H• Example

– MOV AH,01H– INT 16H

Page 17: 1 Advanced Features of Keyboard Processing Suthida Chaichomchuen std@kmitnb.ac.th

17

INT 16H Function 02H

• Return the current <Shift> status• AH = 02H• AL = value return• Example

– MOV AH,02H– INT 16H

Page 18: 1 Advanced Features of Keyboard Processing Suthida Chaichomchuen std@kmitnb.ac.th

18

INT 16H Function 05H

• Keyboard write• Insert characters in the keyboard buffer• AH = 05H• CH = load ASCII character• CL = load scan code• Example

– MOV AH,05H– INT 16H

Page 19: 1 Advanced Features of Keyboard Processing Suthida Chaichomchuen std@kmitnb.ac.th

19

INT 16H Function 10H

• Read a keyboard character• AH = 10H• Example

– MOV AH,10H– INT 16H

Page 20: 1 Advanced Features of Keyboard Processing Suthida Chaichomchuen std@kmitnb.ac.th

20

INT 16H Function 10H

• Key pressed– Regular ASCII character

• AL = ASCII character• AH = scan code

– Extended function key• AL = 00H• AH = scan code

– Extended duplicate control key• AL = E0H• AH = scan code

Page 21: 1 Advanced Features of Keyboard Processing Suthida Chaichomchuen std@kmitnb.ac.th

21

INT 16H Function 11H

• Determine whether a character is present• Same as function 01H

– accept the extended functions

• AH = 11H• Example

– MOV AH,11H– INT 16H

Page 22: 1 Advanced Features of Keyboard Processing Suthida Chaichomchuen std@kmitnb.ac.th

22

INT 16H Function 12H

• Return the current keyboard shift status• Similar to function 02H• AH = 12H• Example

– MOV AH,12H– INT 16H