Download
THOREAU_GM.TBGM · losslessly compressed wavetable · 513.5 MB
3.2
File browsers and menus are now ordinary BASIC commands. GETFILES
gathers files, directories and the parent entry with an
optional file mask. SELECTBOX turns a string
array into a keyboard- and mouse-controlled selector, with
multiple columns, optional colors, and single or double
box-drawing frames.
Filenames keep their original spelling and case throughout the file commands. Masks are case-sensitive. Full paths can contain up to 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 appear once.
The Opus wavetable and WAV, FLAC, Opus and MIDI playback
remain available. Sound banks are expanded to PCM before
playback, with no decompression while music plays. Standalone
EXE and EFI applications can omit the bank with NOGM.
See the manual and release notes for
the full changes and syntax.
What it is
Thoreau BASIC starts from GW-BASIC-style syntax but is not
trapped in 1983. It has 64-bit memory, 24-bit graphics,
sprites, mouse input, TCP/IP and HTTP, a complete GM/GS
wavetable with MIDI/WAV/FLAC/Opus playback,
complex/quaternion/octonion values, a debugger, profiler,
source tools, multicore PARFOR, and native x64
JIT compilation.
The same BASIC language runs as a normal Windows program or directly from UEFI firmware without an operating system. BASIC programs can also be packaged as standalone Windows EXE or bootable EFI applications.
Still BASIC
10 CLS
20 PRINT "HELLO FROM THOREAU BASIC"
30 FOR I=1 TO 5
40 PRINT I
50 NEXT I
60 END
RUN
And now the orchestra is BASIC too:
SOUND PRELOAD
LOADMID 0,"BALLADE.MID"
PLAYMID 0
Graphics, networking and sound remain ordinary BASIC commands, not separate frameworks.
BASIC without an operating system
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, HDA/Azalia PCM sound where available, and the same interpreter/JIT and GM wavetable used by the Windows version.
Pixel Prose
Pixel Prose is included as a Thoreau BASIC example and is also available as standalone EXE and EFI builds. The original versions for DOS, Commodore 64 and Amstrad CPC live with my other retro projects on itch.io.
Project
The project page and downloads are on itch.io.
Contact
Bug reports, compatibility notes and strange BASIC edge cases are very welcome.
If you want to support development, PayPal is available. No nag screens, no locked features.