Breakpoint Properties

All WinAPE Breakpoints can be given a Condition and/or Pass Count.

The Pass Count specifies a number of times the emulator can run past the breakpoint before the emulation is interrupted. If it is set, it is shown in the Breakpoints Window as count / pass count in the Count column.

The Condition field allows an expression to be entered which determines if the breakpoint will interrupt the emulation or not. If the expression evaluates to a non-zero value the emulation will be interrupted (if the pass count is reached if also set).

Breakpoint conditions can use register values (including the use of 8-bit portions of index registers, for example IYh or LX), comparisons (<, <=, =, >=, >), mathematical operators (+, -, *, /, mod, and, or, xor, not, =), decimal numbers, hexadecimal numbers prefixed by # or &, binary numbers prefixed by %, assembler symbols from the last code assembly, brackets ( and ). Conditions also have access to a number of pre-defined variables and functions.

Note: All operators are bitwise and not logical operators, for example, 4 and 2 will evaluate to zero, not #fffffffe will evaluate to 1.

Breakpoint Variables

address1The address or port read or written for a Memory or Input/Output breakpoint.
ay_selectThe currently selected PSG (AY) register.
cartridge_bankThe cartridge bank mapped to Lower ROM.
crtc_selectThe currently selected CRTC (6845) register.
falsethe value 0.
fdc_motortrue if the floppy disc motor is turned on.
lower_enabledtrue if the Lower ROM is enabled
modeThe currently selected screen MODE.
mouse_buttonsThe current state of mouse buttons.
mouse_wheelThe current mouse wheel value.
mouse_xThe current mouse horizontal value.
mouse_yThe current mouse vertical value.
palette_selectThe currently selected palette register.
ppi_aThe current PPI (8255) port A value.
ppi_bThe current PPI (8255) port B value.
ppi_cThe current PPI (8255) port C value.
ppi_controlThe current PPI (8255) control value.
previous1The previous value in the memory location given by address in a Memory Write breakpoint.
psg_selectThe currently selected PSG (AY) register.
ram_bankThe currently selected extended RAM bank.
rtc_selectThe currently selected Symbiface RTC register.
secondary_romASIC secondary ROM select register.
tape_motortrue if the tape motor is turned on.
trueThe value #ffffffff.
upper_enabledtrue if the Upper ROM is enabled
upper_romThe currently selected Upper ROM.
value1The value read or written for a Memory or Input/Output breakpoint.
1 The value of these variables is undetermined in all other cases.

Breakpoint Functions

ay([register])Reads either the currently selected PSG (AY) register, or the one specified by register.
byte(value)The low-order (lease significant) byte of the given value. (Bits 0..7).
crtc([register])Reads either the currently selected CRTC (6845) register, or the one specified by register
ga_palette([pen[,value]])Gets the Gate Array palette value for either the currently selected pen, or the one specified by pen. If a value is also specified, the palette for the selected pen is set to the hardware ink in value.
hibyte(value)The high-order byte of the low-order word of the given value. (Bits 8..15).
hiword(value)The high-order (most significant) word of the given value. (Bits 16..31).
palette(pen[,grb])Gets or sets the ASIC palette value for the given pen.(eg. palette(2) would return the value for pen 2, palette(3, #fff) would set pen 3 to white)
peek(addr)Reads the byte from current readable memory at the given address
poke(addr{,n})Writes values into write memory at the given address (eg. poke(#1000,#10,#20,#30) would place the values #10, #20 and #30 at address #1000)
psg([register])Reads either the currently selected PSG (AY) register, or the one specified by register.
reset_cycles([value])Resets the cycle count (T) in the main debugger window to either zero or the value specified.
rtc([register])Reads either the currently selected Symbiface Real Time Clock register, or the one specified by register.
timer_start([id])Starts or resets the Timer with the given id, or id of 0. Always returns 0.
timer_stop([id])Stops the Timer with the given id and returns the number of cycles since the timer was started, up to a maximum of #ffff.
word(value)The low-order (least significant) word of the given value. (Bits 0..15).