Occasionally the system will confront the user with a cryptic error message of some type. Such messages may come either from the EXEC system itself, or from one of the standard library programs which are always collected with user programs. If the message comes from the system's subroutine library, it is often self-explanatory.
Error messages generated by the EXEC system itself usually consist of a name and a number, e.g. I/O 22 or IGDM 00 . An English-language statement of the error can be obtained by typing
where type is either the ERROR name or ERROR type number; and code is the numeric error code.
The following mnemonic error types are recognized:
IO Input/output error SYMB Symbiont error ER Executive request error CONS ER COM$ error REP Re-entrant processor error COMM6 Communications error, type 6 COMM7 Communications error, type 7 COMM Communications error, type 6 (or 7 if 6 not found)
IGDM Guard mode violation IOPR Illegal operation FPOVF Floating point overflow FPOUF Floating point underflow DIVF Divide fault EXM Extended Mode/Linking System Error
FAC Analyze facilities bits SYM Analyze @SYM bits BRKPT Analyze @BRKPT bits START Analyze @START error codes ADD Analyze @ADD error codes
will display what an I/O ERROR 021 means. @ERROR 1/21 will do the same.
will analyze the octal status code as though it had been returned from the facilities complex.
@ERROR may also be given purely numeric information:
@ERROR type/code/contingency <OR> @ERROR nnnnnn
where contingency is optional (12 assumed if omitted), and nnnnnn is a 6-digit error number. All numbers are octal.
ERROR uses the ERRPR$ ER to obtain the requested ERROR message from the omnibus element SYS$*LIB$.E$ORMSG. Based on the system's EXEC level, ERROR will use either the old (pre-39) or new (39 and later) format of the ERRPR$ packet. The newer format allows error messages to be printed in ASCII, using upper and lower case.
Two options are available with ERROR:
O - Use the older packet format, regardless of EXEC level.
S - Snap register A0 and the first three words of the ERRPR$ packet before and after each ER ERRPR$.
In some cases, ERROR will try an alternate type of call to ER ERRPR$ if its first call does not find the given error.