Int 23

lup.gif ldown.gif Interrups Categories Contents

rbline.gif

DOS 1+ - CONTROL-C/CONTROL-BREAK HANDLER

---DOS 1.x---

Return:
AH = 00h abort program if all registers preserved, restart DOS call ---DOS 2+--- CF clear

Return:
All registers preserved return via RETF with CF set or (MS-DOS 1,DR DOS) RETF 2 with CF set DOS will abort program with errorlevel 0 else (RETF/RETF 2 with CF clear or IRET with CF ignored) interrupted DOS call is restarted

Notes: This interrupt is invoked whenever DOS detects a ^C or ^Break; it should never be called directly. MS-DOS 1.25 also invokes INT 23 on a divide overflow (INT 00). MS-DOS remembers the stack pointer before calling INT 23, and if it is not the same on return, pops and discards the top word; this is what permits a return with RETF as well as IRET or RETF 2. MS-DOS 2.1+ ignores the returned CF if SP is the same on return as it was when DOS called INT 23, so RETF 2 will not terminate the program. Novell DOS 7 always pops a word if CF is set on return, so one should not return with RETF 2 and CF set or IRET with the stored flags' CF set. Any DOS call may safely be made within the INT 23 handler, although the handler must check for a recursive invocation if it does call DOS

See Also: INT 1B - INT 21/AH=92h"PTS-DOS"

Category: DOS Kernel - Int 23h - D

rbline.gif

lup.gif ldown.gif Interrups Categories Contents