Reference Guide

6-12 The Development Library
Directives change the way MASD interprets your source. Theses directives begin with a
!
and will be explained
later.
Errors
If MASD detects one or more syntax error, it will push a list describing all errors on the stack. The
ER
command
can help you make sense of that list, point you on the errors and let you correct them.
MASD will report a maximum of 16 errors before stopping compilation.
The
ER
command takes 2 objects as arguments:
The original source code (level 2)
The error list generated by MASD (level 1)
Normally, you should compile using a process similar to:
IFERR ASM THEN ER END
(this is what the
ASM2
command does, by the way). Most people will just type the
ASM
command followed, if error, by the
ER
command.
Format of the error list
It’s a list of at most 16 sub-lists. Each sub-list contains 3 system-binary and 1 global-name. The first system binary is
an error message number. The second is an extra system binary used to indicate how ‘too long’ a jump is. The third
one is the position in the source where the error is. The global name is either a NULLNAME if the error was in the
main source or the filename of the buggy source.
Error messages
Message
Description
Invalid File
The file is not a valid source or macro. (must end with a @)
Too many
You can not do this operation as you are limited to a certain
amount of them (for example, you can not have more than 64
simultaneous skips)
Unknown Instruction
Unknown instruction
Invalid Field
Incorrect field
Val betw 0-15 expected
An integer between 0 and 15 is expected
Val betw 1-16 expected
An integer between 1 and 16 is expected
Val betw 1-8 expected
An integer between 1 and 8 is expected
Label Expected
A label is expected
Hexa Expected
An hexadecimal number is expected
Decimal Expected
An decimal number is expected
Can't find
This object can not be located
Label already defined
This name is already in use
{ expected
A { character was expected
} expected
A } character was expected (this can happen if you do not
close all the open skips for example)
( expected
A ( character was expected
[ or ] expected
A [ or ] character was expected
Forbidden
This can not be done
Bad Expression
This expression is invalid
Jump too long
This jump is above the limit of the instruction (use a different
type of jump)
Insuffisant Memory
There is not enough memory to compile
Matrix Error
You can not do this thing here because you are creating a
matrix object