Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
back2root:ibm-pc-ms-dos:interrupts:int_09:start [2024/04/06 18:39] – supprimée - modification externe (Date inconnue) 127.0.0.1 | back2root:ibm-pc-ms-dos:interrupts:int_09:start [2024/08/13 08:12] (Version actuelle) – frater | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ====== Int 09h - Keyboard Interrupt (Hardware Handler) ====== | ||
+ | |||
+ | <WRAP round info > | ||
+ | no input data | ||
+ | </ | ||
+ | |||
+ | ===== Related memory ===== | ||
+ | |||
+ | {{tablelayout? | ||
+ | | 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, | ||
+ | | 40:97 | updates keyboard LED flags (AT, | ||
+ | | FFFF: | ||
+ | |||
+ | ===== Related interrupts ===== | ||
+ | |||
+ | {{tablelayout? | ||
+ | ^ reg ^ | ||
+ | |[[back2root: | ||
+ | |[[back2root: | ||
+ | |[[back2root: | ||
+ | |[[back2root: | ||
+ | |||
+ | ===== Notes & Comments ===== | ||
+ | |||
+ | <WRAP round box> | ||
+ | * 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 [[back2root: | ||
+ | * keyboard controller is capable of storing 16 keystrokes even when interrupts are disabled at the [[back2root: | ||
+ | * normal INT 9 execution takes approximately 500 microseconds; | ||
+ | </ | ||
+ | |||
+ | see [[back2root: | ||
+ | |||
+ | [[..: | ||