Bastelrechner: Apple II mit einem Arduino nachgebaut

Der Apple-II-Nachbau überrascht nicht nur durch seinen einfachen Hardwareaufbau, sondern auch seine clevere Implementierung, um die Limitierungen des Arduinos zu umgehen.

Artikel veröffentlicht am ,
Offener Apple II (CC SA 3.0)
Offener Apple II (CC SA 3.0) (Bild: Hellisp)

Damian Peckett hat einen Apple II mit Hilfe eines Arduino Uno nachgebaut - inklusive Videoausgabe, der Datenspeicherung per Kassettenrekorder, Tastaturanschluss und der Audioausgabe. Bemerkenswert ist dabei nicht nur, dass zum Anschluss der Periphere kaum zusätzliche Bauteile notwendig waren, sondern auch, dass es überhaupt umsetzbar war: Der Apple II hatte 4 KByte RAM, der Atmega328 des Arduino Uno hat lediglich 2 KByte, und den muss sich ein Apple-Programm auch noch mit dem Emulator teilen.

Stellenmarkt
  1. Cloud Platform Engineer / DevOps (m/f/d)
    PTV Group, Karlsruhe
  2. Mathematiker in der iGaming Branche (w/m/d)
    Gamomat Development GmbH, Berlin
Detailsuche

Der Ausgangspunkt für das Projekt war eine Emulation des im Apple II verbauten 6502-Mikroprozessors. Peckett vereinfachte die Emulation. So mussten die Unterschiede in den Ausführungszeiten der Opcodes nicht identisch zum Original sein ("cycle accurate"). Außerdem wird keine BCD-Arithmetik emuliert. Das ist möglich, da sie vom Apple-Basic nicht benutzt wird.

Die Videoausgabe erledigt nicht der große Mikrocontroller des Arduinos, sondern der kleinere Atmel16u2. Er dient normalerweise als Verbindungsglied zwischen der USB-Schnittstelle und dem Atmega328. Er lässt sich aber auch selbst programmieren. Dessen Rechenleistung reicht aus, um eine Grafikausgabe per VGA zu implementieren.

Der Kassettenrekorder, eine PS/2-Tastatur sowie der Lautsprecher konnten direkt an den Arduino angeschlossen werden. Lediglich vom Audioausgang des Kassettenrekorders zum Arduino waren ein zusätzlicher Widerstand und Kondensator notwendig.

Clevere Tricks gegen den RAM-Mangel

Golem Akademie
  1. Linux-Systemadministration Grundlagen
    25.-29 Oktober 2021, online
  2. Python kompakt - Einführung für Softwareentwickler
    28.-29. Oktober 2021, online
  3. Elastic Stack Fundamentals - Elasticsearch, Logstash, Kibana, Beats
    26.-28. Oktober 2021, online
Weitere IT-Trainings

Peckett nutzte mehrere Tricks, um Apple-Programmen möglichst viel RAM zur Verfügung zu stellen. Dabei konnten Programmierer auch beim Original schon nicht auf die vollen 4 KByte zugreifen. Ein KByte wurde als Videospeicher benutzt. Ein weiterer Teil des Speichers wurde für systeminterne Daten verwendet.

Da die Videoausgabe über den zweiten, kleineren Mikrocontroller läuft, muss von den 2 KByte des großen Mikrocontrollers kein Videospeicher abgezweigt werden. Vorteilhaft für den Nachbau ist auch die Größe des Flash-Speichers des Atmel-Mikrocontrollers. In dessen 32 KByte passt nicht nur das 16 KByte große Original-ROM des Apple II, sondern auch der komplette Emulator. Durch den vergleichsweise großen Flash-Speicher konnte der Emulator RAM-sparend implementiert werden. Dadurch verbleiben effektiv 1,5 KByte RAM für Anwendungen beziehungsweise 1 KByte für Apple-Basic-Programme.

Dass sein Nachbau funktioniert, zeigt Damian Peckett mit Hilfe eines Apple-Basic-Programms, das ein Mandelbrot-Fraktal generiert. Dabei zeigt sich aber auch, dass die Emulation relativ langsam ist, das Programm benötigte mehrere Minuten. Peckett selbst schätzt, dass sein Nachbau circa fünf- bis achtmal langsamer ist als das Original. Er geht jedoch davon aus, dass es noch Optimierungsmöglichkeiten gibt.

Der vollständige Quellcode steht auf Github zur Verfügung.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed


Aktuell auf der Startseite von Golem.de
William Shatner
Captain Kirk fliegt offenbar in die Erdumlaufbahn

Energie! Noch im Oktober 2021 fliegt William "Kirk" Shatner möglicherweise mit Jeff Bezos ins All.

William Shatner: Captain Kirk fliegt offenbar in die Erdumlaufbahn
Artikel
  1. Browser: Edge unterstützt Maus und Tastatur auf Xbox
    Browser
    Edge unterstützt Maus und Tastatur auf Xbox

    Microsoft hat Edge auf den aktuellen Xbox-Konsolen aktualisiert. Jetzt lässt sich der Browser fast wie am PC per Maus und Tastatur bedienen.

  2. 600 Millionen Euro: Bundeswehr lässt Funkgeräte von 1982 nachbauen
    600 Millionen Euro
    Bundeswehr lässt Funkgeräte von 1982 nachbauen

    Das SEM 80/90 mit 16 KBit/s wird exakt nachgebaut, zum Stückpreis von rund 20.000 Euro. Das Retrogerät geht für die Bundeswehr in Serie.

  3. MacOS Monterey Beta: Hinweise auf neues MacBook Pro 16 mit höherer Auflösung
    MacOS Monterey Beta
    Hinweise auf neues MacBook Pro 16 mit höherer Auflösung

    Die neueste Beta von MacOS Monterey beinhaltet Hinweise auf ein MacBook Pro 16 Zoll, welches ein Display mit 34.56 x 2.234 Pixel Auflösung haben soll.

Du willst dich mit Golem.de beruflich verändern oder weiterbilden?
Zum Stellenmarkt
Zur Akademie
Zum Coaching
  • Schnäppchen, Rabatte und Top-Angebote
    Die besten Deals des Tages
    Daily Deals • Samsung Odyssey G7 499€ • Alternate (u. a. Thermaltake Level 20 RS ARGB 99,90€) • Samsung 980 1 TB 83€ • Lenovo IdeaPad Duet Chromebook 229€ • Lenovo-Laptops zu Bestpreisen • 19% auf Sony-TVs bei MM • Samsung SSD 980 Pro 1TB 150,50€ • AeroCool Cylon 4 ARGB 25,89€ [Werbung]
    •  /