back2root:ibm-pc-ms-dos:hardware:informations:keyboard-make-code
INT 9 - Hardware Keyboard Make/Break Codes
Standard Keyboard
Key | Make | Break |
Backspace | 0Eh | 8Eh |
Caps Lock | 3Ah | BAh |
Enter | 1Ch | 9Ch |
Esc | 01h | 81h |
Left Alt | 38h | B8h |
Left Ctrl | 1Dh | 9Dh |
Left Shift | 2Ah | AAh |
Num Lock | 45h | C5h |
Right Shift | 36h | B6h |
Scroll Lock | 46h | C6h |
Space | 39h | B9h |
Sys Req (AT) | 54h | D4h |
Tab | 0Fh | 8Fh |
Key | Make | Break |
F1 | 3Bh | BBh |
F2 | 3Ch | BCh |
F3 | 3Dh | BDh |
F4 | 3Eh | BEh |
F7 | 41h | C1h |
F5 | 3Fh | BFh |
F6 | 40h | C0h |
F8 | 42h | C2h |
F9 | 43h | C3h |
F10 | 44h | C4h |
F11 | 57h | D7h |
F12 | 58h | D8h |
Keypad | Keys | Make | Break |
Keypad 0 | (Ins) | 52h | D2h |
Keypad 1 | (End) | 4Fh | CFh |
Keypad 2 | (Down arrow) | 50h | D0h |
Keypad 3 | (PgDn) | 51h | D1h |
Keypad 4 | (Left arrow) | 4Bh | CBh |
Keypad 5 | | 4Ch | CCh |
Keypad 6 | (Right arrow) | 4Dh | CDh |
Keypad 7 | (Home) | 47h | C7h |
Keypad 8 | (Up arrow) | 48h | C8h |
Keypad 9 | (PgUp) | 49h | C9h |
Keypad . | (Del) | 53h | D3h |
Keypad * | (PrtSc) | 37h | B7h |
Keypad - | | 4Ah | CAh |
Keypad + | | 4Eh | CEh |
Key | Make | Break |
A | 1Eh | 9Eh |
B | 30h | B0h |
C | 2Eh | AEh |
D | 20h | A0h |
E | 12h | 92h |
F | 21h | A1h |
G | 22h | A2h |
H | 23h | A3h |
I | 17h | 97h |
J | 24h | A4h |
K | 25h | A5h |
L | 26h | A6h |
M | 32h | B2h |
N | 31h | B1h |
O | 18h | 98h |
P | 19h | 99h |
Q | 10h | 90h |
R | 13h | 93h |
S | 1Fh | 9Fh |
T | 14h | 94h |
U | 16h | 96h |
V | 2Fh | AFh |
W | 11h | 91h |
X | 2Dh | ADh |
Y | 15h | 95h |
Z | 2Ch | ACh |
Key | Make | Break |
1 | 02h | 82h |
2 | 03h | 83h |
3 | 04h | 84h |
4 | 05h | 85h |
5 | 06h | 86h |
6 | 07h | 87h |
7 | 08h | 88h |
8 | 09h | 89h |
9 | 0Ah | 8Ah |
0 | 0Bh | 8Bh |
Key | Make | Break |
- | 0Ch | 8Ch |
= | 0Dh | 8Dh |
[ | 1Ah | 9Ah |
] | 1Bh | 9Bh |
; | 27h | A7h |
' | 28h | A8h |
` | 29h | A9h |
\ | 2Bh | ABh |
, | 33h | B3h |
. | 34h | B4h |
/ | 35h | B5h |
Enhanced Keyboard Keys (101/102 keys)
Control Keys | Make | Break |
Alt-PrtSc (SysReq) | 54h | D4h |
Ctrl-PrtSc | E0h 37h | E0h B7h |
Enter | E0h 1Ch | E0h 9Ch |
PrtSc | E0h 2Ah E0h 37h | E0h B7h E0h AAh |
Right Alt | E0h 38h | E0h B8h |
Right Ctrl | E0h 1Dh | E0h 9Dh |
Shift-PrtSc | E0h 37h | E0h B7h |
/ | E0h 35h | E0h B5h |
Pause | E1h 1Dh 45h E1h 9Dh C5h | (not typematic) |
Ctrl-Pause (Ctrl-Break) | E0h 46h E0h C6h | (not typematic) |
Keys marked as “not typematic” generate one stream of bytes without corresponding break scan code bytes (actually the break codes are part of the make code).
| Normal Mode or
Shift w/Numlock | |
Key | Make | Break | Numlock on |
| | | Make | Break |
Del | E0h 53h | E0h D3h | E0h 2Ah E0h 53h | E0h D3h E0h AAh |
Down arrow | E0h 50h | E0h D0h | E0h 2Ah E0h 50h | E0h D0h E0h AAh |
End | E0h 4Fh | E0h CFh | E0h 2Ah E0h 4Fh | E0h CFh E0h AAh |
Home | E0h 47h | E0h C7h | E0h 2Ah E0h 47h | E0h C7h E0h AAh |
Ins | E0h 52h | E0h D2h | E0h 2Ah E0h 52h | E0h D2h E0h AAh |
Left arrow | E0h 4Bh | E0h CBh | E0h 2Ah E0h 4Bh | E0h CBh E0h AAh |
PgDn | E0h 51h | E0h D1h | E0h 2Ah E0h 51h | E0h D1h E0h AAh |
PgUp | E0h 49h | E0h C9h | E0h 2Ah E0h 49h | E0h C9h E0h AAh |
Right arrow | E0h 4Dh | E0h CDh | E0h 2Ah E0h 4Dh | E0h CDh E0h AAh |
Up arrow | E0h 48h | E0h C8h | E0h 2Ah E0h 48h | E0h C8h E0h AAh |
Key | Left Shift Pressed | Right Shift Pressed |
| Make | Break | Make | Break |
Del | E0h AAh E0h 53h | E0h D3h E0h 2Ah | E0h B6h E0h 53h | E0h D3h E0h 36h |
Down arrow | E0h AAh E0h 50h | E0h D0h E0h 2Ah | E0h B6h E0h 50h | E0h D0h E0h 36h |
End | E0h AAh E0h 4Fh | E0h CFh E0h 2Ah | E0h B6h E0h 4Fh | E0h CFh E0h 36h |
Home | E0h AAh E0h 47h | E0h C7h E0h 2Ah | E0h B6h E0h 47h | E0h C7h E0h 36h |
Ins | E0h AAh E0h 52h | E0h D2h E0h 2Ah | E0h B6h E0h 52h | E0h D2h E0h 36h |
Left arrow | E0h AAh E0h 4Bh | E0h CBh E0h 2Ah | E0h B6h E0h 4Bh | E0h CBh E0h 36h |
PgDn | E0h AAh E0h 51h | E0h D1h E0h 2Ah | E0h B6h E0h 51h | E0h D1h E0h 36h |
PgUp | E0h AAh E0h 49h | E0h C9h E0h 2Ah | E0h B6h E0h 49h | E0h C9h E0h 36h |
Right arrow | E0h AAh E0h 4Dh | E0h CDh E0h 2Ah | E0h B6h E0h 4Dh | E0h CDh E0h 36h |
Up arrow | E0h AAh E0h 48h | E0h C8h E0h 2Ah | E0h B6h E0h 48h | E0h C8h E0h 36h |
/ | E0h AAh E0h 35h | E0h B5h E0h 2Ah | E0h B6h E0h 35h | E0h B5h E0h 36h |
The PS/2 models have three make/break scan code sets. The first set matches the PC & XT make/break scan code set and is the one listed here. Scan code sets are selected by writing the value F0 to the keyboard via the 8042 (port 60h). The following is a brief description of the scan code sets (see the PS/2 Technical Reference manuals for more information on scan code sets 2 and 3):
set 1, each key has a base scan code. Some keys generate extra scan codes to generate artificial shift states. This is similar to the standard scan code set used on the PC and XT.
set 2, each key sends one make scan code and two break scan codes bytes (F0 followed by the make code). This scan code set is available on the IBM AT also.
set 3, each key sends one make scan code and two break scan codes bytes (F0 followed by the make code) and no keys are altered by Shift/Alt/Ctrl keys.
typematic scan codes are the same as the make scan code
Some Tandy 1000's do not handle Alt key combinations when multiple shift keys are pressed. The Alt-Shift-H combination loses the Alt.
extended keys like (F11, F12) can only be read with systems that have extended keyboard BIOS support (or INT 9 extensions); to read these special keys on these systems INT 16,10 must be used
see SCAN CODES KB FLAGS
back2root/ibm-pc-ms-dos/hardware/informations/keyboard-make-code.txt · Dernière modification : 2024/04/06 20:45 de frater