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