Outils pour utilisateurs

Outils du site


back2root:ibm-pc-ms-dos:interrupts:int_09:start

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine 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.1back2root: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 
 +</WRAP>
 +
 +===== Related memory =====
 +
 +{{tablelayout?rowsHeaderSource=Auto&colwidth=""}}
 +|  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: | reboot code called if Ctrl-Alt-Del pressed                                                                      |
 +
 +===== Related interrupts =====
 +
 +{{tablelayout?rowsHeaderSource=Auto&colwidth=""}}
 +^  reg  ^   descr  ^
 +|[[back2root:ibm-pc-ms-dos:interrupts:int_15:int_05|INT 5]]     |invoked if print screen key pressed                        |
 +|[[back2root:ibm-pc-ms-dos:interrupts:int_15:int_1b|INT 1B]]    |invoked if Ctrl-Break key sequence pressed                 |
 +|[[back2root:ibm-pc-ms-dos:interrupts:int_15:int_15_85|INT 15,85]] |invoked on AT if system request key is pressed             |
 +|[[back2root:ibm-pc-ms-dos:interrupts:int_15:int_15_4f|INT 15,4F]] |invoked on machines after PC/AT with AL = scan code        |
 +
 +===== 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:ibm-pc-ms-dos:hardware:8259|8259]] interrupt controller
 +  * keyboard controller is capable of storing 16 keystrokes even when interrupts are disabled at the [[back2root:ibm-pc-ms-dos:hardware:8259|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
 +</WRAP>
 +
 +see [[back2root:ibm-pc-ms-dos:hardware:informations:keyboard-make-code|MAKE CODES]]    [[back2root:ibm-pc-ms-dos:hardware:informations:kb_flags|KB FLAGS]]  
 +
 +[[..:start|Back]]