
C64 Music Keyboard
10 Marzo 2025Light Scanner Controller V3 è un software per controllare le luci tramite il Commodore 64, programmato da Mirco Gaggiottini nel 1994.
Potete vedere il suo funzionamento in questo video:
La scheda per il controllo delle luci è su GitHub:
C64-light-controller
Ora vediamo un piccolo ripasso su come funziona il tutto e poi entriamo nello specifico sul software.

L’interfaccia, al tempo diversa ed inserita in una scatola per evitare di toccarla, è collegata nella porta utente del C64 pilota dei triac o relè a stato solido che accendono le lampadine colorate. All’epoca (anni 90) usavo le classiche da 60w con calotta colorata.
Il computer è isolato dalla tensione che pilota le lampade tramite dei foto-accoppiatori.
ATTENZIONE! Se usate il progetto per lampade a 110V-230V. Questa è una tensione pericolosa e occorre fare molta attenzione ed isolare tutta la parte in tensione per evitare di farsi male!.
Se usate lampade LED o comunque a bassa tensione 12V-24V non ci sono problemi.
Il programma
Iniziamo dall’ultima versione, questo è il programma più completo che avevo realizzato all’epoca (1994). All’avvio occorreva usare una chiave hardware (un connettore inserito nella porta joystick che faceva delle combinazioni impossibili da fare con un joystick), ora è stata rimossa e basta premere un tasto per andare avanti. Noterete anche diversi errori di scrittura che non sono mai stati coretti e rimarranno come in origine.
Per caricare il programma non si può usare load”*” ma va scritto il nome completo perché il loader carica lo stesso nome successivamente con “1” nel primo carattere e non troverebbe nulla.



Ecco come si presenta il programma:
A sinistra abbiamo una ragazza che parlerà scrivendo sotto alcune frasi prese a caso da una serie di dati 😀
Questo ovviamente non serve a nulla se non a divertirsi nel vedere cosa può uscire fuori, all’epoca c’erano inseriti alcuni dei miei amici e frasi che dicevano.
Sempre nel riquadro giallo abbiamo i tasti da poter utilizzare per far partire delle sequenze di gioco (ES. Q = Strobo tutte le luci lampeggiano contemporaneamente).
Una volta premuto il tasto dell’effetto questo verrà visualizzato sotto con degli sprite che tra l’altro possiamo cambiare usando un programma a parte chiamato “grafik-change”.
Nel disco originale era stato messo nel lato B ed occorreva girare il disco all’avvio del programma, ora è tutto in un lato.
Quando stiamo eseguendo un gioco di luci, non possiamo premere altri tasti se non quello per uscire (freccia sinistra) o i numeri da 1 a 0 (zero) per cambiare la velocità del gioco. La nostra ragazza non dirà nulla!. Tutto questo è confermato anche dalla scritta WORK in basso nello schermo (riquadro rosso). Quando si preme il tasto ← (freccia sinistra) si esce dalla modalità controllo effetto e se ne può selezionare un altro con il relativo tasto, ora il vecchio effetto resterà in esecuzione ma non potremo cambiare la velocità. Questo serve per darci tempo di selezionare qualcos’altro senza lasciare tutto al buio.
Il riquadro verde era predisposto per un possibile controllo scanner che non è mai stato fatto. All’epoca Simone, un mio compagno di scuola doveva realizzarne uno fatto in casa!
Il tasto F è molto importante perché in questa versione funziona al contrario, se non lo si attiva, l’effetto sarà talmente veloce nel accendere e rispegnere la luce che non vedremo nessuna lampadina accendersi.
“IN QUESTA VERSIONE (F) LIGHT DEVE ESSERRE 1” o non verrà pilotata l’uscita!!!
Ci sono altre funzionalità come A per usare effetti random, non avremo controllo su nulla, ne velocità ne tipo di effetto, sarà il C64 a scegliere l’effetto, la velocità e la sua durata. per uscire da questa modalità dobbiamo premere “*”, verrà indicato al posto della scritta A = AUTO.
Possiamo usare il joystick in porta 2 per comandare le luci, scegliamo l’effetto 4 e muovendo il joystick nelle varie direzioni o premendo fire faremo un gioco luci immediato a velocità fissa e quando lasceremo la leva si spegnerà tutto. In questa modalità possiamo usare il tasto “O” per OLD in modo da lasciare l’ultimo effetto usato anche senza nessuna direzione selezionata. Il tasto freccia a sinistra esce da questa modalità.
Rimane da vedere un’ultima cosa, il sequencer!. Si possono comporre effetti tramite un programma esterno chiamato “sequencer” che permette di creare dei giochi personalizzati frame by frame. Questi giochi vengono poi salvati sotto forma di codice a 4 caratteri, possono essere caricati in memoria fino ad un massimo di 3 giochi e selezionati uno specifico o random. Una volta salvati sul disco possono essere caricati tramite il tasto 1 (scrivendo dir si vedrà la directory del disco) e possono essere eseguiti con il tasto 3. Il tasto 2 serve per cancellare la memoria e ricaricare altri giochi di luce personalizzati.
Attualmente il programma richiede la start-key, una combinazione con il joystick (alto-basso e sinistra contemporaneamente), questa può essere fatta facilmente con un emulatore che permette di usare direzioni opposte contemporaneamente oppure su real-hardware va creata una porta db9 femmina con le direzioni citate messe a GND. Oppure va craccato il programma, ma lo avevo compilato con AustroComp E1, ma de-compilandolo mi da errore su 2-3 righe ed il programma crasha dopo aver salvato una sequenza. Per ora lo lascio originale e appena trovo un modo per farlo funzionare correttamente modifico il file e l’articolo.
Per capire come funziona il sequencer potete vedere qui sotto sul programma versione 2, era identico.


