VIC

From C64-Wiki
Jump to: navigation, search

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]

VIC-I, MOS 6560 Revision 101, Manufactured in week 44 of 1981
VIC-I, MOS 6561 Revision E, Manufactured in week 44 of 1981
VIC-I, MOS 6561 Revision 101, Manufactured in week 10 of 1983

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]

VIC-II, MOS 6569 Revision 1, Manufactured in week 24 of 1983
VIC-II, MOS 6569 Revision 3, Manufactured in week 43 of 1984
VIC-II, MOS 6569 Revision 3, Manufactured in week 05 of 1986
VIC-II, MOS 6569 Revision 5, Manufactured in week 33 of 1986

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


Registers

Hex Address Dec Address Page Contents
$D000-$D3FF 53248-54271 Page 208-211 VIC-II registers

VIC-III[edit]

VIC-III, CSG 4567 Revision 5, Manufactured in Week 50 of 1990

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:
    • 320x200x256
    • 640x200x256
    • 640x400x16
    • 1280x200x16
    • 1280x400x4
  • 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]


Notes

  • 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]

  • 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

Interfaces of the C64: Control Port · Expansion Port · Userport · Cassette Port · Power Supply Connector · A/V Jack · RF Jack · Serial Port