Deprecated: Creation of dynamic property Timber\Site::$pingback is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Site.php on line 180

Deprecated: Creation of dynamic property Timber\User::$name is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/User.php on line 118

Deprecated: Creation of dynamic property Timber\Post::$has_disclaimer is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_edit_lock is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_edit_last is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$onesignal_meta_box_present is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$onesignal_send_notification is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$onesignal_modify_title_and_content is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$onesignal_notification_custom_heading is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$onesignal_notification_custom_content is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$tipologia is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_tipologia is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$attributi is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_attributi is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$in_evidenza_newsletter is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_in_evidenza_newsletter is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$inviato_in_newsletter is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_inviato_in_newsletter is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$fonte is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_fonte is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$fonte_url is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_fonte_url is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_primary_category is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_primary_blz_affiliation_attributes is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_primary_content_type is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_primary_attributes is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_primary_speciali is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_focuskw is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_metadesc is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_linkdex is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_content_score is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_focuskeywords is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_keywordsynonyms is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_estimated-reading-time-minutes is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_wordproof_timestamp is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_thumbnail_id is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$response_body is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$status is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_indexnow_last_ping is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_date_gmt is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$comment_status is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$ping_status is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_password is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_name is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$to_ping is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$pinged is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_modified is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_modified_gmt is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_content_filtered is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$guid is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$menu_order is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_mime_type is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$comment_count is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$filter is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71
Creare un Macintosh 128K con 10 euro: effetto nostalgia assicurato

Creare un Macintosh 128K con 10 euro: effetto nostalgia assicurato

Facciamo rivivere un Macintosh 128K di 40 anni fa con un microcontroller Raspberry Pi Pico. Tutte le caratteristiche dell'innovativo progetto.
Creare un Macintosh 128K con 10 euro: effetto nostalgia assicurato

Il microcontroller RP2040 è uno dei più versatili, flessibili e universalmente apprezzati. Utilizzando un’economica scheda Raspberry Pi Pico, equipaggiata appunto con il chip RP2040, un ricercatore indipendente ha sviluppato un progetto particolarmente entusiasmante, dall'”effetto nostalgia” assicurato.

Il progetto MicroMac scaturisce dall’idea di costruire un semplice sistema desktop dotato di interfaccia grafica. Perché non provare ad eseguire il sistema che “governava” il vecchio Macintosh su un microcontrollore moderno?

Macintosh 128K su Raspberry Pi: dai 7.500 dollari di un tempo ai 10 euro di oggi

Il Macintosh, lanciato oltre 40 anni fa, era una macchina innovativa, nonostante l’hardware semplice. Con solo 128 KB di memoria, era piuttosto limitato ma riusciva comunque a eseguire applicazioni utili nel “mondo reale”. La versione successiva, con 512 KB di memoria era sicuramente più adeguata, ma la versione da 128 KB conserva ancora oggi un fascino particolare per gli appassionati di retrocomputing e, ingenerale, della storia dell’informatica.

Guarda caso, Raspberry Pi Pico – acquistabile anche su Amazon Italia – integra 264 KB di SRAM. Più che sufficienti per emulare la memoria del Macintosh originale e gestire l’emulatore stesso. Inoltre, Pico assicura abilità USB host e può gestire l’output video VGA, permettendo di collegare tastiere, mouse USB e visualizzare un’interfaccia grafica su un monitor.

Schema funzionamento MicroMac Macintosh 128K

Hardware e software alla base del progetto MicroMac

L’ideatore del progetto MicroMac sottolinea che Raspberry Pi Pico offre inoltre 2 MB di memoria flash, più che adeguati per ospitare un’immagine con il sistema operativo e il software del Macintosh. L’hardware per il progetto, accanto alla scheda Pico, integra una resistenza da 100Ω per adattare i segnali video VGA e un connettore VGA recuperato altrove (il maker racconta di averlo addirittura trovarlo abbandonato in strada).

Il circuito è semplice, con il Pico che genera segnali video e gestisce input USB. Viceversa, è la parte software ciò che c’è di più impegnativo.

Il sistema messo a punto si basa sull’interprete Musashi 68K, implementazione C semplice da integrare. Le letture/scritture della CPU sono indirizzate verso RAM o ROM, con un registro di overlay che permette di avviare la ROM a un indirizzo basso per poi passare a un mirror in posizione più elevata.

MicroMac emula dispositivi come i chip VIA e SCC per tastiera, mouse e altre periferiche. “Patchando” la ROM, il ricercatore è riuscito a bypassare il floppy disk, previsto inizialmente sul Macintosh di quattro decenni fa.

Emulare Macintosh 128K Raspberry

Emulazione della CPU e ottimizzazioni

L’interprete Musashi 68K è semplice e modulare. Per ottimizzare le prestazioni sul Pico, il ricercatore ha creato una tabella delle istruzioni leggera per risparmiare RAM. Ha inoltre rimosso funzioni non strettamente necessarie per risparmiare spazio, cicli di clock e migliorare le performance.

Ottimizzazioni specifiche fanno leva su attributi di compilazione per copiare le funzioni più frequentemente utilizzate nella RAM veloce del Pico, migliorando significativamente la velocità di esecuzione del codice.

Display VGA e input USB

La generazione del segnale VGA è gestita tramite la PIO (Programmable Input/Output) del RP2040, un blocco hardware che consente di eseguire attività di I/O altamente personalizzabili e temporizzate con una latenza minima, fornendo un livello di flessibilità che va oltre le capacità dei normali GPIO. L’input da tastiera e mouse USB sfrutta invece TinyUSB, integrato nel firmware del Pico.

Questi componenti cooperano per emulare un sistema completo che può eseguire software Macintosh originale come MacDraw, MacWrite e MacPaint.

L’obiettivo di performance era raggiungere circa 1 MIPS, simile alla velocità del Macintosh originale. Attraverso le varie ottimizzazioni citate in precedenza, l’autore del progetto MicroMac è riuscito a ottenere circa 1,4 MIPS, con un’esperienza d’uso particolarmente fluida.

Niente male per un device come Raspberry Pi Pico che oggi costa circa 10 euro contro l’equivalente dei 7.500 dollari del Macintosh dell’epoca.

Con la documentazione disponibile, chiunque può costruire il proprio MicroMac e rivivere l’esperienza di utilizzare un Macintosh degli anni ’80.

Le immagini nell’articolo sono tratte dalla pagina del progetto.

Ti consigliamo anche

Link copiato negli appunti