Sinclair BASIC
Il Sinclair BASIC (dal nome del poliedrico Sir Clive Sinclair) è un dilaetto del [[linguaggio di programmazione BASIC utilizzato negli home computer ad 8 bit prodotti da Sinclair Research e Timex Sinclair. L'interprete del Sinclair BASIC fu sviluppato da Nine Tiles Networks Ltd..
Sviluppato nel 1979, nacque originariamente per essere incluso nei 4 KB di ROM del Sinclair ZX80 e, a causa di questo ridotto quantitativo di memoria, risultò essere nella sua versione iniziale una implementazione incompleta del BASIC standard ANSI del 1978. Il linguaggio evolvette da questa prima versione fino a quella quasi completa integrata nei 16 KB di ROM dello ZX Spectrum, passando per una versione intermedia inserita negli 8 KB di ROM dei computer Sinclair ZX81 e Timex Sinclair 1000.
Il Sinclair BASIC dello ZX Spectrum
Parole riservate
Sullo ZX Spectrum c'erano 86 parole riservate al Sinclair BASIC: queste includevano comandi (ce ne erano 50), funzioni (31) ed altre parole chiave (5), inserite attraverso uno sistema specifico delle macchine Sinclair. I comandi più comuni richiedevano la pressione di un singolo tasto: ad esempio, la pressione del tasto "P" causava l'apparizione dell'intera stringa PRINT
(comando). I comandi di uso meno frequente richiedevano delle sequenze di tasti più complesso: ad esempio, BEEP
richiedeva la pressione dei tasti CAPS SHIFT e SYMBOL SHIFT per accedere alla modalità estesa della tastiera (gli ultimi modelli integravano il tasto EXTENDED MODE che sostituiva questa combinazione), poi sidoveva tenere premuto il tasto SYMBOL SHIFT e contemporaneamente premere il tasto "Z". Le parole chiave erano indicate sulla tastiera con uno schema a colori che indicava la seuqenza di tasti SHIFT che era necessaria. Quello che segue è l'elenco delle parole chiave (quelle sottolineate sono funzioni):
- ABS, ACS, AND1, ASN, AT, ATN, ATTR, BEEP, BIN, BORDER, BRIGHT7, CAT2, CHR$3, CIRCLE, CLEAR, CLOSE#2, CLS, CODE3, CONTINUE, COPY, COS, DATA, DEF FN, DIM, DRAW, ERASE2, EXP, FLASH7, FN, FOR, FORMAT2, GO SUB, GO TO, IF4, IN, INK7, INKEY$3, INPUT, INT, INVERSE7, LEN, LET5, LINE, LIST, LLIST, LN, LOAD, LPRINT, MERGE, MOVE2, NEW, NEXT, NOT1, OPEN#2, OR1, OUT, OVER7, PAPER7, PAUSE, PEEK, PI, PLOT, POINT, POKE, PRINT, RANDOMIZE, READ, REM, RESTORE, RETURN, RND, RUN, SAVE, SCREEN$3, SGN, SIN, SQR, STEP, STR$3, TAB, TAN, THEN 4, TO, USR, VAL3, 6, VAL$3, VERIFY
I comandi presenti solo sullo ZX81 e sui suoi cloni, sul TS1000 e sul Timex Sinclair 1500 erano:
- FAST, SCROLL, SLOW, UNPLOT, GOSUB, GOTO (questi ultimi sullo Spectrum erano sostituiti da GO SUB e GO TO)
Sullo ZX Spectrum ogni parola riservata era assegnata ad un carattere il cui codice era compreso fra 165 e 255 della tabella ASCII che veniva espanso utilizzando facendo riferimento ad una tavola di token residente in ROM. Come conseguenza di ciò, in un programma le parole riservate occupavano giusto 1 byte di memoria, un metodo che garantiva un ottimo risparmio di memoria rispetto ai sistemi di memorizzazione tradizionali lettera-per-lettera (anche i computer Commodore utilizzavano questo metodo per conservare in memoria i programmi BASIC). L'interprete BASIC poteva, inoltre, riconoscere i comandi o le funzioni analizzando un singolo byte del listato.