Puoi scaricare il programma nella pagina download oppure usando questo pulsante
1993 - Controllo Luci V2
Tornando indietro nel tempo, l’anno prima ho creato questo software che era una notevole miglioria della prima versione perché utilizzava routine in assembly per velocizzare l’esecuzione dei giochi e soprattutto fare in modo che durante la scelta del successivo effetto rimanesse in esecuzione il vecchio gioco selezionato (proprio come funziona la versione 3).
Questo programma invece di avere una ragazza che parla ha 3 personaggi presi da una rivista techno dell’epoca e Dylan di Beverly Hills 90210. Ragazzi che dire era l’epoca di quelle serie TV. Ho passato Twin Peaks, X-Files e Beverly Hills 90210 poi ho abbandonato le serie.
Questi erano i tre tipi che parlavano tra loro e con chi stava davanti al computer, giusto per cazzeggiare.
Anche qui avevamo la protezione all’avvio ma questa volta era un codice di due caratteri da trovare in una tabella, tipo Maniac Mansion, ve lo ricordate?



Ovviamente in questa versione ho tolto la protezione, potete scrivere quello che volete. Anche qui c’è il software per creare 3 sequenze di luci personalizzate e poterle poi caricare nel programma principale. Qui la protezione è a monte, quindi una volta caricato il programma si sceglierà se creare una sequenza o caricare il programma di controllo luci.
Il programma per creare le sequenze luci è molto simile all’ultima versione, cambia sostanzialmente la grafica, ma anche qui dovremmo indicare prima la memoria che vogliamo usare 1,2,3 e poi dare un nome al file di 4 caratteri e premere return per andare avanti in questa schermata. Qui dobbiamo premere spazio e iniziare a comporre la nostra sequenza accendendo le luci con i tasti da 1 a 8, una volta pronto il nostro fotogramma di luci premiamo invio per andare nella posizione successiva dove disegneremo un altro fotogramma della sequenza di luci. Premendo il tasto freccia sinistra si salva il file e si può continuare a creare altre sequenze o uscire. La velocità del fotogramma non può essere scelta, verrà gestita dal programma delle luci come unica velocità per tutta la sequenza. Qui le sequenze possono essere salvate sullo stesso disco del programma. Il file avrà estensione .alc(x) (automatic light controller e il numero della memoria usata es .alc2, .alc2 o .alc3)


Veniamo ora al programma di controllo luci.
La schermata iniziale non poteva non essere uno dei personaggi del programma.

Una volta capito il funzionamento dell’ultima versione, questa è identica.
Abbiamo i tasti Q,W,E,R,T,Y per selezionare un gioco già impostato nel programma. Questo metterà il nostro programma in modalità WORK, i personaggi non parleranno più e potremo gestire la velocità dell’effetto con i numeri da 0 a 9, zero fermerà l’effetto lasciando le luci accese come nel frame attuale (cosa che non succedeva nell’ultima versione). Per uscire da un programma c’è sempre il tasto freccia a sinistra. Il tasto “A” mette il programma in automatico con luci random e può essere interrotto con la pressione del tasto “*” che non è indicata sa nessuna parte!
Per caricare un sequenza fatta un precedenza occorre premere il tasto 1, con il 2 si cancella tutto quello caricato e con il 3 si può eseguire la memoria 1,2,3 o R per un effetto random tra le memorie caricate.
Il tasto “F” NON VA USATO! al contrario dell’ultima versione che era invertita, in questo programma non dobbiamo usare la funzione Light perché non accenderebbe nessuna luce.
Altri tasti erano predisposti ma non sono mai stati completati, come 5,6,7,8. Il tasto 4 permette di usare il joystick per eseguire un effetto pre-impostato, come nell’ultima versione, se premiamo il tasto O (OLD) rimarrà in esecuzione l’ultimo effetto anche se non tocchiamo il joystick, freccia a sinistra per uscire.
1992 - Turn On The Lightbulb
Continuiamo a viaggiare nel tempo ed arriviamo al 1992 quando ho creato il primo programma per il controllo luci.

