Der MOS 6567/6569 Videocontroller (VIC-II) und seine Anwendung im Commodore 64
Inhalt
1. Einleitung |
Dieser Artikel ist der Versuch, die Ergebnisse der zahlreichen Untersuchungen über den Grafikchip "6567/6569 Video Interface Controller (VIC-II)" (im folgenden einfach "VIC" genannt), der im legendären Commodore 64 zum Einsatz kommt, zu ordnen und damit eine umfassende Referenz über dessen spezifizierte und nicht spezifizierte Eigenschaften zur Verfügung zu stellen. Er richtet sich in erster Linie an C64-Programmierer und Autoren von C64-Emulationen, allerdings sollte die Lektüre auch für "Außenstehende", die sich für Hardwaredesign und -programmierung und die Ausnutzung eines Computers bis zum letzten Bit interessieren, aufschlußreich sein. Aus diesem Grund wurden auch einige Grundlagen mit aufgenommen, die für erfahrene C64-Programmierer ein alter Hut sind (z.B. die Speicheraufteilung). Die Beschreibung der nicht spezifizierten Eigenschaften basiert auf Messungen, die Marko Mäkelä, Andreas Boose, Pasi Ojala, Wolfgang Lorenz und ich (und zahlreiche Ungenannte) im Laufe der letzten Jahre vorgenommen haben. Dabei werden auch interne Register und Abläufe im VIC angesprochen. Da die Innenschaltung des VIC nicht zur Verfügung steht, kann es sich dabei natürlich nur um Spekulationen handeln, aber es wurde in allen Fällen ein Modell gewählt, das die beobachteten Phänomene mit dem geringsten Schaltungsaufwand erklärt. So wurde z.B. beim Videomatrixzähler (VC) einem Modell mit zwei einfachen Zählern einem aufwendigeren mit einem +40-Addierer der Vorzug gegeben. Obwohl einige Messungen mit einem Oszilloskop direkt am Chip stattfanden, beruhen die meisten Erkenntnisse jedoch auf Testprogrammen auf dem C64 und deren Vergleich mit der Implementierung in Einzelzyklusemulationen wie "Frodo SC".