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

- see ~MAKE CODES~ ~KB FLAGS~


Zurück zum Interrupt Info. Roger Morgan / 1998 L.Änderung 29.03.99