INT 9 - Keyboard Interrupt (Hardware Handler)

	no input data

	related memory:

	40:17 = updates keyboard flag byte 0
	40:18 = updates keyboard flag byte 1
	40:1A = queue head ptr is set to buffer start if Ctrl-Break is hit
	40:1C = updates buffer tail pointer for each keystroke; sets
		queue tail ptr is set to queue start if Ctrl-Break is hit
	40:1E = updates keyboard buffer (32 bytes)
	40:71 = updates bit 7 of the BIOS break flag if Ctrl-Break is hit
	40:72 = updates reset flag with 1234H if Ctrl-Alt-Del pressed
	40:96 = indicates keyboard type (AT,PS/2)
	40:97 = updates keyboard LED flags (AT,PS/2)
	FFFF:0 = reboot code called if Ctrl-Alt-Del pressed

	related interrupts:

	INT 5     invoked if print screen key pressed
	INT 1B    invoked if Ctrl-Break key sequence pressed
	INT 15,85 invoked on AT if system request key is pressed
	INT 15,4F invoked on machines after PC/AT with AL = scan code

	- records key press and key release via IRQ1/8259 and
	  stores scan codes in the BIOS buffer located at 40:1C
	- keyboard controllers also buffer data when interrupts are
	  disabled at the 8259 interrupt controller
	- keyboard controller is capable of storing 16 keystrokes
	  even when interrupts are disabled at the 8259
	- normal INT 9 execution takes approximately 500 microseconds;
	  at least one standard XT BIOS is known to take up to 1.3
	  milliseconds to execute