Break: name the status register properly and show the Stack Pointer

The dump labelled the status register "S", which reads as Stack to anybody
sensible - and the Stack Pointer was the one register it did not show, so
there was nothing to contradict the guess. It is written "status" now, and
followed by the bits that are up, because a dump that makes you look the
number up is only half a dump.

The Stack Pointer is not in the frame, since the frame is where the Stack
Pointer is. What the program had is fourteen bytes above it, that being what
entering an interrupt puts down, so it is worked out and shown.

Apps/Break.asm takes its second stop inside a subroutine, so the recorded
output shows the Stack Pointer at FFFF and then at FFF5: a difference of ten,
which is the size of a CALL frame. That checks the value is derived rather
than constant, which the previous version could not have told you.

Reported by Anachronaut, who read the output and asked why a pointer was two
digits long.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Anachronaut
2026-08-19 22:19:15 -04:00
co-authored by Claude Opus 5
parent 5fd995aa62
commit c23adb2836
6 changed files with 80 additions and 17 deletions
+5 -5
View File
@@ -2,12 +2,12 @@ CosmOS
> loaded, starting at 2000
> two stops, and what the registers were at each
break at 200E
A 11 B 22 Q 00 S 00
DP0 1030 DP1 05CC DP2 039A DP3 2000
A 11 B 22 Q 00 status 00
DP0 1030 DP1 05EF DP2 039A DP3 2000 SP FFFF
press a key
break at 2018
A 44 B 55 Q 00 S 00
DP0 1000 DP1 05CC DP2 039A DP3 2000
break at 2023
A 44 B 55 Q 00 status 00
DP0 1000 DP1 05EF DP2 039A DP3 2000 SP FFF5
press a key
carried on to the end
finished
+1 -1
View File
@@ -52,7 +52,7 @@ Life.sbx 1411
Snake.sbx 2175
Keys.sbx 663
Say.sbx 155
Break.sbx 128
Break.sbx 132
notes.txt 21
8 files
> halted
+1 -1
View File
@@ -6,7 +6,7 @@ Life.sbx 1411
Snake.sbx 2175
Keys.sbx 663
Say.sbx 155
Break.sbx 128
Break.sbx 132
notes.txt 21
8 files
> load what?