Files
gw-basic-2026/docs/index.md

2.1 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, plus continuous tone via OUT (8253 PIT / PPI speaker emulation)
  • Hardware I/OOUT, INP, WAIT port emulation (PIT, PPI, CGA, COM1, game port) for classic programs that drive hardware directly
  • 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
  • Ahead-of-time compilergwbasic-compile prog.bas -c produces native executables via C codegen + GCC (67/72 tests pass, 93%)
  • Jupyter kernel — inline Sixel graphics, INPUT support, Pygments syntax highlighting; pip install -e . && gwbasickernel-install --user
  • 72 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