Proprio come ai vecchi tempi: programmare in Basic con il C64
Retroscena

Proprio come ai vecchi tempi: programmare in Basic con il C64

David Lee
2/12/2022
Traduzione: Leandra Amato

Programmare con Basic era divertente per me da bambino. Con un'imitazione del C64, proverò se è ancora così.

Il Commodore 64: una leggenda dell'età della pietra dei PC compie 40 anni ed è in grado di affascinare ancora oggi. Questo non solo perché è legato a ricordi di gioventù, ma anche per il principio di questa macchina. Passare da un PC moderno alla vecchia cassa è come guidare un go-kart nell'era di Tesla. Zero comfort. Una modalità operativa semplice e di immediata comprensione. L'immediatezza con cui le azioni hanno un effetto. È tutto inutile, ma è molto divertente.

Se vuoi far rivivere il C64, hai molte opzioni. Il più semplice è utilizzarlo direttamente nel browser web. Oppure puoi scaricare l'emulatore VICE, che offre alcune funzioni in più. Ho fatto un ulteriore passo avanti e ho comprato il C64 Maxi. In linea di principio, anche questo è un emulatore, ma in una cassa molto simile all'originale. Viene fornito anche un joystick. I puristi preferiscono sicuramente un vero C64. Ma questa replica, che può essere comodamente collegata a uno schermo tramite HDMI, fa al caso mio.

Retro Games Il C64 "Maxi" (senza PSU) (INT)
EUR150,79

Retro Games Il C64 "Maxi" (senza PSU) (INT)

Retro Games Il C64 "Maxi" (senza PSU) (INT)
Retro gaming
EUR150,79

Retro Games Il C64 "Maxi" (senza PSU) (INT)

Non ho mai avuto un C64 e non occupa quindi un posto importante nei miei ricordi. Tuttavia, il dispositivo scatena in me nostalgia, perché il C64 si programma con Basic. Questo è il linguaggio di programmazione che ho imparato tra gli 11 e i 13 anni su un dispositivo molto strano chiamato Basictutor.

Voglio tornare a quei tempi con il C64 e programmare di nuovo in Basic. Mi chiedo cosa ne verrà fuori e se la magia di allora tornerà. Mi chiedo se sono ipermotivato come nel 1988. Con ingenuità infantile e megalomania giovanile, all'epoca programmai un simulatore di volo su un dispositivo che poteva visualizzare solo 15 caratteri e nessuna grafica.

Inizia prima di iniziare

In effetti, all'inizio la mia motivazione è quasi troppo alta: non vedo l'ora che il C64 Maxi venga consegnato. Invece, inizio a programmare sul mio Mac. E non lo faccio su un emulatore C64, che sarebbe stato più intelligente, ma prendo il primo interprete di Basic che trovo con Google. Si tratta di BBC Basic.

È vero che la programmazione è più facile in questo modo che su un C64. Infatti, con BBC Basic ho a disposizione alcune delle comodità di un ambiente di programmazione moderno: Debug con monitoraggio delle variabili o rinumerazione automatica delle righe. Ma c’è un problema: non tutti i Basic sono uguali, esistono innumerevoli varianti. Un programma che funziona con BBC Basic non funziona automaticamente sul C64.

La mia prima idea è un programma che pone all'utente problemi di aritmetica mentale. In BBC Basic, ottengo una prima versione funzionante in modo sorprendentemente rapido.

Trasferimento al C64 Maxi

Pochi giorni dopo finalmente arriva il C64 Maxi. Come faccio a inserire il mio programma nella scatola? Uno dei vantaggi rispetto al C64 originale è che il C64 Maxi ha quattro porte USB. Pertanto, posso utilizzare una chiavetta USB per caricare e salvare i dati.

I dati sono trasferiti al C64 Maxi tramite chiavetta USB
I dati sono trasferiti al C64 Maxi tramite chiavetta USB
Fonte: David Lee

Ma non è così semplice come sembra. Questo perché il C64 Maxi non può scrivere i file direttamente sulla chiavetta o leggerli. Funziona solo all'interno di un file immagine del disco con estensione .d64. A sua volta, non posso accedere al contenuto dell'immagine dal mio Mac.

La soluzione: installo l'emulatore VICE. Può inserire il testo dagli appunti nel terminale C64. E utilizza anche immagini D64. Quindi copio il testo da BBC Basic, lo incollo nell'emulatore e salvo il programma nell'immagine D64. Questo finisce sulla chiavetta USB, dove il C64 Maxi lo legge. Un po' scomodo, ma funziona!

Con «funziona» si intende solo il trasferimento dei dati. Il programma in sé non funziona. La mia motivazione ne risente leggermente; allo stesso tempo, però, sono determinato a risolvere questo enigma.

Adattamento al C64 e ulteriori modifiche

Prima devo convertire tutto in minuscolo, perché altrimenti la mappatura ASCII non è corretta – le lettere maiuscole diventano simboli grafici sul C64. Il problema successivo è che il C64 non conosce un'istruzione ELSE. Per quanto possa confondere, non fornisce nessun messaggio di errore, ma fa qualcosa che tuttavia non dovrebbe.

Il terzo problema: la generazione di numeri casuali funziona in modo diverso. Il comando RND genera un numero casuale in entrambi i dialetti Basic. Ma sul C64 è un numero tra 0 e 1, mentre sul BBC è un numero intero con il limite superiore del valore indicato tra parentesi.

Inoltre, sono presenti una serie di altre ottimizzazioni. Sono finalmente soddisfatto del mio primo programma quando questo arriva a 139 righe. E quindi già abbastanza confusionale. Infatti, il Basic non ha quasi nessuna possibilità di programmazione strutturata e ha una tendenza naturale allo spaghetti code.

Ma proprio perché il programma è diventato piuttosto lungo e sofisticato, sono orgoglioso del risultato. Proprio come allora, più di 30 anni fa. Attivare un programma fatto in casa è molto soddisfacente. Sono particolarmente orgoglioso del fatto che la difficoltà dei problemi matematici si adatta automaticamente in base all'abilità con cui si risolve.

Provalo

Qui puoi scaricare l'immagine zippata, decomprimerla e trascinarla nel campo di trascinamento dell'emulatore online.

Il programma funziona così:

  • All'inizio, si indica il numero di problemi aritmetici da risolvere.
  • Quindi si seleziona il tipo di fattura.
  • Se spesso i calcoli sono corretti, i compiti diventano più difficili. Al contrario, diventano più facili se si sbaglia più spesso.
  • Se si è ancora quasi del tutto a posto nel livello più difficile, il «gioco» finisce prima – non c'è bisogno di un ulteriore training 🥳

Questo era solo l'inizio, sicuramente preparerò altri programmi. Che ne dici di un simulatore di volo basato su testo?

A 50 persone piace questo articolo


User Avatar
User Avatar

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. 


Potrebbero interessarti anche questi articoli

Commenti

Avatar