# Sinclair ZX81

Il Sinclair ZX81 (negli USA Timex Sinclair 1000) è un home computer prodotto tra il 1981 e il 1984 da Sinclair Research. Nonostante la sua semplicità, ebbe un buon successo con più di 1 milione di esemplari venduti.

## Storia

Fu presentato nel 1981 come successore del Sinclair ZX80; il case fu disegnato da Rick Dickinson. Come per lo ZX80, il computer fu venduto per corrispondenza, come kit di montaggio a £ 49,95 oppure già assemblato a £ 69,95 o 100 dollari (negli USA), tuttavia in seguito Sinclair si accordò con la catena di distribuzione W.H.Smith per vendere lo ZX81 e i suoi accessori nei loro negozi. In Italia veniva venduto al prezzo di Lire 99.000 (+ IVA 18%), ed era distribuito da G.B.C..
Grazie a un accordo con la Timex Group USA, società che produceva per conto della Sinclair Research gli ZX81 sia come kit che come computer assemblato, la società statunitense poté esportare il computer negli USA a partire dal 1982 e venderlo come Timex Sinclair 1000: rispetto allo ZX81, ha una dotazione doppia di RAM (2 kB) e un'uscita video in standard NTSC.
Poiché nel mercato statunitense le vendite furono giudicate insoddisfacenti a causa della scarsità di memoria e della tastiera, Timex decise di modificare il computer, utilizzando un case simile a quello dello ZX Spectrum, compresa la tastiera in gomma, e di dotarlo di serie di 16 kB di RAM. Per accogliere la RAM aggiuntiva fu modificata la scheda madre, che vide anche il chip ULA saldato direttamente su di essa, senza l'uso di zoccolini. Il computer ricevette anche una ROM modificata che correggeva i bug del TS1000/ZX81. Un limite del computer era che la memoria poteva essere ulteriormente espansa solo di altri 16 kB mediante l'uso di un modulo esterno: tagli superiori di RAM richiedevano una modifica alla scheda madre. Con queste novità la macchina fu messa in vendita come Timex Sinclair 1500 nel 1983, negli USA, in Portogallo e in Polonia, seguito dal Timex Sinclair 2068.
Nonostante queste modifiche, il computer non vendette molto, principalmente perché fu messo in commercio troppo tardi: nel 1983, anno della sua presentazione, negli Stati Uniti il Commodore 64 stava già dominando la scena degli home computer, mentre in Europa lo ZX Spectrum rappresentò successivamente un'alternativa molto più interessante e a un prezzo di poco superiore.

## Caratteristiche

Come nello ZX80, il processore è un compatibile Z80 prodotto da NEC, operante ad un clock di 3,25 MHz, ma la ROM è accresciuta a 8 kB. Grazie alla maggior capacità, trova alloggio una versione riveduta del Sinclair BASIC che introduceva il supporto ai numeri in virgola mobile. La ROM era stata adattata da quella dello ZX80 da Steve Vickers per Nine Tiles Ltd, che aveva prodotto la prima versione del Sinclair BASIC. La nuova ROM è compatibile anche con lo ZX80 e Sinclair la offrì, insieme a una nuova maschera per la tastiera, come kit di aggiornamento per quel computer.
A differenza di molti computer a 8 bit del periodo, il cui interprete BASIC deriva dal Microsoft BASIC, il Sinclair BASIC dello ZX81 deriva da quello presente sullo ZX80, a sua volta sviluppato appositamente per quella macchina.
Il set di caratteri utilizzato non è quello ASCII, ma uno proprietario: il codice 0 è lo spazio; i codici dall'1 al 10 sono usati per i caratteri semi-grafici; i codici dall'11 al 63 corrispondono ai segni di punteggiatura, ai numeri e alle lettere (maiuscole). I codici dal 128 al 191 sono le versioni inverse dei primi 64 caratteri. Altri codici sono usati per le parole chiave del BASIC e per i caratteri di controllo quali NEWLINE. Non c'è una versione minuscola dei caratteri. I tasti inseriscono diversi caratteri grazie all'uso in combinazione con dei tasti speciali.
Un'altra caratteristica dello ZX81 è che durante il caricamento e il salvataggio dei programmi il segnale del registratore interferisce con il segnale video, dando luogo a immagini dello schermo tremolanti e disturbate. Un altro difetto legato al registratore è dato dal fatto che se il segnale non viene letto a un dato volume il caricamento del programma non va a buon fine, obbligando l'utente a ripetere il tentativo di lettura variando il livello del volume.

### Memoria

Il sistema di base integra 1 kB di RAM, usata per memorizzare le variabili di sistema, l'immagine dello schermo, il programma e tutti i dati. Lo schermo ha un'unica modalità testuale con 32 colonne per 24 righe: usando dei particolari caratteri semi-grafici del set di caratteri contenuto in ROM posizionati con il comando PLOT è possibile creare dei disegni con una risoluzione di 64×48 punti. Lo ZX81 usa una memoria video, lo screen buffer, ridimensionabile, che può essere aumentata o diminuita a seconda della memoria installata e/o del quantitativo di RAM libera.
La RAM di base può essere aumentata fino a 16 kB con un'apposita espansione esterna prodotta dalla stessa Sinclair. Alcuni produttori indipendenti realizzarono espansioni molto più grandi fino a raggiungere i 64 kB. È da notare che le espansioni di memoria più capaci spesso avevano problemi di raffreddamento e non era infrequente che l'involucro di plastica si deformasse. Oltre alla suddetta espansione di memoria, al computer è possibile collegare una mini stampante elettrostatica che utilizza una speciale carta rivestita da un sottile film di alluminio.

