Reverse engineering Tandy’s CoCo 3 “GIME” chip.

When Radio Shack released their third and final version of the Color Computer, the Tandy Color Computer 3, it included a custom ASIC chip. This chip, called the GIME (Graphics Interrupt Memory Enhancement), replicated most features of the Motorola 6847 video display generator chip used in earlier models. It also added new features such as higher resolution graphics with more colors, and a memory management unit. This allowed the CoCo 3 to be backwards compatible while allowing up to 640×225 resolution graphics and the ability to access up to 512K or RAM.

The operations of the GIME are well documented in the Tandy Service Manual for the Color Computer 3 sold by Radio Shack.

The GIME could only display 16 colors (from a palette of 64) on a screen at a time, but clever programmers quickly figured out how to make the hardware display all 64 simultaneously. Radio Shack apparently even knew this trick, and offered a diagnostics program that did it as well.

Even cleverer programs started doing things like this:

And this:

While the demo scene on the CoCo was quite small, it did exist.

256 colors, too?

During the production days of the CoCo 3, a few commercial programs were sold that claimed to offer 256 colors. These colors were only viewable on a composite NTSC monitor, so those using an RGB CM-8 (or similar) monitor or using PAL versions of the CoCo 3 could not participate.

In 2010, CoCo programmer John Linville even created a full motion video player that made use of this 256 color mode:

But … was there more?

The Quest for the “other” 256 Color Mode

There were a number of features planned for the CoCo 3 that never made it in to production. The earliest PCB prototypes had a floppy disk controller built in. They also used a more standard DB9 port for the monitor rather than the odd header connector on the bottom side of production CoCo 3s.

CoCo 3 prototype (from the collection of Allen Huffman)

The new hardware capabilities were implemented through an array of logic chips. These chips would later be consolidated in to the custom GIME chip for production.

Indeed, an early specification document provided to Microware Systems Corp specifically mentioned a 256 color mode. (Microware was the company chosen by Radio Shack to do the extensions to Microsoft Extended BASIC to support the new hardware.)

To read a great overview of the efforts to discover if this 256 color mode ever existed check out Nick Marantes’ website:

Which brings us to…

GIME more info…

Although the GIME was well understood thanks to excellent documentation, no one truly knows how it works. Programmers of various emulators and FPGA projects have had to create their own cleanroom implementation of the GIME by using only the technical references and any behaviors figured out by programmers.

CoCo 3 demos such as those included above would often not initially work on these reverse engineered GIME implementations. Developers would simply find programs that did not work, and figure out how to tweak their virtual GIME until it behaved like real hardware. This means that, to this day, many GIME-bashing demos look different depending on which emulation/recreation you run them on.

Roger Taylor wants to solve this problem. He just launched Project 256 on his Patreon page:

His goal is to sacrifice a few GIME chips (including the original buggy 1986 version and the later “fixed” 1987 version) and have them reverse engineered. This process of decapping has already been used on the CoCo’s original video chip to confirm what the embedded font characters were. It is hoped that the end result to his project will be enough knowledge to do a full clone of the GIME via FPGA. (Note that the GIME-X project has already done a cleanroom FPGA plug-in version of the GIME, adding extra features, but so far no one has done a 100% recreation due to lack of information that would make that even possible.)

Follow Roger’s progress on his Patreon and, if so inclined, consider becoming a sponsor of his efforts.

Maybe one day we will truly know how the GIME works.