Friday, March 3, 2023

The Saga of the Color Brown in the Early Years of the PC

top left: RGB monitor without intensity bit, bottom left: RGBI monitor without brown correction, top right: RGBI monitor with 33% brown reduction (IBM 5153), bottom right: RGBI monitor with 50% brown reduction (EGA/VGA/Tandy)

In 1980-81 IBM developed a graphics card for its new IBM PC called the Color/Graphics Adapter.  This card was designed to display 16 colors on a compatible CRT monitor via a 9-pin digital video port.  IBM defined the colors in its Technical Reference Manual using a 4-bit binary code.  The CGA could also display colors with a composite video connector on the card.  It is the evolution of the display of one of those colors, color 6, commonly but yet simplistically referred to as brown, that we are interested in today.

Introduction of Digital CRTs

In the 4-bit scheme IBM devised, there would be 1-bit for red, 1-bit for green, 1-bit for blue and 1-bit for intensity. A color value of 0 meant all color bits and the intensity bit was off and a 1 meant the color or intensity was on, blue is designed by a 1, green by a 2, red by a 4, white by a 15 and so on.  But in the beginning IBM's standard only existed on paper, IBM did not release a color monitor when the IBM PC was released in August of 1981.  

At that time, high quality CRTs that accepted a digital input did exist.  They used the same 15KHz scan frequency that composite monitors and TVs used, but instead of having an NTSC decoder determining what colors to put on the scanlines, "digital CRTs" used a simple on/off color decoding approach.  One of the premier computer monitor manufacturers in those days was a company called Amdek.  The Amdek Color I was as close to a "canonical" Apple II composite color monitor as the Apple II got until Apple Computer produced the ColorMonitor IIe.  Amdek also made the Amdek Color II monitor, which was designed to display the colors from an Apple II via a digital connection.  This digital connection was supplied by an expansion card which plugged into the Apple II and recreated the video signal of the Apple II and converted it into digital values suitable for the monitor.

As the Amdek Color II shipped, it only displayed 8 colors (despite the Apple II being capable of showing 15 via composite video).  It did not support the intensity signal out of the box, so with a CGA card you only were able to see the 8 primary colors : black, blue, green, cyan, red, magenta, yellow, white.  The Amdek Color II was capable of showing 16 colors but needed another wire added to pass the intensity signal from the card to the monitor.  

With a monitor cable replacement the Amdek Color II was capable of showing 16 colors, but there was an issue. IBM defined color 6 as brown but the RGBI standard in its purest form gives dark yellow by default.  IBM finally announced the IBM Color Display Model 5153 for sale on February 4, 1983.  The 5153 shows brown and that became the firmly established standard for color 6.  For owners of the Amdek Color II, Amdek sold an upgrade board which had to be installed inside the monitor, soldering required, to tell the monitor to display brown instead of dark yellow.  

Producing Brown with CGA

The way the IBM 5153 or an upgraded Amdek Color II handles brown is that it has circuitry which looks for pixels with the value of 0110 (IRGB). When it detects that value as a pixel color, it activates a circuit which decreases the amount of green sent to the green gun of the CRT but not to the red gun.  IBM continued to show brown in its later monitors which were CGA compatible, the PCjr. Display Model 4863, the Enhanced Color Display Model 5154 and the PC Convertible Display Model 5145.  

But even IBM was not completely consistent with brown.  The IBM JX, the computer which was an upgraded PCjr. and released only in Japan, Australia and New Zealand, came with a display (Model 5155) that shows dark yellow, not brown.  The JX was released in 1985, but it came standard with 3.5" disks, which severely limited its PC compatibility because software was slow to be released on a new disk format.  

One question has remained about brown, how much do you reduce the green signal relative to red to get brown?  The answer is not simple and the reduction occurs in the analog domain.  The canonical approach is to reduce green to 50% of the brightness of red.  IBM's own approach in the 5153 did not follow that formula.  It reduces green by around 33% of the brightness relative to red, giving more of a "chocolate" brown color than a deep brown.  The first IBM 5153 I owned had a faulty brown detection circuit, so it showed dark yellow.  

In this blog entry's main photo, I show the evolution of brown (and intensity) using Trixter's simple CGACAL program.  The top left shows yellow and only eight colors because intensity is not implemented.  The bottom left shows dark yellow after intensity is added.  The top right adds the brown detection at 33% and the bottom right is brown at 50%.

Other Approaches to Brown

