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.
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.
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.
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:
- Die Hardwarebeschreibung (Core) muss auf das FPGA geflasht werden.
- Ein Mac-Plus-ROM muss im Flash des FPGA-Boards abgelegt werden.
- 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.
Schritt 1
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
Über HDMI- und USB-Buchsen angeschlossene moderne Peripherie vervollständigen den selbstgebauten Mac-Plus im Schokoriegel-Format.
Schritt 3
Wer die Fertigung eigener Hardware scheut, greift stattdessen zu Steckbrett, Raspberry Pi Pico und einer kleinen Handvoll an Jumper-Kabeln.
Schritt 4
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
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
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.
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.
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.

















