!EVEN

!ADR

!COMPEXP

!STAT

!DBGINF

!JAZZ

!MASD

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

MASD will generate a source defining all constants and labels used in the program instead of the program.

Cause MASD to calculate all previous expressions. Display/update compilation statistics

Causes MASD to generate debugging information (see next section for more information)

See local variable documentation in RPL mode 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.

618 The Development Library

Page 516
Image 516
HP 50g Graphing, 48gII Graphing manual DBGINF directive, Docstr