Thoreau BASIC

Versie 3.2

In versie 3.2 zijn bestandsbrowsers en menu's nu gewone BASIC-commando's. GETFILES verzamelt bestanden, mappen en de bovenliggende map, met een optioneel bestandmasker. SELECTBOX zet een string-array om in een selector die met het toetsenbord en de muis wordt bediend, met ondersteuning voor meerdere kolommen, optionele kleuren en enkelvoudige of dubbele kaderlijnen.

Bestandsnamen behouden hun oorspronkelijke spelling en hoofdlettergebruik tijdens alle bestandscommando's. Maskers zijn hoofdlettergevoelig. Volledige paden kunnen tot 4.095 bytes bevatten, inclusief een toegevoegde extensie; de beperkingen van het bestandssysteem voor individuele namen blijven van kracht.

STATEWRITE en STATELOAD maken checkpoints van geselecteerde variabelen in twee afwisselende, checksum-beveiligde generaties. FLUSH, FILECOMMIT en FILECOPY ondersteunen gefaseerde saves en geverifieerde back-ups. CRC32 controleert byte-strings, en TEXTSTATS telt woorden en tekens in een bereik van een string-array.

SYSTEMINFO$ rapporteert details over de CPU en firmware, bruikbare AVX2 of SSE2, PARFOR-capaciteit, de gekalibreerde TSC-tellersnelheid, de display-backend en build-informatie. Gerichte JIT-aanpassingen verminderen de werklast bij floating-point INT en native complexe, quaternion en octonion rekenkunde. RUN kan een programma herstarten zonder de host-stack te vergroten, en kopjes in de HELP-functie verschijnen slechts één keer.

De Opus wavetable en het afspelen van WAV, FLAC, Opus en MIDI blijven beschikbaar. Sound banks worden vóór het afspelen uitgebreid naar PCM, zodat er tijdens het afspelen van muziek geen decompressie plaatsvindt. Standalone EXE- en EFI-applicaties kunnen de bank weglaten met NOGM.

Wat is Thoreau BASIC?

Thoreau BASIC maakt gebruik van een syntaxis in de stijl van GW-BASIC, maar is modern van aard. De interpreter beschikt over:

  • 64-bit geheugen en 24-bit graphics.
  • Sprites en muisinput.
  • TCP/IP en HTTP.
  • Een volledige GM/GS wavetable met MIDI/WAV/FLAC/Opus-weergave.
  • Complexe, quaternion en octonion waarden.
  • Een debugger, profiler en broncode-tools.
  • Multicore PARFOR en native x64 JIT-compilatie.

Dezelfde BASIC-taal draait als een normaal Windows-programma of direct vanuit de UEFI-firmware zonder besturingssysteem. BASIC-programma's kunnen daarnaast worden verpakt als standalone Windows EXE-bestanden of opstartbare EFI-applicaties.

Voorbeeld: Klassieke BASIC

10 CLS
20 PRINT "HELLO FROM THOREAU BASIC"
30 FOR I=1 TO 5
40 PRINT I
50 NEXT I
60 END
RUN

Voorbeeld: Audio in BASIC

Ook het orkest wordt aangestuurd via BASIC:

SOUND PRELOAD
LOADMID 0,"BALLADE.MID"
PLAYMID 0

Graphics, netwerken en geluid blijven gewone BASIC-commando's en zijn geen aparte frameworks.

BASIC zonder besturingssysteem

De UEFI-build start direct op x64-machines. Deze versie maakt gebruik van:

  • GOP-graphics.
  • Firmware- of raw HID-toetsenbordinput.
  • Muisondersteuning met fallbacks.
  • Netwerken via firmware-protocollen of de eigen SNP-gebaseerde stack van Thoreau.
  • HDA/Azalia PCM-geluid waar beschikbaar.
  • Dezelfde interpreter/JIT en GM wavetable als de Windows-versie.

Pixel Prose

Pixel Prose is inbegrepen als voorbeeld bij Thoreau BASIC en is ook beschikbaar als standalone EXE- en EFI-builds. De originele versies voor DOS, Commodore 64 en Amstrad CPC zijn beschikbaar via itch.io.

Project en Contact

De projectpagina en downloads zijn te vinden op itch.io.

Contact: Email: info@thoreaubasic.com

Bugrapporten, compatibiliteitsopmerkingen en vreemde BASIC-edgecases zijn welkom. Voor wie de ontwikkeling wil ondersteunen, is PayPal beschikbaar; er zijn geen beperkte functies of meldingen die de gebruiker storen.