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
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 | An integer between 0 and 15 is expected |
| Val betw | An integer between 1 and 16 is expected |
| Val betw | 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 |
|