EASy68K Warning and Error Messages
"WARNING: Address expected."
The starting address of the program was missing from the
END directive. The
required syntax for the end directive is:
END
Address
Where Address is a literal value or label that
specifies the starting address of the program.
"WARNING: ASCII constant exceeds 4 characters"
ASCII constants such as 'ABCD' are limited to 4 characters. The resulting
value is a 32 bit binary number comprised of the ASCII values of each character.
'ABCD' results in the number $41424344 which is the ASCII code for each letter
appended together beginning with $41 the ASCII code for 'A'.
"WARNING: DO expected."
The structured assembly statements WHILE,
UNTIL and FOR must end with the
word DO.
For example
until d1 <eq> #0 do
"WARNING: END directive missing, starting address not set."
All programs must contain one END directive which marks the end of the
assembled program. The END directives argument indicates the starting address of the program. The END
directive should be the last statement in the program.
"WARNING: Forcing SHORT addressing disables range checking of
extension word"
The compiler will not create an error if the address specified is outside
the range of a 16 bit offset.
Addresses are
forced to use the short form by
appending a .w for example:
move.b label.w,d0
"WARNING: Forward reference may cause 'Symbol value
differs...' error."
A macro definition should be located above the macro call. Placing macro
definitions below the macro call will result in an error if the macro call is
between a branch and the branch destination.
"WARNING: Numeric constant exceeds 32 bits"
The literal number in the source file is too big. A 32 bit number may not
exceed 4,294,967,295 decimal or $FFFFFFFF hexadecimal.
"WARNING: Origin value is odd (Location counter set to next
highest address)"
The address used with the ORG directive must always be an even number. If an
odd address is specified, EASy68K will automatically adjust the number up to the
next even location.
"WARNING: THEN expected."
The structured assembly statement IF
should end with the word THEN. For
example if d1 <ne>
#0 then
"ERROR: Absolute address exceeds 16 bits"
Absolute short addressing must be in the
range -32768 through 32767.
"ERROR: Branch instruction displacement is out of range or
invalid"
The target address specified for the branch
instruction is too far away. Short displacements must be from -128 to
127 bytes away. Word displacements must be from -32768 to 32767 bytes away. A
JMP instruction may be used to transfer program control to any address.
"ERROR: Comma expected"
The operand is not complete.
"ERROR: Displacement out of range"
The displacement value used exceeds the allowed range. Word displacements
must be in the range -32768 through 32767. Byte displacements must be in the
range -128 through 127.
"ERROR: Division by zero attempted"
An expression in the source code contained a mathematical operation that
attempted to divide a number by zero. This error is reported by the assembler
while it is attempting to resolve a literal number in the source code. It should
not be confused with the exception that occurs if the 68000
DIVU or DIVS
instruction attempts a divide by zero.
"ERROR: ENDM expected"
Macro definitions must end with the ENDM directive.
"ERROR: FOR without ENDF."
The structured FOR statement must have a
matching ENDF.
"ERROR: Forward references not allowed with this directive"
The directive is referencing an address that is higher than the current
address of the instruction. This directive only permits access to addresses that
are lower than the current address. Forward references are not permitted because the referenced address may change during the assembly
process.
"ERROR: IF without ENDI."
The structured IF statement must have a
matching ENDI.
"ERROR: Immediate data exceeds 8 bits"
8 bit data must be in the range -128 through 127 for signed values and 0
through 255 for unsigned.
"ERROR: Immediate data exceeds 16 bits"
16 bit data must be in the range -32768 through 32767 for signed values and
0 through 65535 for unsigned.
"ERROR: Invalid addressing mode"
EASy68K did not recognize a valid 68000 addressing mode for this instruction. Verify that
the
addressing mode is supported by the instruction. Check for missing or
mismatched parenthesis, spaces or punctuation.
"ERROR: Invalid argument"
The argument used in the conditional assembly directive is invalid or
missing.
"ERROR: Invalid bitfield."
The specification of the bitfield is
invalid. EASy68K only supports valid 68000 addressing modes with the bitfield
instructions.
"ERROR: Invalid block length"
The size of the memory block requested is invalid.
"ERROR: Invalid constant shift count"
Immediate values used to specify shift
counts must be between 1 and 8.
"ERROR: Invalid opcode"
The opcode is not a valid 68000 instruction or defined macro. EASy68K only
supports 68000 opcodes and the bitfield instructions from the 68020.
"ERROR: Invalid operator"
An expression in the source code contains an unrecognized operator.
"ERROR: Invalid size code"
Size codes are normally specified by using a .B for byte, .S for short, .W
for word, or .L for long. Verify that the size code is valid for the instruction
and addressing mode.
"ERROR: Invalid syntax"
EASy68K detected something wrong with the statement it was attempting to
assemble. Check for missing parameters, bad or missing punctuation and values
that are outside the expected range.
"ERROR: Invalid vector number"
The TRAP instruction vector number must be between 0 and 15 inclusive.
"ERROR: Label is not allowed"
Labels are not permitted with this directive.
"ERROR: Label required with this directive"
A label must be used with this directive. Labels
must begin in the first column of the line or must be terminated with a colon
':'.
"ERROR: Nested Macro calls are too many levels deep."
Nested macros are permitted but the
assembler has detected what appears to be an infinite macro loop.
"ERROR: No matching DBLOOP statement was found."
A structured UNLESS was encountered with no matching
DBLOOP.
"ERROR: No matching FOR statement was found."
A structured ENDF was encountered with no matching
FOR.
"ERROR: No matching IF statement was found."
A structured ELSE or ENDI was encountered with no matching
IF.
"ERROR: No matching REPEAT statement was found."
A structured UNTIL was encountered with no matching
REPEAT.
"ERROR: No matching WHILE statement was found."
A structured ENDW was encountered with no matching
WHILE.
"ERROR: Quick immediate data range exceeds 1 byte"
The immediate data used with the MOVEQ instruction may not exceed 1 byte.
"ERROR: Quick immediate data range must be 1 to 8"
The immediate data used with the ADDQ and
SUBQ instruction must be 1 through
8 inclusive.
"ERROR: Register list symbol not previously defined"
Register lists must be defined prior to
use.
"ERROR: Register list symbol used in an expression"
Register lists may not be used as part of
an expression.
"ERROR: Symbol defined more than once"
The symbol is defined in the program in more than one location. Only symbols
that are defined with the SET directive may appear in more than one location.
"ERROR: Symbol is not a register list symbol"
Register lists may be defined and used with
the MOVEM instruction. The register list must
be defined prior to use.
"ERROR: Symbol value differs between first and second pass"
The value or address assigned to the symbol changed during the assembly
process. This may be caused if a macro call is placed between a branch or jump
instruction and its destination address. Place all macro definitions at the top
of the source file.
"ERROR: Too many arguments"
Too many arguments were specified when calling a
macro.
"ERROR: Unable to access specified file."
There was an error while trying to access the specified
include file.
"ERROR: Undefined symbol"
No definition could be found for the specified symbol. Verify the spelling
of the symbol and make sure operands are separated from opcodes and comments by
at least one space or tab.
"ERROR: UNLESS without DBLOOP."
The structured UNLESS statement must have a matching
DBLOOP.
"ERROR: UNTIL without REPEAT."
The structured UNTIL statement must have a matching
REPEAT.
"ERROR: WHILE without ENDW."
The structured WHILE statement must
have a matching ENDW.