Saturday, April 7, 2018

Expanding Vintage IBM PC & Compatible Display Options - the GGLabs CGA2RGB Converter

GGLabs' CGA2RGB (courtesy of GGLabs)

Getting a high quality and proper video signal from an IBM CGA or EGA card or an IBM PCjr or Tandy 1000 without their specialized monitors can be difficult.  These computers used specialized RGB monitors to give a high quality solution using digital signals to tell the monitor which color to display.  Unfortunately this standard was not really adopted outside of the expensive PC compatibles and most RGB monitors only accept an analog signal.  When VGA and its analog RGB signal format became standard, support for the older digital RGB format went away.  In this blog entry I am going to examine an inexpensive converter that can help you adapt your vintage PC compatible's digital RGB video output to the more accessible analog RGB video output.




Digital vs. Analog RGB

Digital RGB video output was confined to the IBM CGA, IBM EGA, IBM PCjr. and Tandy 1000 display adapters.  Additionally, the Commodore 128 uses digital RGB to display 80-column text modes and 16-color bitmap modes using the MOS 8563/8568 Video Display Controller.  The Apple IIe Extended 64KB/80-Column RGB card, the ZX Spectrum 128 and its successors and the BBC Micros (except for the Model A which needs a mod) support digital RGB video, but the signal that comes from these devices is not quite compatible for a monitor expecting a strict IBM CGA signal, as will be explained below.

With digital RGB, the number of colors the monitor can produce is limited to the number of pins dedicated to the video colors.  One pin is dedicated to the red channel, one pin to the blue channel, and one pin to the green channel.  A fourth pin controls the intensity of the signal.  The signal is sent at TTL levels, so the signal is sent as on or off.  This gives a binary values from 0-15.  In total, 16 colors can be produced via digital RGB, which is often referred to as RGBI.  The hardware of the IBM PC may define which values correspond to which colors differently in software than the Commodore 128, but the colors produced by the display will not change.

There are a few exceptions.  The BBC Micros do not implement the intensity signal, so they are limited to 8 colors.  The EGA cards in high resolution (350-line) modes designate two pins for R, G, & B, so they can display 64 colors.  This is sometimes referred to as RrGgBb.  The EGA card in standard resolution (200-line) modes use CGA-compatible RGBI.  EGA cards are switched between 200-line and 350-line modes via dipswitch or jumper.

Many more systems supported Analog RGB video.  Support included the Commodore Amiga, the Atari ST, the Apple IIgs, the Tandy Color Computer 3, many of the MSX computers, the Amstrad CPCs.  Analog video uses 1v Peak-to-Peak amplitude signaling to drive the R, G & B guns inside the monitor to a theoretically unlimited number of colors.  These systems could drive only so many colors in their first iterations, 4096 for the Amiga and Apple IIgs, 512 for the Atari ST, 64 for the CoCo 3, 27 for the Amstrad and 15 for the MSX.

Problem 1 - Color Reproduction

As you can see, if you try to connect a digital RGB output to an analog RGB output, at best you are likely to see eight colors.  Adding the intensity bit via resistors will give you 16 colors, but the solution is inadequate because of IBM used circuitry inside its first IBM PC compatible RGB monitor, the 5153, to turn dark yellow into brown.  Commodore 128s also intend to display brown and use the same method as IBM to turn dark yellow into brown.  The ZX Spectrum and BBC Micros are not intended to display brown but dark yellow.

IBM 5153, 5154, 4860 and 5145 and Tandy CM-4/5/10/11s are the most-well known and compatible RGBI displays.  The Commodore 128s used Commodore 1084 monitors, most of which are RGBI compatible.  The Extended 80-Column Text/AppleColor Adaptor Card connected to an AppleColor Monitor 100, an RGBI display sold by Apple Computer.  I do not know whether the AppleColor Monitor 100 displays dark brown or yellow, the monitor is rather rare.  The evidence I have suggests it displays brown because it was trying to be compatible with the Apple II composite colors, which can display a brown.

