back2root:ibm-pc-ms-dos:interrupts:int_09:start
Int 09h - Keyboard Interrupt (Hardware Handler)
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 |
reg | descr |
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
Back
back2root/ibm-pc-ms-dos/interrupts/int_09/start.txt · Dernière modification : 2024/08/13 08:12 de frater