AT or ATA - set action breakpoint.

Syntax:

at <address>[<op>][;<userrout>] <commands>

Where:

<address>
tells TRACE where to set the breakpoint.
<op>
is an optional operator indicating conditions under which the breakpoint should be triggered. Possible values of "op" are
:eq:
trigger breakpoint only if zero indicator is on
:ne:
trigger breakpoint only if zero indicator is off
:lt:
trigger breakpoint only if negative indicator is on
:le:
trigger breakpoint only if negative or zero indicator is on
:gt:
trigger breakpoint only if negative or zero indicators are off
:ge:
trigger breakpoint only if negative indicator is off
:llt:
trigger breakpoint only if carry indicator is off
:lle:
trigger breakpoint only if carry indicator is off or zero indicator is on
:lgt:
trigger breakpoint only if carry indicator is on and zero indicator is off
:lge:
trigger breakpoint only if carry indicator is on
<userrout>
is the address of a user-supplied routine. This routine is called to determine what action should be taken once the breakpoint is triggered. For further information, see below.
<commands>
is a list of TRACE commands separated by /'s. These commands will normally be executed when the program hits the breakpoint, although other factors can prevent this from happening (see below). If you want the program to continue after performing the requested actions, the last command should be "r" (resume).

Description:

An action break point is a breakpoint where the user has specified a list of actions that the trace package is supposed to do whenever the breakpoint is reached.

The user may supply the address of code that is called to determine what action should be taken when the breakpoint is triggered. The code is called with a TSX1 instruction. Upon entry to the user-supplied code, index register 3 points to the values of the IC and I registers, and index register 4 points to normal register values. The user-supplied routine indicates what action to take by returning to some offset from X1.

TRA 0,1
tells TRACE to do nothing -- just execute the instruction at the breakpoint and keep going.
TRA 1,1
tells TRACE to execute the commands associated with the breakpoint, then to resume normal execution with the instruction at the breakpoint.
TRA 2,1
tells TRACE to execute the commands associated with the breakpoint, then pause for user interaction.
TRA 3,1
tells TRACE to pause.

Examples:

at 001003 x/r

will display the A register whenever location 1003 is reached.

The space to hold the command string is allocated from the same pool as that used by the ALLOcate command. Deleting an AT type breakpoint does not return memory to the pool, but the pool can be reset using the "I S" (Initialize Storage) command. You must of course delete and replace all AT type break points if you do this.

See Also:

expl trace allocate
for more information about the memory pool.
expl trace b
for how to establish a normal breakpoint.
expl trace i
for how to re-initialize the memory pool.

Copyright © 1996, Thinkage Ltd.