Document Navigation
Table Of Contents
Previous
Next

X. ERROR AND WARNING MESSAGES

The assembler supports warning messages and two types of error messages: fatal and non-fatal. A fatal error is one which will cause an immediate termination of the assembly such as not enough memory. A non-fatal error results in an error message being inserted into the listing and some sort of default code being assembled if the error is in a code producing line. The assembly is allowed to continue on non-fatal errors. Warning messages are handled much like non-fatal errors: the message is inserted in the output listing and the assembly is allowed to continue. These warning messages may be suppressed by the 'W' option in the command line. Error messages may not be suppressed.

All messages are output as English statements - not as error numbers. These messages announce violations of any of the rules and restrictions set forth in this manual and are, therefore, essentially self-explanatory. Error messages are output with three asterisks preceding the message. Warning-messages are output with two asterisks preceding the message. This can be used to quick locate the messages either by, eye or with an editor.

Possible NON-FATAL error messages are as follows:

UNDEFINED SYMBOL
MULTIPLY DEFINED SYMBOL
UNRECOGNIZABLE MNEMONIC OR MACRO
ILLEGAL LABEL
ILLEGAL OPERAND
RELATIVE BRANCH TOO LONG
SYNTAX ERROR
ILLEGAL INDEXED MODE
ILLEGAL CONSTANT
ILLEGAL OPTION
OPERAND OVERFLOW!
OVERFLOW!
UNBALANCED CLAUSE
UNDEFINED IN PASS 1
NOT ALLOWED IN THIS CONTEXT
MACRO EXISTS
PHASING ERROR DETECTED

A couple of these could use some elaboration. The OPERAND OVERFLOW message results from attempting to generate too much data from a single FCB, FDB, or FCC instruction. A maximum of 256 bytes of data can be generated by a single instruction of that type. An example of the OVERFLOW error is when LIB files are nested more than 12 levels deep. The UNBALANCED CLAUSE message results when one directive of a clause is missing such as an ENDIF with no IF. The NOT ALLOWED IN THIS CONTEXT message is generally associated with macros, ie. when an operation is attempted that is illegal inside a macro or vice versa.

Possible FATAL error messages are:

ILLEGAL FILE NAME
NO SUCH FILE
ILLEGAL OPTION SPECIFIED
INSUFFICIENT MEMORY
MACRO OVERFLOW!

The first three are associated with errors in the command line. The INSUFFICIENT MEMORY message is issued when automatic table setup is enabled and there is not at least 3K of buffer area. The MACRO OVERFLOW message occurs when any of the macro buffers is overflowed.

Possible warning messages are as follows:

FORCED ADDRESS TRUNCATED
IMMEDIATE VALUE TRUNCATED
ILLOGICAL FORCING IGNORED

The first warning is printed if an address is forced to 8 bits (with the '<' character) and must be truncated to fit. The second occurs on lines where an immediate value must be truncated to fit in 8 bits. For example, ' LDB #$42E5' would result in such a warning. The third is issued if address length forcing (with the '<' or the '>') is done in an operand where not possible. For example, the instruction ' LDB <[BUFCNT]]' would result in such a warning.

As stated in a previous section, the total number of errors is reported at the end of the assembly and if warning messages are enabled, the number of warnings are also output.


Table Of Contents Previous Next
Document Navigation