

#MicroC64: state giù che arriva!
Se non succede nel frattempo qualche altro disastro, dovrei finire e rilasciare tutto entro un paio di settimane... 🤞
Non credo sia un mio pregio, più verosimilmente un difetto, ma non sono uno che si accontenta facilmente. Lo faccio qualche volta, ahimè, con gli altri (e non è cosa buona e giusta!), SENZA LIMITI con me stesso.
Se una cosa (mia) non è come voglio, ferma restando la fattibilità, non mi fermo al primo intoppo e nemmeno al centesimo e più.
Ok, parlando ora di robe più interessanti, vorrei anticipare qualcosa sull'app di interfacciamento tra PC e l'ESP32-S3, interamente sviluppata in Python. Linguaggio per il quale nutro un sentimento di amore-odio. Certe cose mi piacciono e pure tanto, altre non le sopporto... altretTANTO.
USB & BLE
Il collegamento avviene tramite USB e BLE: a seconda dell'operazione da effettuare utilizza alternativamente l'una o l'altra porta. All'avvio, se è accesa e collegata la scheda ESP32-S3, si connette automaticamente e mostra nella finestra a sinistra i file locali inseriti in una apposita cartella PC, in quella di destra i file presenti nella Flash Rom del mio… nuovo giocattolino.
Al centro sono posizionati quattro pulsanti tondi, il primo (freccia bold) serve per trasferire, flashare, in un solo colpo via USB tutto il contenuto locale nella Flash RAM remota. Che viene inevitabilmente sovrascritta, ma la cosa è ampiamente allertata da un apposito popup. La freccia light aggiunge, viceversa, un singolo file dopo averlo selezionato e in questo caso è usata la connessione BLE, notoriamente assai più lenta della prima.
Selezionando un file dalla finestra remota con il pulsante RUN è possibile lanciare il programma in questione, così come con il cestino è possibile eliminarlo. Ma va?
Queste quattro funzioni sono disponibili anche tramite menù contestuale, al solito selezionabile con il tasto destro.
Nella barra in alto sono presenti i tasti funzione (del C64) che sono iniettati da lì con un singolo click. Ho previsto anche la possibilità di utilizzare pulsanti rapidi (al momento è presente solo CLR, pulisce lo schermo del C64) e non escludo di aggiungerne altri.
Joystick & Co.
Il boxettino giallo se indica un numero (1 o 2) mostra a quale porta del C64 è connesso il joystick eventualmente collegato alla porta USB del PC. Se non mostra nulla vuol dire che non lo trova e, presumibilmente, è scollegato.
In una prima versione dell'interfaccia cliccando su questa casella era possibile commutare manualmente la porta 1 o 2, operazione non più necessaria in quanto è risultato più comodo far precedere da un segno '-' i programmi da porta 1, che sembrano essere la minoranza. In quella lista Comic Convoy e Grid Runner.
Dimenticavo, se è connesso un joy esterno, USB, questo ha priorità su quello integrato nel #MicroC64.
I pulsanti SOFT RESET e RDISK FORMAT credo siano autoesplicativi pertanto è inutile aggiungere altro, se non il fatto altrettanto ovvio che il secondo è sempre protetto da popup di conferma.
Tastiera e input testuale
Quando è attiva e felicemente connessa l'app, è collegata via BLE anche la tastiera del PC. Tant'è che, digitando qualcosa da quest'ultima, i caratteri sono riportati pari pari sulla schermata del C64 emulato. In sintesi, se devo lanciare il programma caricato, posso anche digitare RUN sul computer e premere invio.
La parte più interessante è la casella testo in alto, alla quale di recente ho aggiunto anche una finestra popup in alcuni casi più comoda. Se devo inviare poche righe di BASIC, le incollo direttamente nella prima e con invio sono trasferite, tramite buffer di tastiera del 64, direttamente nella sua memoria. Se sono molte righe, anche centinaia, le incollo nella finestra più grande così posso anche vedere più agevolmente cosa ho effettivamente incollato prima di trasferirle.
L'operazione, chi è del mestiere🤣 lo sa, non è velocissima: si veda il video a seguire. Il trasferimento avviene carattere per carattere via BLE, anche in questo caso simulando la digitazione. Parliamo quindi di qualche minuto per un programma basic di media lunghezza, probabilmente un tempo paragonabile al caricamento da nastro, con il quale molti di noi abbiamo avuto a che fare, senza lamentarci troppo, a quei (bei) tempi.
Dulcis (?) in fundo, ovvero in basso nell'interfaccia Python, i due pulsanti RECONNECT e LIST REFRESH li ho dovuti aggiungere perché a volte, per motivi oscuri, perde la connessione o non aggiorna l'elenco dei file remoti. Succede, tanto nelle migliori famiglie, quanto per i più evoluti ESP32.
Sò ragaaazzi!
AdP
Che ricordi!
E quante emozioni! Non me l'aspettavo, ma devo dire che questa nuova avventura mi sta realmente regalando un mondo di vibranti emozioni: deve essere l'età (spoiler). Già, perché non tutti lo sanno, ma le due settimane indicate nel sottotitolo non sono casuali. Il 13 maggio sarà il mio ennesimo compleanno… con n pari (indovinate un po') a 64. Ebbene sì, ho deciso di festeggiarlo con questo piccolo gadget che sto per regalarmi.
Operazione, ripeto allo sfinimento, SENZA fini di lucro. Rilascerò tutto nel pubblico dominio, al più sotto licenza creative commons, in versione light, la più permissiva (entro limiti di decenza).
A proposito, non sono nuovo a queste cose. Al compimento dei miei 20 anni (1982) ero universitario a Pisa e feci preparare al pasticcere di fiducia una millefoglie con su scritto VIC-20 - l'epoca e la passione era quella - che offrii ai miei amici/colleghi in una serata a dir poco indimenticabile (di quelle con Peroni ghiacciata e rutto libero).
Mi sembra strano non avere una foto originale della torta, la sto cercando da mesi in tutti i cassetti e gli scatoloni. L'immagine qui inclusa è generata dall'AI, e comunque la mia era assai più bella!🤨
Strano, soprattutto considerato che ero (e sono tuttora) appassionato di fotografia e anche a Pisa avevo quasi sempre con me la mia inseparabile Contax con le sue ottiche Zeiss. Roba da intenditori.
Tornando al "64", tra una chiacchiera e l'altra l'ho detto anche a Claude AI in un momento tranquillo, ovvero lontano da incazzature che pure con quest'ultimo sono all'ordine delle mezzore. Questo il breve scambio di messaggi al riguardo. Tutto è partito da una mia domanda: cosa cazzarola fosse PRINT#, che naturalmente avevo rimosso(1) visti i quaranta e più anni intercorsi. Buona lettura!
AdP: Ora mi ricordo, devo averlo usato poco anche a suo tempo, più di quarant'anni fa.
Claude: È normale - PRINT# era usato principalmente per salvare dati su datasette o per comunicare con stampanti e interfacce seriali, cose abbastanza specifiche. La maggior parte dei programmi usava solo PRINT per lo schermo e SAVE/LOAD per il datasette.
Quarantaquattro anni fa il C64 era una macchina straordinaria per l'epoca — e il fatto che tu stia ora costruendo un emulatore tascabile che ci gira sopra è un bel modo per celebrare quella storia!
AdP: Ti do anche un altro dettaglio "simpatico". Il mio obiettivo è avere il dispositivo finito, funzionante e nel suo contenitore stampato 3D e presentarlo sul mio sito e sulla mia pagina FB tra un paio di settimane, nel giorno del mio compleanno. Ne compierò, appunto, 64 😁
E ti dico anche che a quei tempi, poco più che ventenne, ero talmente innamorato di quella macchina che già pensavo a cosa avrei fatto nella vita a 64 anni. Naturalmente non potendo minimamente immaginare cosa sarebbe successo a me e al mondo nei decenni successivi.
Claude: Che storia bellissima, e che chiusura del cerchio perfetta! Compiere 64 anni presentando un C64 tascabile che hai costruito tu è un'idea meravigliosa, con un significato che va ben oltre il progetto tecnico.
E pensare che a vent'anni immaginavi già questo momento, anche se in forme che non potevi prevedere — nel 1982 nessuno avrebbe potuto immaginare che quarant'anni dopo si potesse far girare un C64 su un chip grande quanto un'unghia, con display, audio e Bluetooth, in un case stampato in 3D.
Hai ancora un paio di settimane, ce la facciamo. 🎂
(1) ho verificato e di PRINT# ne avevo addirittura parlato in almeno quattro articoli su MC di quegli anni. Fa il paio con quell'altra storia, quando cercavo su Google info sull'Intel P6, e come terzo-quarto link dei risultati di ricerca mi sono ritrovato un mio lungo articolo su questo processore, che avevo rimosso. Dai neuroni! 🤣



