Implement BSAVE/BLOAD, TUI color, extended PEEK/POKE, update to v0.12.0
BSAVE/BLOAD: save and load virtual memory blocks with 0xFD-header binary format, operating on the current DEF SEG segment. TUI color: tui_refresh emits ANSI SGR codes from cell attributes; COLOR statement sets tui.current_attr when TUI is active. Extended PEEK/POKE: CGA graphics framebuffer (interlaced layout) via gfx_cga_peek/poke routed through virmem when gfx_active(); BIOS keyboard shift flags (offset 0x17 bit 7 = insert mode). Add bibliography to language reference. 64 tests, all passing.
This commit is contained in:
+5
-4
@@ -15,10 +15,11 @@
|
||||
| 0.9.0 | `2a8f98b` | EDIT statement, ON TIMER/ON KEY event trapping, F-key escape parser fixes |
|
||||
| 0.10.0 | | Binary tokenized SAVE/LOAD, INKEY$ extended key sequences, golden-file regression tests, classic BASIC programs |
|
||||
| 0.11.0 | | DEF SEG / PEEK / POKE virtual memory, GET/PUT graphics sprites, PRINT USING fixes |
|
||||
| 0.12.0 | | BSAVE/BLOAD, TUI ANSI 16-color rendering, CGA graphics framebuffer PEEK/POKE, keyboard shift flags |
|
||||
|
||||
## Tests
|
||||
|
||||
61 test programs in `tests/programs/`, plus 4 classic interactive programs in
|
||||
64 test programs in `tests/programs/`, plus 4 classic interactive programs in
|
||||
`tests/classic/` (Hamurabi, Lunar Lander, Gunner, Diamond from David Ahl's
|
||||
*BASIC Computer Games*).
|
||||
|
||||
@@ -28,9 +29,9 @@ Run the full automated suite:
|
||||
bash tests/run_tests.sh
|
||||
```
|
||||
|
||||
Each test has a 5-second timeout. 57 tests have `.expected` golden files
|
||||
Each test has a 5-second timeout. 60 tests have `.expected` golden files
|
||||
for output regression detection. Three timing-dependent tests (datetime,
|
||||
on_timer, timer_stop) and one sound test (play_scale) run without golden
|
||||
on_timer, timer_stop) and one visual test (color_test) run without golden
|
||||
comparison.
|
||||
|
||||
### Compatibility Testing
|
||||
@@ -48,6 +49,6 @@ bash tests/run_compat.sh
|
||||
## CI
|
||||
|
||||
GitHub Actions runs on every push to `main` and on pull requests. The workflow
|
||||
builds the project with PulseAudio support and runs all 61 test programs.
|
||||
builds the project with PulseAudio support and runs all 64 test programs.
|
||||
|
||||
See [`.github/workflows/ci.yml`](https://github.com/evvaletov/gw-basic-2026/blob/main/.github/workflows/ci.yml).
|
||||
|
||||
Reference in New Issue
Block a user