home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Media Share 9
/
MEDIASHARE_09.ISO
/
pascal
/
tplib21.zip
/
INSTALL.EXE
/
CRTCLERR.PAS
< prev
next >
Wrap
Pascal/Delphi Source File
|
1993-06-24
|
2KB
|
87 lines
(*
TURBO PASCAL LIBRARY 2.1
CRTCLERR unit: Re-instate critical-error handler
*)
UNIT CRTCLERR;
INTERFACE
TYPE
ErrorString = STRING[20];
PROCEDURE CriticalErrorDOS;
PROCEDURE CriticalErrorTP;
PROCEDURE CriticalErrorOwn(ErrAddr: POINTER);
FUNCTION CriticalErrorMsg(n: BYTE): ErrorString;
IMPLEMENTATION
USES
DOS;
VAR
TurboInt24: POINTER; { Holds address of TP's error handler }
PROCEDURE CriticalErrorDOS;
BEGIN
SetIntVec($24,SaveInt24);
END;
PROCEDURE CriticalErrorTP;
BEGIN
SetIntVec($24,TurboInt24);
END;
PROCEDURE CriticalErrorOwn(ErrAddr: POINTER);
BEGIN
SetIntVec($24,ErrAddr);
END;
FUNCTION CriticalErrorMsg(n: BYTE): ErrorString;
CONST
ErrorDI: ARRAY[0..12] OF ErrorString = { Error codes from INT $24 }
('Write-protect error',
'Unknown unit',
'Drive not ready',
'Unknown command',
'Data error',
'Bad request',
'Seek error',
'Unknown disk format',
'Sector not found',
'Printer out of paper',
'Write fault',
'Read fault',
'General error');
BEGIN
IF n IN [0..12] THEN
CriticalErrorMsg:=ErrorDI[n]
ELSE
CriticalErrorMsg:='Unknown error';
END;
BEGIN { CRTCLERR }
GetIntVec($24,TurboInt24);
CriticalErrorDOS;
END.