2026-02-15 16:56:02 -05:00
|
|
|
# Roadmap
|
|
|
|
|
|
2026-03-01 12:25:47 -05:00
|
|
|
## The Big One
|
|
|
|
|
|
|
|
|
|
- **GW-BASIC 2026 Compiler** — ahead-of-time compilation of BASIC programs to
|
|
|
|
|
native executables. Because nothing says "premature optimization" like
|
|
|
|
|
compiling a language designed for an interpreter running on a 4.77 MHz 8088.
|
|
|
|
|
But we've come this far, so why not? Likely approach: translate the token
|
|
|
|
|
stream to C and lean on GCC/Clang for the heavy lifting.
|
|
|
|
|
|
2026-03-28 18:30:04 -04:00
|
|
|
## Completed
|
2026-03-11 08:11:13 -04:00
|
|
|
|
2026-03-28 18:30:04 -04:00
|
|
|
### Hardware I/O Simulator (v0.15.0)
|
2026-03-11 08:11:13 -04:00
|
|
|
|
2026-03-28 18:30:04 -04:00
|
|
|
Implemented in `portio.c` / `portio.h` following the `virmem.c` dispatch
|
|
|
|
|
pattern. Emulates 8253 PIT channel 2 (speaker frequency), PPI port B
|
|
|
|
|
(speaker on/off with continuous tone via PulseAudio), CGA mode/color
|
|
|
|
|
registers, game port (joystick stub), and COM1 serial (transmitter-ready
|
|
|
|
|
stub). Default: reads return 0xFF (floating bus), writes discarded.
|
2026-03-11 08:11:13 -04:00
|
|
|
|
2026-03-28 18:30:04 -04:00
|
|
|
Statements: `OUT`, `WAIT`, `MOTOR`. Functions: `INP()`, `STICK()`, `STRIG()`.
|
2026-03-11 08:11:13 -04:00
|
|
|
|
2026-03-28 18:30:04 -04:00
|
|
|
## Next Up
|
2026-03-11 08:11:13 -04:00
|
|
|
|
2026-03-28 18:30:04 -04:00
|
|
|
*(Looking for the next major feature — see IDE and Notebook Integration below.)*
|
2026-03-11 08:11:13 -04:00
|
|
|
|
2026-02-15 16:56:02 -05:00
|
|
|
## IDE and Notebook Integration
|
|
|
|
|
|
2026-02-22 14:09:18 -05:00
|
|
|
- **Jupyter kernel for GW-BASIC** — a Jupyter Notebook kernel that runs
|
2026-02-15 16:56:02 -05:00
|
|
|
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](https://github.com/evvaletov/foxkernel).
|
2026-02-22 14:09:18 -05:00
|
|
|
- **JetBrains plugin (IntelliJ/CLion)** — full-featured language plugin with
|
2026-02-15 16:56:02 -05:00
|
|
|
syntax highlighting, code completion, line number navigation, run
|
|
|
|
|
configurations, debugger integration (breakpoints via `STOP`, variable
|
|
|
|
|
inspection), structure view (line number outline), and error annotations.
|
2026-02-22 14:09:18 -05:00
|
|
|
- **VS Code extension** — language extension providing syntax highlighting
|
2026-02-15 16:56:02 -05:00
|
|
|
(TextMate grammar), snippets, run/debug tasks, integrated terminal runner,
|
|
|
|
|
and Language Server Protocol support for diagnostics and hover info.
|
|
|
|
|
|
|
|
|
|
## Known Limitations
|
|
|
|
|
|
|
|
|
|
- String garbage collection not implemented (uses `malloc`/`free` instead)
|
2026-03-01 12:25:47 -05:00
|
|
|
- Maximum 256 variables, 64 arrays, 16 FOR nesting, 24 GOSUB nesting,
|
|
|
|
|
16 WHILE nesting
|