MOS Technology VIC II
The VIC (Video Interface Controller ) II of MOS Technology, the successor to the VIC, a video display controller (IIE or III as slightly extended VIC VIC) in the Commodore C64 home computer and is in C128 was used. It was produced in NTSC (MOS 6567/MOS 8562 ) and PAL versions (MOS 6569/MOS 8565 ). A special feature of the VIC II are his 8 hardware sprites with collision detection.
- Generation of the system clock for the other chips
- Automatic refresh of dynamic RAM (DRAM).
- Bus and memory can be shared with processors from the 6502 family without major slowdown of the two chips, both chips fall alternately toward it.
- 16 kB address space (DMA ) for video and character set memory
- Separate 1000 x 4 bit color memory, the C64 with static RAM ( SRAM) realized. (Just a nibble of each byte -addressed appears in provided for the CPU address space of size 1 kB. )
- 16 colors
- Text mode with 25 lines of 40 characters
- 3 text modes: Hires with 8 × 8 pixels per character, one from 16 foreground colors per character and a policy covering the entire screen background color.
- Extended Color Mode (ECM ) with 8 × 8 pixels per character, one from 16 foreground colors and one of four ( out of 16) background colors per character, character set, limited to the first 64 characters.
- Multi- Color with 4 × 8 ( double-wide ) pixels per character, each character an 8 foreground colors, and 3 screen -wide other colors from 16 Hires characters and Multicolor characters can be mixed as required, the foreground color is only the first 8 colors available.
- Hires with 320 × 200 pixels, and a freely selectable foreground and background color per 8 × 8 pixel box
- Multi- Color with 160 × 200 ( double-wide ) pixels, 3 selectable colors per 4 × 8 pixel array and a screen wide and adjustable color.
Programming the VIC II
A central role in programming the VIC II plays the raster line. This may serve to keep the current main program screen at certain positions and to load new register contents in some VIC II registers. In this way, you can easily get the screen into several distinct areas divide ( split screen). Furthermore, one can quite easily use with the help of which 8 sprites several times per frame structure so that you can demonstrate a lot more sprites. These two methods are used by a lot of C64 games.
Furthermore, the frame around the image of the C64 is a problem, especially for PAL systems, this is very broad. The VIC II offers no tab, enable the display of graphics in this area, but you can by some skilful register manipulations at the right time to switch off the masking of the view through the frame and at least that represent sprites in this area, so that the graphic representation on up to 402 pixels wide and about 284 pixels height can be expanded ( for PAL, less for NTSC systems).
The color resolution in the graphics modes can be increased by skilful manipulation Register. It is the VIC II compel not only every eighth, but in each raster line to load new color information from the memory. This has the consequence that in a full-screen graphics, although more than 64 % of the computing time is spent for the graphic display, but you get a nearly full 16-color mode (FLI, Flexible Line Interpreter ).
Fast scrolling of bitmap graphics is also possible by sophisticated register manipulations, horizontal can so the screen start to move (HSP - Horizontal screen position ), which is far too computationally costly copying the entire bitmap every 8 pixels (as would be necessary with conventional Hardwarescrolling ) superfluous makes - it must be rewritten in the scrolling area. Vertical, the bitmap can be displaced by means of FLD (Flexible Line Distance ) downwards or upwards by Linecrunching (VSP - Vertical screen position). Together, this effect under C64 programmers as AGSP ( Any Given screen position) is known.