!EVEN

In absolute mode, cause an error if the directive is not on an even

 

address.

!ADR

MASD will generate a source defining all constants and labels

 

used in the program instead of the program.

!COMPEXP

Cause MASD to calculate all previous expressions.

!STAT

Display/update compilation statistics

!DBGINF

Causes MASD to generate debugging information (see next

 

section for more information)

!JAZZ

See local variable documentation in RPL mode

!MASD

See local variable documentation in RPL mode

The !DBGINF directive

If you put the !DBGINF directive into a MASD source, the assembler not only generates your compiled object, but it also returns a string (on level 1) full of debug information. The structure of this string is as

follows:

5DOCSTR

5Length

5Number of links (source files) n*[

2 Number of characters

.. Name of link file

]

5Number of symbols (labels and constants) n*[

2 Number of characters

.. Name of symbol

1 Type: 9=Label 2=Constant

for labels: 5 Address of label

for constants: 16 Value of constant

]

5Number of source→code associations n*[

5 Offset in code (this list is sorted by offset)

2 Number of link this instruction comes from

5 Character offset in link where this instruction starts

]

Notes:

If the source string is unnamed, i.e. in TEMPOB, the number of links is 00001 and the number of characters is 00, immediately followed by the symbol table.

The label symbol table is supposed to be an offset table. However the current MASD may sometimes place addresses into this table. The “associations” table correctly contains offsets.

This instruction is intended for the case where someone decides to create a source level debugger.

6-18 The Development Library