A number of IDF commands accept
arguments. For example, the BREAK command accepts an argument, which
is the address at which a breakpoint is to be set. This section describes
the method used by IDF to determine what argument was provided.
IDF uses "intelligent" cursor sensing logic to let you specify
a "verb" by pressing a PF key, and specify the argument by either
typing an expression, or "pointing" with the cursor. Instead of typing
an expression and a command, you can place the cursor on a display
field, then press a PF key. This tells IDF to perform the requested
task at the current cursor location.
The following examples show how this works in practice:
- When a register contains the address of an area you want to dump
or disassemble, place the cursor in the register and press the DUMP
or DISASM PF key.
- If a Disassembly window is open, you can place the cursor in the
first input field where the instruction's hexadecimal value is shown,
and press the BREAK key to set a breakpoint on that instruction.
- If you have dumped a control block that contains a "link" word,
place the cursor in the link word and press the DUMP key. This makes
the link word the first one shown. If you press DUMP again, IDF "follows"
the link and displays the next control block.
- z/VM
- If you have dumped a storage area that is being altered unintentionally,
you can place the cursor in the Dump window and issue the ADSTOPS
command to set the start of an address modification range, then move
the cursor to the end of the area and issue the ADSTOPS command again
to set the end of the range shown.
If you find the rules described here difficult to remember, experiment
with IDF to see if you can get the "feel" of it. If not, you can always
specify arguments by typing them on the command line.
Here is how IDF determines the argument:
- If the command does not accept an argument, no argument is sought.
- If an expression is entered on the command line, that expression
is evaluated as the supplied argument.
- If the cursor is on the command line, but no expression is entered
there, IDF considers that no argument is supplied.
- If the cursor is in an unprotected field that is not the command
line, IDF attempts to use that cursor position as an indication of
the argument that the operator needs, as follows:
- If the cursor is in a floating-point register, or any field shown
on the Break window, IDF considers that no argument is supplied.
- If the cursor is in a general-purpose register, IDF considers
the low-order 24 bits, or the low-order 31 bits if in AMODE31, or
64-bits if in AMODE64, of the contents of that register is the supplied
argument. If the access registers are displayed, then the DUMP and
OPEN DUMP commands use the ALET contained in the access register in
addition to the address contained in the associated general-purpose
register. This applies to the registers displayed in both the Current
Registers window and the Old Registers window.
- If the cursor is in the PSW, IDF considers the address part of
the PSW is the supplied argument. This applies to the PSW displayed
in both the Current Registers window and the Old Registers window.
- If the cursor is in a disassembled instruction, the following
rules apply:
- All commands except DISASM and OPEN DISASM use the address of
the halfword the cursor is in.
- The DISASM and OPEN DISASM commands use the address of the halfword
the cursor is in, unless the field the cursor is in is both
the first field disassembled and a branch instruction, when the commands
use the effective address of the branch instruction.
- If the cursor is in the protected portion of a disassemble line,
the starting address of the instruction disassembled is used.
- If the cursor is in a dump field, the following rules apply:
- All commands except DUMP and OPEN DUMP use the address of the
beginning of the hexadecimal field the cursor is in, or the exact
address of the character the cursor is on if it is in the character
portion of the display.
- The DUMP and OPEN DUMP commands use the address of the beginning
of the hexadecimal field the cursor is in, unless the field
is both a fullword field and the first field in the dump display,
in which case the commands use the low-order 24 bits, the low-order
31 bits if in AMODE31, or the first two words if in AMODE64, of the contents of
the field.
- If the cursor is in the protected portion of a dump line, the
starting address of the dump line is used.