230 lines
10 KiB
Text
230 lines
10 KiB
Text
|
|
Programming Technical Reference - IBM
|
|
Copyright 1988, Dave Williams
|
|
|
|
|
|
These scan codes are generated by pressing a key on the PC's keyboard. This
|
|
is the 'make' code. A 'break' code is generated when the key is released. The
|
|
break scancode is 128 higher than the make code, and is generated by setting
|
|
bit 7 of the scan code byte to 1.
|
|
|
|
|
|
IBM PC KEYBOARD EXTENDED CODES
|
|
|
|
|
|
Normal Shift Control Alt
|
|
|
|
ESC 1
|
|
1 2 0;120
|
|
2 3 0;121
|
|
3 4 0;122
|
|
4 5 0;123
|
|
5 6 0;124
|
|
6 7 0;125
|
|
7 8 0;126
|
|
8 9 0;127
|
|
9 10 0;128
|
|
0 11 0;129
|
|
- 12 0;130
|
|
= 13 0;131
|
|
TAB 15 0;15(backtab)
|
|
backtab none 0;15
|
|
RETURN 28
|
|
|
|
Normal Shift Control Alt NumLock
|
|
|
|
Home 0;71 0;119 none 7
|
|
UpArrow 0;72 none none 8
|
|
PgUp 0;73 0;132 none 9
|
|
gray - 0;74 0;74
|
|
LArrow 0;75 0;115 none 4
|
|
keypad 5 none none none 5
|
|
RArrow 0;77 0;116 6
|
|
gray + 0;78 0;78
|
|
End 0;79 0;117 none 1
|
|
DnArrow 0;80 2
|
|
PgDn 0;81 0;118 none 3
|
|
Ins 0;82 none 11
|
|
Del 0;83 0;128 none 52
|
|
PrtSc 55 0;114
|
|
L shift 42
|
|
R shift 54
|
|
alt key 56
|
|
capslock 58
|
|
spacebar 57
|
|
control key 29
|
|
numlock 69
|
|
scrollock 70
|
|
; 39
|
|
[ 26
|
|
] 27
|
|
" 40
|
|
\ 43
|
|
/ 53
|
|
, 51
|
|
. 52
|
|
|
|
|
|
Normal Shift Control Alt
|
|
|
|
a = 30 0;30
|
|
b = 48 0;48
|
|
c = 46 0;46
|
|
d = 32 0;32
|
|
e = 18 0;18
|
|
f = 33 0;33
|
|
g = 34 0;34
|
|
h = 35 0;35
|
|
i = 23 0;23
|
|
j = 36 0;36
|
|
k = 37 0;37
|
|
l = 38 0;38
|
|
m = 50 0;50
|
|
n = 49 0;49
|
|
o = 24 0;24
|
|
p = 25 0;25
|
|
q = 16 0;16
|
|
r = 19 0;19
|
|
s = 31 0;31
|
|
t = 20 0;20
|
|
u = 22 0;22
|
|
v = 47 0;47
|
|
w = 17 0;17
|
|
x = 45 0;45
|
|
y = 21 0;21
|
|
z = 44 0;44
|
|
|
|
Normal Shift Control Alt
|
|
|
|
F1 = 0;59 0;84 0;94 0;104
|
|
F2 = 0;60 0;85 0;95 0;105
|
|
F3 = 0;61 0;86 0;96 0;106
|
|
F4 = 0;62 0;87 0;97 0;107
|
|
F5 = 0;63 0;88 0;98 0;108
|
|
F6 = 0;64 0;89 0;99 0;109
|
|
F7 = 0;65 0;90 0;100 0;110
|
|
F8 = 0;66 0;91 0;101 0;111
|
|
F9 = 0;67 0;92 0;102 0;112
|
|
F10 = 0;68 0;93 0;103 0;113
|
|
|
|
|
|
|
|
"Enhanced" 101/102 key keyboard scancodes
|
|
Normal Shift Control Alt
|
|
F11 = 0;152 0;162 0;172 0;182 |
|
|
F12 = 0;153 0;163 0;173 0;183 | Tandy?
|
|
|
|
F11 = 0;133 0;135 0;137 0;139
|
|
F12 = 0;134 0;136 0;138 0;140
|
|
|
|
alt-home 0;151
|
|
UpArr 0;141 0;152
|
|
Ctrl - 0;142
|
|
Ctrl 5 0;143
|
|
Ctrl + 0;144
|
|
DnArr 0;145 0;160
|
|
Ins 0;146 0;162
|
|
Del 0;147 0;163
|
|
Tab 0;148 0;165
|
|
/ 0;149 0;164
|
|
Ctrl-* 0;150
|
|
alt-Enter 0;166
|
|
alt-PgUp 0;153
|
|
alt-LArr 0;154
|
|
alt-RArr 0;155
|
|
alt-End 0;156
|
|
alt-PgDn 0;161
|
|
|
|
|
|
|
|
BIOS keystroke codes, hexadecimal
|
|
|
|
Key Normal Shift Control Alt
|
|
|
|
Esc 011B 011B 011B --
|
|
1! 0231 '1' 0221 '!' -- 7800
|
|
2@ 0332 '2' 0340 '@' 0300 7900
|
|
3# 0433 '3' 0423 '#' -- 7A00
|
|
4$ 0534 '4' 0524 '$' -- 7B00
|
|
5% 0635 '5' 0625 '%' -- 7C00
|
|
6^ 0736 '6' 075E '^' 071E 7D00
|
|
7& 0837 '7' 0826 '&' -- 7E00
|
|
8* 0938 '8' 092A '*' -- 7F00
|
|
9( 0A39 '9' 0A28 '(' -- 8000
|
|
0) 0B30 '0' 0B29 ')' -- 8100
|
|
-_ 0C2D '-' 0C5F '_' 0C1F 8200
|
|
=+ 0D3D '=' 0D2B '+' -- 8300
|
|
BkSpc 0E08 0E08 0E7F --
|
|
tab 0F09 0F00 -- --
|
|
q 1071 'q' 1051 'Q' 1011 1000
|
|
w 1177 'w' 1157 'W' 1117 1100
|
|
e 1265 'e' 1245 'E' 1205 1200
|
|
r 1372 'r' 1352 'R' 1312 1300
|
|
t 1474 't' 1454 'T' 1414 1400
|
|
y 1579 'y' 1559 'Y' 1519 1500
|
|
u 1675 'u' 1655 'U' 1615 1600
|
|
i 1769 'i' 1749 'I' 1709 1700
|
|
o 186F 'o' 184F 'O' 180F 1800
|
|
p 1970 'p' 1950 'P' 1910 1900
|
|
[{ 1A5B '[' 1A7B '{' 1A1B --
|
|
]} 1B5D ']' 1B7D '}' 1B1D --
|
|
enter 1C0D 1C0D 1C0A --
|
|
Ctrl -- -- -- --
|
|
a 1E61 'a' 1E41 'A' 1E01 1E00
|
|
s 1F73 's' 1F53 'S' 1F13 1F00
|
|
d 2064 'd' 2044 'D' 2004 2000
|
|
f 2166 'f' 2146 'F' 2106 2100
|
|
g 2267 'g' 2247 'G' 2207 2200
|
|
h 2368 'h' 2348 'H' 2308 2300
|
|
j 246A 'j' 244A 'J' 240A 2400
|
|
k 256B 'k' 254B 'K' 250B 2500
|
|
l 266C 'l' 264C 'L' 260C 2600
|
|
;: 273B ';' 273A ':' -- --
|
|
'" 2827 ''' 2822 '"' -- --
|
|
`~ 2960 '`' 297E '~' -- --
|
|
l shift -- -- -- --
|
|
\| 2B5C '\' 2B7C '|' 2B1C --
|
|
z 2C7A 'z' 2C5A 'Z' 2C1A 2C00
|
|
x 2D78 'x' 2D58 'X' 2D18 2D00
|
|
c 2E63 'c' 2E43 'C' 2E03 2E00
|
|
v 2F76 'v' 2F56 'V' 2F16 2F00
|
|
b 3062 'b' 3042 'B' 3002 3000
|
|
n 316E 'n' 314E 'N' 310E 3100
|
|
m 326D 'm' 324D 'M' 320D 3200
|
|
,< 332C ',' 333C '<' -- --
|
|
.> 342E '.' 343E '>' -- --
|
|
/? 352F '/' 353F '?' -- --
|
|
r shift -- -- -- --
|
|
PrtSc 372A '*' -- 7200 --
|
|
Alt -- -- -- --
|
|
spacebar 3920 ' ' 3920 ' ' 3920 ' ' 3920 ' '
|
|
CapsLock -- -- -- --
|
|
F1 3B00 5400 5E00 6800
|
|
F2 3C00 5500 5F00 6900
|
|
F3 3D00 5600 6000 6A00
|
|
F4 3E00 5700 6100 6B00
|
|
F5 3F00 5800 6200 6C00
|
|
F6 4000 5900 6300 6D00
|
|
F7 4100 5A00 6400 6E00
|
|
F8 4200 5B00 6500 6F00
|
|
F9 4300 5C00 6600 7000
|
|
F10 4400 5D00 6700 7100
|
|
NumLock -- -- -- --
|
|
Scroll -- -- -- --
|
|
7 Home 4700 4737 '7' 7700 --
|
|
8 up 4800 4838 '8' -- --
|
|
9 PgUp 4900 4939 '9' 8400 --
|
|
grey - 4A2D '-' 4A2D '-' -- --
|
|
4 left 4B00 4B34 '4' 7300 --
|
|
5 -- 4C35 '5' -- --
|
|
6 right 4D00 4D36 '6' 7400 --
|
|
grey + 4E2B '+' 4E2B '+' -- --
|
|
1 End 4F00 4F31 '1' 7500 --
|
|
2 down 5000 5032 '2' -- --
|
|
3 PgDn 5100 5133 '3' 7600 --
|
|
Ins 5200 5230 '0' -- --
|
|
Del 5300 532E '.' -- --
|
|
|
|
A table entry of "--" means you can't get that combination out of BIOS.
|
|
|
|
|