
Nostalgia da nerd: programmare sullo ZX Spectrum
Lo ZX Spectrum, come molti computer degli anni '80, funziona con il linguaggio di programmazione Basic. Con un emulatore o una replica hardware, puoi programmare i tuoi giochi anche oggi. Tuttavia, il particolare inserimento del testo richiede una spiegazione.
La maggior parte di coloro che si sono seduti davanti a un computer negli anni '80 conoscono il Commodore 64. Meno conosciuto è lo ZX Spectrum. E questo, nonostante costasse molto meno pur avendo un concetto simile.
Come il C64, lo ZX Spectrum è stato rilasciato nel 1982 e ha la forma di una tastiera in cui è integrato il computer. All'epoca, di solito, un televisore a tubo catodico fungeva da schermo. Entrambi i computer operano con Basic e sono adatti ai giochi. Lo ZX Spectrum è complessivamente un po' più debole, ha ad esempio meno RAM (48 invece di 64 KB), un suono peggiore e una tastiera – per usare un eufemismo – economica. Ha avuto successo soprattutto nel suo paese d'origine, la Gran Bretagna, e in Spagna.
Un'altra cosa in comune: si possono programmare giochi in modo abbastanza semplice. Dato che l'ho già fatto con il C64 qui, ci provo anche qui.
The Spectrum: quasi come l'originale, ma con comfort moderni
Dalla fine del 2024, Retro Games ha rilasciato «The Spectrum», una replica dello ZX Spectrum. Il principio è lo stesso di The C64. Esternamente riprodotto il più fedelmente possibile all'originale, il computer all'interno funziona in modo completamente diverso dall'originale: un emulatore gira su un processore Arm.
Non me ne accorgo, l'emulatore si comporta in gran parte come l'originale. Le vecchie interfacce mancano, ma con il processore moderno ci sono USB e HDMI. Tramite una chiavetta USB si possono caricare tutti i giochi desiderati. The Spectrum viene fornito con 48 giochi integrati. Per ogni gioco si possono salvare quattro stati di gioco e c'è una funzione di riavvolgimento che permette di saltare a qualsiasi punto degli ultimi 40 secondi.
Passare all'ambiente di programmazione
Con «The Spectrum» è anche possibile scrivere i propri programmi. Per farlo, si passa alla modalità classica. Questa è piuttosto ben nascosta: con la barra spaziatrice (anch'essa un po' nascosta in basso a destra) si accede alle opzioni, poi con il tasto 6, che è anche la freccia in basso, si arriva a «Advanced options». Si conferma con M e alla selezione successiva si sceglie «Switch to classic mode». Nello stesso menu è anche possibile impostare l'avvio del computer direttamente in modalità classica.
Naturalmente, puoi programmare anche in un emulatore sul tuo computer normale. Entrambi hanno vantaggi e svantaggi, come vedrai subito. Come emulatore uso Fuse.
Come funziona la digitazione sullo Spectrum ZX
Lo ZX Spectrum ha un modo molto particolare di inserire il testo. Con la replica hardware hai la tastiera corrispondente, incluse tutte le etichette. Nell'emulatore devi lavorare con una tastiera normale, il che all'inizio è molto faticoso.
Nella modalità classica o con lo ZX originale, inizialmente vedi solo un'area grigia con un avviso di copyright. Se inizi a digitare, il cursore lampeggia e mostra una lettera. Ma non è la lettera che hai digitato per ultima. Questa lettera indica la modalità corrente.
- «K» sta per Keyword. In questa modalità, quando digiti una lettera, il computer non scrive la lettera, ma il comando Basic che si trova in bianco sul tasto corrispondente. Ad esempio, se digiti «P», sullo schermo appare «PRINT».
- «L» sta per Letters, quindi lettere. Digitazione normale in minuscolo.
- «C» sta per Capitals, quindi maiuscole. Si passa tra minuscole e maiuscole con Shift+2.
- «E» sta per Extended Mode, quindi modalità estesa. Con questa si possono attivare i comandi etichettati in verde. Se premi anche Shift, raggiungi le parole etichettate in rosso.
- «G» sta per Graphics Mode. Con i tasti da 1 a 8 si possono scrivere caratteri grafici ASCII per disegnare mosaici, blocchi, linee spesse e simili.
Le scorciatoie da tastiera per i comandi Basic esistono su molti computer degli anni '80. È insolito, tuttavia, che siano obbligatorie: non puoi digitare un comando Basic con singole lettere. Il computer non lo riconosce come tale; inoltre, non puoi nemmeno iniziare una riga con singole lettere. L'input inizia sempre con la modalità K o E.
All'inizio è piuttosto fastidioso. Perché anche se padroneggi la dattilografia a dieci dita, lavori con il sistema a due dita finché non sai finalmente a memoria dove si trova ogni comando. Da quel momento in poi, però, il concetto è efficiente. Questo è anche necessario con la tastiera in gomma, perché digitare è difficile.

