The VIDC20 was a video display controller chip created as an accompanying chip to the ARM CPU as used in RiscPCcomputer systems. A simpler version of the VIDC20, the VIDC1, was used in the earlier Acorn Archimedes computers. A VIDC20 chip controls both the computer's video and sound. The data is read from the 64-bit ARM data bus using DMA control and then processed and converted into the necessary analogue signals to drive the video outputdisplays and sound system. The VIDC20 can handle many more display and sound formats than the original VIDC1 chip found in the Archimedes hardware. It can also read data from VRAM if installed in the machine, otherwise it reads from DRAM.
Video
Data from the video buffer is converted and processed, as follows: Data is serialised by the VIDC20 chip into either 1, 2, 4, 8, 16 or 32 bits per pixel, then passed through a colour look-up palette RAM. The palette has 256 28-bit-wide registers: 8 red bits, 8 green bits, 8 blue bits and 4 bits for external data. The output is then converted by three 8-bit DACs, one each for red, green and blue colour. Output is then used to drive the display output device with a maximum of 16 million possible colours. The VIDC20 chip can handle any pixel rate up to 110 MHz, with the clock selected from one of three sources, which can then be further divided bya factor between 1 and 8. It also contains a phase comparator which allows for a single clock to generate all the required frequencies for any display mode.
Sound
Up to eight separate channels of mono sounds are provided by the VIDC20 chip. The chip can work with 1, 2, 4 or 8 stereo channels using time division multiplexing to synthesize left and right outputs. Each channel can be assigned a stereo position. Data from the buffer is converted and processed. Data from the buffer is read at a programmable rate and passed to an 8-bit/16-bit DAC. The DAC uses the stereo image registers to convert the digital samples to a stereo analogue sample which is sent to the computer’s internal amplifier
Cursor
The cursor data controller controls a 32-pixel-wide, and an unlimited number of pixels high, cursor. The pixels can be transparent or can be any three colors picked from the possible 16 million available colors.