### Hardware

Lo ZX81 è concettualmente simile allo ZX80, ma tecnicamente molto differente: i tecnici Sinclair avevano infatti rivisto la circuiteria interna, e gran parte delle funzioni svolte dai chip in logica TTL dello ZX80 erano state integrate in un unico processore dedicato denominato ULA (tipo 2C184E o 2C210E), prodotto da Ferranti. La nuova scheda madre presenta così solo 4 o 5 chip: il microprocessore, l'ULA, la ROM da 8 kB, e 1 chip RAM da 8x1 kB oppure 2 chip da 4x1 kB, a seconda dei modelli. Il ridotto numero di componenti fece sì che la produzione dello ZX81 fosse più semplice ed economica, riflettendosi sul prezzo finale di vendita, inferiore a quello del suo predecessore.
Dispone di una semplice uscita TV, carica e salva i programmi tramite un normale registratore a cassette e presenta una particolare tastiera a membrana.

## Limiti e difetti

Per preservare la memoria, il testo visualizzato sullo schermo è salvato in stringhe di lunghezza dinamica: ad esempio, una riga dello schermo contenente 12 caratteri viene memorizzata con i soli 12 caratteri seguiti dal codice per una nuova linea, "NEWLINE"; inoltre, quando la memoria comincia a scarseggiare, diminuisce anche il numero di righe visualizzate sullo schermo. Usando questo modo di gestire la memoria, un programmatore può scrivere dei programmi che usano solo la parte superiore sinistra dello schermo per risparmiare RAM. Inoltre l'interprete BASIC memorizza le sue parole chiave usando token da 1 byte. Grazie a questi accorgimenti fu possibile far girare nella limitata memoria del computer diversi programmi e giochi, compreso un rudimentale gioco degli scacchi.
Nello ZX80 il segnale video era generato per gran parte dalla CPU: quando il computer eseguiva un programma, lo schermo si spegneva finché il software non si fermava in attesa di un input da parte dell'utente oppure non terminava la sua esecuzione. Lo ZX81 risolve in parte questo problema offrendo 2 modalità operative: la "FAST", in cui lo schermo si annerisce mentre girano i programmi (come nello ZX80), e la "SLOW" (circa il 25% della velocità originale), in cui l'immagine viene mantenuta sempre visibile, perché i programmi vengono fatti girare solo mentre il segnale video attraversa le zone vuote poste sopra e sotto l'area dello schermo (ossia quando il pennello video non deve disegnare nessuna immagine sullo schermo e la CPU può dedicarsi all'esecuzione del codice del programma).
Dato che l'immagine è generata principalmente dal software presente nella ROM dello ZX81, è possibile scavalcare la routine di gestione degli interrupt e generare completamente l'immagine video: alcuni giochi in "alta risoluzione" sfruttano tale possibilità gestendo tutti i singoli pixel disponibili (256×192).
Un bug della ROM presente in origine nello ZX81 colpiva il calcolo della radice quadrata di 0,25, che dava erroneamente il risultato di 1,3591409 invece del valore corretto di 0,5. Tale fatto attirò contro Sinclair Research molti attacchi da parte della stampa, perché lo ZX81 continuò a essere venduto con la ROM contenente il bug per molto tempo ancora dopo la scoperta dello stesso.

## Videogiochi

Presentandosi come computer a basso costo, lo ZX81 fu un mezzo economico per accedere a molti videogiochi in casa, e favorì la nascita dell'industria dei videogiochi britannica. I giochi prodotti furono probabilmente 500-1000, o più se si considerano quelli ancora realizzati da appassionati decenni dopo. Secondo una selezione fatta dalla rivista Retro Gamer, dieci dei più grandi giochi per ZX81 sono Galaxians (clone di Galaxian), 1K ZX Chess (gioco di scacchi che, pur mancando di alcune regole come l'arrocco, funziona sorprendentemente con la RAM minima), 3D Monster Maze (precoce survival horror in prima persona), Flight Simulation, Night Gunner, 3D Defender, Black Crystal, Mazogs, Frogger (conversione ufficiale della Cornsoft), The Gauntlet (clone di Scramble).

## Curiosità

Tra le curiosità legate allo ZX81 Sinclair va ricordato che nel luglio 1986 tutti i giornali dedicarono ampi spazi ad un avvenimento, per quell'epoca, veramente molto curioso: uno dei supercomputer Cray-1 usato dai militari francesi per effettuare analisi dei test nucleari di Mururoa e conservare informazioni sulle bombe atomiche francesi venne infatti "bucato" da tre intraprendenti giovani. Il particolare divertente di questa storia fu il computer usato per entrare nel Cray-1: un semplice Sinclair ZX81, da cui i ragazzi lasciarono questo messaggio: «Il vostro Cray-1 è stato momentaneamente sostituito da un semplice ed economico ZX81 Sinclair.»