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.).
|