![]()
TINY BASIC: UN INTERPRETE BASIC SCRITTO IN BASIC TINYBASIC: A BASIC INTEPRETER WRITTEN IN BASIC |
Quando a metà degli anni '70 iniziarono ad essere prodotte le prime schede a microprocessore (6502, 8080 ecc.) con pochissima memoria a disposizione (tra 1K e 4K di RAM) si pose il problema della programmazione con un linguaggio che non fosse il solito Assembler e che potesse essere ad alto livello: la risposta fu Tiny Basic cioè un Basic derivato grosso modo dal Dartmouth Basic ma con sole variabili intere, un set di istruzioni semplificato e possibilità di collegamento col linguaggio macchina. Tom Pittman della ITTY BITTY COMPUTERS Company riuscì nell'impresa di compattare in soli 2K un interprete Tiny Basic, cosicchè sulla maggior parte dei sistemi restavano altri 2K di memoria, corrispondenti a circa 100 linee di programma con le quali si potevano realizzare anche software abbastanza complessi. Le prime versioni furono per i microprocessori 1802 per il COSMAC della RCA Corporation, 6502 per il KIM-1 della MOS Technology (poi acquisita dalla Commodore) e 6800 per il MIKBUG della Motorola. Seguirono poi altre versioni per l'ELF-II della Netronics, per lo Z-80 del Nascom (*) per i microprocessori 8080 (scritto in origine da Li Chen Wang e apparso sullla rivista "Doctor Dobb's Journal of Computer Calisthenics & Orthodontia" nel Maggio 1976) e 8086, anche se probabimente i Tiny Basic più famosi restano l'Integer Basic dell'AppleII e quello del Sinclair ZX80 uscito nel 1980 e che poi fu sostituito dall'interprete BASIC dello ZX-81 (che era disponibile in kit come aggiornamento anche per lo ZX80). In tempi più recenti sono uscite versioni scritte da appassionati per i palmari della Palm e per il microcontroller Arduino (scritto in C) e avendo visto quest'ultime mi sono deciso a scrivere un Tiny Basic in Basic (più precisamente usando il classico Quick Basic 4.5) rispettando il più possibile il progetto originario: l'unica parte che è stata tolta è quella realtiva alla funzione USR di interfaccia con il linguaggio macchina mentre sono state aggiunte alcune funzionalità minime per integrarlo con MS-DSOS ed è stata migliorata la diagnostica. Dopo alcune versioni sperimentali, l'obiettivo è stato raggiunto nel senso che TinyB (questo il nome dell'interprete) ha fatto girare i programmi originali praticamente senza modifiche (vedi ad esempio life.tib). Nella figura sotto l'help dell'interprete (versione a 64 bit):
Un esempio di programma TinyBasic che calcola i numeri di Fibonacci è il seguente: : load fibo e produce il seguente output: : run |
Download ed Installazione |
Per il download basta cliccare sul
link che segue:
TINY BASIC INTERPRETER
E' sufficiente poi scompattare il tutto in una cartella qualsiasi: per lanciare l'interprete basta far eseguire TINYB5.EXE (per la versione a 16 bit) oppure TINYB5-64.EXE (per quella a 32/64 bit). TINY BASIC is available in 16 bit or 32/64 bit version:
|
(*) Per il Nascom sono riuscito a reperire ben tre versioni di Tiny Basic (da 2K e da 3K RAM) che sono state fatte girare sotto l'emulatore VNASCOM. Addirittura per il Nascom esisteva anche un compilatore Integer Pascal (!). Su questa macchina e il suo emulatore torneremo presto. |