Tipps & Praxis

NanoMac: Retro-Macintosh als Hardware-Emulation statt als Emulator

Ein klassischer Macintosh, neu gebaut mit moderner Technik: Das Projekt „NanoMac“ zeigt, wie lebendig Retro-Computing heute sein kann.

Von   Uhr

Praxistipp

Schwierigkeit: mittel
Es dauert: etwa drei Stunden
Du benötigst: Tang Nano 20k FPGA-Board, Raspberry Pi Pico, microSD-Karte, Jumper-Drähte, USB-Tastatur, HDMI-Monitor, USB-Kabel, Steckbrett, USB-Hub
Kosten: zwischen 50 und 70 Euro

Emulatoren sind der übliche Weg, die Ursprünge der Macintosh-Familie heute noch einmal nachzuerleben. Mithilfe einer Interpreter-Software wird dabei der alte Betriebssystem- und Programmcode auf aktueller Hardware ausgeführt, Spiele und alte Anwendungen lassen sich so wieder zum Leben erwecken.

Manchmal reicht eine reine Softwarelösung aber einfach nicht. Möchtest du zum Beispiel zeitgenössische MIDI-Studio-Technik nutzen, dann muss auch ein Teil der damaligen Hardware nachgebildet werden. FPGAs sind dafür der gängige Weg. Wir zeigen, wie es geht.

Der Autor

Till Harbaum ist mit den Computern der 80er aufgewachsen. Vor allem die ersten Maschinen der 16-Bit-Ära haben es ihm dabei angetan. Neben seinem Leben als begeisterter „Maker“ arbeitet er am Karlsruher Institut für Technologie (KIT) im Bereich der Telematik.

Was ist ein FPGA?

Die sogenannten Field Programmable Gate Arrays (FPGAs) sind spezielle Halbleiter, die ab Werk kaum eigene Funktionen mitbringen. Stattdessen verhalten sie sich passiv, bis sie mit einem sogenannten Core geladen werden. Der Core ist eine binäre Beschreibung einer Hardware. Wird diese Datei in das FPGA übertragen, dann übernimmt das FPGA die dort beschriebenen elektrischen Funktionen. Auf diese Weise lassen sich nahezu beliebige CPUs und Peripheriebausteine nachbilden, auch die des frühen Macintosh Plus. Grenzen setzen dabei nur die im FPGA verfügbaren Ressourcen und deren Geschwindigkeit, soll der gesamte Mac in einen Chip gepresst und dort mit Originalperformance ausgeführt werden.

Erste Schritte dazu fanden bereits 2011 statt1, aber erst mit dem MiST-FPGA-Board 2015 erschien der erste wirklich benutzbare FPGA-Mac, damals noch eher lose an das Original angelehnt. Seitdem hat sich viel getan. Die Apple-spezifischen Bauteile sind ebenso reverse-engineert worden wie die 68000-CPU und diverse Peripheriebausteine, sodass inzwischen das Know-how vorhanden ist, die Hardware exakt nachzubauen. Genau genug, um zum Beispiel die damalige Musik-Software mit präzisem Timing wieder auferstehen zu lassen.

Vorteil Fernost

Das Erscheinen preisgünstiger FPGA-Development-Boards in Fernost habe ich daher vor zwei Jahren zum Anlass genommen, mich noch einmal an die Umsetzung eines Apple-Macintosh-Plus als moderne Single-Chip-Lösung in einem FPGA zu versuchen. Als Basis meines NanoMac2 habe ich das Tang Nano 20k-Board verwendet, das für circa 30 Euro im Fernost-Versand zu finden ist. Das Board im Arduino-Stil bringt neben dem FPGA auch Speicher, HDMI-Anschluss, SD-Kartenslot und einen USB-C-Port mit und bietet damit alles, um mit modernen Bildschirmen, Speichermedien und Eingabegeräten umgehen zu können. Der FPGA-eigene Flash-Speicher nimmt nicht nur den Core auf, sondern bietet auch Platz für die Original-ROMs des Mac-Plus, während Disketten- und Festplattenimages auf einer microSD-Karte ihren Platz finden.

Günstig oder robust? Ob Steckbrett oder eigens gefertigte Hardware ist eine Frage des Preises.
Günstig oder robust? Ob Steckbrett oder eigens gefertigte Hardware ist eine Frage des Preises. (Bild: Dr. Till Harbaum)

Ein auf dem Board ebenfalls integrierter RISC-V-Mikrocontroller, der primär zur Programmierung des FPGAs via PC verwendet wird, bietet sich an, um dem FPGA-Mac-Plus beim Umgang mit modernen Speicherkarten und Peripheriegeräten zu unterstützen. Das ist nötig, da die frühen Macs mit USB und Gigabyte-großen PC-Dateisystemen nichts anzufangen wissen.

