Der MOS 6567/6569 Videocontroller (VIC-II)
und seine Anwendung im Commodore 64
Inhalt
3. Funktionsweise des VIC
3.2. Register
english Vorheriger Abschnitt Nächster Abschnitt

Der VIC besitzt 47 Schreib-/Leseregister zur Steuerung seiner Funktionen durch den Prozessor:

# Adr. Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Funktion
0 $d000 M0X X-Koordinate Sprite 0
1 $d001 M0Y Y-Koordinate Sprite 0
2 $d002 M1X X-Koordinate Sprite 1
3 $d003 M1Y Y-Koordinate Sprite 1
4 $d004 M2X X-Koordinate Sprite 2
5 $d005 M2Y Y-Koordinate Sprite 2
6 $d006 M0X X-Koordinate Sprite 0
7 $d007 M2Y Y-Koordinate Sprite 2
8 $d008 M3X X-Koordinate Sprite 3
9 $d009 M4Y Y-Koordinate Sprite 4
10 $d00a M4X X-Koordinate Sprite 4
11 $d00b M5Y Y-Koordinate Sprite 5
12 $d00c M6X X-Koordinate Sprite 6
13 $d00d M6Y Y-Koordinate Sprite 6
14 $d00e M7X X-Koordinate Sprite 7
15 $d00f M7Y Y-Koordinate Sprite 7
16 $d010 M7X8 M6X8 M5X8 M4X8 M3X8 M2X8 M1X8 M0X8 MSBs der X-Koordinaten
17 $d011 RST8 ECM BMM DEN RSEL YSCROLL Steuerregister 1
18 $d012 RASTER Rasterzähler
19 $d013 LPX Lichtgriffel X
20 $d014 LPY Lichtgriffel Y
21 $d015 M7E M6E M5E M4E M3E M2E M1E M0E Sprite angeschaltet
22 $d016 - - RES MCM CSEL XSCROLL Steuerregister 2
23 $d017 M7YE M6YE M5YE M4YE M3YE M2YE M1YE M0YE Sprite Y-Expansion
24 $d018 VM13 VM12 VM11 VM10 CB13 CB12 CB11 - Speizerzeiger
25 $d019 IRQ - - - ILP IMMC IMBC IRST Interruptregister
26 $d01a - - - - ELP EMMC EMBC ERST Interrupt angeschaltet
27 $d01b M7DP M6DP M5DP M4DP M3DP M2DP M1DP M0DP Sprite-Daten-Priorität
28 $d01c M7MC M6MC M5MC M4MC M3MC M2MC M1MC M0MC Sprite Multicolor
29 $d01d M7XE M6XE M5XE M4XE M3XE M2XE M1XE M0XE Sprite X-Expansion
30 $d01e M7M M6M M5M M4M M3M M2M M1M M0M Sprite-Sprite-Kollision
31 $d01f M7D M6D M5D M4D M3D M2D M1D M0D Sprite-Daten-Kollision
32 $d020 - - - - EC Rahmenfarbe
33 $d021 - - - - BOC Hintergrundfarbe 0
34 $d022 - - - - B1C Hintergrundfarbe 1
35 $d023 - - - - B2C Hintergrundfarbe 2
36 $d024 - - - - B3C Hintergrundfarbe 3
37 $d025 - - - - MM0 Sprite Multicolor 0
38 $d026 - - - - MM1 Sprite Multicolor 1
39 $d027 - - - - M0C Farbe Sprite 0
40 $d028 - - - - M1C Farbe Sprite 1
41 $d029 - - - - M2C Farbe Sprite 2
42 $d02a - - - - M3C Farbe Sprite 3
43 $d02b - - - - M4C Farbe Sprite 4
44 $d02c - - - - M5C Farbe Sprite 5
45 $d02d - - - - M6C Farbe Sprite 6
46 $d02e - - - - M7C Farbe Sprite 7

Hinweise:

  • Die mit '-' gekennzeichneten Bits sind unbelegt. Beim Lesen liefern sie eine "1"
  • Die VIC-Register wiederholen sich im Bereich $d000-$d3ff alle 64 Bytes, d.h. Register 0 ist an Adresse $d000, $d040, $d080 etc. verfügbar
  • Die nicht belegten Adressen $d02f-$d03f liefern beim Lesen den Wert $ff, ein Schreibzugriff ist ohne Wirkung
  • Die Register $d01e und $d01f sind nicht beschreibbar und werden bei einem Lesezugriff automatisch gelöscht
  • Das RES-Bit (Bit 5) von Register $d016 ist bei den bisher untersuchten VIC 6567/6569 ohne Funktion. Beim 6566 dient dieses Bit dazu, den VIC zu stoppen.
  • Bit 7 in Register $d011 (RST8) ist Bit 8 von Register $d012. Beide zusammen werden im folgenden mit "RASTER" bezeichnet. Ein Schreibzugriff in diese Bits legt die Vergleichszeile für den Rasterinterrupt fest (siehe Abschnitt 3.12.).