Se lavori con l'emulatore, non vedi i comandi sulla tua tastiera. Qui ti aiuta la tabella sulla pagina Wikipedia di Sinclair Basic. Con ⌘-K posso visualizzare la tastiera dello Spectrum in Fuse, ma poi la digitazione non funziona più – probabilmente un bug. Per questo ho fatto uno screenshot.
Rinumerare automaticamente le righe
Lo ZX Spectrum non ha un comando per rinumerare automaticamente un programma e adattare tutti i riferimenti. Questo è importante: anche se inizialmente numeri i comandi a passi di dieci, può succedere che tra due righe tu abbia troppo poco spazio per il codice aggiunto successivamente.
Con il C64, scrivevo i programmi sul mio computer normale e poi li copiavo nell'emulatore tramite la clipboard per testarli. In questo modo, la rinumerazione sarebbe stata possibile anche con un software esterno. Tuttavia, l'inserimento tramite clipboard non funziona con l'emulatore Fuse. Per l'emulatore ho comunque trovato una soluzione alternativa. Sulla replica retro, no.
La soluzione alternativa: la ROM spagnola per lo Spectrum ZX 128 ha un comando NUMERO. Stranamente, non c'è un equivalente nella ROM standard. Questo comando rinumera l'elenco. Il primo argomento specifica la riga di partenza, il secondo l'incremento. La ROM spagnola può essere caricata in Fuse. Poiché lo Spectrum 128 è retrocompatibile, il programma può essere caricato, rinumerato e salvato di nuovo. Nella replica retro posso passare dallo Spectrum 48K al 128K, ma non posso caricare le mie ROM.
Altre peculiarità del Basic sullo ZX Spectrum:
- Il comando LET è obbligatorio. Una riga «x=1» non funziona, deve essere «LET x=1».
- I nomi delle variabili per array e stringhe possono essere lunghi solo un carattere. Per i numeri sono possibili nomi più lunghi.
- THEN dopo IF è obbligatorio. Allo stesso modo, GO TO dopo THEN non può essere omesso.
- Non esiste un'istruzione ELSE.
- Il comando DIM inizia con l'indice 1. In molti dialetti Basic inizia con 0.
- Sono possibili più comandi per riga e sono separati da due punti. Tuttavia, devi notare che l'interprete salta direttamente alla riga successiva in un'istruzione IF se la condizione non è soddisfatta.
La programmazione di «Mastermind»
Mastermind proviene dal mondo analogico ed è un gioco di logica per due persone del 1970. In realtà, per ogni round gioca solo una persona, l'altra fornisce solo feedback. Questo rende «Mastermind» perfetto per un adattamento al computer come gioco singolo.
Hermex Gioco di decrittazione Mastermind Gioco di plug-in Gioco di logica Gioco di decrittazione di codici
Inglese, 2 Giocatori
Per la combinazione di colori sono disponibili sei colori diversi. A questi si aggiungono il nero e il bianco per segnalare il feedback. Il nero significa che il pezzo ha il colore giusto ed è nella posizione corretta. Il bianco significa che questo colore è presente, ma non in quella posizione.
Otto colori, questo si adatta allo ZX Spectrum: può visualizzare otto colori in due livelli di luminosità ciascuno, quindi un totale di 16 colori. Tuttavia, con i colori più scuri le differenze sono difficili da distinguere e con il nero quasi impossibili. La differenza è più evidente con il bianco: nella versione scura è grigio. Ero contento di questo nono colore, perché lo sfondo doveva avere un colore diverso da quelli usati nel gioco.
L'unica difficoltà nella programmazione del gioco è stata l'algoritmo per il feedback corretto. I tentativi iniziali funzionavano correttamente solo in alcuni casi – ad esempio, quando ogni colore appariva solo una volta. L'algoritmo finale corretto controlla la risposta una volta per i colpi perfetti (nero) e poi di nuovo per i mezzi colpi (bianco). In questo modo, contrassegna tutti i colpi in modo che non vengano contati due volte.
Salvare e caricare il programma
Ho programmato il gioco nell'emulatore, principalmente per la possibilità di numerazione automatica delle righe descritta sopra. Alla fine, voglio comunque poterlo giocare sull'hardware Spectrum. Per fare ciò, creo un file tzx con il comando di menu «Media > Tape > Save As». Questo è un'immagine di cassetta – il mezzo di archiviazione comune per lo ZX Spectrum. Poiché anche The Spectrum è un emulatore sotto il cofano, può leggere i file tzx. Per caricare il programma su un vero ZX Spectrum degli anni '80, si dovrebbe creare un file audio dall'immagine con uno strumento ausiliario e poi riprodurlo.
Ecco come caricare un file tzx in The Spectrum:
- Inserisci la chiavetta USB con il file in uno slot libero.
- Naviga con il tasto 5 a sinistra tra i giochi finché non appare l'icona USB.
- Premi «M», quindi seleziona il gioco nel browser dei file e avvialo con «M».
- Digita «R» per inserire il comando «RUN» e poi il tasto Invio.
Ecco come caricare un file tzx in Fuse:
- Apri il file con «File > Open File».
- Digita «R» per «RUN» + Invio.
Qui trovi Mastermind come file tzx compresso. Un emulatore online per una prova rapida è JSSpeccy.
Il mio interesse per il mondo IT e lo scrivere mi hanno portato molto presto a lavorare nel giornalismo tecnologico (2000). Mi interessa come possiamo usare la tecnologia senza essere usati a nostra volta. Fuori dall'ufficio sono un musicista che combina un talento mediocre con un entusiamso eccessivo.
Curiosità dal mondo dei prodotti, uno sguardo dietro le quinte dei produttori e ritratti di persone interessanti.
Visualizza tutti





















