From 5bd51fea5bd44ef427cbd22f8a32f0fcf0e80436 Mon Sep 17 00:00:00 2001
From: thrust26
For space reasons, the Prompt, TIA, I/O and Audio displays are split into 4 tabs, only one of which is visible at a time. You can use the mouse or keyboard to select which tab you want to view. Control/Cmd + Tab cycles between -tabs from left-to-right, Control/Cmd + Shift + Tab cycles right-to-left. +tabs from left-to-right, Shift + Control/Cmd + Tab cycles right-to-left. Pressing Tab (or Shift + Tab) cycles between widgets in the current tab (except for in the Prompt Tab, where 'tab' is used for something else).
@@ -308,8 +308,8 @@ actively using the debugger.There are some buttons on the right top that always show up no matter which -tab you are looking at. This is because these are the ones which you will use -most.
+tab you are looking at. This is because these are the ones that are most frequently +used.
The other operations are Step, Trace, Scan+1, Frame+1 and Exit (debugger).
You can also use the buttons from anywhere in the GUI via hotkeys.
- +
Key | Function | |
---|---|---|
Control + s | +Control-s | Step |
Control + t | +Control-t | Trace |
Control + L | +Control-L | Scan+1 |
Control + f | +Control-f | Frame+1 |
Control + r | +Control-r | Rewind |
Control + Shift + r | +Shift-Control-r | Unwind |
Exit |
When you use these buttons, the prompt doesn't change. This means the -status lines with the registers and disassembly will be "stale". You -can update them just by re-running the relevant commands in the prompt.
- +Note: unlike the rest of the UI, whatever is shown in the prompt will not +be updated during debugging and thus eventually become "stale". You can update it +just by re-running the relevant commands in the prompt.
"*"
+
'*'Dereference a byte pointer. "*a" means "the byte at the address that the A register points to". If A is 255 (hex $ff), the result will be the value currently stored in memory location 255. This operator @@ -504,7 +505,7 @@ to change the meaning of an expression. The prefixes are: written as address[0]. *(address+1) can be written as address[1], etc. -
"@"
+
'@'Dereference a pointer to a word. This is just like the "*" byte deref, except it refers to a 16-bit value, occupying 2 locations, in low-byte-first format (standard for the 6507). @@ -520,24 +521,24 @@ to change the meaning of an expression. The prefixes are:
"<"
+
'<'Take the low byte of a 16-bit value. This has no effect on an 8-bit value: "a" is equal to "<a". However, "<$1234" equals "$34". -
">"
+
'>'Take the high byte of a 16-bit value. For 8-bit values such as the Accumulator, this will always result in zero. For 16-bit values, "<$1234" = "$12".
"#"
+
'#'Treat the input as a decimal number. -
"$"
+
'$'Treat the input as a hex number. -
"\"
+
'\'Treat the input as a binary number.
These only have meaning when they come before a number, not a @@ -549,7 +550,11 @@ to change the meaning of an expression. The prefixes are:
assumed to be in the default base. When you first start Stella, the default base is 16 (hexadecimal). You can change it with the "base" command. If you want to change the default base to decimal permanently, - you can put a "base #10" command in your "autoexec.script" file (for details + you can put a ++ base #10 ++ command in your "autoexec.script" file (for details see Startup).
Any time the debugger is entered due to a trap, breakpoint, or -conditional break, the reason will be displayed in the status area -near the TIA Zoom display (area H).
+conditional break, the reason will be displayed in the +Breakpoint/Trap Status area.For many registers, writes don't take effect immediatelly as the TIA takes some color clocks to change state. In Stella's TIA core, this is implemented by queueing the writes, and the contents of this queue -are visualized in the debugger in the queued writes area of the TIA tab.
+are visualized in the debugger in the "Queued Writes" area of the TIA tab.You can use the "Scan+1" button, the prompt "scan" command, or the -Control-L key to watch the TIA draw the frame one scanline at a time.
+To e.g. watch the TIA draw the frame one scanline at a time, you can +use the "Scan+1" button, the prompt "scan" command or the Control-L key.
You can also right-click anywhere in this window to show a context menu, as illustrated:
@@ -1067,9 +1072,9 @@ as illustrated: scanline where the mouse was clicked. You can also use the Prompt Tab commands to list and turn off the breakpoint.To the right of the TIA display (E) there is TIA information, as shown:
+To the right of the TIA Display area, TIA information is displayed:
The indicators are as follows (note that all these are read-only):
Below the TIA Info (F) is the TIA Zoom area. This allows you to enlarge -part of the TIA display, so you can see fine details. Note that unlike -the TIA display area, this one does generate frames as the real -system would. So, if you've enabled 'phosphor mode' for a ROM, it -won't be honoured here (ie, you'll see alternating frames at 30Hz display, -just like on a real system).
+Below the TIA Information is the TIA Zoom area. This allows you to enlarge +part of the TIA display, so you can see fine details. Like the +TIA Display area, +this one does generate frames as the real system would.
You can also right-click anywhere in this window to show a context menu, as illustrated:
@@ -1125,11 +1128,12 @@ a context menu in the TIA Display.Below the TIA Zoom (G), there is a status line that shows the reason and the -address the debugger was entered (if a breakpoint or trap was hit), as shown:
+Below the TIA Zoom there is a status line that +shows the reason and the address the debugger was entered (if a breakpoint or +trap was hit), as shown:
The output here will generally be self-explanatory. Due to space concerns, -the reasons will be shown as follows: +the reason will be shown as follows:
These buttons can be used to change values in either CPU Registers (I), or -the RIOT RAM (K), depending on which of these widgets is currently active. +
These buttons can be used to change values in either +CPU Registers, +the M6532/RIOT RAM or +Detailed Cartridge Extended RAM Information, +depending on which of these widgets is currently in focus.
Each of these buttons also have a keyboard shortcut (indicated in square brackets). In fact, many of the inputboxes in various parts of the debugger respond to these same keyboard shortcuts. If in doubt, give them a try.
-- 0 [z] - Set the current location/register to zero. - Inv [i !] - Invert the current location/register [toggle all its bits]. - Neg [n] - Negate the current location/register [twos' complement negative]. - ++ [+ =] - Increment the current location/register - -- [-] - Decrement the current location/register - << [< ,] - Shift the current location/register left. - >> [> .] - Shift the current location/register right. - - Any bits shifted out of the location/register with << or >> - are lost (they will NOT end up in the Carry flag). -+
Button | Shortut | Description | +
---|---|---|
0 | 'z' | Set the current location/register to zero. | +
Inv | 'i' or '!' | Invert the current location/register (toggle all its bits) | +
Neg | 'n' | Negate the current location/register (twos' complement negative) | +
++ | '+' or '=' | Increment the current location/register. | +
-- | '-' | Decrement the current location/register. | +
<< | '<' or ',' | Shift the current location/register left. | +
>> | '>' or '.' | Shift the current location/register right. | +
Any bits shifted out of the location/register with << or >> +are lost (they will NOT end up in the Carry flag).
@@ -1471,7 +1488,7 @@ named "rr.a26", with properties entry "River Raid". Attempts will be made as folThe location of 'configdir' will depend on the version of Stella, as follows:
+The location of 'configdir' will depend on the OS as follows: