Il Beta BASIC era un interprete BASIC sviluppato per gli home computer Sinclair ZX Spectrum da Andrew Wright e commercializzato da BetaSoft, una società da lui fondata. BetaSoft curava anche la pubblicazione di una newsletter/rivista a cadenza periodica denominata "BetaNews", che rappresentava uno dei principali forum del tempo per i programmatori dello Spectrum più esperti.[1]

Sviluppato inizialmente come estensione del Sinclair BASIC crebbe nel tempo fino a diventare un interprete vero e proprio.

Caratteristiche

Il Beta BASIC era un programma del tipo TSR (Terminate and Stay Resident) che si sostituiva completamente all'interprete Sinclair BASIC dello ZX Spectrum che, come in molti altri microcomputer dell'epoca, era anche il suo sistema operativo, offrendo un'interfaccia a riga di comando (CLI, Command Line Interface) e l'editor a schermo per i programmi, oltre che rappresentare l'unico modo per gestire le risorse del computer.

Il Beta BASIC offriva nuovi CLI ed editor che supportavano sia il particolare modo di inserimento dei comandi BASIC dello ZX Spectrum basato sulla pressione di singoli tasti sia la classica digitazione lettera per leggera delle parole chiave, che risultava molto più rapida nel caso in cui l'utente avesse collegato al computer una tastiera completa. Inoltre il Beta BASIC estendeva il sistema a singoli tasti mappando i caratteri "grafici" dello Spectrum con nuove combinazioni. Per passare tra le varie modalità l'utente doveva semplicemente premere la barra spaziatrice: questa azione provocava il cambio di stato del cursore fra "K" (per Keyword), la modalità a parole chiave, "L" (per Lowercase), la tastiera normale con lettere minuscole, e "C" (per Capital), la tastiera con le lettere maiuscole. L'istruzione KEYWORDS poteva essere usata per alterare lo stato di inserimento, ad esempio disattivando la modalità "K".

Un'altra caratteristica del Beta BASIC era la possibilità di formattare il testo durante la digitazione. Anche il Sinclair BASIC permetteva questa possibilità ma il Beta BASIC lo faceva in automatico così che ad esempio era possibile accorgersi meglio della chiusura dei cicli usando l'indentazione delle righe. Un'altra caratteristica era l'evidenziatura della linea corrente e la possibilità di muovere il cursore su e giù, a destra ed a sinistra, un'evidente aiuto durante la scrittura di lunghe linee di codice.

Il Beta BASIC era un interprete nel vero senso del termine, sostituendosi completamente a quello dello Spectrum residente in ROM, che usava come libreria effettuando delle chiamate a delle funzioni che non erano replicate nel codice del Beta BASIC principalmente per non consumare troppa memoria: l'interprete girava infatti come programma ed utilizzava parte dei 48 KB di RAM dello Spectrum, lasciando liberi i restanti per i programmi dell'utente.

Differenze con il Sinclair BASIC

Rispetto agli interpreti contemporanei, il Beta BASIC era molto sofisticato: supportava la programmazione strutturata con funzioni e procedure indicate con nomi e variabili locali, permettendo programmazione ricorsiva.[2] Anche se l'editor supportava i numeri di linea, essi non erano necessari: esisteva infatti una particolare modalità operativa che saltava completamente la loro visualizzazione. Infine, esso offriva operazioni sugli array e comandi per l'accesso ai file su disco o cassetta.

In termini di prestazioni esso surclassava molti altri BASIC ad 8 bit degli anni '80 avvicinandosi alle capacità del QuickBASIC 4.5 o del QBASIC di Microsoft, ambienti BASIC che compariranno più tardi per i futuri computer a 16 bit.

Sugli Spectrum con 128 KB di RAM il Beta BASIC dalla versione 4.0 in poi offriva le funzionalità per accedere alla memoria extra della macchina gestendola come un RAM disk:[3] in esso i programmatori potevano salvare i propri programmi per caricarli successivamente, memorizzare blocchi di memoria o immagini dello schermo. Il Beta BASIC permetteva anche di creare nel RAM disk degli array di dati virtualmente grandi fino ad 64 KB, conservando i 30 KB di RAM del computer (ciò che restava dei 48 KB iniziali dopo l'avvio dell'interprete) per il programma dell'utente, un quantitativo significativo per gli standard dell'epoca: quasi tutti gli altri BASIC ad 8 bit dell'epoca erano generalmente limitati a 64 KB, tra programma e dati.

Nuove funzionalità

Il Beta BASIC gestiva direttamente lo schermo dello Spectrum (256×192 pixel) eliminando le restrizioni dello schermo a 32 colonne in modalità testo dell'interprete Sinclair: esso infatti offriva dei font scalabili compreso uno speciale font largo solo 4 pixel ma ancora ben leggibile che permetteva all'editor del Beta BASIC di visualizzare il testo su 64 colonne, andando quindi a competere con gli editor di alcuni dei computer ad 8 bit che comparivano in quel periodo sul mercato, che introducevano una nuova modalità ad 80 colonne. Esisteva anche una modalità con un numero di colonne ancora maggiore, 85: essa però era limitata dal fatto che non esisteva stacco fra i caratteri per cui la leggibilità del testo ne risentiva molto, anche se permetteva l'adattamento di programmi BASIC nati per funzionare con interfacce adattate all'uso sugli schermi ad 80 colonne.

La dimensione del testo poteva essere controllata via software per cui un programma poteva usare una parte dello schermo a 64 colonne, una parte a 32 colonne o dimensioni intermedie più grandi o più piccole.

Ne furono realizzate anche versioni speciali per gli utenti dello ZX Interface 1 e dello ZX Microdrive nonché per altre interfacce non Sinclair quali il DISCiPLE ed il +D.

Quando uscità l'Amstrad Spectrum +3 si pensò anche a realizzarne una versione per tale computer ma il progetto fu accantonato.

Limiti dell'interprete

Il Beta BASIC soffriva di alcuni limiti. Come tutti i microprocessori ad 8 bit, anche lo Zilog Z80 dello Spectrum poteva gestire direttamente solo 64 KB di memoria: di questi, 16 KB erano la ROM che conteneva l'interprete Sinclair BASIC, lasciando indirizzabili solo 48 KB di RAM. Per memorizzare le informazioni video il sistema utilizzava parte di questa RAM, usata anche per salvare alcune strutture dati dell'interprete. Il Beta BASIC occupava circa 11/12 KB della restante memoria per cui alla fine restavano liberi per l'utente 20/30 KB di RAM.

Note

  1. ^ Philip M. Parker, Advancements: Webster's Quotations, Facts and Phrases, ICON Group International Inc., 2008, p. 473, ISBN 0-546-67381-3.
  2. ^ John Gilbert, Sinclair User n° 34 (JPG), in Sinclair User, n. 34, 01/1985, p. 50.
  3. ^ ZX Computing 8706 (JPG), in ZX Computing, n. 8706, 06/1987, p. 27.

Voci correlate

Collegamenti esterni

  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica