Online HelpPC 2.10      Quick Reference Utility     Copyright 1991 David Jurgens
 
                       INT 24 - Critical Error Handler                       
                                                                                         no input data                                                                                                                                                     on entry to INT 24:                                                              AH = bit 7 of register AH is set to one if other than disk error                    = bit 7 of register AH is set to zero if disk error                                AL = failing drive number                                                        AH = bits 0-2 indicate affected disk area and read/write status                                                                                                        │5│4│3│2│1│0│  AH                                                                 │ │ │ │ │ └──── read = 0, write = 1                                              │ │ │ └─┴───── 00=DOS, 01=FAT, 10=DIR, 11=data area                              │ │ └──────── 0=FAIL not allowed, 1=FAIL allowed                                 │ └───────── 0=RETRY not allowed, 1=RETRY allowed                                └────────── 0=IGNORE not allowed, 1=IGNORE allowed                                                                                                     DI = error code in lower byte                                                    BP:SI = pointer to device header control block where additional                          information about the error can be found                                                                                                                                                                                                   on exit:                                                                         AL = action code determining exit behavior                                          = 00  ignore error                                                               = 01  retry                                                                      = 02  terminate through INT 23                                                   = 03  fail system call (DOS 3.x+)                                                                                                                                                                                                      
        Error Codes in low order byte of DI:                                    
                                                                                           00  write protect error                                                          01  unknown unit                                                                 02  drive not ready                                                              03  unknown command                                                              04  data error (bad CRC)                                                         05  bad request structure length                                                 06  seek error                                                                   07  unknown media type                                                           08  sector not found                                                             09  printer out of paper                                                         0A  write fault                                                                  0B  read fault                                                                   0C  general failure                                                                                                                                    
        Users Stack at Entry to Error Handler:                                  
                                                                                         (top of stack)                                                                       IP         DOS code next instruction pointer                                     CS                                                                               FLAGS      DOS's flags                                                           AX -\                                                                            BX   \                                                                           CX    \                                                                          DX     \                                                                         SI      |- User's registers at entry to INT 21 function                          DI     /                                                                         BP    /                                                                          DS   /                                                                           ES -/                                                                            IP         User code next instruction pointer                                    CS                                                                               FLAGS                                                                                                                                                         - on entry registers are setup for a retry operation                             - user routine must issue an IRET or simulate an IRET                            - INT 21,0 through INT 21,C and INT 21,59 can safely be invoked                    from the handler.  Other calls may destroy DOS's stack                         - handler must preserve register SS,SP,DS,ES,BX,CX,DX                            - choosing ignore can show side effects, since it causes DOS                       to continue as if it the call were successful                                  - if an improper action code is specified in DOS 3.x it is changed:                if IGNORE is invalidly specified, action is converted to FAIL                    if RETRY is invalidly specified, action is converted to FAIL                     if FAIL is invalidly specified, action is converted to ABORT                   - IGNORE requests are converted to FAIL for FAT and DIR disk                       errors and network critical errors                                             - if the user routine wishes to handle the error instead of passing                it to DOS, it must restore the user program registers from the                   stack and remove all but the last 3 words from the stack (FLAGS,                 CS, IP) and issue an IRET                                                      - do not execute this interrupt directly                                         - INDOS flag is cleared on INT 24 (see INT 21,34)                                                                                                          
[helppc.bosbyte.nl]         critical error handler            Home  Back  Topics