Thoreau BASIC
Taal
De taal is grotendeels compatibel met GW-BASIC. Programma's worden geladen en opgeslagen als ASCII.
- Numerieke typen: Inclusief 32- en 64-bit integers (
%,&,&&), single en double precision, en strings. - Regelnummers: 32-bit breed.
- Control flow: Ondersteuning voor
DEF FN,GOSUB,ON…GOTO/GOSUB,DATA/READ/RESTOREen overige control flow-functies. - Foutafhandeling:
ON ERROR GOTO,RESUME/RESUME NEXT/RESUME n,ERL,ERR,ON BREAK GOTO.
Grafica
- Basisfunctionaliteit:
PSET,LINE,CIRCLE,PAINTen aanverwante functies op de native framebuffer-resolutie.PSET,LINEenPAINTkunnen worden gebruikt met 16-kleuren EGA of 24-bit R,G,B-syntaxis. - Kleuren: 16-kleuren EGA-palet en 24-bit kleur via
COLOR r,g,b(evenzo voor de achtergrond). - Bitmaps:
LOADBMP slot, file$leest een 24/32-bpp Windows .BMP-bestand in een datasegment-slot.BITBLT slot, x, y [,key]blitst de bitmap, met een optionele transparante kleurcode voor sprites.- Variabelen:
GRAMAXX/GRAMAXY(grafisch) enTXTMAXX/TXTMAXY(tekst) zijn leesbare variabelen die de werkelijke grenzen bevatten. - Schermresolutie:
SCREEN x,yvraagt een modus aan.SCREEN 1024,768werkt op vrijwel elke machine en is meestal de boot-modus; voor een scherper beeld kan de native resolutie worden gebruikt.GRAMAXX/GRAMAXYworden bijgewerkt na eenSCREEN-commando.
Tekst
- Lettertype: IBM VGA 8×16 font met een soft-scrolling console.
- Tekstvensters:
WINDOW @n, x1,y1,x2,y2creëert een regio. De commando'sPRINT @n,CLS @n,LOCATE @nenCOLOR @nwerken binnen dit venster, waarbij elk venster zijn eigen cursor en pen/papier-instellingen heeft. Een gewonePRINTbehoudt de controle over het hele scherm.
Geheugen en Hardware
- Geheugenmodel: Een three-pointer geheugenmodel zonder 64KB-plafond. Indien gewenst kunnen arrays miljarden elementen bevatten.
- Hardware-interactie:
PEEK,POKE,VARPTRen leesbare pointers naar de machine:LOMEM,HIMEM,FREEBOT,FREETOP,SCRNADR,GRAPITCH. - Formattering: 64-bit
HEX$/OCT$. - Schijf-I/O:
SAVE,LOAD,MERGE,FILES,KILL, direct draaiend op het UEFI Simple File System. - Bewerking: Volledig scherm
EDIT, automatische regelnummering (AUTO) enRENUM(nummert alleGOTO/GOSUB/THEN/ELSE/ON…/RESTORE/RESUME/ERLreferenties opnieuw en herschrijft deze). - Timing: De variabele
TIMERleest een precisieklok van de invariante TSC van de CPU.
Versiegeschiedenis
Versie 1.2
- Nieuwe commando's:
CHDIR,MKDIR,RMDIR,FIELD,GET#,PUT#,LSET,RSET. - Nieuwe functies:
CVI,CVS,CVD,MKI$,MKS$,MKD$,TAB(),SPC(). - Overig:
OPTION BASE,ERASE,NAME old$ AS new$,MERGE,DELETE,CSGN,CDBL,ERROR n,TRON,TROFFen deSCREEN ()functie.
Versie 1.1.3
MID$kan nu worden gebruikt voor toewijzingen.- Opgelost:
ERLwerd niet opgeslagen en er werd geen foutregel getoond wanneer een programma met een fout stopte. - Opgelost: De backspace-toets werkte niet correct bij
INPUT.
Versie 1.1.2
- Opgelost: De Windows-versie stopte abrupt wanneer het beschikbare RAM minder dan 4 GB was.
- BASIC-regels zijn nu gefixeerd op 244 tekens (exclusief regelnummers).
- Opgelost: Een bug in
EDIT/LISTwaarbij een lege regel 0 werd getoond als het regelnummer groter was dan 32767.
Versie 1.1.1
- Bare metal: Trage scrolling en schrijfacties naar de framebuffer zijn hersteld.
- Windows: Autostart toegevoegd. ThoreauBASIC kan nu worden aangeroepen met een
.basbestandsnaam als bijlage om direct te starten.
Versie 1.1
- Prestaties: Aanzienlijk sneller door een token-cache per regel, een precedence-climbing expressie-evaluator en variable-slot caching. Compute-intensieve programma's zijn ongeveer 25× sneller.
- De meegeleverde Mandelbrot-demo versnelde van ~230s naar minder dan 10s.
- Conway's Life draait nu interactief.
- Lunar Lander draait nu op een vaste 100 fps.
- Nieuwe functies: Bitmaps (
LOADBMP/BITBLT), tekstvensters met kleur per venster,ON ERROR/ON BREAK/RESUME,ERL/ERR,RENUMenPEEK/POKE/VARPTR. - Correcties: Exacte 64-bit integer-berekeningen (overflow wordt gepromoveerd naar double), schonere nummerformattering en volledige breedte
HEX$.
Downloads
- v 1.2, BASIC64.efi (111 kB): Hernoem dit naar
BOOTX64.EFIen plaats het in\EFI\BOOTom op te starten. - v 1.2, Virtual Harddisk (12 MB): Gebruik dit om op te starten binnen een Virtual Machine.
- ThoreauBASIC-Windows-1.2.zip (1.3 MB): De Windows-versie van de interpreter.
Groetjes,