[<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
INT 24 - DOS 1+ - CRITICAL ERROR HANDLER
Note:   invoked when a critical (usually hardware) error is encountered; should
          never be called directly

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

See Also: 2195
This page created by ng2html v1.05, the Norton guide to HTML conversion utility. Written by Dave Pearson