add directory docs
This commit is contained in:
117
docs/interrupts/int-html0/inte8isw.htm
Normal file
117
docs/interrupts/int-html0/inte8isw.htm
Normal file
@@ -0,0 +1,117 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
|
||||
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<meta http-equiv="Content-Type"
|
||||
content="text-html; charset=Windows-1252">
|
||||
<title>INT 23 - Control-Break Exit Address</title>
|
||||
<meta name="FORMATTER" content="Microsoft FrontPage 2.0">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<h1><a name="kap_interrupt_2820"></a>INT 23 - Control-Break Exit
|
||||
Address</h1>
|
||||
|
||||
<p> no input data</p>
|
||||
|
||||
<p> - not an interrupt but a pointer to a routine that is called
|
||||
when a</p>
|
||||
|
||||
<p> DOS function detects a ~Ctrl-Break~ or Ctrl-C has been
|
||||
pressed</p>
|
||||
|
||||
<p> resulting in a "Break condition"</p>
|
||||
|
||||
<p> - a Break condition is detected if DOS's internal Break flag
|
||||
is</p>
|
||||
|
||||
<p> found set by ~INT 1B~ or the next word in the BIOS keyboard
|
||||
buffer</p>
|
||||
|
||||
<p> is a scan code representing one of the Break key
|
||||
combinations.</p>
|
||||
|
||||
<p> If a matching scan code is found, the keyboard buffer head
|
||||
pointer</p>
|
||||
|
||||
<p> is incremented by 2 (which effectively removes the ^C
|
||||
keycode), the</p>
|
||||
|
||||
<p> ^C is printed and then INT 23 is called.</p>
|
||||
|
||||
<p> - disabling the abort is easy, but to disable the ^C from
|
||||
appearing</p>
|
||||
|
||||
<p> you must either not use any of the DOS I/O functions that
|
||||
check</p>
|
||||
|
||||
<p> for Break or you must trap the Ctrl-C keypress from within
|
||||
INT 9.</p>
|
||||
|
||||
<p> Another method is to scan the BIOS keyboard buffer and delete
|
||||
any</p>
|
||||
|
||||
<p> Break key combinations.</p>
|
||||
|
||||
<p> - Ctrl-Break empties the keyboard buffer by resetting the
|
||||
keyboard</p>
|
||||
|
||||
<p> head and tail pointers then places a 0000h at the queue head.
|
||||
It</p>
|
||||
|
||||
<p> then sets an internal "Break" flag. DOS
|
||||
subfunctions that check</p>
|
||||
|
||||
<p> for Break see this and then issue INT 23h. DOS does not
|
||||
detect</p>
|
||||
|
||||
<p> INT 1B using the keyboard buffer, but uses it's own internal
|
||||
flag.</p>
|
||||
|
||||
<p> - Alt-Keypad-3 and Ctrl-2 also result in this interrupt</p>
|
||||
|
||||
<p> - Ctrl-C places 2E03h in the BIOS keyboard buffer while
|
||||
Ctrl-2</p>
|
||||
|
||||
<p> places 0300h and Alt-Keypad-3 places 0003h; none of these key</p>
|
||||
|
||||
<p> combinations empty the keyboard like Ctrl-Break but all
|
||||
result</p>
|
||||
|
||||
<p> in a ^C being displayed; note that all three produce scan
|
||||
codes</p>
|
||||
|
||||
<p> containing '03'</p>
|
||||
|
||||
<p> - since DOS checks only the first word of the keyboard buffer</p>
|
||||
|
||||
<p> Ctrl-C, Ctrl-2 and Alt-Keypad-3 are only detected if they are
|
||||
the</p>
|
||||
|
||||
<p> first word in the buffer while Ctrl-Break is detected via the</p>
|
||||
|
||||
<p> internal flag and takes effect as soon as it's detected.</p>
|
||||
|
||||
<p> - do not execute this interrupt directly</p>
|
||||
|
||||
<p> - see also ~INT 9~</p>
|
||||
|
||||
<hr>
|
||||
|
||||
<table border="0" width="100%" cols="3">
|
||||
<tr>
|
||||
<td width="33%">Zur<EFBFBD>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.<2E>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>
|
||||
Reference in New Issue
Block a user