home *** CD-ROM | disk | FTP | other *** search
/ Media Share 9 / MEDIASHARE_09.ISO / pascal / tplib21.zip / INSTALL.EXE / CRTCLERR.PAS < prev    next >
Pascal/Delphi Source File  |  1993-06-24  |  2KB  |  87 lines

  1. (*
  2.     TURBO PASCAL LIBRARY 2.1
  3.     CRTCLERR unit: Re-instate critical-error handler
  4. *)
  5.  
  6. UNIT CRTCLERR;
  7.  
  8. INTERFACE
  9.  
  10. TYPE
  11.     ErrorString =   STRING[20];
  12.  
  13.  
  14. PROCEDURE CriticalErrorDOS;
  15. PROCEDURE CriticalErrorTP;
  16. PROCEDURE CriticalErrorOwn(ErrAddr: POINTER);
  17. FUNCTION  CriticalErrorMsg(n: BYTE): ErrorString;
  18.  
  19.  
  20. IMPLEMENTATION
  21.  
  22. USES
  23.     DOS;
  24.  
  25.  
  26. VAR
  27.     TurboInt24: POINTER;        { Holds address of TP's error handler }
  28.  
  29.  
  30.  
  31. PROCEDURE CriticalErrorDOS;
  32.  
  33.     BEGIN
  34.         SetIntVec($24,SaveInt24);
  35.     END;
  36.  
  37.  
  38.  
  39. PROCEDURE CriticalErrorTP;
  40.  
  41.     BEGIN
  42.         SetIntVec($24,TurboInt24);
  43.     END;
  44.  
  45.  
  46.  
  47. PROCEDURE CriticalErrorOwn(ErrAddr: POINTER);
  48.  
  49.     BEGIN
  50.         SetIntVec($24,ErrAddr);
  51.     END;
  52.  
  53.  
  54.  
  55. FUNCTION CriticalErrorMsg(n: BYTE): ErrorString;
  56.  
  57.     CONST
  58.         ErrorDI: ARRAY[0..12] OF ErrorString = { Error codes from INT $24 }
  59.                            ('Write-protect error',
  60.                             'Unknown unit',
  61.                             'Drive not ready',
  62.                             'Unknown command',
  63.                             'Data error',
  64.                             'Bad request',
  65.                             'Seek error',
  66.                             'Unknown disk format',
  67.                             'Sector not found',
  68.                             'Printer out of paper',
  69.                             'Write fault',
  70.                             'Read fault',
  71.                             'General error');
  72.  
  73.  
  74.     BEGIN
  75.         IF n IN [0..12] THEN
  76.             CriticalErrorMsg:=ErrorDI[n]
  77.         ELSE
  78.             CriticalErrorMsg:='Unknown error';
  79.     END;
  80.  
  81.  
  82. BEGIN  { CRTCLERR }
  83.     GetIntVec($24,TurboInt24);
  84.     CriticalErrorDOS;
  85. END.
  86.  
  87.