Fill the window, let it be resized, and make black black
Three things a person looking at a real screen found in five minutes, none of which the headless tests could have seen. THE PICTURE FILLED A QUARTER OF THE WINDOW. The window opened at the largest screen the device can make, doubled, and then drew a 320 by 200 mode at that same doubling - so three quarters of it was bezel. It now takes the largest whole-number scale that fits: the two modes are exactly a factor of two apart and the window opens at twice the larger, so both fill it exactly, at four and at two. Changing mode changes how sharp the screen is rather than how big it is. Whole numbers on purpose. A 320 by 200 picture stretched by 2.7 has some rows twice as tall as their neighbours, which on eight pixel glyphs is the difference between text and mush. THE WINDOW WOULD NOT RESIZE. It does now, and the picture rescales to whatever it becomes, still in whole pixels and still centred. How big somebody wants a screen is not the machine's business. AND BLACK WAS NOT BLACK. Both the paper and the bezel were tinted towards green, on the theory that a phosphor never was neutral. On a real screen that reads as a fault rather than as character: a background that is nearly black looks like a background that failed to be black. Paper is black now and ink is a neutral grey, because a default should be the unsurprising thing - anything with a point of view about colour is 254 palette entries away and belongs to a program. The bezel is a clearly lighter grey, so what is left over when the window's shape does not match the picture's looks like a bezel rather than like more screen. The two checks that name the waking colours name the new ones. That they had to change is the check working: they say what they depend on rather than assuming it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01E2JrLzFvuFX9fgi1LDRjrW
This commit is contained in:
co-authored by
Claude Opus 5
parent
773b0f8add
commit
6f8ad42277
+5
-5
@@ -144,10 +144,10 @@ echo "Checking what the video device draws."
|
||||
epilogue
|
||||
} | run wakeup || exit 1
|
||||
|
||||
[ "$(pixel wakeup 0 0)" = "16,20,18" ] \
|
||||
&& result ok "the machine wakes with paper" "before any program set one" \
|
||||
[ "$(pixel wakeup 0 0)" = "0,0,0" ] \
|
||||
&& result ok "the machine wakes with paper" "black, before any program set one" \
|
||||
|| result no "the machine wakes with paper" "got $(pixel wakeup 0 0)"
|
||||
[ "$(pixel wakeup 2 1)" = "220,230,220" ] \
|
||||
[ "$(pixel wakeup 2 1)" = "216,216,216" ] \
|
||||
&& result ok "and with a font to write in" "a letter A, drawn in ink" \
|
||||
|| result no "and with a font to write in" "got $(pixel wakeup 2 1)"
|
||||
|
||||
@@ -286,8 +286,8 @@ GOT="$(head -c 1 "$BUILD/badmode.out" | od -An -tu1 | tr -d ' ')"
|
||||
#
|
||||
# 'A' has ink at (2,1) inside its cell and paper at the corner, which is what makes a letter
|
||||
# tellable from an empty cell one pixel at a time.
|
||||
inked() { [ "$(pixel "$1" "$2" "$3")" = "220,230,220" ]; }
|
||||
papered() { [ "$(pixel "$1" "$2" "$3")" = "16,20,18" ]; }
|
||||
inked() { [ "$(pixel "$1" "$2" "$3")" = "216,216,216" ]; }
|
||||
papered() { [ "$(pixel "$1" "$2" "$3")" = "0,0,0" ]; }
|
||||
|
||||
{ printf '#Program\nstart:\n'; say "AA"; epilogue; } | run twoletters || exit 1
|
||||
inked twoletters 2 1 \
|
||||
|
||||
Reference in New Issue
Block a user