Raspberry Pi Pico non solo continua a stupire, ma è sempre più utilizzato per progetti di retrocomputing. Sì, perché Dhruv Wadhwa, che si è autodefinito “nerd dell’elettronica” ha progettato un computer palmare su una scheda di prototipazione, basato su un Raspberry Pi Pico e offrendo un processo di programmazione bit-by-bit retrò ispirato ai sistemi a pannello frontale come l’Altair 8800. Per chi non lo sapesse, l’Altair 8800 era basato su un microprocessore Intel 8080 (dal quale prese il nome – NDR), con 256 Byte di RAM, ed era dotato di un’interfaccia basata su interruttori. Agendo su di essi si poteva programmare in codice binario, mentre il risultato delle elaborazioni veniva visualizzato tramite il lampeggio dei LED posti sul pannello frontale. Il linguaggio di programmazione era una versione semplificata del BASIC e i due creatori erano due “sconosciuti” che rispondevano al nome di Bill Gates e Paul Allen. Grazie al successo di questo computer, nacque la Micro Soft. Lo spazio tra le due parole non è un errore: questo, infatti, è l’antico nome dell’odierna Microsoft. In altre parole, il successo straordinario dell’Altair 8080 è stato fondamentale alla nascita dell’azienda per come la conosciamo oggi.
“Si tratta di un emulatore di computer “palmare” a otto bit ispirato al breadboard di Ben Eater e al processore [MOS Technology] 6502″, spiega Wadhwa in merito alla sua creazione, liberamente ispirata agli albori del Personal COmputer. “Il computer palmare incorpora il Raspberry Pi Pico oltre a pulsanti, uno schermo OLED e un’IMU (Inertial Measurement Unit)”.
Quest’oggi la maggior parte dei computer è programmata con linguaggi di alto livello, scritti comodamente con una tastiera in un ambiente di sviluppo integrato (IDE) ricco di funzionalità, ma non è sempre stato così. I primi computer, infatti, erano macchine enormi faticosamente programmate bit a bit, letteralmente, passando attraverso la memoria e spostando gli interruttori a levetta sul pannello frontale per cambiare gli zeri in uno o viceversa. Il livello di astrazione era totale e non c’erano interfacce grafiche o debugger che potessero aiutare i programmatori a individuare eventuali errori. Quello del programmatore era un mestiere che, a causa delle ridotte risorse di sistema a disposizione, sfociava letteralmente in una forma d’arte. Oggi siamo abituati a lavorare con macchine che hanno anche 32 gigabyte di RAM e processori che elaborano il singolo bit in un tempo inferiore al mliardesimo di secondo. Immaginate per un attimo a come dovesse essere, lavorare con macchine dotate di 256 byte di RAM e processori da 2 Mhz.
Tenendo conto di tutto questo, Dhruv ha iniziato a lavorare al suo progetto, anche se -per forza di cose- alcuni elementi sono dissonanti rispetto al passato. I pulsanti, ad esempio, hanno una forma molto più compatta e tascabile. “La macchina dispone di due modalità: la modalità PROG e la modalità RUN”, spiega Wadhwa. “In modalità PROG, è possibile spostarsi in tutte tutte le aree della RAM e modificarne il contenuto, permettendovi di programmare la macchina. La modalità RUN mostra i valori di diversi moduli CPU come registri A e B, contatori programma, registri flag e così via. Ha un clock e un pulsante di ripristino. Premendo il pulsante del clock una volta, il computer fa un singolo passo, mentre tenendolo premuto fa funzionare il clock a tempo indeterminato”.
Un altro elemento dissonante rispetto al passato, oltre a utilizzare Raspberry Pi Pico e il suo microcontrollore RP2040 per emulare un semplice processore a otto bit e le sue periferiche, è dato dal display. Oltre a mostrare l’attuale posizione nella quale si trova il puntatore a una determinata cella memoria e il relativo contenuto, al posto dei LED o delle lucine tradizionalmente utilizzate, viene fatto un continuo aggiornamento a runtime (esecuzione – NDR), fornendo un’idea di ciò che sta facendo esattamente il processore.
Maggiori informazioni sul progetto sono disponibili sulla pagina Hackaday di Dhruv, mentre su Wokwi è disponibile un’emulazione del progetto per un uso interattivo. Il codice sorgente, nel frattempo, è stato pubblicato su GitHub con una licenza open source non specificata.
Iscriviti ai nostri gruppi Telegram