VIC-II 6567/6569/856x (Video Interface Chip 2) reference

VIC-II register set:
|  | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0
--- | --- | --- | --- | --- | --- | --- | --- | --- | ---
$D000 (R/W) | M0X | Sprite 0 X-position
$D001 (R/W) | M0Y | Sprite 0 Y-position
$D002 (R/W) | M1X | Sprite 1 X-position
$D003 (R/W) | M1Y | Sprite 1 Y-position
$D004 (R/W) | M2X | Sprite 2 X-position
$D005 (R/W) | M2Y | Sprite 2 Y-position
$D006 (R/W) | M3X | Sprite 3 X-position
$D007 (R/W) | M3Y | Sprite 3 Y-position
$D008 (R/W) | M4X | Sprite 4 X-position
$D009 (R/W) | M4Y | Sprite 4 Y-position
$D00A (R/W) | M5X | Sprite 5 X-position
$D00B (R/W) | M5Y | Sprite 5 Y-position
$D00C (R/W) | M6X | Sprite 6 X-position
$D00D (R/W) | M6Y | Sprite 6 Y-position
$D00E (R/W) | M7X | Sprite 7 X-position
$D00F (R/W) | M7Y | Sprite 7 Y-position
$D010 (R/W) | M?X8 | M7X8 | M6X8 | M5X8 | M4X8 | M3X8 | M2X8 | M1X8 | M0X8
$D011 (R/W) | CR1 | RST8 | ECM | BMM | DEN | RSEL | YSCROLL
$D012 (R) | RASTER | Raster Counter bits 7-0
$D012 (W) | RSTCMP | Raster Comparator bits 7-0
$D013 (R) | LPX | Light Pen X-position
$D014 (R) | LPY | Light Pen Y-position
$D015 (R/W) | M?E | M7E | M6E | M5E | M4E | M3E | M2E | M1E | M0E
$D016 (R/W) | CR2 | unused ¹ | RES | MCM | CSEL | XSCROLL
$D017 (R/W) | M?YE | M7YE | M6YE | M5YE | M4YE | M3YE | M2YE | M1YE | M0YE
$D018 (R/W) | VM/CB | Screen Pointer (A13-A10) | Bitmap/Charset Pointer (A13-A11) | unused ¹
$D019 (R/W) | IRQST | IRQ | unused ¹ | ILP | IMMC | IMBC | IRST
$D01A (R/W) | IRQEN | unused ¹ | ELP | EMMC | EMBC | ERST
$D01B (R/W) | M?DP | M7DP | M6DP | M5DP | M4DP | M3DP | M2DP | M1DP | M0DP
$D01C (R/W) | M?MC | M7MC | M6MC | M5MC | M4MC | M3MC | M2MC | M1MC | M0MC
$D01D (R/W) | M?XE | M7XE | M6XE | M5XE | M4XE | M3XE | M2XE | M1XE | M0XE
$D01E (R/W) | M?M | M7M | M6M | M5M | M4M | M3M | M2M | M1M | M0M
$D01F (R/W) | M?D | M7D | M6D | M5D | M4D | M3D | M2D | M1D | M0D
$D020 (R/W) | EC | unused ¹ | Border Color
$D021 (R/W) | B0C | unused ¹ | Background Color 0
$D022 (R/W) | B1C | unused ¹ | Background Color 1
$D023 (R/W) | B2C | unused ¹ | Background Color 2
$D024 (R/W) | B3C | unused ¹ | Background Color 3
$D025 (R/W) | MM0 | unused ¹ | Sprite Multicolor 0
$D026 (R/W) | MM1 | unused ¹ | Sprite Multicolor 1
$D027 (R/W) | M0C | unused ¹ | Sprite 0 Color
$D028 (R/W) | M1C | unused ¹ | Sprite 1 Color
$D029 (R/W) | M2C | unused ¹ | Sprite 2 Color
$D02A (R/W) | M3C | unused ¹ | Sprite 3 Color
$D02B (R/W) | M4C | unused ¹ | Sprite 4 Color
$D02C (R/W) | M5C | unused ¹ | Sprite 5 Color
$D02D (R/W) | M6C | unused ¹ | Sprite 6 Color
$D02E (R/W) | M7C | unused ¹ | Sprite 7 Color
$D02F (R/W) | KCR ² | unused ¹ | Keyboard Interface ²
$D030 (R/W) | FAST ² | unused ¹ | TEST ² | 2 MHz ²

¹ - Unused bits read back 1
² - Only available on C128

VIC-II video modes:
ECM | BMM | MCM | Mode
--- | --- | --- | ---
0 | 0 | 0 | Hires character mode (40x25)
0 | 0 | 1 | Multicolor character mode (40x25)
0 | 1 | 0 | Hires bitmap mode (320x200)
0 | 1 | 1 | Multicolor bitmap mode (160x200)
1 | 0 | 0 | Hires character mode with extended background colors (40x25)

VIC-II color palette:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7
--- | --- | --- | --- | --- | --- | --- | ---
8 | 9 | A | B | C | D | E | F

© 2009-2011 Graham