Leider ist der Umgang mit diesem etwas exotischen Controller für Einsteiger etwas schwieriger. Anfängern empfehlen wir daher, mit dem Tang Nano 20k und zusätzlich einem kostengünstigen separaten Raspberry Pi Pico zu starten. Beide lassen sich mit wenigen Jumper-Drähten auf einem Steckbrett verbinden. Hier lässt sich zusätzlich ein weiterer USB-Anschluss unterbringen, der später für den Anschluss von Tastatur und Maus an den Pico benötigt wird.

Günstig oder robust? Ob Steckbrett oder eigens gefertigte Hardware ist eine Frage des Preises.
Günstig oder robust? Ob Steckbrett oder eigens gefertigte Hardware ist eine Frage des Preises. (Bild: Dr. Till Harbaum)

Der Zusammenbau

Der Zusammenbau gestaltet sich auch für Einsteiger recht einfach und ist in wenigen Minuten erledigt. Nach dem Zusammenbau sind drei weitere Schritte nötig, um aus dem Setup einen klassischen Mac zu machen:

  1. Die Hardwarebeschreibung (Core) muss auf das FPGA geflasht werden.
  2. Ein Mac-Plus-ROM muss im Flash des FPGA-Boards abgelegt werden.
  3. Der Raspberry Pi Pico wird mit der passenden Firmware versehen.

Für die Schritte 1 und 2 bietet der FPGA-Hersteller Gowin3 eine Programmier-Software zum Download an, die seit Kurzem neben Windows und Linux auch für macOS verfügbar ist. Alternativ kann das universelle openFPGAloader-Kommandozeilentool verwendet werden, das ebenfalls für das moderne macOS verfügbar ist4. Wir stellen zusätzliche Anleitungen bereit, die am Beispiel Linux die Installation mit Hilfe des openFPGAloader5 bzw. am Beispiel Windows mit Hilfe des Gowin-Programmers erklären6. Beide Vorgehensweisen sind direkt auf macOS übertragbar. Ist das FPGA korrekt geflasht, dann bootet das macOS-ROM bereits bis zum Floppy-Icon und erwartet das Einlegen einer Diskette.

Für Schritt 3 genügt es schließlich, den Raspberry Pi Pico wie üblich per Knopfdruck in den Update-Modus zu versetzen und die FPGA-Companion-Firmwaredatei7 auf den sich als Massenspeicher am PC anmeldenden Pico zu kopieren. Die erfolgreiche Installation quittiert der Pi-Pico mit dem Blinken seiner LED.

Sind alle drei Dateien an der richtigen Stelle gelandet, dann erlaubt es eine per USB angeschlossene PC-Tastatur via F12, ein Konfigurationsmenü zu öffnen. Das sogenannte OSD überlagert dazu den Mac-Bildschirm.

Dort können neben ein paar Systemeinstellungen vor allem Disketten- oder Festplattenimages von der SD-Karte ausgewählt werden. Als Betriebssystem ist generell alles von System 1 bis 7.5 nutzbar, System 6.0.8 stellt dabei einen guten Kompromiss zwischen Feature-Set und Performance dar8. Sobald ein passendes Disk-Image ausgewählt wurde, bootet unser FPGA-Mac dann zum Desktop.

Workshop: Retro-Mac ganz einfach selbstgebaut – von der Qual der Wahl

Schritt 1

(Bild: Dr. Till Harbaum)

Das kleine MiSTeryShield-Lite lässt sich mit unseren CAD-Daten von Github in Fernost fertigen und bildet mit dem Tang Nano 20k ein minimales Retro-Setup.

Schritt 2

(Bild: Dr. Till Harbaum)

Über HDMI- und USB-Buchsen angeschlossene moderne Peripherie vervollständigen den selbstgebauten Mac-Plus im Schokoriegel-Format.

Schritt 3

(Bild: Dr. Till Harbaum)

Wer die Fertigung eigener Hardware scheut, greift stattdessen zu Steckbrett, Raspberry Pi Pico und einer kleinen Handvoll an Jumper-Kabeln.

Schritt 4

(Bild: Dr. Till Harbaum)

Die größeren (und natürlich teureren) Board-Varianten bieten unter anderem Retro-kompatible Joystick- und MIDI-Anschlüsse für Gamer und Musiker.

Schritt 5

(Bild: Dr. Till Harbaum)

Konfiguriert wird der selbst zusammengebaute Retro-Mac über ein On-Screen-Menü. Hier werden unter anderem Disketten-Images von der SD-Karte ausgewählt.

Schritt 6

(Bild: Dr. Till Harbaum)

Insbesondere Spieleklassiker wie etwa Lode-Runner fühlen sich auf dedizierter Hardware einfach authentischer an als in der Emulation auf Windows-PCs oder Macs.

Retro, im besten Sinne