La storia di quest’avventura è partita da un mio compagno di scuola, anzi un fratello del mio compagno di scuola che un giorno si presentò a casa mia con un progetto da realizzare. Mi portò una scheda elettronica fatta in casa, che si poteva connettere alla porta utente del C64 e poteva comandare delle lampade collegate alla tensione di rete 230V.
Questa scheda necessitava di un software per poter essere usata, mi diedero un esempio grezzo di come veniva pilotata l’uscita della porta utente, un programma molto semplice in Basic e da li sono partito per realizzare un programma completo che potesse essere semplice nella gestione di queste luci usate come in discoteca.
Questa prima versione era scritta interamente in Basic ed era, come si può immaginare molto lenta, tanto che mi chiesero successivamente di far accendere 2-3 lampadine tra un cambio di programma e l’altro. Già quando si usciva da un effetto rimaneva tutto al buio fino a che non si premeva un altro effetto di luci e nel cambio ci metteva un secondo o massimo due, ma se non si era veloci nel premere una nuovo gioco di luci si potevano perdere molti più secondi..
Allora aggiunsi una funzione (tasto X) per attivare o disattivare “delle luci di cortesia”, quattro lampade che si accendevano fisse quando non c’era nessun effetto selezionato.
Guardando la schermata a fianco vi renderete conto di quanto era simile il programma in tutte le versioni. Lo avevo pensato così fin dall’inizio, dei tasti abbinati ad un effetto di luce, un tasto per uscire dall’effetto (il solito freccia a sinistra) e la possibilità di usare un joystick o caricare una sequenza personalizzata.
Questa versione essendo in Basic, non ha il controllo della velocità durante l’esecuzione dell’effetto, era già tutto al massimo della velocità, non si poteva fare di più. Qui serviva il tasto “F” la funzione che rendeva le luci molto più lampeggianti, infatti appena veniva accesa la lampada, veniva poi rispenta e si continuava con la sequenza. Essendo il Basic molto lento, questo effetto di accendere e spegnere subito la luce risultava come un lampeggio stroboscopico e non era male come effetto per tenere la sala più scura.

Per il resto troviamo anche qui il programma per creare delle sequenze, ma le possiamo fare direttamente dal programma di luci con il tasto “4”, il funzionamento è simile ma qui non si visualizzeranno gli sprite come se fossero le lampadine ma scriveremo i numeri delle lampade che dovranno essere accese frame dopo frame. Possiamo creare più sequenze in memoria, verrà chiesto prima il numero da assegnare, ne avevo previste fino a 20 con 80 frame ognuna. Il tasto “3” fa partire una sequenza e qui possiamo anche cambiare sequenza durante l’esecuzione e la velocità, questa può solo rallentare. Su questa funzione è possibile anche far avanzare l’effetto manualmente premendo un tasto, M abilita la modalità manuale/automatica, “P” interrompe l’esecuzione ed “S” la fa partire. Con il tasto F si può usare l’effetto lampeggiante anche nella sequenza ed il tasto “X” spegne tutte le luci, la solita freccia a sinistra per uscire.
Il joystick funzionava un po’ diverso qui si poteva selezionare quali lampade accendere per ogni direzione o fire.
Stessa cosa per la tastiera, con il tasto “1” si definisce quale tasto si desidera premere e le luci che si accenderanno quando premuto. Possiamo definire 10 tasti. Il tasto “7” usa la combinazione della tastiera che abbiamo impostato, se non viene definita prima non ci saranno tasti visualizzati sullo schermo e non succederà nulla. Si torna al menù principale con freccia sinistra.

La modalità demo legge le sequenze da 1 a 20 in successione, quindi non vedrete nulla se non vengono create prima delle sequenze, e se sono poche è probabile che le lampade stiano spesso spente.
Spero che vi sia piaciuto questo viaggio nel tempo, di un ragazzo che all’epoca di questo programma aveva 18 anni e si divertiva sia con gli amici che a programmare il suo “tuttofare Commodore 64”.
Potete scaricare il primo programma creato usando la pagina download o il pulsante qui sotto.
