# Execution

As you scroll around, you will notice the cursor and other lines change colors. Normally the cursor line is shown with an inverse bar, that is with a white background. Other colors have these meanings:

Cursor Background | Effect
White | Address of cursor.
Yellow (Bright) | Cursor is on next 6502 instruction (At 6502 PC).
Yellow (Dim) | Line is next 6502 instruction (At 6502 PC).
Red (Bright) | Cursor is on active Breakpoint.

Press Right Arrow to locate the current 6502 instruction. If you Page Down, you can see that Branch Indicators are displayed on the right side of the disassembly window, designated by ‘5’ or ‘6’.

Press Right Arrow to again locate the current instruction. You will also notice immediate instructions have a character single quoted, after them, such as ‘I’ at $FA75.

Pressing Space, will Trace (into) an instruction. Sometimes you trace into a JSR (subroutine), and wish you hadn't. Pressing Shift-Space will "Step Out" - that is, run until the Program Counter (PC) is equal to the return address on the stack. Pressing Left Arrow will jump the cursor to the next instruction after the original call.

Notes:

- Some code will place the arguments to the subroutine after the JSR instruction. The debugger is not able to detect this and "Step Out" correctly, so use caution, if the sub-routine plays with the stack.

- The debugger is not able to detect if the top 2 bytes on the stack is a valid return address, so pay careful attention if the stack is modified!

Key | Name | Effect
§ | Space | Trace into instruction.
ñ§ | Shift-Space | Step out of subroutine.
^§ | Ctrl-Space | Trace over instruction.
^â | Ctrl-Down Arrow | Run until cursor.
^à | Ctrl-Right Arrow | Set PC to cursor.
ß | Left Arrow | Jump cursor to return address on stack.

Command | Description
G [StopAddress] GG [StopAddress] | Resume execution until PC = StopAddress.
G [StopAddress] [SkipAddress,Length] GG [StopAddress] [SkipAddress,Length] | Resume execution until PC = StopAddress. Additionally, if the PC exits the range [SkipAddress,Length], execution will be halted.
####G | Alias for: R PC [=] address and then G.

NB. The GG command resumes execution in full-speed. See Exiting the Debugger.

Input | Effect
R PC FA62 | Set Program Counter to Value $FA62 (RESET)
G C600 D000,3000 | Single-step until either PC = $C600, or PC <= $D000