[<<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