Files
gw-basic-2026/docs/index.md
Eremey Valetov 4551c88a50 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.
2026-03-01 13:37:05 -05:00

1.6 KiB
Raw Blame History

GW-BASIC 2026

A portable C reimplementation of Microsoft GW-BASIC, using the original 8088 assembly source (released by Microsoft in 2020) as the authoritative reference.

This is not a transpilation — it reimplements the algorithms in clean C11 with modern data structures while targeting bug-compatible behavior. Unlike the original assembly (43,771 lines across 43 .ASM files), this version is structured as modular C suitable for new feature development.

Highlights

  • Authentic full-screen editor — dynamically sized screen buffer (25×80 default, full terminal with --full), free cursor movement, Enter-on-any-line, F1-F10 function keys, Insert/Overwrite toggle
  • Binary and ASCII file formatsSAVE writes tokenized binary by default, LOAD auto-detects format (just like the real thing)
  • INKEY$ extended keys — arrow keys, F-keys, and navigation keys return proper CHR$(0) + scan code two-byte sequences
  • Sixel graphicsSCREEN 1/SCREEN 2 rendering in compatible terminals
  • SoundSOUND, BEEP, PLAY (MML) via PulseAudio
  • Full file I/O — sequential, random-access, SAVE/LOAD/MERGE/CHAIN/COMMON
  • Printer outputLPRINT/LLIST to file or real hardware via --lpt
  • Classic programs — Hamurabi, Lunar Lander, Gunner, and Diamond from David Ahl's BASIC Computer Games (1978) run out of the box
  • 64 test programs with golden-file regression testing and DOSBox-X compatibility testing against real GWBASIC.EXE
  • MIT License
:maxdepth: 2

getting-started
language-reference
architecture
development
roadmap