Generic "CGA" to VGA adapters were originally designed for arcade monitors, which always used analog RGB.  They call 15KHz "CGA mode", 24KHz "EGA mode" and 31KHz "VGA mode".  These CGA/EGA designations have nothing to do with IBM CGA or IBM EGA.  The Gonbes GBS-8200/8220 is one such device that seemed to establish these conventions.

Problem 2 - Sychronization

Sync with CRT displays has generated a lot of confusion over the years.  The synchronization pulses tell the electron scanning beam when to draw a new line (horizontal sync) and when to draw a new frame (vertical sync).  The basic TV horizontal scan frequency is 15.75KHz and the vertical frequency is either 60Hz (NTSC coutnries) or 50Hz (PAL/SECAM countries).  Until VGA and 31.5KHz monitors were introduced, color home computers always used 15KHz monitors.  IBM EGA uses a 21KHz horizontal scan frequency in its high resolution modes and IBM MDA uses a 18.43KHz horizontal scan frequency and a 50Hz vertical scan frequency.

IBM started a tradition of using two wires for horizontal and vertical sync, and this design has persisted for all its graphics adapters : MDA, CGA, EGA and VGA.  Using two wires for sync is called separate sync.  Other computers may expect the horizontal and vertical sync pulses on one wire, this is called composite sync.  Sync can also be found on the Y-line of component or S-video cables (sync-on-luma), on some non-PC graphics adapters on the green signal (sync-on-green) and is always included on a composite (sync-on-composite, confusingly named) or RF video signal

Here are the analog RGB computer systems and the typical monitors they use :

Tandy CoCo 3 - CM-8 - Separate Sync
Atari ST - SC1224 - Separate Sync
Apple IIgs - AppleColor RGB Monitor - Composite Sync
MSX RGB Displays - Composite Sync
Amstrad CPC - CTM640/CTM644/CM14 - Composite Sync
Commodore Amiga - Commodore 1080/1084 - Many variants support digital RGBI and most can accept Composite or Separate Sync.  Good information can be found here : https://gona.mactar.hu/Commodore/monitor/Commodore_monitors_by_model_number.html

The GGLabs CGA2RGB as a Solution to Problems ## 1&2


Now we come to the product to be reviewed after all that exposition.  The CGA2RGB consists of an Amtel GAL, an RGB amplifier chip, a DE-9 male and an HD-15 male.  The idea is that CGA goes in and 15KHz RGB comes out with a proper brown.  There is a competing solution but some of those boards do not give proper colors.  There is a header to provide power to the converter, it needs +5v.  Pin 1 is the closest pin to the board's edge and Pin 2 is ground.  I used a USB power brick with a homemade cable to provide power, but a Gonbes GBS-8220 has a power header suitable for the converter.  There is one jumper, J4.  When set to the two pins closest to the board's edge, it gives you separate sync.  When set to the two pins closest to the board's center, it gives you composite sync.  The official product page is here : https://gglabs.us/node/2022


You will probably need a 9-pin cable to connect to your computer's display port connector.  I used a 3' male to female serial cable.  You should not consider using a cable of more than 6' lest the digital video signals start to lose fidelity.  Make sure you use a straight-through cable and not a null-modem cable.  On the 15-pin side, you may need a HD-15 female to male or a female to female cable depending on what you are trying to connect.  The CGA2RGB only converts color and sync, it does not line double or upscale.  Most VGA CRT monitors will not accept a 15KHz signal.  There were a few early VGA monitors like the NEC MultiSync (up to and including the 3D) that will accept CGA or EGA 15/21KHz signals.  LCDs do not care so much about sync because they work very differently.  You may be able to connect a CGA device to an LCD, I was able to connect my CGA card to my ASUS vw266, but the image was stretched out and rather fuzzy.


