Files
SplitBit-Emulator/Tests/expected/cosmosMonitor.out
T
AnachronautandClaude Opus 5 3c76934a9a Tab reaches the disk
Paths and programs, which is the half that makes it worth having. The first word
of a line is a command or a PROGRAM, offered under the name somebody would type
- the extension taken off - and anything after it is a file, offered as it
really is. A separator anywhere in the word says which directory to look in.

A directory answers with a separator on the end instead of a space, which says
what it is and lets the next part be typed straight away. The answer ending in
one is also what stops a space being added, so that is one test rather than a
flag.

PROGRAMS ARE LOOKED FOR WHERE THE SHELL WOULD LOOK to run one: where you are,
/Apps on the disk you are on, and /Apps on drive 0. Offering something the shell
would not find would be finishing a word into a thing that then does not work.
Drive 0's is skipped when that is already the drive, or every program in it
would be offered twice and nothing would ever be the only match.

Walking somebody else's directory means standing in it, which is the only way to
walk one here, so where the person was and which drive they were on are put down
first and restored whatever happens.

Three bugs, all found by running it:

THE DIRECTORY TEST WAS INVERTED. dir asks the same question the same way round
four hundred lines further up, which is what made it obvious once looked at.

THE /Apps WALK OVERWROTE THE TYPED PATH. The whole search runs a second time to
list the matches, and by then TabDir said "/Apps" - so a word that had named
nowhere went looking in the wrong place and listed nothing at all. Two ways into
the walk now, and the typed path is never written over.

AND LISTING ONLY KNEW ABOUT COMMANDS, because it was a second copy of the walk.
It is the same walk with a flag now: finding the answer and showing the matches
are the same question asked twice.

Also cosmosMonitor, which had been RE-BLESSED INTO MEANINGLESSNESS by the wall
move. It disassembles a loaded program, at an address the input names - and that
address moved a page while the recording was simply re-recorded to whatever came
out, which was a page of zeroes. It is pointed at 5000 again.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E2JrLzFvuFX9fgi1LDRjrW
2026-09-01 18:10:40 -04:00

125 lines
3.1 KiB
Plaintext

CosmOS
> monitor
x examine, d disassemble, a assemble, s set, b bank, g go, exit leaves
* b nonsense
b <program|data|number>
* b 9
there is no such bank
* load greet.sbx
loaded, starting at 5000
* b program
bank 00
* d 5000
5000 47 00 30 00 SETD.0 3000
5004 72 10 SWI 10
5006 47 00 30 44 SETD.0 3044
500A 72 10 SWI 10
500C 47 00 30 7A SETD.0 307A
5010 27 1F INIB 1F
5012 72 11 SWI 11
5014 47 00 30 5D SETD.0 305D
* x 5000
5000 47 00 30 00 72 10 47 00 30 44 72 10 47 00 30 7A G.0.r.G.0Dr.G.0z
5010 27 1F 72 11 47 00 30 5D 72 10 47 00 30 7A 72 10 '.r.G.0]r.G.0zr.
5020 47 00 30 65 72 10 20 72 12 00 00 00 00 00 00 00 G.0er. r........
5030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
* b data
bank 01
* x 3000
3000 61 20 70 72 6F 67 72 61 6D 2C 20 6C 6F 61 64 65 a program, loade
3010 64 20 6F 66 66 20 61 20 64 69 73 6B 2C 20 72 75 d off a disk, ru
3020 6E 6E 69 6E 67 20 6F 6E 20 74 68 65 20 73 79 73 nning on the sys
3030 74 65 6D 20 74 68 61 74 20 6C 6F 61 64 65 64 20 tem that loaded
* b 2
bank 02
* x 0
0000 01 FF 00 00 00 00 00 00 01 FF 00 00 00 00 00 00 ................
0010 03 FF 08 00 00 00 00 00 01 20 01 00 00 00 00 00 ......... ......
0020 00 FF 00 00 00 00 00 00 00 FF 00 00 00 00 00 00 ................
0030 00 FF 00 00 00 00 00 00 00 FF 00 00 00 00 00 00 ................
* s 0 FF
that bank will not be written
* b program
bank 00
* s 8000 26 48 D1 00 26 0A D1 00 18 12
* d 8000
8000 26 48 INIA 48
8002 D1 00 OUTA 00
8004 26 0A INIA 0A
8006 D1 00 OUTA 00
8008 18 SHR
8009 12 AND
800A 00 ?
800B 00 ?
* g 8000
H
that byte is not an instruction, at 800A
A 85 B 3F Q 05
the program was stopped
* d 8000
8000 26 48 INIA 48
8002 D1 00 OUTA 00
8004 26 0A INIA 0A
8006 D1 00 OUTA 00
8008 18 SHR
8009 12 AND
800A 00 ?
800B 00 ?
* b data
bank 01
* s 8100 68 65 6C 6C 6F 2C 20 74 79 70 65 64 0A 00
* b program
bank 00
* a 8200
8200: SETD.0 8100
8204: SWI 10
8206: lda.2
8208: LDD.0.1
820B: frobnicate
no such instruction
820B: INIA
that one needs a value after it
820B: SWI 12
820D: .
* d 8200
8200 47 00 81 00 SETD.0 8100
8204 72 10 SWI 10
8206 42 02 LDA.2
8208 4A 00 01 LDD.0.1
820B 72 12 SWI 12
820D 00 ?
820E 00 ?
820F 00 ?
* g 8200
hello, typed
finished
* exit
> dir
greet.sbx 211
hello.sbx 53
Life.sbx 1396
Snake.sbx 2164
Keys.sbx 664
Say.sbx 156
Break.sbx 149
Grid.sbx 559
Press.sbx 872
Mode.sbx 48
Crash.sbx 632
tune.sbx 306
notes.txt 21
Apps <dir>
hi.script 121
bad.script 45
plain.script 24
cross.script 280
nonl.script 38
outer.script 376
inner.script 44
loop.script 35
21 files, 1 directory
> exit
halted
Execution halted.
[exit 0]