Bastler erweckt Apple II mit Arduino zum Leben

9. April 2015, 10:50
20 Postings

Beschränkungen des Chips clever umgangen, Quellcode veröffentlicht

Der Apple II war ein Meilenstein der Computergeschichte und genießt bis heute nostalgische Verehrung. Ein ambitionierter Bastler namens Damian Peckett hat den 1977 erschienenen Rechner nun mit Hilfe einer Arduino Uno-Platine nachgebaut.

Dabei hatte er allerdings mit Hürden zu kämpfen, ist doch die Ausstattung des Arduino längst nicht ident zu den Spezifikationen des bald vier Jahrzehnte alten Urgesteins. Das größte Problem: Der Apple II verfügt über 4 KB RAM, doppelt so viel wie die Grundlage für den Nachbau.

Videoausgabe ausgelagert

Als vorteilhaft erwies sich, so fasst Golem zusammen, dass Peckett die Emulation einfacher gestalten konnte, da er unter anderem den Arbeitszyklus des ursprünglichen Prozessors nicht 1:1 übernehmen musste. Dazu konnte er die Videoausgabe vom Hauptchip auf den Atmel16u2 auslagern, der eigentlich die Kommunikation zwischen Prozessor und USB-Schnittstelle managed, sich aber umprogrammieren lässt.

Dadurch konnte er schon einmal einen KB an Arbeitsspeicher sparen, der sonst für die Grafikausgabe reserviert gewesen wäre. Am Apple II war zudem ein weiterer KB für interne Daten vorgesehen war, standen auch dort Programmen maximal etwa 2 KB zur Verfügung.

RAM-Optimierung

Der Atmel-Mikrocontroller am Arduino Uno verfügt über einen Flash-Speicher von 32 KB und bietet daher nicht nur Platz für die originale Firmware des Apple II, sondern auch den Emulator selbst. Peckett gelang es, diesen durch weitere Kniffe sehr RAM-schonend arbeiten zu lassen. Letztlich kann normale Software auf seinem Apple II-Nachbau mit 1,5 Kilobyte Arbeitsspeicher arbeiten, in Apple Basic verfasste Anwendungen nutzen einen KB.

Der Anschluss von Lautsprecher und Tastatur an den Arduino erwies sich als unproblematisch. Für den erfolgreichen Betrieb eines Kassettenrekorders mussten jedoch ein zusätzlicher Kondensator und Widerstand verbaut werden.

Emulation noch langsam

Mit der Ausführung eines Programms zur Generierung eines Fraktals beweist Peckett, dass seine Umsetzung auch tatsächlich funktioniert. Jedoch arbeitet seine Konstruktion noch mit einem Bruchteil der Geschwindigkeit des Originals. Weitere Optimierungen sollen aber folgen.

Interessenten können selbst einen Blick auf das Projekt werfen, den Source Code hat Peckett auf Github hochgeladen. Ein vollständiges "Making of" kann auf seiner Homepage nachgelesen werden. (gpi, 09.04.2015)

  • Der Apple II auf Arduino-Basis macht einen etwas archaischen Eindruck.
    foto: damian peckett

    Der Apple II auf Arduino-Basis macht einen etwas archaischen Eindruck.

  • Beweis erbracht: Der NAchbau funktioniert.
    foto: damian peckett

    Beweis erbracht: Der NAchbau funktioniert.

Share if you care.