[<<Previous Entry]
[^^Up^^]
[Next Entry>>]
[Menu]
[About The Guide]
Int 24 - DOS 1+ - Critical Error Handler [D]
Note: invoked when a critical (usually hardware) error is encountered; should
never be called directly
See Also: INT 21/AH=95h
Critical error handler is invoked with:
AH = type and processing flags
bit 7 clear = disk I/O error
set = -- if block device, bad FAT image in memory
-- if char device, error code in DI
bit 6 unused
bit 5 = 1 if Ignore allowed, 0 if not (DOS 3+)
bit 4 = 1 if Retry allowed, 0 if not (DOS 3+)
bit 3 = 1 if Fail allowed, 0 if not (DOS 3+)
bit 2 \ disk area of error 00 = DOS area 01 = FAT
bit 1 / 10 = root dir 11 = data area
bit 0 = 1 if write, 0 if read
AL = drive number if AH bit 7 clear
BP:SI -> device driver header (BP:[SI+4] bit 15 set if char device)
DI low byte contains error code if AH bit 7 set
00h write-protection violation attempted
01h unknown unit for driver
02h drive not ready
03h unknown command given to driver
04h data error (bad CRC)
05h bad device driver request structure length
06h seek error
07h unknown media type
08h sector not found
09h printer out of paper
0Ah write fault
0Bh read fault
0Ch general failure
0Dh (DOS 3+) sharing violation
0Eh (DOS 3+) lock violation
0Fh invalid disk change
10h (DOS 3+) FCB unavailable
11h (DOS 3+) sharing buffer overflow
12h (DOS 4+) code page mismatch
13h (DOS 4+) out of input
14h (DOS 4+) insufficient disk space
STACK: DWORD return address for INT 24 call
WORD flags pushed by INT 24
WORD original AX on entry to INT 21
WORD BX
WORD CX
WORD DX
WORD SI
WORD DI
WORD BP
WORD DS
WORD ES
DWORD return address for INT 21 call
WORD flags pushed by INT 21
Handler must return:
AL = action code
00h ignore error and continue processing request
01h retry operation
02h terminate program through the equivalent of INT 21/AH=4Ch
(INT 20h for DOS 1.x)
03h fail system call in progress
SS,SP,DS,ES,BX,CX,DX preserved
Notes: the only DOS calls the handler may make are INT 21/AH=01h-0Ch,30h,59h
if the handler returns to the application by popping the stack, DOS
will be in an unstable state until the first call with AH > 0Ch
for DOS 3.1+, IGNORE (AL=00h) is turned into FAIL (AL=03h) on network
critical errors
if IGNORE specified but not allowed, it is turned into FAIL
if RETRY specified but not allowed, it is turned into FAIL
if FAIL specified but not allowed, it is turned into ABORT
(DOS 3+) if a critical error occurs inside the critical error handler,
the DOS call is automatically failed
This page created by ng2html v1.05, the Norton guide to HTML conversion utility.
Written by Dave Pearson