MORSE Error Messages

29NOV05

MORSE should intercept any error condition arising from user-input and print a helpful message to the terminal and the morse.log file.

If, when running MORSE, instead of the standard set of messages to the terminal beginning 'R-...' or 'I-...' you get a message beginning 'F-...' a fatal error has been detected and the program stops at that point. The same error message will have been printed as the last record in the morse.log file so you don't need to remember it (unless, of course, the error occurred while writing a different message to the log file itself).

These messages always start with F-ABCDEF:... where ABCDEF (usually 6 characters) is the subroutine module abcdef.for where the error was detected.

Almost always fatal errors will occur while the driver table is being read or the calculations are being set up, ie before the first message I-MORSE: Processing ... gets printed to the screen.

Most errors will either be due to

F-DRVKEY: Error reading driver table: ...
Incorrectly structured driver table.
F-DRVXYZ: ...
Error attempting to read the *XYZ section of driver table
F-OPNFIL: I/O failure on file. IOSTAT= 29 (or some other number than 29, depending on machine and problem).
Error finding/reading file, check morse.log for the file that it was attempting to open
F-ABCDEF: ... MAXXYZ too small ... (or some other message involving a parameter MAX...)
Parameters beginning MAX... are array sizes, stored in module rfmsiz.inc
If the message isn't self-evident, it is usually useful to read the file morse.log to check the most recently attempted operation, eg which section of the driver table was being read or file was being opened. If it still isn't clear, check that the last record of the driver table (*END) has a carriage return at the end of it!

There are a further class of error messages of the form

F-ABCDEF: Logical Error
Which refer to unexpected conditions which have arisen (eg falling off the end of a DO loop) due to an internal coding error rather than any user-input. In these cases, please inform me.