Outils pour utilisateurs

Outils du site


Interruption 09h - Keyboard Interrupt (Hardware Handler)

no input data

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

Notes & Comments

  • 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



back2root/ibm-pc-ms-dos/interrupts/int_09/start.txt · Dernière modification : 2024/04/06 18:39 de frater