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. Referentin / Referent Informationssicherheitsmanag- ement (m/w/d)
    VBL. Versorgungsanstalt des Bundes und der Länder, Karlsruhe
  2. Software Developer (w/m/d)
    Intrum Hanseatische Inkasso-Treuhand GmbH, Hamburg
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 Karrierewelt
  1. Kubernetes – das Container Orchestration Framework: virtueller Vier-Tage-Workshop
    11.-14.07.2022, Virtuell
  2. IT-Grundschutz-Praktiker mit Zertifikat: Drei-Tage-Workshop
    04.-06.07.2022, Virtuell
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


Anonymer Nutzer 12. Apr 2015

Das war ja auch nicht Ziel des Projekts; die technische Umsetzung mit eigentlich...

k.Mitnick 09. Apr 2015

Dass das Interesse in »heutigen Generation« verschwunden sei, kann ich nicht bestätigen...



Aktuell auf der Startseite von Golem.de
Nancy Faeser
Der wandelnde Fallrückzieher

Angeblich ist Nancy Faeser Bundesinnenministerin geworden, um sich für den hessischen Landtagswahlkampf zu profilieren. Das merkt man leider.
Ein IMHO von Friedhelm Greis

Nancy Faeser: Der wandelnde Fallrückzieher
Artikel
  1. Agile Softwareentwicklung: Einfach mal so drauflos programmiert?
    Agile Softwareentwicklung
    Einfach mal so drauflos programmiert?

    Ohne Scrum wäre das nicht passiert, heißt es oft, wenn etwas schiefgeht. Dabei ist es umgekehrt: Ohne agiles Arbeiten geht es nicht mehr. Doch es gibt drei fundamentale Missverständnisse.
    Von Frank Heckel

  2. Radeon Software: AMD verbessert DX11-Performance drastisch
    Radeon Software
    AMD verbessert DX11-Performance drastisch

    Einige Titel wie Assassin's Creed Odyssey oder Total War Troy legen mit dem neuen Vorschau-Grafiktreiber unter Direct3D 11 signifikant zu.

  3. Spielebranche: Management möchte Electronic Arts verkaufen
    Spielebranche
    Management möchte Electronic Arts verkaufen

    EA-Chef Andrew Wilson will eine Firma verkaufen - seine. Verhandlungen soll es mit Amazon, Apple und zuletzt mit Disney gegeben haben.

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 • Xbox Series X bestellbar • Samsung schenkt 19% MwSt. • MindStar (u. a. AMD Ryzen 9 5950X 488€) • Cyber Week: Jetzt alle Deals freigeschaltet • LG OLED TV 77" 62% günstiger: 1.749€ • Bis zu 35% auf MSI • Alternate (u. a. AKRacing Core EX SE Gaming-Stuhl 169€) [Werbung]
    •  /