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>
25 lines
643 B
Plaintext
25 lines
643 B
Plaintext
CosmOS
|
|
> nothing is loaded
|
|
> greet.sbx 210
|
|
hello.sbx 52
|
|
Life.sbx 1411
|
|
Snake.sbx 2175
|
|
Keys.sbx 663
|
|
Say.sbx 155
|
|
Break.sbx 132
|
|
notes.txt 21
|
|
8 files
|
|
> load what?
|
|
> no such file
|
|
> not a program
|
|
> loaded, starting at 2000
|
|
> a program, loaded off a disk, running on the system that loaded it
|
|
what should I call you? hello, Anachronaut. that is all I do.
|
|
finished
|
|
> a program, loaded off a disk, running on the system that loaded it
|
|
what should I call you? hello, Claude. that is all I do.
|
|
finished
|
|
> halted
|
|
Execution halted.
|
|
[exit 0]
|