Wer bisher Emulatoren gewohnt ist, mag nun überrascht sein. Unser FPGA-Nachbau bildet nämlich die Hardware originalgetreu nach und arbeitet daher exakt so schnell respektive langsam wie das Vorbild. Das betrifft nicht nur die CPU an sich, sondern zum Beispiel auch die virtuelle Floppy-Disk, die die Daten mit originalgetreuer Geschwindigkeit von der SD-Karte an den Mac liefern muss, um mit dem nachgebildeten Floppy-Disk-Controller, der berühmten „Integrated Woz Machine“ (IWM), kompatibel zu sein.

Anders als die meisten Emulatoren nimmt das FPGA nämlich keine Abkürzungen. Sämtliche Funktionen basieren auf echter Hardware, die so getreu wie möglich nachgebildet wird. Damit sollte jede Software lauffähig sein, selbst wenn sie am Betriebssystem vorbei direkt auf die Hardware zugreift. Das trifft auch auf die seriellen Schnittstellen des Mac zu. Unser NanoMac implementiert nicht nur den dafür nötigen SCC-Chip, sondern bildet die übrige Hardware damals gängiger MIDI-Interfaces ebenfalls nach. Passende MIDI-Buchsen vorausgesetzt, wird unser NanoMac damit zum Retro-Musikstudio mit hochpräzisem Timing. Ein Kunststück, das so mit Emulatoren nicht möglich ist.

Das On-Screen-Menü ist bewusst schlicht gehalten und beeinflusst so das echte Retro-Feeling nur minimal.
Das On-Screen-Menü ist bewusst schlicht gehalten und beeinflusst so das echte Retro-Feeling nur minimal. (Bild: Dr. Till Harbaum)

Robuster als ein Steckbrett

Wer an dieser Stelle statt des fliegenden Steckbrett-Aufbaus gerne eine robustere Lösung hätte, wirft einen Blick in unser Boards-Repository9. Hier findet sich eine stetig wachsende Zahl passender Hardware-Designs, die sich mit geringem Aufwand in Fernost auch in Einzelstückzahlen fertigen lassen. Gegenüber dem Steckbrett-Aufbau bringen diese Boards zusätzliche Funktionen wie MIDI-Buchsen oder einen integrierten USB-Hub mit. Der ebenfalls häufig integrierte C64-Joystickanschluss wird vom NanoMac (bisher) nicht unterstützt, denn Joysticks ließen sich an die klassischen Macs damals normalerweise nicht anschließen. Einige Spiele unterstützen aber den sogenannten Mac-Man-Adapter. Diesen in NanoMac nachzubilden, dürfte eine auch für Einsteiger zu bewältigende Aufgabe sein.

Prinzipiell spricht nichts dagegen, auch andere Schnittstellen des Mac umzusetzen. Große Teile des IWM-Floppycontrollers sind bereits vorhanden, eine Erweiterung, die den Betrieb echter Diskettenlaufwerke ermöglicht, dürfte nicht allzu aufwändig sein. Einfacher gestalten sich Video und Tastaturanschluss. Hier sind die entsprechenden Signale im Inneren des FPGA bereits vorhanden und der Anschluss eines echten Mac-Röhrenbildschirms oder der Tastatur M0110 beschränkt sich vor allem auf eine elektrische Anpassung der nötigen Signale.

Neben unserem Mini-Retro-Mac sieht ein 15-Zoll-Bildschirm riesig aus. Dank HDMI-Ausgang hat man beim Anschluss eines Displays eine entsprechend große Auswahl.
Neben unserem Mini-Retro-Mac sieht ein 15-Zoll-Bildschirm riesig aus. Dank HDMI-Ausgang hat man beim Anschluss eines Displays eine entsprechend große Auswahl. (Bild: Dr. Till Harbaum)

Auf zu neuen Ufern!

Der NanoMac ist Teil des MiSTle-Projekts10. Neben dem klassischen Macintosh implementiert das Projekt unter anderem auch den Apple II, Commodore C64, Amiga sowie den Atari ST. MiSTle versteht sich als offene Plattform und anders als viele der bekannten FPGA-Plattformen ist es nicht auf eine bestimmte Hardware ausgelegt. Stattdessen erlaubt ein baukastenartiger Aufbau die Verwendung unterschiedlichster FPGAs und Mikrocontroller. Neben kommerziellen Boards wie dem Tang Nano 20k sollen daher in Zukunft vermehrt komplette Eigenentwicklungen für zusätzliche Flexibilität sorgen.

Fazit

Emulatoren bieten für die meisten früheren Anwendungen eine passende Retro-Umgebung. Wer sich aber auch für die Hardware interessiert und ein wirklich originalgetreues Erlebnis sucht, findet mit dem Projekt NanoMac die wohl kompakteste und kostengünstige Möglichkeit, eine zum Macintosh Plus vollständig kompatible Hardware zu erleben.

Mehr zu diesen Themen: