This article describes three different ways on how to cope with the digital-level RGB videosignal, often found in various computing equipment of the 1980s and early 1990s, so that it can be connected to other display equipment, besides vintage monitors: be it Commodore 128 or Amiga, IBM MDA/CGA/EGA, certain clones of the ZX Spectrum, arcade machines, and so on.
Originally, this digital interface provided a maximum of sixteen colors from one palette (4-bit RGB). That is, eight basic colors of “low intensity”; black, white, red, green, blue, yellow (red+green), magenta (red+blue) and cyan (green+blue). Plus another eight to get the “high intensity”, or lighter versions, of these basic colors, yielding sixteen in total. Later, this limit was surpassed by switching the palettes and/or varying the Intensity for four levels, instead of two (low and high intensity), to a maximum of 64 colors.
On a monochrome display, like the IBM MDA or Hercules, three – and sometimes four – shades, could be used to display text or graphics. Depending on the monochrome monitor used, this was either green, amber or gray: video line low (black), video line high (green/amber/gray) and video line high with high-intensity line high (light green/amber/gray). The fourth shade, which was not always supported, was setting the video line low with high intensity line high, yielding dark green/amber/gray, depending on the phosphor.
Now, there are at least 3 different ways on how to get these video modes working with “more modern” displays:
- Option 1: Bringing the signal levels down, mixing Intensity and upscaling
This technique involves bringing the 5-volt TTL RGB signal levels down to 0.7 volts, as used with analog RGB (e.g. in VGA). Then, the Intensity signal is mixed in, both passively and with a diode-clamp/pull-up circuit. Connecting this to a suitable HDMI or VGA upscaler, to “scale up” the resolution, yields a video signal that is compatible with more modern displays and does not require a vintage monitor, which relies on the slower horizontal sync frequencies (“newer” monitors don’t go that low on HSYNC).
On display devices that accept an analog RGB input directly (TVs with a SCART/Euro-AV connector), the upscaler can be omitted, but only if the input video signal is conformant with the PAL (15.625kHz HSYNC, -50Hz VSYNC) or CGA/NTSC standard (15.75kHz HSYNC, +60Hz VSYNC), and the TV supports it.
However, note that you might need to force the TV to use the SCART RGB video input by applying +1V to +3V onto pin 16, or find a setting in the Menu to do it for you.
Also note that the current draw from pin 16 may reach up to 40 mA!
The following schematic, inspired by H2Obsession, was used by me together with a TV with a SCART RGB input, and also with a Gonbes GBS-8220 VGA upscaler, on multiple TTL RGB devices:
By the way, connecting the “Intensity” pin is fully optional, the circuit also works with RGB TTL video sources that do not make use of it. If you do use it however, be sure to calibrate the colors with the “color adjust” trimpot, preferably by generating a 16-color test pattern, first.
Here’s an example – a Slovak ZX Spectrum clone “Didaktik M”, compared with its internal composite video out (on the left). This was connected directly from the circuit above, to the SCART connector of the TV, without an upscaler. Notice the much better contrast and a lack of “ghosting” – which is very prominent on the composite video.
The only real limitation here is the upscaler that you use, or if you use the RGB input on a TV directly, the signal must conform to the PAL or NTSC standards (and the TV must support an analog signal).
As an example, the GBS-8220 will not sync on an MDA/Hercules signal (18.43kHz HSYNC, -50Hz VSYNC), or the 640×400 “Hi-Res CGA” from an Earthstation-I. Also, the upscaler provides both HSYNC/VSYNC and CSYNC (composite sync) inputs; however, the HSYNC/VSYNC combo is only used when a VGA signal is being fed.
Thus I had to combine the HSYNC/VSYNC from a CGA card, into single composite sync CSYNC, otherwise it would not work at all. And this ought to be done properly with a sync combiner IC, but there’s also a sloppy way of doing this: using a quad-XOR gate (see schematic below), that can work just as well.
- Option 2: TTL-to-monochrome composite video
This approach was used with my PMD-60.1 monochrome monitor – which is basically a portable TV, but with a green screen, and without a channel tuner, MF separator and a sound stage – it only had a composite video input, designed for PAL (15.625kHz HSYNC, -50Hz VSYNC). The circuit is a small variation from the one above:
This circuit already has the makeshift “sync combiner” present, combining HSYNC and VSYNC into CSYNC + accounting for positive or negative vertical sync pulses (into the last XOR gate: logical 1 for CGA, logical 0 for MDA/Hercules).
Also, the “Intensity” input is being handled, to account for three different shades: black/no video, normal text, high intensity text. All of these TTL levels are smacked down and mixed passively to one single composite video signal with sync. This is, of course, miles away from resembling a video signal conformant to the standards, but it usually does work (if you fiddle with the sync adjustment trimpot, until the image stops dancing around).
On a CGA input video signal, the Green video line is used as a compromise. Everything purely red or blue may end up not showing properly.
Composite MDA video (18.43kHz), with high intensity support, on a PMD 60.1 TV with its horizontal stage tweaked
Of course, even here, the display device (or TV) must be able to sync up to the video signal. With a mono CGA, it’s enough for the TV just to support NTSC. Or if not, you can stabilize the jumping picture by tweaking the vertical stage frequency, until it is stationary. But with an MDA or Hercules, 99.9 % of TVs won’t sync to those frequencies, resulting in a corrupted or a blank picture.
With a TV that has a free-running analog horizontal sweep generator, you could – technically – tweak its frequency to lock on something around 18 kilohertz. However, this can strain the horizontal output transistor (HOT), or the flyback transformer, and can lead to damage.
In my case, the green screen PMD 60.1 employs a TBA950 in its horizontal sweep stage. Trimpots in the back of the modules can be then used to modify the frequency between 14 to 18 kHz, and the phase. Running the flyback on 18 kilohertz actually decreased the high voltage output, and the length of the flyback pulse, so the picture was narrower and visibly squished. This was corrected by replacing the capacitor parallel to the HOT, and also using a different capacity for the CRT curvature (S-correction) capacitor, in series with the deflection coils.
The vertical stage was also accustomed to fit the size of the MDA video.
- Option 3: TTL-to-color composite video
And this is where things start getting messy. Not only the color video quality will be degraded (check out the “Didaktik M” example above), and suspect to various artifacts, there’s also no easy way of doing this without a dedicated IC. Also, the use case is to convert an already conformant PAL or NTSC RGB signal into a PAL or NTSC-conformant composite video signal – most converter ICs won’t make composite video out of some funky high-resolution TTL modes. So if you already have an upscaler, or an RGB signal conformant with PAL/NTSC and a TV or monitor to display it on, forget this step.
If you do want to pursue this approach though, check out the datasheets and recommended operating circuits for either the Texas Instruments LM1886/LM1889 combo (the first to convert the RGB into Y, B-Y and R-Y signals, the second to form a video signal), or for the Motorola MC1377 RGB to PAL/NTSC converter.