diff --git a/Programs/CosmOS/Apps/ls.asm b/Programs/CosmOS/Apps/ls.asm
index 9c2f5c4..69a26cd 100644
--- a/Programs/CosmOS/Apps/ls.asm
+++ b/Programs/CosmOS/Apps/ls.asm
@@ -199,12 +199,10 @@ lsColour:
; ---- What it is, said in colour ----
;
; The attribute reaches a terminal as well as the screen now, so this is one mechanism and
- ; not two. A directory in blue and an unfinished save in red; everything else plain, because
- ; whether a file is runnable cannot be known without opening it, and opening every file in a
- ; directory to colour a listing is a price nobody agreed to pay.
+ ; not two. A directory in blue and an unfinished save in red; everything else plain.
SETD.0 Kind
LDA.0
- BRA lsPlain
+ BRA lsFileInk
DECA
BRA lsBlue
INIA 0d1 ; An unfinished save, which is worth looking at.
@@ -212,7 +210,8 @@ lsColour:
lsBlue:
INIA 0d4
BRI lsInk
-lsPlain:
+
+lsFileInk:
RSTA
lsInk:
OUTA 0x06
diff --git a/Programs/CosmOS/README.md b/Programs/CosmOS/README.md
index a080622..b2e5c93 100644
--- a/Programs/CosmOS/README.md
+++ b/Programs/CosmOS/README.md
@@ -274,7 +274,8 @@ echo done
`echo` is a command rather than a program on purpose. `Say.sbx` has printed words since before
there were scripts and is the wrong shape for one: being a program, it has to be found on the
disk and loaded and started, it prefixes what it was told with `it says:`, and the system
-prints `finished` after it - three lines of noise around one line of narration.
+prints `finished` after it - three lines of noise around one line of narration. Two, now: the
+system stopped saying `finished` after every program.
**The first two bytes must be `#!`**, or the shell refuses the file and says so. That is what
tells a script from anything else, and it is deliberately not the name and not a flag in the
diff --git a/Programs/CosmOS/Source/cosmos.asm b/Programs/CosmOS/Source/cosmos.asm
index edcd497..f5f84e7 100644
--- a/Programs/CosmOS/Source/cosmos.asm
+++ b/Programs/CosmOS/Source/cosmos.asm
@@ -5126,8 +5126,9 @@ doClear:
;
; Says the rest of the line and nothing else. Say.sbx has done this since before there were
; scripts, and is the wrong shape for one: it is a program, so it has to be found on the
-; disk and loaded and started, it prefixes what it was told with "it says:", and the system
-; prints "finished" after it. That is three lines of noise around one line of narration.
+; disk and loaded and started, and it prefixes what it was told with "it says:". That was
+; three lines of noise around one line of narration when this was written - the system said
+; "finished" after every program then, which is the third line and is gone now.
;
; A script telling you what it is doing is the ordinary case now, so it costs a command
; rather than a program. With nothing after it, a blank line - which is what anybody will
@@ -6830,24 +6831,41 @@ exitWorked:
RSTA
OUTA 0x06
- ; ---- Finished, or stopped ----
+ ; ---- Stopped, or nothing at all ----
;
- ; A program that faulted did not finish, and saying so would be the shell's own word
- ; against what the fault screen just said in red immediately above it.
+ ; A program that faulted did not finish, and says so - the fault screen printed in red
+ ; immediately above, and a program that is gone should not look like one that ended.
SETD.1 FaultStopped
LDA.1
BRA exitFinished
RSTA
STA.1 ; Cleared, so the next program is not blamed for this one.
SETD.0 Stopped
- BRI exitSay
-exitFinished:
- SETD.0 Finished
-exitSay:
CALL printString
CALL newLine
BRI prompt
+exitFinished:
+ ; ---- Finishing says nothing, which is what finishing looks like ----
+ ;
+ ; It used to say "finished". That made sense when starting a program and getting the
+ ; machine back was most of what the machine did; under a listing, between two commands, it
+ ; is noise - and it was printed whatever the program made of it, so a program that had just
+ ; explained what went wrong was answered with the word "finished".
+ ;
+ ; The prompt coming back is what says a program is over. It is the same argument
+ ; osLastStatus is made of: a program that failed has already said so in words, and anything
+ ; the shell adds beside that is the shell talking over it.
+ ;
+ ; A NEWLINE ONLY IF ONE IS WANTED. A program that stopped part way along a line would leave
+ ; the prompt sitting in the middle of its last output, which the word used to prevent by
+ ; accident. The console knows which column the cursor is in, so this asks - where a blank
+ ; line printed every time would be right about half of the time.
+ INA 0x04
+ BRA prompt
+ CALL newLine
+ BRI prompt
+
; ---- dump ----
;
; dump Sixty four more bytes, carrying on from the last one.
@@ -8127,9 +8145,6 @@ FaultQ:
" Q "
FaultSystem:
"that was the system itself, so there is nowhere to carry on from. Start the machine again."
-Finished:
-"finished"
-
BreakText:
"break at "
ARegText:
diff --git a/Tests/expected/cfgFallback.out b/Tests/expected/cfgFallback.out
index 6a93ae1..863f47d 100644
--- a/Tests/expected/cfgFallback.out
+++ b/Tests/expected/cfgFallback.out
@@ -9,13 +9,12 @@ a file kept by asking
renamed it
deleted it
and it is gone
-finished
> mkdir Notes
made
> cd Notes
/Notes> dir
0 files
-8 of 32 entries, 308 blocks free
+8 of 32 entries, 309 blocks free
/Notes> exit
halted
Execution halted.
diff --git a/Tests/expected/cosmosBreak.out b/Tests/expected/cosmosBreak.out
index fe5cbf6..760ecb2 100644
--- a/Tests/expected/cosmosBreak.out
+++ b/Tests/expected/cosmosBreak.out
@@ -12,7 +12,6 @@ A 44 B 55 Q 00 status 00
DP0 3000 DP1 3037 DP2 3030 DP3 5000 SP FFF5
press a key
carried on to the end
-finished
> exit
halted
Execution halted.
diff --git a/Tests/expected/cosmosClaim.out b/Tests/expected/cosmosClaim.out
index 2f17c79..c19ccd7 100644
--- a/Tests/expected/cosmosClaim.out
+++ b/Tests/expected/cosmosClaim.out
@@ -2,7 +2,6 @@ CosmOS
> Claim
claiming more than was reserved was refused
and the size it really came to was taken
-finished
> dir
Claim.sbx 580
claim.dat 266
diff --git a/Tests/expected/cosmosCopyCompare.out b/Tests/expected/cosmosCopyCompare.out
index d2f1739..af0ef59 100644
--- a/Tests/expected/cosmosCopyCompare.out
+++ b/Tests/expected/cosmosCopyCompare.out
@@ -1,43 +1,30 @@
CosmOS
> Copy /Input/empty.dat /Output/empty.dat
copied
-finished
> Compare /Input/empty.dat /Output/empty.dat
the same
-finished
> Copy /Input/exact.dat /Output/exact.dat
copied
-finished
> Compare /Input/exact.dat /Output/exact.dat
the same
-finished
> Copy /Input/tail.dat /Output/tail.dat
copied
-finished
> Compare /Input/tail.dat /Output/tail.dat
the same
-finished
> Copy /Input/large.dat /Output/large.dat
copied
-finished
> Compare /Input/large.dat /Output/large.dat
the same
-finished
> Compare /Input/large.dat /Input/different.dat
different
-finished
> Copy /Input/missing.dat /Output/missing.dat
copy: cannot find the source
-finished
> Compare /Input/large.dat /Input/missing.dat
compare: cannot find the second file
-finished
> Copy
copy: give me a source and destination
-finished
> Compare /Input/large.dat
compare: give me two files
-finished
> exit
halted
Execution halted.
diff --git a/Tests/expected/cosmosCrossDisk.out b/Tests/expected/cosmosCrossDisk.out
index 80c06a3..33a9360 100644
--- a/Tests/expected/cosmosCrossDisk.out
+++ b/Tests/expected/cosmosCrossDisk.out
@@ -2,12 +2,10 @@ CosmOS
> drive 1
> Copy 1:/twoblocks.txt 0:/crossed.txt
copied
-finished
> drive
1
> Say from drive one
it says: from drive one
-finished
> drive
1
> cd 0:/
diff --git a/Tests/expected/cosmosCwd.out b/Tests/expected/cosmosCwd.out
index 305da73..72b4eb5 100644
--- a/Tests/expected/cosmosCwd.out
+++ b/Tests/expected/cosmosCwd.out
@@ -13,18 +13,14 @@ notes.txt 25
9 of 32 entries, 240 blocks free
/A> Type notes.txt
these are the notes in A
-finished
/A> cd /B
/B> Type notes.txt
and these are the very different notes in B
-finished
/B> Say reached the one in Apps
it says: reached the one in Apps
-finished
/B> cd /A
/A> Say reached the one in A
Hello, World!
-finished
/A> cd ..
> dir
Apps
@@ -35,14 +31,11 @@ B
> cd /B
/B> Type ../A/notes.txt
these are the notes in A
-finished
/B> Wander /A
moved, and reading a bare name from there:
these are the notes in A
-finished
/B> Type notes.txt
and these are the very different notes in B
-finished
/B> cd nosuchplace
no such file
/B> cd notes.txt
diff --git a/Tests/expected/cosmosEdit.out b/Tests/expected/cosmosEdit.out
index 4e008ec..4aa77fe 100644
--- a/Tests/expected/cosmosEdit.out
+++ b/Tests/expected/cosmosEdit.out
@@ -26,7 +26,6 @@ poem.txt, new file
> w
written, 22 bytes
> q
-finished
> run poem.txt
poem.txt, 3 lines
> l
@@ -36,7 +35,6 @@ poem.txt, 3 lines
> d 99
there is no such line
> q
-finished
> exit
halted
Execution halted.
diff --git a/Tests/expected/cosmosEditLong.out b/Tests/expected/cosmosEditLong.out
index 6554090..0a47e9d 100644
--- a/Tests/expected/cosmosEditLong.out
+++ b/Tests/expected/cosmosEditLong.out
@@ -2,20 +2,15 @@ CosmOS
> Edit hello.asm
hello.asm, 31 lines
> q
-finished
> Edit hello.asm
hello.asm, 31 lines
> q
-finished
> Status
the last program left 0, which is: it did what it was asked
-finished
> Edit long.txt
a line in it is longer than this can edit, so it has not been opened
-finished
> Status
the last program left 1, which is: it did not
-finished
> exit
halted
Execution halted.
diff --git a/Tests/expected/cosmosEditService.out b/Tests/expected/cosmosEditService.out
index 1ed1a05..6bb8f4b 100644
--- a/Tests/expected/cosmosEditService.out
+++ b/Tests/expected/cosmosEditService.out
@@ -15,11 +15,9 @@ typed.txt, new file
> w
written, 13 bytes
> q
-finished
-> [19;3Hrun typed.txt[19;16H
+> [18;3Hrun typed.txt[18;16H
typed.txt, 2 lines
> q
-finished
> exit
halted
Execution halted.
diff --git a/Tests/expected/cosmosFault.out b/Tests/expected/cosmosFault.out
index 666492e..3645cfa 100644
--- a/Tests/expected/cosmosFault.out
+++ b/Tests/expected/cosmosFault.out
@@ -17,7 +17,6 @@ CosmOS
[0mthe program was stopped
> Crash sideways
Crash opcode | service | bank | device | blind
-finished
> dir
greet.sbx 211
hello.sbx 53
diff --git a/Tests/expected/cosmosFlip.out b/Tests/expected/cosmosFlip.out
index 63359b3..98daf99 100644
--- a/Tests/expected/cosmosFlip.out
+++ b/Tests/expected/cosmosFlip.out
@@ -1,13 +1,10 @@
CosmOS
> Say before Flip
it says: before Flip
-finished
> Flip
A screen is drawn where you cannot see it. A key shows it, another comes back.
-finished
> Say after Flip
it says: after Flip
-finished
> dir
greet.sbx 211
hello.sbx 53
diff --git a/Tests/expected/cosmosGrid.out b/Tests/expected/cosmosGrid.out
index d189bfb..cfa72f0 100644
--- a/Tests/expected/cosmosGrid.out
+++ b/Tests/expected/cosmosGrid.out
@@ -1,13 +1,10 @@
CosmOS
> Say before Grid
it says: before Grid
-finished
> Grid
-[2J[Hfinished
->
+[2J[H>
> Say after Grid
it says: after Grid
-finished
> dir
greet.sbx 211
hello.sbx 53
diff --git a/Tests/expected/cosmosHello.out b/Tests/expected/cosmosHello.out
index 2ffbeb5..19cbed5 100644
--- a/Tests/expected/cosmosHello.out
+++ b/Tests/expected/cosmosHello.out
@@ -3,10 +3,8 @@ CosmOS
loaded, starting at 5000
> run
Hello, World!
-finished
> run
Hello, World!
-finished
> exit
halted
Execution halted.
diff --git a/Tests/expected/cosmosInvoke.out b/Tests/expected/cosmosInvoke.out
index 3597e1d..3082eeb 100644
--- a/Tests/expected/cosmosInvoke.out
+++ b/Tests/expected/cosmosInvoke.out
@@ -1,13 +1,10 @@
CosmOS
> Say hello there
it says: hello there
-finished
> Say.sbx spelled out in full
it says: spelled out in full
-finished
> run once more
it says: once more
-finished
> dir
Say.sbx 156
dir.sbx 156
@@ -20,7 +17,6 @@ Apps
8 of 16 entries, 54 blocks free
> Greet a program with no extension
it says: a program with no extension
-finished
> hello.sh
> echo a script, started by its name
a script, started by its name
diff --git a/Tests/expected/cosmosKeys.out b/Tests/expected/cosmosKeys.out
index 26de017..0ffafcc 100644
--- a/Tests/expected/cosmosKeys.out
+++ b/Tests/expected/cosmosKeys.out
@@ -5,13 +5,11 @@ loaded, starting at 5000
keys, by interrupt. q stops.
ab
the console has been handed back
-finished
>
> run
keys, by interrupt. q stops.
cd
the console has been handed back
-finished
>
> monitor
x examine, d disassemble, a assemble, s set, b bank, g go, exit leaves
diff --git a/Tests/expected/cosmosLanderCrash.out b/Tests/expected/cosmosLanderCrash.out
index 343b429..c561077 100644
--- a/Tests/expected/cosmosLanderCrash.out
+++ b/Tests/expected/cosmosLanderCrash.out
@@ -1,7 +1,6 @@
CosmOS
> Lander
Crashed.
-finished
> exit
halted
Execution halted.
diff --git a/Tests/expected/cosmosLanderDry.out b/Tests/expected/cosmosLanderDry.out
index 343b429..c561077 100644
--- a/Tests/expected/cosmosLanderDry.out
+++ b/Tests/expected/cosmosLanderDry.out
@@ -1,7 +1,6 @@
CosmOS
> Lander
Crashed.
-finished
> exit
halted
Execution halted.
diff --git a/Tests/expected/cosmosLife.out b/Tests/expected/cosmosLife.out
index c97ef99..855b265 100644
--- a/Tests/expected/cosmosLife.out
+++ b/Tests/expected/cosmosLife.out
@@ -868,7 +868,6 @@ loaded, starting at 5000
##
the board has settled
-finished
>
halted
Execution halted.
diff --git a/Tests/expected/cosmosLifeKey.out b/Tests/expected/cosmosLifeKey.out
index 872fc39..47df2a3 100644
--- a/Tests/expected/cosmosLifeKey.out
+++ b/Tests/expected/cosmosLifeKey.out
@@ -20,7 +20,6 @@ loaded, starting at 5000
stopped
-finished
>
>
halted
diff --git a/Tests/expected/cosmosLs.out b/Tests/expected/cosmosLs.out
index c557526..25c3f66 100644
--- a/Tests/expected/cosmosLs.out
+++ b/Tests/expected/cosmosLs.out
@@ -8,24 +8,19 @@ tune.sbx Play.sbx notes.txt [0;34mApps/[0m hi.script
bad.script plain.script cross.script nonl.script outer.script
inner.script loop.script hush.script aloud.script args.script
pass.script holds.script
-finished
> cd /Apps
/Apps> ls
Copy.sbx Say.sbx Where.sbx Walk.sbx ls.sbx Lander where.sh
-finished
/Apps> cd /
> ls /Packages/app.Lander
Lander.sbx splash.tune
-finished
> mkdir /empty
made
> cd /empty
/empty> ls
-finished
/empty> cd /
> ls nowhere
there is no such directory: nowhere
-finished
> exit
halted
Execution halted.
diff --git a/Tests/expected/cosmosMonitor.out b/Tests/expected/cosmosMonitor.out
index b9520a8..f399cae 100644
--- a/Tests/expected/cosmosMonitor.out
+++ b/Tests/expected/cosmosMonitor.out
@@ -92,7 +92,6 @@ that one needs a value after it
820F 00 ?
* g 8200
hello, typed
-finished
* exit
> dir
greet.sbx 211
diff --git a/Tests/expected/cosmosMonitorRun.out b/Tests/expected/cosmosMonitorRun.out
index 6a04b97..8289430 100644
--- a/Tests/expected/cosmosMonitorRun.out
+++ b/Tests/expected/cosmosMonitorRun.out
@@ -3,7 +3,6 @@ CosmOS
x examine, d disassemble, a assemble, s set, b bank, g go, exit leaves
* Say hello from the monitor
it says: hello from the monitor
-finished
* Crash opcode
[0;31mthat byte is not an instruction, at 5081
A 00 B 0F Q 00
diff --git a/Tests/expected/cosmosMore.out b/Tests/expected/cosmosMore.out
index f88c7fc..a6168de 100644
--- a/Tests/expected/cosmosMore.out
+++ b/Tests/expected/cosmosMore.out
@@ -50,7 +50,6 @@ line 42: ABCDEFGHIJKLMNOPQRSTUVWXYZ
line 43: ABCDEFGHIJKLMNOPQRSTUVWXYZ
line 44: ABCDEFGHIJKLMNOPQRSTUVWXYZ
-- more --
-finished
> run readable.txt
first line
second line
@@ -115,7 +114,6 @@ line 56: ABCDEFGHIJKLMNOPQRSTUVWXYZ
line 57: ABCDEFGHIJKLMNOPQRSTUVWXYZ
line 58: ABCDEFGHIJKLMNOPQRSTUVWXYZ
line 59: ABCDEFGHIJKLMNOPQRSTUVWXYZ
-finished
> run readable.txt
first line
second line
@@ -167,7 +165,6 @@ line 44: ABCDEFGHIJKLMNOPQRSTUVWXYZ
-- more --
line 45: ABCDEFGHIJKLMNOPQRSTUVWXYZ
-- more --
-finished
> exit
halted
Execution halted.
diff --git a/Tests/expected/cosmosMoreNarrow.out b/Tests/expected/cosmosMoreNarrow.out
index e45d8de..7718958 100644
--- a/Tests/expected/cosmosMoreNarrow.out
+++ b/Tests/expected/cosmosMoreNarrow.out
@@ -3,7 +3,6 @@ CosmOS
loaded, starting at 5000
> run
40
-finished
> load More.sbx
loaded, starting at 5000
> run readable.txt
@@ -30,7 +29,6 @@ line 17: ABCDEFGHIJKLMNOPQRSTUVWXYZ
line 18: ABCDEFGHIJKLMNOPQRSTUVWXYZ
line 19: ABCDEFGHIJKLMNOPQRSTUVWXYZ
-- more --
-finished
> exit
halted
Execution halted.
diff --git a/Tests/expected/cosmosNoData.out b/Tests/expected/cosmosNoData.out
index 4653380..e428d5a 100644
--- a/Tests/expected/cosmosNoData.out
+++ b/Tests/expected/cosmosNoData.out
@@ -1,12 +1,10 @@
CosmOS
> Mode
40
-finished
> echo a narrow screen
a narrow screen
> Mode
80
-finished
> echo and a wide one again
and a wide one again
> exit
diff --git a/Tests/expected/cosmosPadApp.out b/Tests/expected/cosmosPadApp.out
index 476e659..bede00e 100644
--- a/Tests/expected/cosmosPadApp.out
+++ b/Tests/expected/cosmosPadApp.out
@@ -8,7 +8,6 @@ Pads present, as a bit each: 1
0: 0
0: 48
0: 0
-finished
> exit
halted
Execution halted.
diff --git a/Tests/expected/cosmosPress.out b/Tests/expected/cosmosPress.out
index 0beaef5..7ddc117 100644
--- a/Tests/expected/cosmosPress.out
+++ b/Tests/expected/cosmosPress.out
@@ -8,7 +8,6 @@ keys:
86 delete
5A Z
done
-finished
>
> exit
halted
diff --git a/Tests/expected/cosmosPressKeys.out b/Tests/expected/cosmosPressKeys.out
index 0beaef5..7ddc117 100644
--- a/Tests/expected/cosmosPressKeys.out
+++ b/Tests/expected/cosmosPressKeys.out
@@ -8,7 +8,6 @@ keys:
86 delete
5A Z
done
-finished
>
> exit
halted
diff --git a/Tests/expected/cosmosRamDisk.out b/Tests/expected/cosmosRamDisk.out
index d0bde38..ddc1d0d 100644
--- a/Tests/expected/cosmosRamDisk.out
+++ b/Tests/expected/cosmosRamDisk.out
@@ -5,7 +5,6 @@ CosmOS
0 of 128 entries, 2031 blocks free
> Copy 0:/Say.sbx 1:/Say.sbx
copied
-finished
> dir
Say.sbx 156
1 file
diff --git a/Tests/expected/cosmosRun.out b/Tests/expected/cosmosRun.out
index c86594b..04396a6 100644
--- a/Tests/expected/cosmosRun.out
+++ b/Tests/expected/cosmosRun.out
@@ -53,12 +53,10 @@ loaded, starting at 5000
a program, loaded off a disk, running on the system that loaded it
what should I call you? Anachronaut
hello, Anachronaut. that is all I do.
-finished
> run
a program, loaded off a disk, running on the system that loaded it
what should I call you? Claude
hello, Claude. that is all I do.
-finished
> exit
halted
Execution halted.
diff --git a/Tests/expected/cosmosSay.out b/Tests/expected/cosmosSay.out
index 66f9bb6..569a684 100644
--- a/Tests/expected/cosmosSay.out
+++ b/Tests/expected/cosmosSay.out
@@ -3,13 +3,10 @@ CosmOS
loaded, starting at 5000
> run
nothing was said
-finished
> run notes.txt
it says: notes.txt
-finished
> run a longer thing with spaces
it says: a longer thing with spaces
-finished
> exit
halted
Execution halted.
diff --git a/Tests/expected/cosmosScript.out b/Tests/expected/cosmosScript.out
index 1314d6a..2661337 100644
--- a/Tests/expected/cosmosScript.out
+++ b/Tests/expected/cosmosScript.out
@@ -4,12 +4,10 @@ CosmOS
saying what it is doing
> Say from a script
it says: from a script
-finished
> echo
> Say and again
it says: and again
-finished
> exit
halted
Execution halted.
diff --git a/Tests/expected/cosmosScriptArgs.out b/Tests/expected/cosmosScriptArgs.out
index ac150c8..b917f63 100644
--- a/Tests/expected/cosmosScriptArgs.out
+++ b/Tests/expected/cosmosScriptArgs.out
@@ -16,7 +16,6 @@ all of it is blue yellow
> pass.script hello there
> Say $args
it says: hello there
-finished
> do holds.script top level
> echo outer has $1
outer has top
diff --git a/Tests/expected/cosmosScriptBad.out b/Tests/expected/cosmosScriptBad.out
index b500aef..789358c 100644
--- a/Tests/expected/cosmosScriptBad.out
+++ b/Tests/expected/cosmosScriptBad.out
@@ -2,7 +2,6 @@ CosmOS
> do bad.script
> Say before
it says: before
-finished
> nosuchcommand
I do not know: nosuchcommand
stopped: that line did not work
diff --git a/Tests/expected/cosmosScriptEdges.out b/Tests/expected/cosmosScriptEdges.out
index 97d1212..49d57ea 100644
--- a/Tests/expected/cosmosScriptEdges.out
+++ b/Tests/expected/cosmosScriptEdges.out
@@ -2,11 +2,9 @@ CosmOS
> do cross.script
> Say across the block boundary
it says: across the block boundary
-finished
> do nonl.script
> Say with no newline after me
it says: with no newline after me
-finished
> exit
halted
Execution halted.
diff --git a/Tests/expected/cosmosServices.out b/Tests/expected/cosmosServices.out
index eb99776..2dd5841 100644
--- a/Tests/expected/cosmosServices.out
+++ b/Tests/expected/cosmosServices.out
@@ -8,7 +8,6 @@ a file kept by asking
renamed it
deleted it
and it is gone
-finished
> exit
halted
Execution halted.
diff --git a/Tests/expected/cosmosSettle.out b/Tests/expected/cosmosSettle.out
index f4f66b2..be4db67 100644
--- a/Tests/expected/cosmosSettle.out
+++ b/Tests/expected/cosmosSettle.out
@@ -3,7 +3,6 @@ this is the fallback: what boot.cfg asks for did not start
> Settle
the disk says the last start did not arrive, so this is the fallback
settled: the next start will use the configuration again
-finished
> exit
halted
Execution halted.
diff --git a/Tests/expected/cosmosSettled.out b/Tests/expected/cosmosSettled.out
index 75ac36e..cbd8b76 100644
--- a/Tests/expected/cosmosSettled.out
+++ b/Tests/expected/cosmosSettled.out
@@ -1,7 +1,6 @@
CosmOS
> Settle
already settled: the next start will use the configuration
-finished
> exit
halted
Execution halted.
diff --git a/Tests/expected/cosmosSlowDisk.out b/Tests/expected/cosmosSlowDisk.out
index 09c5d64..0de2747 100644
--- a/Tests/expected/cosmosSlowDisk.out
+++ b/Tests/expected/cosmosSlowDisk.out
@@ -43,7 +43,6 @@ holds.script 87
loaded, starting at 5000
> run the disk took its time
it says: the disk took its time
-finished
> exit
halted
Execution halted.
diff --git a/Tests/expected/cosmosSnake.out b/Tests/expected/cosmosSnake.out
index 8bc3386..bdfbb17 100644
--- a/Tests/expected/cosmosSnake.out
+++ b/Tests/expected/cosmosSnake.out
@@ -288,7 +288,6 @@ loaded, starting at 5000
+----------------+
score 1 wasd steers, q stops
you ran into something
-finished
>
halted
Execution halted.
diff --git a/Tests/expected/cosmosSource.out b/Tests/expected/cosmosSource.out
index 2448aac..b73faec 100644
--- a/Tests/expected/cosmosSource.out
+++ b/Tests/expected/cosmosSource.out
@@ -23,7 +23,6 @@ End:
"Hello, World!"
---- lines: 21
-finished
> exit
halted
Execution halted.
diff --git a/Tests/expected/cosmosSprite.out b/Tests/expected/cosmosSprite.out
index bd9dfc9..b87b46c 100644
--- a/Tests/expected/cosmosSprite.out
+++ b/Tests/expected/cosmosSprite.out
@@ -1,13 +1,10 @@
CosmOS
> Say before Sprite
it says: before Sprite
-finished
> Sprite
A ball, over the shell's own words. Nothing underneath is written to. Press a key.
-finished
> Say after Sprite
it says: after Sprite
-finished
> dir
greet.sbx 211
hello.sbx 53
diff --git a/Tests/expected/cosmosStack.out b/Tests/expected/cosmosStack.out
index 76580d3..ef31ae2 100644
--- a/Tests/expected/cosmosStack.out
+++ b/Tests/expected/cosmosStack.out
@@ -10,7 +10,6 @@ A 44 B 55 Q 00 status 00
DP0 3000 DP1 3037 DP2 3030 DP3 5000 SP FFF5
press a key
carried on to the end
-finished
> ho $nope
nothing is set called nope
> echo $nope
@@ -38,7 +37,6 @@ A 44 B 55 Q 00 status 00
DP0 3000 DP1 3037 DP2 3030 DP3 5000 SP FFF5
press a key
carried on to the end
-finished
> it
I do not know: it
>
diff --git a/Tests/expected/cosmosStatus.out b/Tests/expected/cosmosStatus.out
index ad458fd..a062f0a 100644
--- a/Tests/expected/cosmosStatus.out
+++ b/Tests/expected/cosmosStatus.out
@@ -1,22 +1,16 @@
CosmOS
> Say it worked
it says: it worked
-finished
> Status
the last program left 0, which is: it did what it was asked
-finished
> Type
type: give me a file name
-finished
> Status
the last program left 2, which is: it was asked wrongly
-finished
> Type /nothing/here.txt
type: cannot find the file, error 2
-finished
> Status
the last program left 1, which is: it did not
-finished
> exit
halted
Execution halted.
diff --git a/Tests/expected/cosmosStream.out b/Tests/expected/cosmosStream.out
index 28ff6d0..b2630b0 100644
--- a/Tests/expected/cosmosStream.out
+++ b/Tests/expected/cosmosStream.out
@@ -12,7 +12,6 @@ the old name now answers 2
the new name answers 0
a name that was never there answers 2
a block past the end answers 3
-finished
> exit
halted
Execution halted.
diff --git a/Tests/expected/cosmosTabPath.out b/Tests/expected/cosmosTabPath.out
index 058ff53..3aa40e1 100644
--- a/Tests/expected/cosmosTabPath.out
+++ b/Tests/expected/cosmosTabPath.out
@@ -1,16 +1,15 @@
CosmOS
> Cr[2;3HCrash.sbx [2;13Hzz
Crash opcode | service | bank | device | blind
-finished
-> Sa[5;3HSay.sbx[5;10Hzz
+> Sa[4;3HSay.sbx[4;10Hzz
I do not know: Say.sbxzz
-> cd Ap[7;3Hcd Apps/[7;11H
+> cd Ap[6;3Hcd Apps/[6;11H
/Apps> echo where am I
where am I
/Apps> cd /
-> echo Apps/S[11;3Hecho Apps/Say.sbx [11;21H
+> echo Apps/S[10;3Hecho Apps/Say.sbx [10;21H
Apps/Say.sbx
-> echo /Apps/C[13;3Hecho /Apps/Copy.sbx [13;23H
+> echo /Apps/C[12;3Hecho /Apps/Copy.sbx [12;23H
/Apps/Copy.sbx
> exit
halted
diff --git a/Tests/expected/cosmosTokens.out b/Tests/expected/cosmosTokens.out
index 330dadb..d67d291 100644
--- a/Tests/expected/cosmosTokens.out
+++ b/Tests/expected/cosmosTokens.out
@@ -21,7 +21,6 @@ loaded, starting at 5000
18 keyword 0 [#Data]
20 string 14 [Hello, World!]
---- no more tokens
-finished
> exit
halted
Execution halted.
diff --git a/Tests/expected/cosmosTree.out b/Tests/expected/cosmosTree.out
index 6c3b3aa..6a13f18 100644
--- a/Tests/expected/cosmosTree.out
+++ b/Tests/expected/cosmosTree.out
@@ -8,22 +8,18 @@ rooted.txt 21
loaded, starting at 5000
> run the shallow one
it says: the shallow one
-finished
> load /Apps/Deep/Say.sbx
loaded, starting at 5000
> run the deep one
Hello, World!
-finished
> load /Apps/./Deep/../Say.sbx
loaded, starting at 5000
> run the shallow one again
it says: the shallow one again
-finished
> load /Apps/Deep/../../Apps/./Deep/Say.sbx
loaded, starting at 5000
> run the deep one the long way round
Hello, World!
-finished
> load /rooted.txt/Say.sbx
no such file
> load /Apps/Missing/Say.sbx
diff --git a/Tests/expected/cosmosTreeWrite.out b/Tests/expected/cosmosTreeWrite.out
index 4f6970d..d9adc54 100644
--- a/Tests/expected/cosmosTreeWrite.out
+++ b/Tests/expected/cosmosTreeWrite.out
@@ -15,7 +15,6 @@ note.txt, new file
> w
written, 67 bytes
> q
-finished
> dir
Folder
Edit.sbx 2243
diff --git a/Tests/expected/cosmosType.out b/Tests/expected/cosmosType.out
index ae25d41..cf05dfa 100644
--- a/Tests/expected/cosmosType.out
+++ b/Tests/expected/cosmosType.out
@@ -64,15 +64,11 @@ line 56: ABCDEFGHIJKLMNOPQRSTUVWXYZ
line 57: ABCDEFGHIJKLMNOPQRSTUVWXYZ
line 58: ABCDEFGHIJKLMNOPQRSTUVWXYZ
line 59: ABCDEFGHIJKLMNOPQRSTUVWXYZ
-finished
> run empty.txt
-finished
> run missing.txt
type: cannot find the file, error 2
-finished
> run
type: give me a file name
-finished
> exit
halted
Execution halted.
diff --git a/Tests/expected/cosmosWalk.out b/Tests/expected/cosmosWalk.out
index 5e77624..21b6968 100644
--- a/Tests/expected/cosmosWalk.out
+++ b/Tests/expected/cosmosWalk.out
@@ -37,7 +37,6 @@ f aloud.script 1
f args.script 1
f pass.script 1
f holds.script 1
-finished
> cd /Apps
/Apps> Walk
f Copy.sbx 7
@@ -47,7 +46,6 @@ f Walk.sbx 1
f ls.sbx 3
f Lander 4
f where.sh 3
-finished
/Apps> cd /
> exit
halted
diff --git a/Tests/expected/cosmosWhere.out b/Tests/expected/cosmosWhere.out
index 8c3d659..46b8fa2 100644
--- a/Tests/expected/cosmosWhere.out
+++ b/Tests/expected/cosmosWhere.out
@@ -1,28 +1,23 @@
CosmOS
> Where
loaded from /Where.sbx
-finished
> Where splash.tune
loaded from /Where.sbx
beside it: /splash.tune
-finished
> mkdir /work
made
> cd /work
/work> Where
loaded from /Apps/Where.sbx
-finished
/work> Where tiles.atlas
loaded from /Apps/Where.sbx
beside it: /Apps/tiles.atlas
-finished
/work> cd /
> load /Apps/Where.sbx
loaded, starting at 5000
> run notes.txt
loaded from /Apps/Where.sbx
beside it: /Apps/notes.txt
-finished
> exit
halted
Execution halted.
diff --git a/Tests/expected/onceAsked.out b/Tests/expected/onceAsked.out
index 49c0e8d..d62dd05 100644
--- a/Tests/expected/onceAsked.out
+++ b/Tests/expected/onceAsked.out
@@ -1,12 +1,11 @@
CosmOS
> Once /System/Boot/bare.bin
next start: /System/Boot/bare.bin, once
-finished
> dir /System/Boot
System
Apps
0 files, 2 directories
-8 of 32 entries, 305 blocks free
+8 of 32 entries, 306 blocks free
> exit
halted
Execution halted.
diff --git a/Tests/expected/rebootOnce.out b/Tests/expected/rebootOnce.out
index 08a03b7..945311b 100644
--- a/Tests/expected/rebootOnce.out
+++ b/Tests/expected/rebootOnce.out
@@ -2,7 +2,6 @@ stage two
CosmOS
> Once /System/Boot/bare.bin
next start: /System/Boot/bare.bin, once
-finished
> Reboot
starting again
stage two
diff --git a/Tests/expected/romBoot.out b/Tests/expected/romBoot.out
index dcab782..0d7cce3 100644
--- a/Tests/expected/romBoot.out
+++ b/Tests/expected/romBoot.out
@@ -7,13 +7,12 @@ a file kept by asking
renamed it
deleted it
and it is gone
-finished
> mkdir Notes
made
> cd Notes
/Notes> dir
0 files
-7 of 32 entries, 309 blocks free
+7 of 32 entries, 310 blocks free
/Notes> exit
halted
Execution halted.
diff --git a/Tests/expected/selfBoot.out b/Tests/expected/selfBoot.out
index dcab782..0d7cce3 100644
--- a/Tests/expected/selfBoot.out
+++ b/Tests/expected/selfBoot.out
@@ -7,13 +7,12 @@ a file kept by asking
renamed it
deleted it
and it is gone
-finished
> mkdir Notes
made
> cd Notes
/Notes> dir
0 files
-7 of 32 entries, 309 blocks free
+7 of 32 entries, 310 blocks free
/Notes> exit
halted
Execution halted.
diff --git a/Tests/expected/tune.out b/Tests/expected/tune.out
index a90c5b3..a64ea19 100644
--- a/Tests/expected/tune.out
+++ b/Tests/expected/tune.out
@@ -1,6 +1,5 @@
CosmOS
> tune
-finished
> exit
halted
Execution halted.