94 lines
2.4 KiB
HTML
94 lines
2.4 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
|
|
|
|
<html>
|
|
|
|
<head>
|
|
<meta http-equiv="Content-Type"
|
|
content="text-html; charset=Windows-1252">
|
|
<title>INT 9 - Keyboard Interrupt (Hardware Handler)</title>
|
|
<meta name="FORMATTER" content="Microsoft FrontPage 2.0">
|
|
</head>
|
|
|
|
<body>
|
|
|
|
<h1><a name="kap_interrupt_0060"></a>INT 9 - Keyboard Interrupt
|
|
(Hardware Handler)</h1>
|
|
|
|
<p> no input data</p>
|
|
|
|
<p> % related memory:</p>
|
|
|
|
<p> 40:17 = updates keyboard flag byte 0</p>
|
|
|
|
<p> 40:18 = updates keyboard flag byte 1</p>
|
|
|
|
<p> 40:1A = queue head ptr is set to buffer start if Ctrl-Break
|
|
is hit</p>
|
|
|
|
<p> 40:1C = updates buffer tail pointer for each keystroke; sets</p>
|
|
|
|
<p> queue tail ptr is set to queue start if Ctrl-Break is hit</p>
|
|
|
|
<p> 40:1E = updates keyboard buffer (32 bytes)</p>
|
|
|
|
<p> 40:71 = updates bit 7 of the BIOS break flag if Ctrl-Break is
|
|
hit</p>
|
|
|
|
<p> 40:72 = updates reset flag with 1234H if Ctrl-Alt-Del pressed</p>
|
|
|
|
<p> 40:96 = indicates keyboard type (AT,PS/2)</p>
|
|
|
|
<p> 40:97 = updates keyboard LED flags (AT,PS/2)</p>
|
|
|
|
<p> FFFF:0 = reboot code called if Ctrl-Alt-Del pressed</p>
|
|
|
|
<p> % related interrupts:</p>
|
|
|
|
<p> ~INT 5~ invoked if print screen key pressed</p>
|
|
|
|
<p> ~INT 1B~ invoked if Ctrl-Break key sequence pressed</p>
|
|
|
|
<p> ~INT 15,85~ invoked on AT if system request key is pressed</p>
|
|
|
|
<p> ~INT 15,4F~ invoked on machines after PC/AT with AL = scan
|
|
code</p>
|
|
|
|
<p> - records key press and key release via IRQ1/8259 and</p>
|
|
|
|
<p> stores scan codes in the BIOS buffer located at 40:1C</p>
|
|
|
|
<p> - keyboard controllers also buffer data when interrupts are</p>
|
|
|
|
<p> disabled at the ~8259~ interrupt controller</p>
|
|
|
|
<p> - keyboard controller is capable of storing 16 keystrokes</p>
|
|
|
|
<p> even when interrupts are disabled at the 8259</p>
|
|
|
|
<p> - normal INT 9 execution takes approximately 500
|
|
microseconds;</p>
|
|
|
|
<p> at least one standard XT BIOS is known to take up to 1.3</p>
|
|
|
|
<p> milliseconds to execute</p>
|
|
|
|
<p> - see ~MAKE CODES~ ~KB FLAGS~</p>
|
|
|
|
<hr>
|
|
|
|
<table border="0" width="100%" cols="3">
|
|
<tr>
|
|
<td width="33%">Zurück zum <a href="inte1at0.htm">Interrupt
|
|
Info</a>. </td>
|
|
<td align="center" width="33%"><a
|
|
href="mailto:Roger.Morgan@htl-steyr.ac.at">Roger Morgan</a>
|
|
/ 1998 </td>
|
|
<td align="right" width="33%"><font size="1">L.Änderung <!--webbot
|
|
bot="Timestamp" s-type="EDITED" s-format="%d.%m.%y"
|
|
startspan -->29.03.99<!--webbot bot="Timestamp" endspan
|
|
i-checksum="13964" --> </font></td>
|
|
</tr>
|
|
</table>
|
|
</body>
|
|
</html>
|