INT 9 - Hardware Keyboard Make/Break Codes

 	Key	     Make  Break		Key    Make  Break

	Backspace     0E    8E			F1	3B    BB
	Caps Lock     3A    BA			F2	3C    BC
	Enter	      1C    9C			F3	3D    BD
	Esc	      01    81			F4	3E    BE
	Left Alt      38    B8			F7	41    C1
	Left Ctrl     1D    9D			F5	3F    BF
	Left Shift    2A    AA			F6	40    C0
	Num Lock      45    C5			F8	42    C2
	Right Shift   36    B6			F9	43    C3
	Scroll Lock   46    C6			F10	44    C4
	Space	      39    B9			F11	57    D7
	Sys Req (AT)  54    D4			F12	58    D8
	Tab	      0F    8F

 		    Keypad Keys		       Make   Break

		    Keypad 0  (Ins)		52	D2
		    Keypad 1  (End) 		4F	CF
		    Keypad 2  (Down arrow)	50	D0
		    Keypad 3  (PgDn)		51	D1
		    Keypad 4  (Left arrow)	4B	CB
		    Keypad 5			4C	CC
		    Keypad 6  (Right arrow)	4D	CD
		    Keypad 7  (Home)		47	C7
		    Keypad 8  (Up arrow)	48	C8
		    Keypad 9  (PgUp)		49	C9
		    Keypad .  (Del) 		53	D3
		    Keypad *  (PrtSc)		37	B7
		    Keypad -			4A	CA
		    Keypad +			4E	CE

 	       Key    Make  Break	       Key    Make  Break

		A      1E    9E 		N      31    B1
		B      30    B0 		O      18    98
		C      2E    AE 		P      19    99
		D      20    A0 		Q      10    90
		E      12    92 		R      13    93
		F      21    A1 		S      1F    9F
		G      22    A2 		T      14    94
		H      23    A3 		U      16    96
		I      17    97 		V      2F    AF
		J      24    A4 		W      11    91
		K      25    A5 		X      2D    AD
		L      26    A6 		Y      15    95
		M      32    B2 		Z      2C    AC

 	       Key    Make  Break	       Key    Make  Break

		1      02    82 		-      0C    8C
		2      03    83 		=      0D    8D
		3      04    84 		[      1A    9A
		4      05    85 		]      1B    9B
		5      06    86 		;      27    A7
		6      07    87 		'      28    A8
		7      08    88 		`      29    A9
		8      09    89 		\      2B    AB
		9      0A    8A 		,      33    B3
		0      0B    8B 		.      34    B4
						/      35    B5

Enhanced Keyboard Keys (101/102 keys)

Control Keys Make Break Alt-PrtSc (SysReq) 54 D4 Ctrl-PrtSc E0 37 E0 B7 Enter E0 1C E0 9C PrtSc E0 2A E0 37 E0 B7 E0 AA Right Alt E0 38 E0 B8 Right Ctrl E0 1D E0 9D Shift-PrtSc E0 37 E0 B7 / E0 35 E0 B5 Pause E1 1D 45 E1 9D C5 (not typematic) Ctrl-Pause (Ctrl-Break) E0 46 E0 C6 (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 E0 53 E0 D3 E0 2A E0 53 E0 D3 E0 AA Down arrow E0 50 E0 D0 E0 2A E0 50 E0 D0 E0 AA End E0 4F E0 CF E0 2A E0 4F E0 CF E0 AA Home E0 47 E0 C7 E0 2A E0 47 E0 C7 E0 AA Ins E0 52 E0 D2 E0 2A E0 52 E0 D2 E0 AA Left arrow E0 4B E0 CB E0 2A E0 4B E0 CB E0 AA PgDn E0 51 E0 D1 E0 2A E0 51 E0 D1 E0 AA PgUp E0 49 E0 C9 E0 2A E0 49 E0 C9 E0 AA Right arrow E0 4D E0 CD E0 2A E0 4D E0 CD E0 AA Up arrow E0 48 E0 C8 E0 2A E0 48 E0 C8 E0 AA Key ┌──Left Shift Pressed──┐ ┌──Right Shift Pressed──┐ Make Break Make Break Del E0 AA E0 53 E0 D3 E0 2A E0 B6 E0 53 E0 D3 E0 36 Down arrow E0 AA E0 50 E0 D0 E0 2A E0 B6 E0 50 E0 D0 E0 36 End E0 AA E0 4F E0 CF E0 2A E0 B6 E0 4F E0 CF E0 36 Home E0 AA E0 47 E0 C7 E0 2A E0 B6 E0 47 E0 C7 E0 36 Ins E0 AA E0 52 E0 D2 E0 2A E0 B6 E0 52 E0 D2 E0 36 Left arrow E0 AA E0 4B E0 CB E0 2A E0 B6 E0 4B E0 CB E0 36 PgDn E0 AA E0 51 E0 D1 E0 2A E0 B6 E0 51 E0 D1 E0 36 PgUp E0 AA E0 49 E0 C9 E0 2A E0 B6 E0 49 E0 C9 E0 36 Right arrow E0 AA E0 4D E0 CD E0 2A E0 B6 E0 4D E0 CD E0 36 Up arrow E0 AA E0 48 E0 C8 E0 2A E0 B6 E0 48 E0 C8 E0 36 / E0 AA E0 35 E0 B5 E0 2A E0 B6 E0 35 E0 B5 E0 36 - 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 KEYBOARD COMMANDS