contents.gifindex.gifprev1.gifnext1.gif

3.1.6 Specifying Addresses

Program addresses and variables can be specified directly or with program symbols. In order for a symbol to be used, the program containing the symbol must be currently executing and must have been compiled with either the "-Zs" or "-Zd" options.

3.1.6.1 Variables

Variables can be specified by their symbolic name or by their address. If they are specified by address, both the starting address (in hexadecimal, preceded by a "." (period)) and the variable's size (in decimal) must be specified, in that order. These values can be found in the symbol table listing produced when you compile with the "-Ls" compiler option. Any variable specified directly by address is treated as if it were an alphanumeric variable. Variables specified by name are treated as their correct type, except for edited fields, which are treated as alphanumeric.

Either form of addressing may have an index specified for it. This index is a number in parentheses following the address. Only constant values may be used as table subscripts.

You may use name qualification with the Display, Accept, and Monitor commands. For example, you may type "FIELD-1 IN GROUP-1" to refer to FIELD-1 of GROUP-1. Name qualification is not supported for on-screen commands (such as F7) and for situations in which you double-click on the data name.

Data items may be qualified by a group name. Table indexes may be specified with variables.


Note that for data items of variable size, the debugger always treats the data item as if it were currently defined to be its maximum size.

Examples:

VAR-1             - Variable name

3A4, 5 - Address 3A4 for 5 bytes
ARRAY-1 (2,4) - Indexed variable

3.1.6.2 Program addresses

Program addresses may be specified by paragraph name. They can also be specified by a hexadecimal address, specified by a "." (period) as the first character. This allows the debugger to distinguish between the hex address ABC and the paragraph name "ABC". You can omit the period when there is no ambiguity. Optionally, "." (period) can be followed by the six-character program name. The numeric form is the only way to specify an address that is not at a paragraph, and the only way to specify an address in a program other than the one that is currently running. The listing produced by the compiler has the address of the start of each sentence along the left-hand side. Usually it is more convenient to use the F3 and F4 commands of the source debugger.


Note that every program always starts at address zero. If you want to debug a subprogram, you can always set a breakpoint at address zero of the subprogram and run it until this point is reached. Then the subprogram will be active and its symbols will be available (if it was compiled with "-Zd" or "-Zs"). When specifying an address in a different program, use the name contained in its PROGRAM-ID paragraph.

Examples:

MAIN-LOGIC       - Paragraph name

3A7F - Numeric address
0, PROG2 - Start of program PROG2