Electronic – 8bit: How to generate video output

crtlogic-gatesvideo

I'm designing an 8-bit computer, trying to stick with low-cost components available in 1984+/-3. Following a previous question, I've completed the 6845-based hardware, except that I have no clue how to generate the RGB video signal.

I looked at the schematics of many computers of the era, especially the Amstrad CPC and the BBC Micro, but found that everything was done in an opaque ULA, with no details about operation.

I have the hsync and vsync from the 6845, and my design is now able to produce synchronously for each pixel a N-bits value for each R-G-B component, either in parallel or serialized via shift registers. What then?

I suppose I should feed the values to some DAC able to convert those to analogic signal, but I saw nothing of the kind on the schematics. It looks like they are feeding video ram values, character rom and color latches into the ULA and then, presto, direct to the video connector!

Do those ULA include DAC too, or is the video output standard digital after all, or (most probably) am I missing something?

Best Answer

In the 1980's integrated video DACs were expensive and difficult to embed into custom chips. Most home computers with RGB output either used discrete DACs made from resistors, or had digital outputs (RGB or RGBI).

The Amstrad CPC and BBC micro's ULA did not have internal DACs. The BBC's video processor only produced digital (2 level) outputs, was so it was limited to 8 colors. The Amstrad's Gate Array used its tri-state digital outputs to produce 3 levels (high, low, or floating) with external resistors creating the desired analog voltages. This was able to produce 27 colors.

Here is part of the Amstrad's video circuit. R125-129 pull the outputs high, while R131-133 and R135 pull them low. When a Gate Array output is tri-stated (open circuit) a midpoint voltage results. R131-133 and R135 also mix the colors to produce composite video. R126-130 drop the RGB outputs down to 0.7V when the lines are correctly terminated with 75 Ohms.

enter image description here

Even more colors can easily be produced using resistor based DACs. The Amiga 1000 produced 4096 colors using the circuit below. The Denise video chip produced 4 bit digital RGB outputs which were then converted to analog using binary weighted resistors (1k, 2k, 4k and 8k).

enter image description here

Related Topic