User manual
ST Assembler-Linker Error messages
Doc ID 11392 Rev 4 79/89
B.3 Assembler errors
Table 82. Assembler errors
Error Definition
1 Empty file: The assembler could not read even the first line of the given source code file.
2
EOF while in Macro Definition: The file ended while a macro was being defined; you should end the last
macro definition properly with a MEND statement.
3
Could not return to old place in source file 'X.asm': This error should never occur; it implies you have a disk
fault of some kind. After a #include, the assembler returns to the line after the #include itself. If it cannot
return to that line this error is produced.
4 Illegal source EOF: Main source code files must end with an END directive and a carriage-return.
5
EOF before line terminator: The END directive must have at least one CR after it: for example <TAB> END
<EOF> will generate this error while <TAB> END <EOF> will work fine.
6
Code produced outside segment: Any code produced by the assembler is going to have to be placed on a
given address in the target system at the end of the day. Since segments are the assemblers way of
allocating addresses to lumps of code, any code generated before the first SEGMENT directive is
nonsense.
^T 55 Move to top line of current window
^V 56 Move to last line of current window
^U 57 Undo changes to last edited line
^[ 58 Drop start of black marker
^] 59 Drop end of black marker
^F 60 Find Source Code for Hex address
^J 61 Report value of given label
^N 62 Report address of current Editor line
These functions mostly explain themselves; the Alternate functions do the same job as the original
functions of the same name: having two indexes for the same job allows the cursor keys and control
codes to move the cursor, whichever the user prefers. Some indexes are not used by the default key
sequence matrix; these allow some WordStar-like commands to be implemented with more meaning.
Multiple-key sequences, such as those found in WordStar format control codes need to be implemented as
follows: take the sequence <^Y><L>, that is, CTRL-Y followed by the letter L should be coded as ^Y+L
where the + denotes that the following character needs no CTRL or SHIFT.
18 File capture error: #Include had problems finding the named file.
19
Cannot find position in source file: Again to do with #include, another 'impossible' error reporting that it
could not find the current position of the source file to remember it for after the #include.
20
Cannot have more than 4096 #defines: Each #define has to be checked for in each possible position in
each source line: having too many of them slows the assembly noticeably. Although you can have up to
4096 #defines, there are also limits on the storage space for both the arguments (error 23); an average of
eight characters for both arguments is recommended.
21 Run out of #define storage space (1): See error 20.
22
#define has no second argument: #define requires a space between the two parts of its argument to
delimit it.
23
Run out of #define storage space (2): See errors 20 and 21 above; you have reached the limit of the
storage space set aside for the second argument of #defines.
24 No strings in DC.W: Strings are only allowed as parts of BYTE, DC.B or STRING directives.
25 No strings in DC.L: Strings are only allowed as parts of BYTE, DC.B or STRING directives.