Der MOS 6567/6569 Videocontroller (VIC-II) und seine Anwendung im Commodore 64
Inhalt 2. Die Architektur des Commodore 64
2.2. 6510 Prozessor |
Der 6510-Mikroprozessor [1] besitzt einen 8-Bit-Daten- und 16-Bit-Adressbus und ist zum bekannten 6502 binärkompatibel. Er verfügt über zwei externe Interruptmöglichkeiten (eine nicht maskierbare (IRQ) und eine maskierbare (NMI)) und als Besonderheit einen 6 Bit breiten bidirektionalen I/O-Port. Er wird im C64 mit einer Taktfrequenz von ca. 1MHz betrieben. Wichtige Signale:
ø2 | Prozessortakt Ausgang Dieses Taktsignal ist die Grundlage des gesamten Bus-Timing. Seine Frequenz beträgt 1022,7 kHz (NTSC-Rechner) bzw. 985,248 kHz (PAL-Rechner). Eine Periode dieses Signals entspricht einem Taktzyklus, der aus zwei Phasen besteht: Während der ersten Taktphase ist ø2 Low, während der zweiten Phase High (daher auch der Name 'ø2' für "Phase 2"). Der 6510 greift nur während der zweiten Taktphase auf den Bus zu, der VIC normalerweise während der ersten Phase.
R/W | Dieses Signal zeigt einen Lese- (R/W High) oder Schreibzugriff (R/W Low) an.
IRQ | Ist dieser Eingang auf Low-Pegel, wird eine Interruptbearbeitung ausgelöst, sofern der Interrupt über ein Bit im Statusregister freigegeben wurde. Die Unterbrechung erfolgt frühestens nach zwei Taktzyklen beim Erreichen des nächsten Befehls. Mit diesem Pin kann der VIC einen Interrupt im Prozessor auslösen. Interrupts werden nur erkannt, wenn RDY high ist.
RDY | Ist diese Leitung während eines Lesezugriffs Low, hält der Prozessor an und gibt auf Adreßleitungen die Adresse, auf die zugegriffen werden sollte, aus. Bei Schreibzugriffen wird das Signal ignoriert. Im C64 wird RDY benutzt, um den Prozessor anzuhalten, wenn der VIC für den Zeichenzeiger- und Spritedatenzugriff zusätzliche Buszyklen benötigt. Es ist direkt mit dem Signal BA des VIC verbunden.
AEC | Mit diesem Pin werden die Adreßleitungen hochohmig geschaltet. Dies dient dazu, den Prozessoradreßbus bei Zugriffen des VIC lahmzulegen. Das Signal ist mit dem Ausgang AEC des VIC verbunden.
P0-P5 | Dies ist der eingebaute 6-Bit-I/O-Port. Jede Leitung kann einzeln als Ein- oder Ausgang programmiert werden. Dazu sind ein Datenrichtungsregister bei Adresse 0 und ein Datenregister bei Adresse 1 prozessorintern in den Adreßraum eingeblendet. Daher sollte man annehmen, daß der Prozessor nicht auf die RAM-Adressen 0 und 1 zugreifen kann (sie werden ja vom I/O-Port überlagert), aber dazu später mehr...