With this device, proper video capture becomes possible.  My StarTech USB3HDCAP will accept CGA signals after conversion and show 16 colors.  However, as with native 15KHz RGB and Component signals, the pixel sizes will be uneven because it samples these 15KHz signals at 1440x240.  Running the signal through a Framemeister or OSSC would give better results.  I also wonder if an inexpensive 15KHz to VGA scaler like the Gonbes GBS-8220 would give better results with the capture card.  If I get one, I'll do a review on the combo.


Here are the video captures I made :

https://www.youtube.com/watch?v=lm7EOsz5eZw

https://www.youtube.com/watch?v=BrLmej0Pa0I

https://www.youtube.com/watch?v=9-syAzA3eJ4

All the screenshots in this post were captured in this manner.

In short, I recommend this converter as a simple and practical solution to get virtually any digital RGB output to work with analog RGB inputs.  The converter currently costs $40, but it is well worth the price.  The only downside is the lack of a brown/dark yellow jumper to make the device work with the ZX Spectrum and the BBC Micro's digital RGB.

14 comments:

Leon Kiriliuk said...

Interesting. From my reading on forums, the 3DO is also using digital RGB internally. The RGB amps that were sold in the part (and new ones that are being developed now) convert from digital RGB to analog RGB (different methods, with varying results and issues). Wonder if this is something you can cover in a future blog post.

Great Hierophant said...

I didn't know about the 3D0, but modders have been able to tap digital RGB or YCbCr N64 and the GameCube and used that to make HDMI mods. Digital RGB can be had from the PC Engine and (theoretically) from the Atari 2600. Unfortunately, other systems of the era like the Genesis, SNES, Jaguar, Saturn & PlayStation do not have digital color you can tap outside the ICs for a mod.

Leon Kiriliuk said...

Here's a link to where the discussion began on AtariAge: http://atariage.com/forums/topic/260654-new-3do-rgb-mod-possibility/

riq said...

nit: The company name seems to be GGLabs, and not GCLabs. Just saying because it Google doesn't find it when searching for "GCLabs"

Tom said...

Possibly interesting as trivia: the Oric was designed to use eight-colour digital RGB internally, then those signals were extended to the video output port for no reason other than that it had spare pins.

When it sold poorly in the UK that proved to be its saving grace: it was the only micro in the Spectrum sort of price range with RGB out, a natural fit for the SCART connector that was already very common in France, where SECAM is very awkward. So the machine became a decent seller there, at least until Thomson raised its game and the CPC came along.

Great Hierophant said...

I fixed the name of the company, d'oh!

uridium said...

Very interesting. Thanks for the review.

RetroSwim said...

Great article! The Commodore 1084 series of monitors are genuinely the business. I use mine with all of my 8-bit computers, from my Speccy through to my Apple IIgs and Tandy 1000.

Anonymous said...

There is a new project that seems interesting:

https://sites.google.com/site/tandycocoloco/mda-cga-ega-to-vga

It supports MDA/HGC, CGA, EGA.

neo said...

is the tandy cm-11 the very best monitor for tandy graphics?

Great Hierophant said...

It is the very best monitor Tandy sold that can display Tandy graphics, but monitors sold by other companies, like IBM, were usually sharper. The IBM 5153 and 5154 are sharper, perhaps too sharp.

neo said...

thanks, but do those IBM monitors support tandy's 225 lines? what's their dot pitch?

the colors on my cm-11 were very nice :)

Great Hierophant said...

The dot pitch on an IBM 5153 Color Display is about 0.31 and an IBM 5154 Enhanced Color Display is about 0.28. The Tandy CM-11 has about a 0.42 dot pitch.

Any monitor with a vertical size dial can support the Tandy's 225-line text modes. All the above monitors have one.

neo said...

i know that the lower the dot pitch, the "sharper" the image, but with tandy graphics does it get to the point where it introduces other problems?

i know tandy cm-11 dot pitch is .43 but the colors on the cm-11 were really good.

did that higher dot pitch contribute to better colors?