More fills the screen it is on, not the screen it was written for

Twenty two lines was right when there was one screen size. It still is on
the forty column screen and wastes three fifths of the eighty column one,
so More asks the rows register instead - which is readable for exactly
this sort of reason.

Rows minus three is twenty two on a twenty five row screen, so nothing
changed underneath anyone already reading files this way. It fills a
bigger screen and leaves a smaller one alone.

A bitmap screen has no rows and says so with a nought, which through an
eight bit subtraction would be 253 lines. Anything under five falls back.

The existing test stopped testing paging the moment this worked: 32 lines
fits in a 47 line page, so the file never paged and the recording lost the
prompt entirely. The fixture is 60 lines now - the INPUT needed moving,
not just the output, which is the failure this project keeps meeting.

And cosmosMoreNarrow, which runs Mode first and pages the same file on the
forty column screen. Two recordings of one file at 47 lines and at 22: a
More that went back to a constant would make them the same length.

Both were verified with break.sh, and the first attempt was a bad break
rather than a bad test - it replaced one of two reads of the rows port and
the other still fetched the real value. Which is a fair argument against
reading a port twice, so it is read once and kept now.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E2JrLzFvuFX9fgi1LDRjrW
This commit is contained in:
Anachronaut
2026-09-02 16:18:37 -04:00
co-authored by Claude Opus 5
parent fba1b553d2
commit 5222c85100
9 changed files with 232 additions and 33 deletions
+37
View File
@@ -0,0 +1,37 @@
CosmOS
> load Mode.sbx
loaded, starting at 5000
> run
40
finished
> load More.sbx
loaded, starting at 5000
> run readable.txt
first line
second line
line 00: ABCDEFGHIJKLMNOPQRSTUVWXYZ
line 01: ABCDEFGHIJKLMNOPQRSTUVWXYZ
line 02: ABCDEFGHIJKLMNOPQRSTUVWXYZ
line 03: ABCDEFGHIJKLMNOPQRSTUVWXYZ
line 04: ABCDEFGHIJKLMNOPQRSTUVWXYZ
line 05: ABCDEFGHIJKLMNOPQRSTUVWXYZ
line 06: ABCDEFGHIJKLMNOPQRSTUVWXYZ
line 07: ABCDEFGHIJKLMNOPQRSTUVWXYZ
line 08: ABCDEFGHIJKLMNOPQRSTUVWXYZ
line 09: ABCDEFGHIJKLMNOPQRSTUVWXYZ
line 10: ABCDEFGHIJKLMNOPQRSTUVWXYZ
line 11: ABCDEFGHIJKLMNOPQRSTUVWXYZ
line 12: ABCDEFGHIJKLMNOPQRSTUVWXYZ
line 13: ABCDEFGHIJKLMNOPQRSTUVWXYZ
line 14: ABCDEFGHIJKLMNOPQRSTUVWXYZ
line 15: ABCDEFGHIJKLMNOPQRSTUVWXYZ
line 16: ABCDEFGHIJKLMNOPQRSTUVWXYZ
line 17: ABCDEFGHIJKLMNOPQRSTUVWXYZ
line 18: ABCDEFGHIJKLMNOPQRSTUVWXYZ
line 19: ABCDEFGHIJKLMNOPQRSTUVWXYZ
-- more --
finished
> exit
halted
Execution halted.
[exit 0]