Der Apple II zählt zu den bedeutendsten Computern der frühen Mikrocomputerära und begeistert bis heute Liebhaber und Entwickler durch seine innovative Hardwarearchitektur und Erweiterungsmöglichkeiten. Eine wichtige Erweiterung für den Apple II stellt der MouseCard dar – eine Zusatzkarte, die die Nutzung einer Maus ermöglicht, lange bevor Computer-Mäuse zum Standard wurden. Ein besonders faszinierendes Merkmal dieser Karte ist die exakte Synchronisation der Interrupt-Anfragen (IRQ) mit dem Vertikalsynchronsignal, kurz VBL. Die Vertikalsynchronisation sorgt im Wesentlichen dafür, dass die grafische Ausgabe zu einem definierten Zeitpunkt im Bildaufbau erfolgt, nämlich während der sogenannten vertikalen Bildrücklaufphase. Diese enge Verknüpfung zwischen IRQ und VBL gewährleistet eine konsistente und flimmerfreie Darstellung von Mausinteraktionen auf dem Bildschirm und hinterlässt bei Programmierern und Technikinteressierten eine Frage: Wie funktioniert diese Synchronisierung genau? Um diese Frage zu beantworten, ist es wichtig, sich sowohl mit der Hardware als auch mit der Softwarelogik der MouseCard zu befassen und einen Blick hinter die Kulissen der Firmware zu werfen.
Die Herausforderung besteht darin, dass der MouseCard eigener Mikrocontroller, der 68705, offiziell keinen direkten Zugang zum VBL-Signal besitzt. Dennoch feuert die Karte ihre IRQs in exakter Übereinstimmung mit den VBL-Impulsen des Apple II. Das bedeutet: In dem Moment, in dem das vertikale Bildrücklaufsignal am Hauptprozessor erkannt wird, löst auch der MouseCard seine IRQ aus. Die Lösung liegt in einer cleveren Kombination aus Softwarebeobachtung und Hardware-Timing. Die Firmware des 6502-Hauptprozessors auf der Hauptplatine wartet aktiv auf den Beginn des VBL, indem sie das sogenannte RDVBL-Softswitch im Apple IIe nutzt.
Dieses Register informiert darüber, ob sich der Bildaufbau gerade in der vertikalen Rücklaufphase befindet. Während dieser Wartezeit beobachtet die Firmware die Bildschirmausgabe, bis der Start des VBL detektiert werden kann. Auf älteren Modellen wie dem Apple ][+ ohne RDVBL-Softswitch wird eine alternative Methode angewendet: Eine Grafikseite wird voll mit Nullen beschrieben und gezielt an einigen Stellen geändert. Diese Methode ermöglicht einen „Vapor Lock“, also eine Beobachtung der Bildzeile durch Vergleich der Bildinhalte. Dadurch kann auch dort im Bereich von wenigen Takten bestimmt werden, wann der VBL startet.
Sobald die Firmware diese Phase erkannt hat, initialisiert sie den 68705-Mikrocontroller auf dem MouseCard, der zusammen mit einem 6821-PIA-Chip die Steuerung der IRQs übernimmt. Dabei kommuniziert der 6502 über den PIA mit dem 68705 und stellt Timer-Parameter ein, die die genaue IRQ-Frequenz steuern. Der 68705 verfügt über einen eingebauten 8-Bit-Hardware-Timer, welcher bei Ablauf des Zeitintervalls einen Interrupt auslöst. Durch die Programmierung des Timers mit präzisen Werten, die der Taktrate beider Prozessoren und der Bildwiederholfrequenz entsprechen, wird erreicht, dass der 68705 die IRQs exakt mit dem Zyklus des VBL auslöst. Für NTSC-Systeme beträgt die Frequenz dabei etwa 59,92 Hertz und im europäischen PAL-System ca.
50,32 Hertz. Die Werte für den Timer werden in speziellen Speicheradressen abgelegt, aus denen der 68705 seine Intervalle berechnet und die Synchronität sicherstellt. Das Verständnis dieser Timerwerte ist ein Schlüssel zur Erkenntnis, wie die IRQ-Synchronisation technisch funktioniert. Die Firmware des MouseCard ist in zwei Teile geteilt: Zum einen der Firmware-Code, der auf dem Hauptprozessor 6502 läuft, und zum anderen der Firmware-Code des 68705-Mikrocontrollers auf der Karte selbst. Diese Firmware arbeitet zusammen, um das Timing der IRQs passend einzustellen und damit eine saubere Synchronisation mit dem vertikalen Blanking zu erzielen.
Dieser Vorgang ist so präzise abgestimmt, dass die IRQs nur wenige Zyklen nach dem VBL-Signal ausgelöst werden. Obwohl dieser leichte zeitliche Versatz besteht, ist der Unterschied für den Anwender vernachlässigbar und sorgt im Ergebnis für eine flimmerfreie Abtastung der Mausbewegungen. Historisch betrachtet wurde die exakte Synchronisation der IRQs mit VBL bereits in offiziellen technischen Notizen von Apple erwähnt, jedoch fehlte oft die detaillierte Erklärung, wie der MouseCard diese Synchronisation technisch umgesetzt hat. Die neueren Untersuchungen und das Reverse Engineering der Firmware sowie die Beobachtungen im Emulationssystem MAME – das die genaue Hardwareemulation anstrebt – haben verdeutlicht, dass diese Synchronisierung hart in die Hardware und den Firmware-Code verbaut ist und kein bloßes zufälliges Übereinstimmen der Frequenzen darstellt. Für Entwickler, die Software auf dem Apple II mit Mausunterstützung schreiben, bedeutet dies eine wichtige Erkenntnis: Das MouseCard-IRQ-Register kann zuverlässig als Signal für den Start des VBL interpretiert werden.
Um dabei aber plattformübergreifend auf PAL- sowie NTSC-Systemen eine korrekte Synchronisation herzustellen, sollten Entwickler die entsprechenden Timerwerte für das jeweilige Video-System einstellen. Das Apple II-Betriebssystem ProDOS und diverse Interrupt-Handler greifen auf dieses Timing zurück, um reibungslose Bildschirmaktualisierungen und Mausereignisse zu gewährleisten. Für Programmierer steht dabei die Herausforderung im Raum, möglichst wenig Prozessorzyklen mit Wartezeiten zu verschwenden, da in der Spätform des Apple II die CPU-Geschwindigkeit lediglich 1 MHz beträgt. Die Verwendung der MouseCard-IRQ als VBL-Synchronisationsquelle erlaubt eine saubere Integration von Mausbewegungen und gleichzeitiger Bildschirmausgabe. Ein negatives Nebeneffekt existiert dennoch: Die Verarbeitung der Interrupts und des IRQ-Vektors kann einige hundert CPU-Zyklen in Anspruch nehmen, was unter Umständen die verfügbare Rechenzeit für die Bildschirmaktualisierung beeinflusst.
Dennoch überwiegt der Nutzen einer stabilen und exakt getimten Schnittstelle zur Mäusesteuerung. Darüber hinaus illustriert der ganze Untersuchungsprozess die Bedeutung von Community-unterstütztem Reverse Engineering, technischer Dokumentation und emulativer Nachbildung historischer Hardware zur Erhaltung und Weiterentwicklung von klassischer Computertechnik. Entwickler wie Robert Justice, R. Belmont und andere haben entscheidend dazu beigetragen, dass das Verständnis für den Apple II MouseCard heute deutlich vollständiger ist als zu dessen ursprünglichen Veröffentlichungszeitpunkten. Abschließend lässt sich festhalten, dass die keimfreie Synchronisierung der MouseCard-IRQ mit dem vertikalen Blanking-Signal des Apple II eine technische Meisterleistung ist, die maßgeblich zur Nutzererfahrung dieser Maschinen beiträgt.
Durch die Kombination von Softwareabtastung, Fernsteuerung des Mikrocontrollers und detaillierter Timerprogrammierung gelingt eine genaue Abstimmung, die auf den ersten Blick unmöglich scheint, da ein direkter Hardwarezugriff auf das VBL-Signal nicht realisiert wurde. Für heutige Programmierer, die mit klassischen Apple II-Systemen arbeiten oder sie emulieren, liefert das Wissen um diese Synchronisation nicht nur emotionale Historie, sondern auch pragmatischen Nutzen, um Software stabiler und flüssiger zu gestalten. So bewahrt die detaillierte Analyse der IRQ-Synchronisation beim MouseCard das technische Erbe des Apple II lebendig – und zeigt, wie aus komplexer Technik ein nutzerfreundliches Ergebnis entsteht, selbst auf einem Computer, der über vier Jahrzehnte alt ist.