A program can say how it went
SWI osExit takes a status in A, and the shell keeps it. Fifty eight exits across twenty three programs now say deliberately whether they worked: 25 did what they were asked, 24 did not, 9 were asked wrongly. Compare is the exception and says so - one there means the files differ, which is a result rather than a failure, the way diff has always had it. IN A RATHER THAN Q, which is not a departure from the rule that a service answers in Q. This one takes an ARGUMENT, the way osPrintNumber takes A and B, and it never returns to answer anything. A is free precisely because a return would have put it back - and Q is the ALU's output, so a small number costs four instructions there against one in A. The shell does not print it. A program that failed has already said so in words and a number beside that is noise, so osLastStatus hands it back and Status is the program that shows it. That indirection is the point: the number exists for the thing that cannot read words. MARKING THE EXITS FOUND A DEFECT ON THE FIRST RUN. Type and More printed why they had failed and then fell through into the success exit, reporting that all was well. Nobody had noticed, because while the only reader was a person, the person could see both the complaint and the claim. Two smaller things. Snake sets the console to line mode and then exits with zero, and the linter flagged the second RSTA as redundant - an exit status and a console mode, equal by accident, which is the class that must never be collapsed. And the README still taught answering by writing into the frame, three months of habit that SRET replaced yesterday; that section is gone and the one describing SRET stands in its place.
This commit is contained in:
@@ -5,7 +5,7 @@ break at 4016
|
||||
A 11 B 22 Q 00 status 00
|
||||
DP0 2030 DP1 2000 DP2 2037 DP3 4000 SP FFFF
|
||||
press a key
|
||||
break at 4033
|
||||
break at 4034
|
||||
A 44 B 55 Q 00 status 00
|
||||
DP0 2000 DP1 2037 DP2 2030 DP3 4000 SP FFF5
|
||||
press a key
|
||||
|
||||
@@ -2,7 +2,7 @@ CosmOS
|
||||
> claiming more than was reserved was refused
|
||||
and the size it really came to was taken
|
||||
finished
|
||||
> Claim.sbx 572
|
||||
> Claim.sbx 580
|
||||
claim.dat 266
|
||||
2 files
|
||||
> halted
|
||||
|
||||
@@ -3,7 +3,7 @@ CosmOS
|
||||
A <dir>
|
||||
B <dir>
|
||||
0 files, 3 directories
|
||||
> /A> Say.sbx 52
|
||||
> /A> Say.sbx 53
|
||||
notes.txt 25
|
||||
2 files
|
||||
/A> these are the notes in A
|
||||
|
||||
@@ -5,8 +5,8 @@ finished
|
||||
finished
|
||||
> it says: once more
|
||||
finished
|
||||
> Say.sbx 155
|
||||
dir.sbx 155
|
||||
> Say.sbx 156
|
||||
dir.sbx 156
|
||||
notes.txt 21
|
||||
notes.sbx 21
|
||||
4 files
|
||||
|
||||
@@ -14,7 +14,7 @@ CosmOS
|
||||
4014 47 00 20 5D SETD.0 205D
|
||||
* 4000 47 00 20 00 72 10 47 00 20 44 72 10 47 00 20 7A G. .r.G. Dr.G. z
|
||||
4010 27 1F 72 11 47 00 20 5D 72 10 47 00 20 7A 72 10 '.r.G. ]r.G. zr.
|
||||
4020 47 00 20 65 72 10 72 12 00 00 00 00 00 00 00 00 G. er.r.........
|
||||
4020 47 00 20 65 72 10 20 72 12 00 00 00 00 00 00 00 G. er. r........
|
||||
4030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
|
||||
* bank 01
|
||||
* 2000 61 20 70 72 6F 67 72 61 6D 2C 20 6C 6F 61 64 65 a program, loade
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
CosmOS
|
||||
> nothing is loaded
|
||||
> greet.sbx 210
|
||||
hello.sbx 52
|
||||
Life.sbx 1409
|
||||
Snake.sbx 2167
|
||||
Keys.sbx 663
|
||||
Say.sbx 155
|
||||
Break.sbx 148
|
||||
> greet.sbx 211
|
||||
hello.sbx 53
|
||||
Life.sbx 1410
|
||||
Snake.sbx 2168
|
||||
Keys.sbx 664
|
||||
Say.sbx 156
|
||||
Break.sbx 149
|
||||
notes.txt 21
|
||||
8 files
|
||||
> load what?
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
CosmOS
|
||||
> greet.sbx 210
|
||||
hello.sbx 52
|
||||
Life.sbx 1409
|
||||
Snake.sbx 2167
|
||||
Keys.sbx 663
|
||||
Say.sbx 155
|
||||
Break.sbx 148
|
||||
> greet.sbx 211
|
||||
hello.sbx 53
|
||||
Life.sbx 1410
|
||||
Snake.sbx 2168
|
||||
Keys.sbx 664
|
||||
Say.sbx 156
|
||||
Break.sbx 149
|
||||
notes.txt 21
|
||||
8 files
|
||||
> loaded, starting at 4000
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
CosmOS
|
||||
> it says: it worked
|
||||
finished
|
||||
> the last program left 0, which is: it did what it was asked
|
||||
finished
|
||||
> type: give me a file name
|
||||
finished
|
||||
> the last program left 2, which is: it was asked wrongly
|
||||
finished
|
||||
> type: cannot find the file, error 2
|
||||
finished
|
||||
> the last program left 1, which is: it did not
|
||||
finished
|
||||
> halted
|
||||
Execution halted.
|
||||
[exit 0]
|
||||
@@ -1,13 +1,13 @@
|
||||
CosmOS
|
||||
> Folder <dir>
|
||||
Edit.sbx 1983
|
||||
Edit.sbx 1986
|
||||
1 file, 1 directory
|
||||
> loaded, starting at 4000
|
||||
> note.txt, 0 lines
|
||||
> : : : > written, 67 bytes
|
||||
> finished
|
||||
> Folder <dir>
|
||||
Edit.sbx 1983
|
||||
Edit.sbx 1986
|
||||
note.txt 67
|
||||
2 files, 1 directory
|
||||
> halted
|
||||
|
||||
Reference in New Issue
Block a user