Beta BASIC: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
←Nuova pagina: {{S|informatica}} Il '''Beta BASIC''' era un interpete BASIC sviluppato per gli home computer Sinclair ZX Spectrum da ''Andy W... |
m WPCleaner v2.01 - Fixed using Wikipedia:Check Wikipedia (Entità con codice nominale) |
||
(37 versioni intermedie di 13 utenti non mostrate) | |||
Riga 1:
{{Software
{{S|informatica}}▼
Il '''Beta BASIC''' era un [[interprete (informatica)|interpete]] [[BASIC]] sviluppato per gli [[home computer]] [[Sinclair]] [[ZX Spectrum]] da ''Andy 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.▼
|Logo =
|Screenshot =
|Didascalia =
|Sviluppatore = BetaSoft
|UltimaVersione = 4.0
|DataUltimaVersione = [[1987]]
|UltimaVersioneBeta =
|DataUltimaVersioneBeta =
|SistemaOperativo = Sinclair ZX Spectrum
|Linguaggio =
|Genere = [[interprete (informatica)|interprete]]
|Licenza = [[software proprietario|proprietario]]
|SoftwareLibero = no
|Lingua =
|SitoWeb =
}}
▲Il '''Beta BASIC'''
Sviluppato inizialmente come estensione del [[Sinclair BASIC]] crebbe nel tempo fino a diventare un interprete vero e proprio.
==Caratteristiche==
[[Categoria:BASIC]]▼
Il Beta BASIC era un programma del tipo [[Terminate and Stay Resident|TSR]] (''Terminate and Stay Resident'') che si sostituiva completamente all'[[interprete (informatica)|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 (informatica)|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 lettera delle parole chiave, che risultava molto più rapida nel caso in cui l'utente avesse collegato al computer una [[tastiera (informatica)|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 <code>KEYWORDS</code> poteva essere usata per alterare lo stato di inserimento, ad esempio disattivando la modalità "K".
▲[[cs:Beta BASIC]]
[[en:Beta BASIC]]▼
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 [[Read-only memory|ROM]], che usava come [[Libreria (software)|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 [[kilobyte|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 [[algoritmo ricorsivo|ricorsiva]].<ref name="sinclairuser34">{{RivistaVG|su|34|50|1|1985}}</ref> 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 1980|anni ottanta]] 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]]:<ref name="zxcomputing8706">{{cita pubblicazione|url={{RivistaVG/WoS}}magazines/ZXComputing/Issue8706/Pages/ZXComputing870600027.jpg|titolo=ZX Computing 8706|numero=8706|pagina=27|rivista=ZX Computing|data=06/1987}}</ref> 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 [[interfaccia (informatica)|interfacce]] non Sinclair quali il [[DISCiPLE]] ed il [[+D]].
Quando uscì 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 [[microprocessore|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.
Il Beta BASIC non possedeva un proprio [[compilatore]] e quelli esistenti per il Sinclair BASIC, come l'[[HiSoft]] BASIC, non erano compatibili non riconoscendo le parole chiave aggiuntive del Beta BASIC: l'unico modo per sfruttare tali compilatori con il Beta BASIC era quello di scrivere del codice senza utilizzare i nuovi comandi.
Come il Sinclair BASIC, anche il Beta BASIC supportava solo variabili ed operazioni in [[numero in virgola mobile|virgola mobile]], un limite rispetto ad altri BASIC dell'epoca che supportavano anche i [[numero intero (informatica)|numeri interi]]. Un altro limite del Beta BASIC era la possibilità di utilizzare solo nomi di variabili lunghi 1 lettera.
L'assegnazione dei nomi alle procedure avveniva nel Beta BASIC senza l'obbligo di utilizzare la parola chiave <code>PROC</code>, obbligatoria invece nell'unico altro BASIC ad 8 bit che integrava il supporto per la programmazione strutturata, il [[BBC BASIC]]. Grazie a tale caratteristica si potevano creare nuove parole chiave, estendendo quelle dell'interprete. Ma il BBC BASIC, nonostante non offrisse tale possibilità, forniva una velocità di esecuzione maggiore: esso era uno dei più veloci interpreti dell'epoca. Il Beta BASIC non era particolarmente veloce, anche se rimpiazzava alcune routine dell'interprete in ROM con altre più veloci, ad esempio quelle per il tracciamento grafico di cerchi ed archi. Un'altra carenza rispetto al BBC BASIC era il supporto all'esecuzione di [[codice macchina]] inserito nelle linee dei programmi BASIC.
==Sviluppi successivi==
Durante lo sviluppo della loro macchina [[SAM Coupé]], gli ex-dipendenti Sinclair e fondatori di [[Miles Gordon Technology]] Alan Miles e Bruce Gordon contattarono BetaSoft chiedendo lo sviluppo di un interprete BASIC per il nuovo computer. Il risultato fu un linguaggio completo, senza utilizzo di routine esterne come nel caso del Beta BASIC che usava quelle del Sinclair BASIC e con una struttura differente rispetto a quest'ultimo. Il nuovo linguaggio fu chiamato [[SAM BASIC]]: risultava largamente compatibile con il Beta BASIC, rispetto al quale operava in modo simile, tranne che nelle routine che accedevano all'hardware del SAM, come quelle per gestire lo schermo o la memoria estesa. BetaSoft rilasciò poi un'estensione al SAM BASIC, chiamata [[MasterBASIC]].
==Note==
<references/>
==Voci correlate==
==Collegamenti esterni==
* {{WoS|7956}}
▲[[Categoria:BASIC]]
|