Files
gw-basic-2026/docs/roadmap.md
T
Eremey Valetov 5105ecafd6 Allow RND without parentheses, update Sphinx docs to v0.8.0
RND can now be called without parentheses (equivalent to RND(1)),
matching real GW-BASIC behavior for legacy code compatibility.

Update all Sphinx documentation pages to reflect features added in
v0.6.0-0.8.0: DATE$/TIME$/TIMER, FILES/SHELL/CHDIR/MKDIR/RMDIR,
AUTO/RENUM/DELETE, COMMON, LPRINT/LLIST with --lpt, --full TUI flag,
dynamic screen buffer, 54 tests.
2026-02-22 14:09:18 -05:00

2.1 KiB

Roadmap

Planned Features

  • EDIT statement — edit a specific program line in the TUI
  • ON KEY / ON TIMER event trapping — periodic event handlers for interactive programs
  • BSAVE / BLOAD — binary file save/load for screen buffers and data
  • DEF SEG — memory segment declaration for PEEK/POKE/BSAVE/BLOAD
  • PRINT USING edge cases** asterisk fill, **$ combined
  • Binary SAVE/LOAD — Protected (,P) and tokenized binary formats
  • GET/PUT graphics — sprite capture and blit for graphics mode
  • TUI color support — map GW-BASIC COLOR attributes to ANSI 16-color output
  • INKEY$ extended keys — return CHR$(0) + scan code for arrow keys and function keys, matching the original two-byte encoding
  • VIEW / WINDOW / PALETTE — graphics viewport, coordinate mapping, and palette

IDE and Notebook Integration

  • Jupyter kernel for GW-BASIC — a Jupyter Notebook kernel that runs GW-BASIC programs cell-by-cell, with rich output for PRINT, inline graphics rendering for drawing commands, and interactive INPUT via notebook widgets. Similar in spirit to foxkernel.
  • JetBrains plugin (IntelliJ/CLion) — full-featured language plugin with syntax highlighting, code completion, line number navigation, run configurations, debugger integration (breakpoints via STOP, variable inspection), structure view (line number outline), and error annotations.
  • VS Code extension — language extension providing syntax highlighting (TextMate grammar), snippets, run/debug tasks, integrated terminal runner, and Language Server Protocol support for diagnostics and hover info.

Known Limitations

  • No binary/protected file format support (ASCII only)
  • PEEK/POKE are stubs (POKE parses and discards, PEEK returns 0)
  • String garbage collection not implemented (uses malloc/free instead)
  • Maximum 256 variables, 64 arrays, 16 FOR nesting, 24 GOSUB nesting, 16 WHILE nesting
  • Hardware I/O (OUT, INP, WAIT, COM, MOTOR) not implemented — no modern equivalent