Doug Brown a posté récemment un truc super intéressant : il a réussi à reconstruire une ROM flashable pour les vieux Mac avec les technologies qu’Apple employait dans les années nonante.
Un peu de contexte : dans les Mac 68K et PowerPC (jusqu’à l’iMac, en gros), la ROM est un composant physique qui contient le nécessaire pour démarrer le Mac (comme le BIOS des PC) mais aussi littéralement une partie de l’OS. Certaines routines sont dans la ROM, tout comme certains pilotes. Elle peut être soit sur la carte mère (avec des puces) soit en barrette. Un point intéressant, c’est que la ROM n’est pas nécessairement stricto sensu une ROM (un composant en lecture seule) : il existe des barrettes programmables, qui dérivent souvent de ce que Doug Brown a imaginé il y a quelques années. J’ai par exemple une ROM-inator II, qui peut être programmée avec un adaptateur externe.
Mais ce que Doug a remarqué, c’est que certains Mac disposaient du nécessaire pour écrire sur la ROM. Ensuite, il est tombé sur un programme trouvé dans un prototype qui permet de flasher une ROM. Il est issu de chez Apple, donc c’est probablement le logiciel que les ingénieurs utilisaient pour flasher une ROM lors du développement. Avec une ROM classique, réellement basée sur une puce en lecture seule, il permet uniquement de faire une sauvegarde du contenu de cette dernière.
Dans son post, il explique donc qu’il a analysé le code du programme, qui fait référence à des barrettes programmables mais aussi à des ROM stockées sur carte PDS. Et c’est là qu’une autre pièce du puzzle se met en place : dans les prototypes vus sur eBay, il y a eu il y a quelques années une ROM dite « Lobos » qui reprend un des agencements vu dans le programme, c’est-à-dire quatre puces Am28F020 programmables. C’est de la mémoire que l’on nomme EEPROM (Electrically Erasable Programmable Read-Only Memory), donc qui peut être (ré)écrite facilement. Et comme Doug maîtrise son sujet, il a réussi à reproduire la barrette en question à partir de photos.
C’était visiblement un peu compliqué d’écrire la barrette pour le premier démarrage, pour une bonne raison : pour utiliser le programme de flash d’Apple, il fallait démarrer le Mac, donc que la barrette contienne une ROM au départ. Mais il explique comment il a pu remplir les puces avec un boîtier externe. Il a testé sa barrette dans un Mac dont j’avais déjà parlé : le LC 630. Il confirme que les traces sur la carte mère sont bien prévues pour une barrette de ROM (et pas de RAM) : il a soudé le connecteur.
Ensuite, ça fonctionne. Il a flashé une ROM maison dans laquelle il a changé le son de démarrage (sa spécialité). Enfin, il explique qu’il devrait être possible de modifier les ROM programmables qui suivent son design pour les adapter à celui d’Apple, et même modifier le programme pour qu’il puisse fonctionner avec des puces d’EEPROM plus modernes. Dans tous les cas c’est un tour de force, et qui prouve que les prototypes peuvent servir…