Reference Guide

6-18 The Development Library
!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:
5 DOCSTR
5 Length
5 Number of links (source files)
n*[
2 Number of characters
.. Name of link file
]
5 Number 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
]
5 Number 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.