Files
gw-basic-2026/tests/expected/graphics_stubs.expected
Eremey Valetov e7f35c21ff Implement binary SAVE/LOAD, INKEY$ extended keys, golden tests, update to v0.10.0
Binary SAVE/LOAD: SAVE now writes tokenized binary by default (0xFF header
format), matching original GW-BASIC behavior. SAVE "file",A for ASCII.
LOAD auto-detects binary vs ASCII from the first byte. Command-line file
loading also auto-detects, so binary .BAS files just work.

INKEY$ extended keys: arrow keys, Home/End/PgUp/PgDn, Insert/Delete, and
F1-F10 now return the correct CHR$(0) + scan_code two-byte sequences per
the IBM PC convention. Refactored event trap key parsing to use tui_read_key()
instead of duplicating escape sequence parsing.

Golden-file regression tests: generated .expected output files for 55 of 58
test programs (3 timing-dependent tests excluded). The test runner now
reports compat match status alongside pass/fail.

Classic programs: added Hamurabi, Lunar Lander, Gunner, and Diamond from
David Ahl's BASIC Computer Games (1978) in tests/classic/ for manual
compatibility testing.

Docs updated with compiler roadmap item and hardware I/O simulator plan.
2026-03-01 12:25:47 -05:00

2 lines
6.1 KiB
Plaintext
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Pq#0;2;0;0;0#3;2;0;66;66#0!640~-#0!640~-#0!640~-#0!10~z!629~$#3!10?C!629?-#0!640~-#0!640~-#0!640~-#0!640~-#0!640~-#0!640~-#0!640~-#0!640~-#0!640~-#0!640~-#0!640~-#0!640~-#0!640~-#0!640~-#0!640~-#0!640~-#0!640~-#0!640~-#0!640~-#0!640~-#0!640~-#0!640~-#0!640~-#0!640~-#0!640~-#0!640~-#0!640~-#0!640~-#0!640~-#0!640B-\Pq#0;2;0;0;0#3;2;0;66;66#0!640~-#0!640~-#0!640~-#0!10~z!629~$#3!10?C!629?-#0!640~-#0!640~-#0!640~-#0!640~-#0!640~-#0!640~-#0!640~-#0!640~-#0!640~-#0!640~-#0!640~-#0!640~-#0!640~-#0!640~-#0!640~-#0!640~-#0!640~-#0!640~-#0!640~-#0!640~-#0!640~-#0!640~-#0!640~-#0!640~-#0!640~-#0!640~-#0!640~-#0!640~-#0!640~-#0!640B-\Pq#0;2;0;0;0#1;2;0;0;66#3;2;0;66;66#0}|zvn^!634~$#1@ACGO_!634?-#0!6~}|zvn^!628~$#1!6?@ACGO_!628?-#0!12~}|zvn^!622~$#1!12?@ACGO_!622?-#0!10~z!7~}|zvn^!616~$#1!18?@ACGO_!616?$#3!10?C!629?-#0!24~}|zvn^!610~$#1!24?@ACGO_!610?-#0!30~}|zvn^!604~$#1!30?@ACGO_!604?-#0!36~}|zvn^!598~$#1!36?@ACGO_!598?-#0!42~}|zvn^!592~$#1!42?@ACGO_!592?-#0!48~}|zvn^!586~$#1!48?@ACGO_!586?-#0!54~}|zvn^!580~$#1!54?@ACGO_!580?-#0!60~}|zvn^!574~$#1!60?@ACGO_!574?-#0!66~}|zvn^!568~$#1!66?@ACGO_!568?-#0!72~}|zvn^!562~$#1!72?@ACGO_!562?-#0!78~}|zvn^!556~$#1!78?@ACGO_!556?-#0!84~}|zvn^!550~$#1!84?@ACGO_!550?-#0!90~}|zvn^!544~$#1!90?@ACGO_!544?-#0!96~}|zvn!539~$#1!96?@ACGO!539?-#0!640~-#0!640~-#0!640~-#0!640~-#0!640~-#0!640~-#0!640~-#0!640~-#0!640~-#0!640~-#0!640~-#0!640~-#0!640~-#0!640~-#0!640~-#0!640~-#0!640B-\Pq#0;2;0;0;0#1;2;0;0;66#2;2;0;66;0#3;2;0;66;66#0}|zvn^!634~$#1@ACGO_!634?-#0!6~}|zvn^!628~$#1!6?@ACGO_!628?-#0!12~}|zvn^!622~$#1!12?@ACGO_!622?-#0!10~z!7~}|zvn^!616~$#1!18?@ACGO_!616?$#3!10?C!629?-#0!24~}|zvn^!610~$#1!24?@ACGO_!610?-#0!30~}|zvn^!604~$#1!30?@ACGO_!604?-#0!36~}|zvn^!598~$#1!36?@ACGO_!598?-#0!42~}|zvn^!592~$#1!42?@ACGO_!592?-#0!48~}|zvn^!91~^^^nnf!4v!11z!4vfnn^^^!464~$#1!48?@ACGO_!586?$#2!145?___OOW!4G!11C!4GWOO___!464?-#0!54~}|zvn^!76~^^nvrz||}}!29~}}||zrvn^^!455~$#1!54?@ACGO_!580?$#2!136?__OGKCAA@@!29?@@AACKGO__!455?-#0!60~}|zvn^!64~^nvzz{!49~{zzvn^!449~$#1!60?@ACGO_!574?$#2!130?_OGCCB!49?BCCGO_!449?-#0!66~}|zvn^!54~^nvx}!59~}xvn^!445~$#1!66?@ACGO_!568?$#2!126?_OGE@!59?@EGO_!445?-#0!72~}|zvn^!46~Np}!67~}pN!443~$#1!72?@ACGO_!562?$#2!124?oM@!67?@Mo!443?-#0!78~}|zvn^!37~Nr{!73~{rN!440~$#1!78?@ACGO_!556?$#2!121?oKB!73?BKo!440?-#0!84~}|zvn^!30~@}!77~}@!439~$#1!84?@ACGO_!550?$#2!120?}@!77?@}!439?-#0!90~}|zvn^!23~Fw!79~wF!438~$#1!90?@ACGO_!544?$#2!119?wF!79?Fw!438?-#0!96~}|zvn!18~?!81~?!438~$#1!96?@ACGO!539?$#2!119?~!81?~!438?-#0!119~?!81~?!438~$#2!119?~!81?~!438?-#0!120~?!79~?!439~$#2!120?~!79?~!439?-#0!120~{b^!75~^b{!439~$#2!120?B[_!75?_[B!439?-#0!122~}xf^!69~^fx}!441~$#2!122?@EW_!69?_WE@!441?-#0!125~{rn^!63~^nr{!444~$#2!125?BKO_!63?_OKB!444?-#0!129~{rn^!55~^nr{!448~$#2!129?BKO_!55?_OKB!448?-#0!133~}}xvvn^^!39~^^nvvx}}!452~$#2!133?@@EGGO__!39?__OGGE@@!452?-#0!140~}}||zrvvnnN!4^!11~!4^Nnnvvrz||}}!459~$#2!140?@@AACKGGOOo!4_!11?!4_oOOGGKCAA@@!459?-#0!155~!11}!474~$#2!155?!11@!474?-#0!640~-#0!640~-#0!640~-#0!640~-#0!640~-#0!640~-#0!640~-#0!640B-\Pq#0;2;0;0;0#1;2;0;0;66#2;2;0;66;0#3;2;0;66;66#0}|zvn^!634~$#1@ACGO_!634?-#0!6~}|zvn^!628~$#1!6?@ACGO_!628?-#0!12~}|zvn^!622~$#1!12?@ACGO_!622?-#0!10~z!7~}|zvn^!616~$#1!18?@ACGO_!616?$#3!10?C!629?-#0!24~}|zvn^!610~$#1!24?@ACGO_!610?-#0!30~}|zvn^!604~$#1!30?@ACGO_!604?-#0!36~}|zvn^!598~$#1!36?@ACGO_!598?-#0!42~}|zvn^!592~$#1!42?@ACGO_!592?-#0!48~}|zvn^!91~^^^nnf!4v!11z!4vfnn^^^!464~$#1!48?@ACGO_!586?$#2!145?___OOW!4G!11C!4GWOO___!464?-#0!54~}|zvn^!76~^^nvrz||}}!29~}}||zrvn^^!455~$#1!54?@ACGO_!580?$#2!136?__OGKCAA@@!29?@@AACKGO__!455?-#0!60~}|zvn^!64~^nvzz{!49~{zzvn^!449~$#1!60?@ACGO_!574?$#2!130?_OGCCB!49?BCCGO_!449?-#0!66~}|zvn^!54~^nvx}!59~}xvn^!445~$#1!66?@ACGO_!568?$#2!126?_OGE@!59?@EGO_!445?-#0!72~}|zvn^!46~Np}!67~}pN!443~$#1!72?@ACGO_!562?$#2!124?oM@!67?@Mo!443?-#0!78~}|zvn^!37~Nr{!73~{rN!440~$#1!78?@ACGO_!556?$#2!121?oKB!73?BKo!440?-#0!84~}|zvn^!30~@}!77~}@!439~$#1!84?@ACGO_!550?$#2!120?}@!77?@}!439?-#0!90~}|zvn^!23~Fw!39~?!9}?!29~wF!438~$#1!90?@ACGO_!64?~!9@~!469?$#2!119?wF!79?Fw!438?-#0!96~}|zvn!18~?!40~_!9n_!30~?!438~$#1!96?@ACGO!59?^!9O^!469?$#2!119?~!81?~!438?-#0!119~?!81~?!438~$#2!119?~!81?~!438?-#0!120~?!79~?!439~$#2!120?~!79?~!439?-#0!120~{b^!75~^b{!439~$#2!120?B[_!75?_[B!439?-#0!122~}xf^!69~^fx}!441~$#2!122?@EW_!69?_WE@!441?-#0!125~{rn^!63~^nr{!444~$#2!125?BKO_!63?_OKB!444?-#0!129~{rn^!55~^nr{!448~$#2!129?BKO_!55?_OKB!448?-#0!133~}}xvvn^^!39~^^nvvx}}!452~$#2!133?@@EGGO__!39?__OGGE@@!452?-#0!140~}}||zrvvnnN!4^!11~!4^Nnnvvrz||}}!459~$#2!140?@@AACKGGOOo!4_!11?!4_oOOGGKCAA@@!459?-#0!155~!11}!474~$#2!155?!11@!474?-#0!640~-#0!640~-#0!640~-#0!640~-#0!640~-#0!640~-#0!640~-#0!640B-\Pq#0;2;0;0;0#1;2;0;0;66#2;2;0;66;0#3;2;0;66;66#0}|zvn^!634~$#1@ACGO_!634?-#0!6~}|zvn^!628~$#1!6?@ACGO_!628?-#0!12~}|zvn^!622~$#1!12?@ACGO_!622?-#0!10~z!7~}|zvn^!616~$#1!18?@ACGO_!616?$#3!10?C!629?-#0!24~}|zvn^!610~$#1!24?@ACGO_!610?-#0!30~}|zvn^!604~$#1!30?@ACGO_!604?-#0!36~}|zvn^!598~$#1!36?@ACGO_!598?-#0!42~}|zvn^!592~$#1!42?@ACGO_!592?-#0!48~}|zvn^!91~^^^nnf!4v!11z!4vfnn^^^!464~$#1!48?@ACGO_!586?$#2!145?___OOW!4G!11C!4GWOO___!464?-#0!54~}|zvn^!76~^^nvrz||}}!29~}}||zrvn^^!455~$#1!54?@ACGO_!580?$#2!136?__OGKCAA@@!29?@@AACKGO__!455?-#0!60~}|zvn^!64~^nvzz{!49~{zzvn^!449~$#1!60?@ACGO_!574?$#2!130?_OGCCB!49?BCCGO_!449?-#0!66~}|zvn^!54~^nvx}!59~}xvn^!445~$#1!66?@ACGO_!568?$#2!126?_OGE@!59?@EGO_!445?-#0!72~}|zvn^!46~Np}!67~}pN!443~$#1!72?@ACGO_!562?$#2!124?oM@!67?@Mo!443?-#0!78~}|zvn^!37~Nr{!73~{rN!440~$#1!78?@ACGO_!556?$#2!121?oKB!73?BKo!440?-#0!84~}|zvn^!30~@}!77~}@!439~$#1!84?@ACGO_!550?$#2!120?}@!77?@}!439?-#0!90~}|zvn^!23~Fw!39~?!9}?!29~wF!438~$#1!90?@ACGO_!64?~!9@~!469?$#2!119?wF!79?Fw!438?-#0!96~}|zvn!18~?!40~_!9n_!30~?!438~$#1!96?@ACGO!59?^!9O^!469?$#2!119?~!81?~!438?-#0!119~?!81~?!438~$#2!119?~!81?~!438?-#0!120~?!79~?!439~$#2!120?~!79?~!439?-#0!120~{b^!75~^b{!439~$#2!120?B[_!75?_[B!439?-#0!122~}xf^!69~^fx}!441~$#2!122?@EW_!69?_WE@!441?-#0!125~{rn^!63~^nr{!444~$#2!125?BKO_!63?_OKB!444?-#0!129~{rn^!55~^nr{!448~$#2!129?BKO_!55?_OKB!448?-#0!133~}}xvvn^^!39~^^nvvx}}!452~$#2!133?@@EGGO__!39?__OGGE@@!452?-#0!140~}}||zrvvnnN!4^!11~!4^Nnnvvrz||}}!459~$#2!140?@@AACKGGOOo!4_!11?!4_oOOGGKCAA@@!459?-#0!155~!11}!474~$#2!155?!11@!474?-#0!640~-#0!640~-#0!640~-#0!640~-#0!640~-#0!640~-#0!640~-#0!640B-\Graphics stubs OK