VIC is an acronym for Video Interface Chip at and is the collective name for a number of microchips. The VIC controls the graphics routines (chars, sprites, graphic modes) for many computers manufactured by Commodore. The microchips were produced by the semiconductor manufacturer MOS Technology, which Commodore took over in 1976.
VIC-I[edit | edit source]
The VIC-I (cardinality added retrospectively) was designed for Commodore VIC-20 colour video graphics applications such as that required by low cost CRT terminals, biomedical monitors, control systems displays and arcade or home video games. It provides all of the circuitry necessary for generating colour programmable character graphics with high screen resolution. The VIC-I also incorporates sound effects and A/D converters for use in a video game environment. Its features are:
- Fully expandable system with a 16K byte address space.
- System uses industry standard 8 bit wide ROMS and 4 bit wide RAMS
- Mask programmable sync generation (NTSC-6560, PAL-6561)
- On-chip colour generation (16 colours)
- Up to 600 independently programmable and movable background locations on a standard TV.
- Screen centering capability
- Screen grid size up to 192 Horizontal by 200 Vertical dots
- Two selectable graphic character sizes.
- On-chip sound system including:
- White noise generator
- Amplitude modulator
- Two on-chip 8 bit A/D converters
- On-chip DMA and address generation
- No CPU wait states or screen hash during screen refresh
- Interlaced/Non-Interlaced registers
- Light gun/pen for target games
- 2 modes of colour operation
VIC-II[edit | edit source]
The VIC-II is the microchip tasked with generating Y/C video signals (combined to composite video in the RF modulator) and DRAM refresh signals in the C64 and C128 range of home computers. The VIC-II typically accesses the memory alternately with the CPU. However, it can also freeze the CPU briefly and access the memory with higher bandwidth during that time. This happens in the so-called "Badlines" and is necessary since the bandwidth would otherwise be insufficient. The VIC-II is connected to the Color RAM via a dedicated four bits data bus. Its features are:
- 16 kB address space for screen, character and sprite memory
- 320 × 200 pixels video resolution (160 × 200 in multi-color mode)
- 40 × 25 characters text resolution
- Three character display modes and two bitmap modes
- 16 colors
- Concurrent handling of 8 sprites per scanline, each of 24 × 21 pixels (12 × 21 multicolor)
- Raster interrupt (see details, below)
- Smooth scrolling
- Independent dynamic RAM refresh (an unusual feature for a graphics processor)
- Bus mastering for a 6502-style system bus; CPU and VIC-II accessing the bus during alternating half-clock cycles (the VIC-II will halt the CPU when it needs extra cycles)
Succeeding MOS's original VIC, the VIC-II was one of the two chips mainly responsible for the C64's success; the other microchip being the MOS 6581 SID).
|Hex Address||Dec Address||Page||Contents|
|$D000-$D3FF||53248-54271||Page 208-211||VIC-II registers|
VIC-III[edit | edit source]
Graphics in the C65 (also known as the C64DX) were to be provided by the VIC-III (designated the CSG 4567, and named as the "Bill" chip for designer Bill Gardei). Its features are:
- Support of standard C64 video modes.
- Textmode with 40/80 × 25 characters (featuring blink, bold, and underline).
- True bitplane VGA-style graphics:
- Palette of 4096 colours.
- Special facility for address resolution (Display Address Translator [DAT]) of the C64 pixel coordinate system.
- PAL only, no NTSC (but the RGB output works just fine with the 1084S).
- Synchronizable with external video source (Genlock).
- Integrated DMA-Controller (Bit blit).
- Reportedly can display Amiga OCS IFF.
Microprocessor Identification[edit | edit source]
- MOS Technology 6560 – VIC-I for (NTSC) VIC-20
- MOS Technology 6561 – VIC-I for (PAL) VIC-20. Revision: -101/E
- MOS Technology 6564 – VIC-I for Colour PET
- MOS Technology 6566 – VIC-II for MAX Machine
- MOS Technology 6567 – VIC-II for (NTSC) C64, SX-64, PET 64, C64GS. Revision: R56A/R7/R8/R9
- MOS Technology 6569 – VIC-II for (PAL) C64, SX-64, PET 64, C64GS, MAX Machine. Revision: R1/R3/R4/R5 (R1 = only 5 lumas)
- MOS Technology 6572 – VIC-II (PAL-N)
- MOS Technology 6573 – VIC-II (PAL-M)
- MOS Technology 8562 – VIC-II (NTSC)
- MOS Technology 8564 – VIC-II for (NTSC) C128, C128D, C128DCR
- MOS Technology 8565 – VIC-II for (PAL-B) C64. Revision: R2
- MOS Technology 8566 – VIC-II for (PAL-B) C128, C128D, C128DCR
- MOS Technology 8569 – VIC-II for (PAL-N) C128, C128D, C128DCR
- The NMOS variants 6566/67/69 require +12V on Pin 13/Vdd; the HMOS-II variants (8562/65) require only +5V DC.
- The 856x variants exhibit the Grey Dots problem.
Memory addresses[edit | edit source]
- Sprites lie at address MEM(Start of screen mem + $03F8 + sprite number)*64
- The start of the Screen RAM (the VIC bank) is set by $DD00 (see CIA 2) and $D018.
Hardware Assembly of the C64 · Hardware portal
Components of the C64: CPU · VIC · SID · CIA · PLA · RAM · ROM · Color RAM