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

6-12 The Development Library