IBM Brown
However, IBM was not consistent with the 33% brown reduction.  IBM's 5154 Enhanced Color Display shows a 50% brown.  This is due to the 2-bit RGB color model used in the 5154.  While the 5153 and the 5154 use a digital connection between card and monitor, the IBM 5154 can display 64 distinct colors compared to the 5153's 16.  When connected to a CGA card, the 5154 converts the 1-bit RGBI pixels into 2-bit RGB pixels.  Each pixel in the 6-bit is composed of RGB values with a primary component and a secondary component, or RrGgBb.  The primary component provides 2/3 of the component's brightness and the secondary component provides 1/3 of the component's brightness.  So with EGA, brown is composed of a green that is 50% as bright as red.  

VGA permitted a huge increase in the number of colors which can be displayed by transitioning from the 2-bit RGB model of EGA to a 6-bit RGB model and an analog RGB monitor connection.  VGA can display the equivalent of a 33% brown but in text modes and in EGA and CGA compatible graphics modes, it displays a 50% brown.  

Tandy Brown

IBM was not the only company which sold IBM CGA-compatible monitors.  Tandy sold five monitors which were IBM CGA compatible, the CM-2, CM-4, CM-5, CM-10 and CM-11.  The CM-2, CM-10 and CM-11 were their "high resolution" monitors while the CM-4 and CM-5 were their budget range.  All of these monitors, which were the canonical monitors for Tandy 1000 graphics, show a 50% brown.  Curiously, all of them have a potentiometer called "brown adjust" by which you can access to show a lighter brown or even a dark yellow.  Brown is more difficult to distinguish from red on my CM-5 in its default state of 50% brown.  It takes very careful adjustment of brightness and contrast controls to get a brown that is clearly distinguishable from red.  33% brown is much easier to distinguish. 

Appropriateness of Brown vs. Dark Yellow - Sierra On-line's Approach

Adventure in Serenia

As an aside, when Sierra began porting its games to the IBM PC, it was an early supporter of the platform.  While Sierra generally prioritized composite artifact color graphics in its early titles, it usually understood that it had to provide some kind of solution for owners of RGB displays.  It used an algorithm which relied on the 320x200 mode using the green/red/brown palette with a blue background.  Adventure in Serenia, Ulysses and the Golden Fleece, Winnie the Pooh in the Hundred Acre Wood and all AGI engine games use this palette.  Yellow seems so much more appropriate for most of these games than brown and in the beginning yellow and dark yellow were the only options available to Sierra.  I would argue that as brown evolved, this palette choice became progressively worse over time, as shown by the screenshot panel given above.  You see yellow and the other colors become muted by the lack of intensity, then turn to IBM Brown, which darkens the picture and finally to Tandy Brown, which is the darkest palette of them all.  Had Sierra given more thought to its RGB conversion algorithms after the release of the 5153, it probably would have used the CGA intensity bit to show the light green/light red/yellow palette.  Learning with Leeper and Wizard of Id's WizType use this palette in their RGB monitor modes.

However, Sierra's port of Frogger looks best with brown, not dark yellow.  The first release of BC's Quest for Tires and King's Quest for PC only supported composite color monitors as did all known PC releases of Mickey's Space Adventure, Oil's Well and Troll's Tale.  Some of its other games like Crossfire and Mr. Cool are use a cyan/magenta/light gray or light cyan/light magenta/white palette for both RGB and composite displays.

RGBI Monitor Quality and Brown Conversion

IBM always released a high quality monitor.  The dot pitch on the IBM 5153 is somewhere around 0.31, the 4863 is 0.42 and the 5154 is razor sharp at .28.  The dot pitch of the Tandy "High Resolution" CM-11 is a barely competitive 0.43 and the CM-5 has a laughable 0.63.  

I have come to realize that Tandy graphics adapters are best suited for Tandy monitors. When a Tandy 1000 displays on either my IBM 5153 or my friend's Commodore 1084, the brown conversion circuit in these monitors are not ideally suited for Tandy graphics adapters. Roger Wilco's hair in Space Quest I and II is a good example of where this color clash may visibly rise. These monitors show very noticeable green dots on the edges of certain brown color transitions with other pixels. The 5153 does not show these green dots with an IBM EGA or PCjr. output. My Tandy CM-5 does not show the green dots when connected to any of my Tandy 1000s. Below I have taken a photo of various combinations of graphics adapters and monitors to demonstrate the issue or lack thereof:

IBM 5153 + IBM CGA

IBM 5153 + IBM EGA

IBM 5153 + IBM PCjr.

IBM 5153 + Tandy 1000 TL

Tandy CM-5 + Tandy 1000 TL