Thoreau BASIC 3.2 adds file browser and menu commands

Thoreau BASIC is a BASIC language and implementation whose author presents it on a project page (shared as a Show HN). It starts from GW-BASIC-style syntax but, in the author's words, is not trapped in 1983. The feature list on the page includes 64-bit memory, 24-bit graphics, sprites, mouse input, TCP/IP and HTTP, a complete GM/GS wavetable with MIDI, WAV, FLAC and Opus playback, complex, quaternion and octonion values, a debugger, a profiler, source tools, multicore PARFOR and native x64 JIT compilation.

The distinctive claim is where it runs. The same language works as a normal Windows program or directly from UEFI firmware without an operating system. Programs can also be packaged as standalone Windows EXE files or bootable EFI applications. The UEFI build boots directly on x64 machines. It uses GOP graphics, firmware or raw HID keyboard input, mouse support with fallbacks, networking through firmware protocols or Thoreau's own SNP-based stack, and HDA/Azalia PCM sound where available. It uses the same interpreter, JIT and GM wavetable as the Windows version. The page stresses that graphics, networking and sound are ordinary BASIC commands, not separate frameworks. Its sample listing is a classic numbered program (CLS, PRINT, a FOR loop, END), and a music snippet uses SOUND PRELOAD, LOADMID and PLAYMID.

The page leads with the release notes for version 3.2. File browsers and menus become ordinary BASIC commands: GETFILES gathers files, directories and the parent entry with an optional file mask, and SELECTBOX turns a string array into a keyboard- and mouse-controlled selector with multiple columns, optional colors, and single or double box-drawing frames. File commands keep the original spelling and case of filenames, masks are case-sensitive, and full paths can reach 4,095 bytes including an added extension (filesystem limits on individual names still apply).

STATEWRITE and STATELOAD checkpoint selected variables to two alternating, checksummed generations. FLUSH, FILECOMMIT and FILECOPY support staged saves and verified backups. CRC32 checks byte strings, and TEXTSTATS counts words and characters in a range of a string array. SYSTEMINFO$ reports CPU and firmware details, usable AVX2 or SSE2, PARFOR capacity, the calibrated TSC counter rate, display backend and build information. Targeted JIT changes reduce work in floating-point INT and native complex, quaternion and octonion arithmetic. RUN can restart a program without growing the host stack, and HELP category headings now appear once.

Sound is unchanged in scope: the Opus wavetable and WAV, FLAC, Opus and MIDI playback remain. Sound banks are expanded to PCM before playback, so nothing is decompressed while music plays, and standalone EXE and EFI applications can leave the bank out with NOGM. The download listed is THOREAU_GM.TBGM, a losslessly compressed wavetable of 513.5 MB.

The page also covers Pixel Prose, which is included as a Thoreau BASIC example and offered as standalone EXE and EFI builds; the original DOS, Commodore 64 and Amstrad CPC versions live with the author's other retro projects on itch.io, where the project page and downloads are also hosted. The author welcomes bug reports, compatibility notes and strange BASIC edge cases, and offers PayPal for those who want to support development, adding: no nag screens, no locked features.

Key facts

  • Thoreau BASIC is a GW-BASIC-style language that runs as a Windows program or directly from UEFI firmware on x64 machines, with no operating system.
  • Version 3.2 adds GETFILES (file and directory listing with an optional mask) and SELECTBOX (keyboard- and mouse-driven selector with multiple columns and box-drawing frames) as ordinary BASIC commands.
  • STATEWRITE and STATELOAD checkpoint selected variables to two alternating, checksummed generations; FILECOPY and FILECOMMIT support verified backups and staged saves.
  • Programs can be packaged as standalone Windows EXE or bootable EFI applications; the 513.5 MB sound bank can be omitted with NOGM.
  • The listed feature set includes 64-bit memory, 24-bit graphics, TCP/IP and HTTP, multicore PARFOR and a native x64 JIT.

Why it matters

Most retro BASIC projects stay close to the original dialect. This one keeps GW-BASIC-style syntax but adds a modern feature set: 64-bit memory, 24-bit graphics, networking, a JIT and multicore loops. Its most unusual feature is the UEFI build, which boots directly on x64 machines and runs the same interpreter and JIT as the Windows version, so BASIC programs can run without an operating system. Version 3.2 pushes in the direction of everyday usability by making file browsing and menus plain BASIC commands.

Who it affects

The audience is BASIC hobbyists and retro-computing enthusiasts, plus anyone curious about running code straight from firmware. The author explicitly invites bug reports, compatibility notes and strange BASIC edge cases, which suggests a small, hands-on community rather than a commercial user base. No user numbers or adoption data are given in the source.

How to use it

Downloads and the project page are on itch.io. The page lists THOREAU_GM.TBGM, a losslessly compressed wavetable of 513.5 MB, which is used for MIDI playback; standalone EXE and EFI applications can omit it with NOGM. Programs run on Windows or from UEFI firmware and can be packaged as Windows EXE or bootable EFI applications. A starter program is plain numbered BASIC: CLS, PRINT, a FOR loop, END, then RUN. The manual and release notes hold the full syntax. The author offers PayPal for supporting development and says there are no nag screens and no locked features.

How solid is it

Everything here comes from the author's own project page, so the claims are self-reported. No benchmark figures or speed comparisons for the JIT, PARFOR or the interpreter are given. No user numbers, adoption data or third-party reactions are given. No list of tested hardware or UEFI firmware is given, and no release date for version 3.2 is given.

Risks and caveats

The author's name is not given in the source text. No licence, source-code availability or price for the software is stated beyond the PayPal support line and the 'no locked features' remark. Support for operating systems other than Windows and UEFI (Linux, macOS) is not mentioned. The UEFI build is described for x64 machines, and some of its features are qualified on the page, such as HDA/Azalia sound 'where available' and mouse support 'with fallbacks', so behaviour on a given machine may vary. The JIT changes in 3.2 are described as targeted, with no measured gains.