8/24/2016: MediaWiki software and PHP version updated. Please let me know if you find any problems.. Also, extensive Template cleanup is in progress based on new things I have learned on another wiki project. I will update the Help files when I get it all done. --OS-9 Al

8/30/2016: Massive re-work is being done on the InfoBox Templates. Read that page to keep up with the plan for that, and adding better keyword tags (categories) to all the pages. --OS-9 Al (talk) 15:28, 31 August 2016 (CDT)

TRS-80 Color Computer

From CoCopedia - The Tandy/Radio Shack Color Computer Wiki
Jump to: navigation, search

Entry From Wikipedia, the free encyclopedia [[1]] (Date:2006 April 18)

4k TRS-80 Color Computer from 1981, 26-3001

The Radio Shack TRS-80 color computer (also called Tandy Color Computer, or CoCo) was a home computer based around the Motorola 6809E processor and part of the TRS-80 line.

Origin and history

File:TRS-80 Videotex terminal.jpg
The TRS-80 VideoTex Terminal, circa 1980

The TRS-80 Color Computer, often referred to as CoCo by its users, started out as a joint venture between Fort Worth based Tandy Corporation and (then) Austin based Motorola Semiconductor, Inc. to develop a low cost home computer in 1977.

The initial goal of this project, called "Green Thumb", was to create a low cost VideoTex terminal for farmers, ranchers, and others in the agricultural industry. This terminal would connect to a phone line and an ordinary color TV and allow the user access to near real-time information useful to their day to day operations on the farm.

Motorola's MC6847 Video Display Generator (VDG) chip was released about the same time as the joint venture started and it has been speculated that the VDG was actually designed for this project. At the core of the prototype "Green Thumb" terminal, the MC6847, along with the MC6808 Microprocessor Unit (MPU), made the prototype a reality by about 1978. Unfortunately the prototype contained too many chips to be commercially viable. Motorola solved this problem by integrating all the functions of the many smaller chips into one chip, the MC6883 Synchronous Address Multiplexer (SAM). By that time in late 1979, the new and powerful Motorola MC6809 processor was released and, together, the SAM, VDG, and 6809 are combined. The AgVision terminal is born.

The AgVision terminal was also sold through Radio Shack stores as the VideoTex terminal around 1980. Internal differences, if any, are unclear as not many AgVision terminals survive to this day.

With its proven design, the VideoTex terminal contained all the basic components for a general purpose home computer. The internal modem was removed, I/O ports for cassette storage, serial I/O and joysticks were provided. An expansion connector was added to the right side of the case for future enhancements and program cartridges ("Program Paks"), and a RAM button (a sticker indicating the amount of installed memory in the machine) covered the hole where the Modem's LED "DATA" indicator was. On July 31, 1981, Tandy announced the TRS-80 Color Computer. Sharing the same case, keyboard, and layout as the AgVision/VideoTex terminals, at first glance it would be hard to tell the TRS-80 Color Computer from its predecessors.

The initial model, which was catalog number 26-3001, shipped with 4K of Dynamic Random Access Memory (DRAM) and an 8k Microsoft BASIC interpreter on an internal ROM. Its price was $399. Within a few months, Radio Shack stores across the US and Canada began receiving and selling the new computer.

Differences from earlier TRS-80 models

The Color Computer was a radical departure from the Z80-based TRS-80 Models I/II/III/4/4p with its Motorola MC6809E processor. Indeed the "80" in "TRS-80" stood for "Z-80". For a time, the CoCo was referred to internally as the TRS-90 in reference to the "9" in "6809". However this was dropped and all CoCos sold as Radio Shack computers were called TRS-80 in spite of the processor change.

Like its Z-80 based predecessors, the CoCo shipped with BASIC, but in this case was a Microsoft BASIC. The CoCo was designed to be attached to a color television set, whereas the Z-80 machines were either connected to an external monochrome monitor or had their monitor built in to their case. The CoCo also featured an expansion connector for program cartridges (mostly games) and other expansion devices, such as floppy disk controllers and modems. In this way it shared some similarity to the Atari 2600, Atari 400/800 and other cartridge-capable game consoles and computers.

Like the Z-80 systems, there were multiple "levels" of BASIC. In the case of the CoCo they were the standard Color BASIC and Extended Color BASIC. Beyond that, Disk Extended Color BASIC came with the floppy controller, and on the CoCo 3, "Super" Extended Color BASIC extensions were added by Microware.

Both TRS-80 systems (eventually) offered floppy disk drives. Both the CoCo and earlier TRS-80's shared the WD17xx series floppy disk controllers and 35 (later 40) track industry-standard floppy drives. The CoCo did not have a true DOS until operating systems such as TSC FLEX (distributed for the CoCo by Frank Hogg) and Microware's multi-user, multi-tasking OS-9 were available. However a disk-based CoCo did contain Disk Extended Color BASIC on an internal ROM in the controller cartridge that gave the BASIC user the ability to save and load programs from the disk and store and retrieve data from disk in various ways.

Tandy also released a Multi-Pak Interface which allowed up to 4 cartridges to be mounted at the same time. This was similar in concept to the Model I's Expansion Interface.

Some non-program expansion cartridges included a sound/voice Synthesiser (which led to the CoCo being used as an accessibility device for the disabled), 300 Baud Modem Pak, RS232 pak, a hard drive controller, stereo music adapter, floppy disk controller, input tablet, and other accessories. The CoCo was the first Tandy computer to have a mouse available for it.

Description of different versions

There were three versions of the Color Computer:

Color Computer 1 (1980–1983)

File:TRS-80 Color Computer 1-white case.jpg
White cased TRS-80 Color Computer I

The original version of the Color Computer shipped in a large silver-gray case with a calculator-like "chiclet keyboard," and was available with a memory sizes of 4K (26-3001), 16K (26-3002), or 32K (26-3003). Versions shipped with standard Microsoft Color Basic or (optionally) Extended Color Basic if at least 16k of memory was installed. It used a regular TV for display, and TV-out was the only available connection to a display device.

The early versions of the CoCo 1 had a black keyboard surround, the TRS-80 nameplate was above the keyboard to the left side, and a RAM badge ("button") was affixed on the top and right side of the case. Later versions removed the black keyboard surround and RAM button, and moved the TRS-80 nameplate to the mid-line of the case.

Initial versions of the CoCo were upgraded to 32K by means of piggybacking two banks of 16K memory chips and adding a few jumper wires. A following motherboard version removed the 4K RAM option and were upgraded to 32K with "half-bad" 64k memory chips. These boards have jumpers marked HIGH/LOW to determine which half of the memory chip was good. An initial cost-cutting measure, this was transparent to the BASIC programmer since only 32K of memory was available anyway. As production yields improved and costs went down, many (perhaps most) 32K CoCo 1's actually had perfectly good 64k memory chips in them; many utilities and programs did begin to take advantage of the "hidden" 32K.

Even later versions of the CoCo 1 dropped the 32K memory option entirely and were available in 16K or 64K versions. All versions that shipped with standard Color BASIC could be upgraded to Extended BASIC by simply plugging in a ROM in an empty socket provided on the motherboard.

Tandy Data Products TDP-100 (64K badge was added by user)

Toward the end of the CoCo 1 production run, some models shipped in a white case with a modified keyboard, often referred to as the "melted" keyboard, with bigger keycaps but a similar rubbery feel. At about the same time, another white-cased "CoCo", the TDP-100, was marketed through Tandy Data Products (TDP) and sold through a different distribution channel. Except for the nameplate and case, the TDP-100 was completely identical to the CoCo 1. The TDP-100 had ventilation slots that ran the entire length of the case, rather than only on the sides. This ventilation scheme was carried over to the CoCo 2.

A number of peripherals were available: tape cassette storage, serial printers, a 5.25 inch floppy disk drive, a pen and graphics tablet called the "X-Pad", speech and sound generators, and joysticks.

Color Computer 2 (1983–1986)

File:TRS-80 Color Computer 2.jpg
Early TRS-80 Color Computer 2, 'melted' keyboard
File:TRS-80 Color Computer 2-64K.jpg
Final production 64k Tandy Color Computer 2, showing full-travel keyboard (26-3127B)

During the CoCo 1 production run, much of the discrete support circuitry had been re-engineered into a handful of custom integrated circuits, leaving much of the circuit board area of the CoCo 1, by the end, empty space. To cut production costs, the case was shortened by about 25% and a new, smaller power supply and motherboard was designed. Physically, the "melted" keyboard and TDP-100 style ventilation slots were carried over. Aside from the new look and the deletion of the 12 volt power supply to the expansion connector, the computer was essentially 100% compatible with the previous generation. The deletion of the 12 volt power supply crippled some peripherals, such as the original floppy disk controller which then needed to be upgraded, installed in a Multi-Pak interface, or supplied with external power somehow.

Production was also partially moved to Korea during the CoCo 2's life-span, and many owners of the Korean-built systems referred to them as "KoKos". To add to the confusion, production in the USA and Korea happened in parallel using the same part numbers. Very few, if any, differences exist between the USA built and Korean built CoCo 2 machines.

Upgraded BASIC ROMs were also available to add a few minor features and correct some bugs. Also a redesigned 5 volt only disk controller was introduced with its own new Disk BASIC ROM (v1.1) adding the "DOS" command, which was used to boot the OS-9 operating system by Microware. (64K memory required)

Later in the production run, the "melted" keyboard was phased out and a new full-travel typewriter style keyboard was finally available. Many sore fingers rejoiced.

The final significant change in the life of the CoCo 2 was in the models 26-3134B, 26-3136B, and 26-3127B (16K standard, 16K extended, and 64K extended respectively). Internally this model was redesigned to use the enhanced VDG, the MC6847T1. This enhanced VDG allowed the use of lower case characters and the ability to change the text screen border color. Unfortunately, both these features are not used for compatibility reasons and are not enabled in BASIC. Mid-way during the production run of these final CoCo 2's, the nameplate was changed. Instead of reading "Radio Shack TRS-80 Color Computer 2" they started to read "TANDY Color Computer 2". The red, green, and blue blobs were replaced with red, green, and blue parallelograms.

Color Computer 3 (1986–1991)

File:TRS-80 Color Computer 3.jpg
128k Tandy Color Computer 3, 26-3334
Typical CoCo 3 system

By the mid-80's, it became obvious that the CoCo was lagging behind the competition. On July 30, 1986, Tandy announced the Color Computer 3. This new model of the Color Computer line was meant to better compete with the Commodore Amiga and Atari ST systems. It came with 128K of RAM Standard, and could be upgraded to 512K. The keyboard's periphery and cartridge door plastic was changed from black to grey. The keyboard layout was revised, putting the arrow keys in a diamond configuration and adding CTRL, ALT, F1 and F2 keys. It sold in Radio Shack stores and Tandy Computer Centers for $219.95, although shortly after its release they could be bought from Computer Plus at the Princeton RAINBOWfest (October 17-19) for $169.

The CoCo 3 was compatible with most of the CoCo 2's peripherals. Most older software ran on it. Taking the place of the graphics and memory hardware in the CoCo 1 and 2 was an ASIC called the "GIME" (Graphics Interrupt Memory Enhancement) chip. It added several new video modes to the CoCo's VDG-based modes:

  • Text display with real lowercase at 32, 40, 64, or 80 characters per line and between 16 and 24 lines per screen.
  • Text character attributes include 8 foreground and 8 background colors, underline, and blink.
  • New graphics resolutions of 160, 256, 320 or 640 pixels wide by 192 to 225 lines.
  • Up to 16 simultaneous colors out of a palette of 64 displayable at one time (unless programming tricks were employed to display more).
  • In addition, the GIME allowed for connection to a TV, composite video monitor, or an analog RGB monitor. This did much to improve the clarity of its output. The GIME also contained a paged memory management unit which broke up the 6809's 64k address space into 8x8K chunks (considered too big by some programmers to be really effective).

    Deleted from the GIME were the seldom-used SAM-created Semigraphics 8, 12, and 24 modes. A rumored 256 color mode (detailed in the original Tandy spec for the GIME) has never been found.

    Previous versions of the CoCo ROM had been licensed from Microsoft. By this time Microsoft was not very interested in extending the code further. Instead, Microware provided extensions to Extended Color BASIC to support the new display modes. In order to not violate the spirit of the licensing agreement between Microsoft and Tandy, Microsoft's unmodified BASIC software was loaded in the CoCo 3's ROM. Upon startup, the ROM is copied to RAM and then patched by Microware's code.

    Microware also provided a version of the OS-9 Level 2 operating system shortly after launch. This OS featured memory-mapping (so each process had its own memory space up to 64K), windowed display, and a more extensive development environment that included a bundled copy of BASIC09. C and Pascal compilers were available. Various members of the CoCo OS-9 community enhanced OS-9 Level 2 for the CoCo 3 at Tandy's request, but Tandy stopped production of the CoCo 3 before the upgrade was officially released. Most of the improvements made it into NitrOS-9, a major rewrite of OS-9/6809 Level 2 for the CoCo 3 to take advantage of the added features and speed of the Hitachi 6309 (if the unit has the Hitachi CPU installed).

    The 6809 in the CoCo 1 and 2 ran at 0.895 MHz; the CoCo 3 runs at that frequency by default, but is software controllable to run at twice that rate; OS-9 takes advantage of that capability. (Some models of CoCo 1 and 2 were also capable of running at this higher speed, but this was not supported or guaranteed.)

    A popular accessory was a high-resolution joystick adapter (designed by software whiz Steve Bjork). While it did increase the resolution of the joystick/mouse interface by a factor of ten, it did so at the expense (again) of CPU time. So much so, in fact, that it was often desirable to leave the mouse pointer in the upper left corner of the screen to speed things up!

    A modified version of this interface was included with a software package by Colorware called CoCo-Max 3, by Dave Stamp. This was a virtual clone of MacPaint but added support for color graphics. This was a very desirable product for CoCo owners and combined with a MacWrite-like word processor called MAX-10 (also by Dave Stamp and internally named "MaxWrite"), provided much of the functionality of an Apple Macintosh, but with color graphics and at a fraction of the cost.

    While the CoCo 3 featured many enhancements and was well received, it was not without problems and disappointments. As initially conceived, the CoCo 3 had much hardware acceleration and enhanced sound. However internal politics crippled the design so it would not be perceived as a threat to the Tandy 1000. This again limited the platform's potential as a game console. Early versions of the GIME had DRAM timing issues which caused random freezes. Due to bugs in the GIME some features that were problematic were marked as "reserved" or "do not use" in the programming and service manuals.

    The power supply was marginal, and some would overheat when the additional load of the full 512K DRAM chips was added. Some CoCo 3 owners opted to add a small fan inside the case to keep it cool. And then, many units ran perfect as-is for many years.

    Prototypes and Rare Versions

    File:CoCo3Prototype.jpg
    A Color Computer 3 prototype.

    Various prototypes for the CoCo have surfaced over the years. In the 1980s, Radio Shack stores were selling a keyboard that would plug directly in to a CoCo 2, though not labeled as such. This keyboard was part of a production run for the never produced Deluxe Color Computer. The Deluxe CoCo was referenced in CoCo manual sets and specifically mentioned as having extra keys, lowercase video, and the ability to accept commands in lowercase. Later versions of the CoCo 2, labeled Tandy instead of TRS-80, had the ability to display true lowercase, but did not accept lowercase commands (although this capability was later available through A-DOS, a third-party replacement ROM for the Disk Controller).

    Production model CoCo 3s have been showing with different circuit board layouts and socketed chips. In 2005, a rare CoCo 3 prototype surfaced and was shown at the Chicago CoCoFEST! This prototype was unique in that it contained a built in floppy disk drive controller (and possibly other items still not identified). It also did not use a GIME chip. Instead, all the functionality of the GIME was created using separate chips. There is a hobbyist effort to try to reverse engineer these chips so a modern GIME can finally be produced.

    There is also a prototype Ethernet interface for the Color Computer, displaying a board layout date of 1984, and a few other mystery boards that have yet to be examined. There is some evidence that Tandy killed the Ethernet interface at the last minute: an ad mentioning the networking options for some of Tandy's Z-80-based computers claimed that the Color Computer would soon have networking capabilities, and the printed manual for an upgraded version of OS-9 Level One listed networking in the table of contents, but had no corresponding text in the body of the manual.

    CoCo clones and cousins

    A British clone of the CoCo was called the Dragon 32/64. An American company, Tano, attempted to import these units into the U.S. but met with no success. The Dragon was a much improved unit with Video Out in addition to TV Output of the CoCo and CoCo 2, (much like the later CoCo 3), a Parallel Printer port (absent on all CoCos), an integrated 6551A serial UART (on the Dragon 64), and a better keyboard.

    In 1983, a version of the Dragon was licensed for manufacture for the North American market by Tano Corporation of New Orleans, Louisiana.

    In Brazil, there existed at least two CoCo-clones, including the Prologica CP-400 and the Codimex 6809.

    A Taiwan based company, Sampo, also made a CoCo-clone, the Sampo Color Computer. Whether it was ever available outside of Taiwan is uncertain.

    A cousin of the CoCo, The MC-10, or Micro Color Computer, was sold in Radio Shack stores as a low cost entry level computer. Released in 1983, it was similar in appearance to the Timex Sinclair. It also used the MC6847 VDG and Microsoft Basic, but featured the MC6803.

    Hardware Design and Integrated Circuits

    Internally the CoCo 1 and CoCo 2 models are functionally identical. The core of the system is virtually identical to the reference design included in the Motorola MC6883 data sheet and consists of 5 Large Scale Integration (LSI) chips:

  • the MC6809E Microprocessor Unit (MPU)
  • the MC6883/SN74LS783/SN74LS785 Synchronous Address Multiplexor (SAM)
  • the MC6847 Video Display Generator (VDG)
  • two Peripheral Interface Adapters (PIA), either MC6821 or MC6822 chips

    The SAM

    The SAM is a multifunction device that performs the following functions:

  • Clock generation and synchronization for the 6809E MPU and 6847 VDG
  • Up to 64K Dynamic Random Access Memory (DRAM) control and refresh
  • Device selection based on MPU memory address to determine if the MPU access is to DRAM, ROM, PIA, etc.
  • Duplication of the VDG address counter to "feed" the VDG the data it is expecting

  • The SAM was designed to replace numerous small LS/TTL chips into one integrated package. Its main purpose is to control the DRAM but, as outlined above, it integrates several other functions as well. It is generally connected to a crystal at 4 times the television colorburst frequency (14.31818MHz for NTSC countries) This is divided by 4 internally and is fed to the VDG for its own internal timing. (3.579545MHz for NTSC) The SAM also divides the master clock by 16 (or 8 in certain cases) for the two phase MPU clock- in NTSC this is .89MHz (or 1.8MHz if divided by 8)

    Switching the SAM into 1.8MHz operation gives the CPU the time ordinarily used by the VDG and refresh. As such, the display shows garbage; this mode was seldom used. However, an unusual mode available by the SAM is called the Address Dependent mode, where ROM reads (since they do not use the DRAM) occur at 1.8MHz but regular RAM access occurs at .89MHz. In effect, since the BASIC interpreter runs from ROM, putting the machine in this mode would nearly double the performance of your BASIC program while maintaining video display and DRAM refresh. Of course, this would throw off the software timing loops and I/O operations would be affected. Despite this, however, the "high speed poke" was used by many CoCo BASIC programs even though it "over-clocked" the hardware in the CoCo which was only rated for 1MHz operation.

    The SAM has no connection to the MPU data bus. As such, it is programmed in a curious manner; its 16 bit configuration register is spread across 32 memory addresses (FFC0-FFDF). Writing even bytes sets that register bit to 0, Writing to odd bytes sets it to 1.

    Due to limitations in 40 pin packaging, the SAM contains a duplicate of the VDG's internal 12 bit address counter. Normally this counter's settings are set to duplicate the VDG's display mode. However this is not required and results in the creation of some new display modes not possible when the VDG is used in a system alone. Instead of the VDG requesting data from RAM by itself, the VDG is "fed" data by the SAM's internal copy of the VDG address counter. This process is called "Interleaved Direct Memory Access" (IDMA) by Motorola and insures that the processor and VDG always have full access to this shared memory resource with no wait states or contention.

    There are two versions of the SAM. The early one is labeled MC6883 and/or SN74LS783, the later version is labeled SN74LS785. There are some minor timing differences, but the major difference is the support of an 8 bit refresh counter in the 785 version. This allowed for use of inexpensive 16K by 4 bit and certain 64K by 1 bit DRAMs. Some third party bank-switching memory upgrades that used 256K DRAMs needed this 8 bit refresh counter to work.

    The VDG

    File:Coco2boot.png
    Power-on screen of a CoCo 2

    The MC6847 is a relatively simple display generator compared to the display chips of some of the CoCo's 8 bit rivals. It is capable of displaying text and graphics contained within a roughly square display matrix 256 pixels wide by 192 lines high. It is capable of displaying 9 colors: black, green, yellow, blue, red, buff (almost-but-not-quite white), cyan, magenta, and orange. The low display resolution is a necessity of using television sets as display monitors. Making the display wider risked cutting off characters due to overscan. Compressing more dots into the display window would easily exceed the resolution of the television and be useless.

    Alphanumeric/Semigraphics display

    File:Coco2bvdg.png
    Sample character set display of 6847 VDG

    The CoCo is physically wired such that its default alphanumeric display is actually "Semigraphics 4" mode.

    In alphanumeric mode, each character is a 5 dot wide by 7 dot high character in a box 8 dots wide and 12 lines high. This display mode consumes 512 bytes of memory and is a 32 character wide screen with 16 lines. The internal ROM character generator only holds 64 characters, so no lower case characters are provided. Lower case is instead "simulated" by inverting the color of the character. Although not pictured on the simulated screen shots, this was not green on true black on most CoCo generations, but rather green on very dark green.

    Semigraphics is a hybrid display mode where alphanumerics and chunky block graphics can be mixed together on the same screen. If the 8th bit of the character is set, it is a semigraphics character. If cleared, it is an alphanumeric. When the 8th bit is set, the next three bits determine the color and last 4 bits determine which "quadrant" of the character box is either the selected color or black. This is the only mode where it is possible (without sneaky tricks) to display all 9 colors on the screen simultaneously. If used to only display semigraphics, the screen becomes a 64x32 9 color graphics mode. The CoCo features several BASIC commands to manage this screen as a low-res graphics display.

    The alphaumeric display has two colorsets. The one used by default on the CoCo has black characters on a green background. The alternate has black characters on an orange background. The colorset selection does not affect semigraphics characters. The border in this mode is always black.

    Another display mode the 6847 is capable of is Semigraphics 6, where two bits select a color and 6 bits determine which 1/6th of the character box is lit. In this mode only 4 colors are possible but the Colorset bit of the VDG can select two different groups of the 4 colors. This mode is not implemented on the CoCo.

    Additonal Semigraphics modes

    By setting the SAM such that it believes it is displaying a full graphics mode, but leaving the VDG in Alphanumeric/Semigraphics 4 mode, it is possible to subdivide the character box into smaller pieces. This creates the "virtual" modes Semigraphics 8, 12, and 24. In these modes it was possible to mix bits and pieces of different text characters as well as Semigraphics 4 characters. These modes were an interesting curiosity but not widely used, as the Semigraphics 24 screen consumed 6144 bytes of memory. These modes were not implemented on the CoCo 3.

    A programmer's reference manual for the CoCo states that due to a fire at Tandy's research lab, the papers relating to the semigraphics modes were shuffled, and so some of the semigraphics modes were never documented. CoCo enthusiasts created experimental programs to try to reverse engineer the modes, and were able to reconstruct the missing documentation.

    Graphics display

    There were several full graphics display modes, which were divided into two categories: "resolution" graphics and "color" graphics. In resolution modes, each pixel is addressable as either on or off. There are two colorsets available, the first was black dots on a green background and green border, the second, more commonly used one has white dots on a black background with a white border. In color modes, each pixel was two bits, selecting one of four colors. Again the colorset input to the VDG determined which colors were used. The first colorset has a green border, and the colors green, yellow, red, and blue were available. The second colorset has a white border and the colors white, cyan, magenta and orange were available. Resolution graphics have 8 pixels per byte and are available in 128x64, 128x96, 128x192, and 256x192 densities. Color graphics have 4 pixels per byte and are available in 64x64, 128x64, 128x96, and 128x192 densities. The maximum size of a graphics screen is 6144 bytes.

    Artifact Colors

    File:Draconian1.jpg
    Screen shot of the game Draconian, showing artifact colors in use

    There is a curious footnote to the 256x192 two color graphics mode. Due to the limitations of the NTSC signal and the phase relationship between the VDG clock and colorburst frequency, it is not actually possible to display 256 dots across the screen reliably. In the first colorset, where green and black dots are available, alternating columns of green and black are not distinct and appear as a muddy green color. However when one switches to the white and black colorset, instead of a muddy gray as you would expect, you will get either red or blue. Reversing the order of the alternating dots will give the opposite color. In effect this mode becomes a 128x192 4 color graphics mode where black, red, blue, and white are available. Most CoCo games used this mode as the colors available are more useful than the ones provided in the hardware 4 color modes. Unfortunately the VDG internally can power up on either the rising or falling edge of the clock, so the bit patterns that represent red and blue are not predictable. Most CoCo games would start up with a title screen and invited the user to press the reset button until the colors were correct! The CoCo 3 fixed the clock-edge problem so it was always the same (holding F1 during reset would choose the other). On a CoCo 3 with an analog RGB monitor, the black and white dot patterns do not artifact; you'll need to use a TV or composite monitor, or patch the games to use the hardware 128x192 four color mode (where the GIME chip allows the color choices to be mapped).

    Lower Case and the 6847T1

    The 6847 is capable of using an external character generator. Several adapter boards were available as third party add-ons that would allow the CoCo to display real lowercase characters.

    Very late in the CoCo 2 production run, an enhanced VDG was available. Called the 6847T1, it included a lower case character generator and the ability to display a green/orange or black border on the text screen. Its other changes were mainly to reduce parts count by incorporating an internal data latch. The lower case capability of this VDG is not enabled by default on this system and is not even mentioned in the manual. Only through some tinkering and research was this feature discovered by intrepid CoCo users.

    The 6847T1 may also carry the part number XC80652P (pre-release parts?)

    The PIAs

    There are two PIA chips in all CoCo models. The PIAs are dedicated mainly to I/O operations such as driving the internal 6 bit digital to analog converter (DAC), reading the status of the DAC's voltage comparator, controlling the relay for the cassette motor, reading the keyboard matrix, controlling the VDG mode control pins, reading and writing to the RS232 serial I/O port, controlling the internal analog multiplexors, and the like.

    The earliest CoCo models had two standard 6821 chips. Later, due to changes in the keyboard design, it was found that the 6822 IIA (industrial interface adapter) was better suited to the keyboard's impedance. Later the 6822 was discontinued by Motorola but was produced for Tandy as an ASIC with a special Tandy part number- SC67331P. Functionally the 6821 and 6822 are identical and one can put a 6821 in place of the 6822 if that part is bad. Some external pull-up resistors may be needed to use a 6821 to replace a 6822 in a CoCo for normal keyboard operation.

    Interface to external peripherals

    Due to the CoCo's design, the MPU encounters no wait states in normal operation. This means that precise software controlled timing loops are easily implemented. This is important, since the CoCo has no specialized hardware for any I/O. All I/O operations, such as cassette reading and writing, Serial I/O, scanning the keyboard, and reading the position of the joysticks must be done entirely in software. This reduces hardware cost, but reduces system performance as the MPU is unavailable during these operations.

    As an example, the CoCo cassette interface is perhaps one of the fastest available (1500 bits/sec) but it does so by literally playing software generated sine waves through its internal 6 bit DAC. While this is happening, the CoCo cannot do anything else as this uses all the CPU time. Similarly, to read data off the cassette, the CoCo must count waveform crossings and thus cannot do anything else until either an error occurs or the operation ends.

    CoCo 3 Hardware Changes

    The hardware in the CoCo 1 and CoCo 2 models was functionally the same. The only differences were in packaging and some integration of some functions into small ASICs. The CoCo 3 radically changed this. A new VLSI ASIC, called (officially) the Advanced Color Video Chip (ACVC) or (unofficially) the Graphics Interrupt Memory Enhancer (GIME) integrated the functions of the SAM and VDG while enhancing the capabilities of both. Aside from the graphics enhancements outlined above, the CoCo 3 offered true lower case, 40 and 80 column text display capability, and the ability to run at 1.8MHz without loss of video display. As such the processor was changed to the 68B09E and the PIA was changed to the 68B21, which are 2MHz rated parts.

    The CoCo and the Competition

    The CoCo's main competition was from the Commodore VIC-20 and Commodore 64 and the Atari 400 and 800 by, of course, Atari. The Apple II could be considered competition but was a more expensive and high end system than any of these, and wasn't really a direct competitor in the low-end TV-ready 8 bit market.

    While the CoCo sported perhaps the most advanced 8-bit processor ever made, that processing power came at a significant price premium. In order to be sold at a competitive price, the CoCo's expensive processor is not tied to any specialized video or sound hardware. In comparison, the 6502-derived processor in the Commodore and Atari systems was far cheaper. Both Commodore and Atari had invested in advanced graphics and sound chip design for arcade games and home gaming consoles. By tying these specialized circuits with an inexpensive processor, Atari and Commodore systems were able to play sophisticated games with high quality graphics and sound. There is a tradeoff here: An expensive CPU that does a lot of work or a cheap CPU that's enough to control the registers of its sound and video hardware.

    We should remember that the CoCo video hardware was derived from a chip designed as display for a character based terminal, and is a completely 'dumb' device. Similarly the sound hardware is little more than a 6 bit DAC under software control, and similarly 'dumb'. All graphics and sound require direct CPU intervention, and while it may be very flexible its performance is much lower than dedicated hardware.

    Games drove sales then as they do now, and with its poor gaming performance, the CoCo attracted little interest in officially licensed ports of popular games. The CoCo 3 did improve graphics capability and doubled CPU performance, but still did not have any real hardware acceleration. The sound hardware was not changed at all. Too little, too late.

    Every computer platform is a compromise, and despite the significant graphics and sound handicap the CoCo may have had, it still had an extremely high performance and sophisticated CPU under its hood. There were many independent clones of popular games available, but far more importantly were some of the "killer apps" for the CoCo. For instance, CoCo Max and Max-10 were clones of MacPaint and MacWrite, respectively. The OS-9 operating system was also available which provided the user a UNIX-like multi-tasking multi-user environment. Even the BASIC interpreter was one of the most powerful available, and provided the user with a rich set of easy to use commands for manipulating on-screen graphics and playing sounds. One could argue that Commodore and Atari BASIC users had two commands for graphics and sound available to them: PEEK and POKE!

    Some of the hardware limitations were overcome with external add-ons, particularly expansion cartridges. Some were made by Tandy, some by other manufacturers. Examples are:

  • RS232 program pak, which provided a real RS232 UART (the 6551A)
  • The speech & sound pak, which provided a speech synthesizer and a sound generator chip
  • 80 column display adapter, which connects to an external monochrome monitor (not needed for CoCo 3)
  • 300 baud modem pak, which provides a modem in an integrated package
  • Advanced floppy and hard drive controllers (mostly for OS-9)
  • And of course, the Multi-Pak interface, which permits 4 devices such as these to be attached to the system at the same time.
  • The OS-9 divide

    There is/was a major division of CoCo users into two groups: those who used OS-9 and those who "used" DECB (Disk Extended Color BASIC); the quotes are present because many if not most non-OS-9 programs for the CoCo used DECB only as a loader and for disk I/O, beating directly on the hardware for everything else. That meant that not carrying on every wart and shortcut in the original CoCo design would break non-OS-9 CoCo applications, whereas with OS-9 one would need only rewrite device drivers. This perceived requirement of total backwards compatibility killed off at least one attempt to improve on the CoCo--Frank Hogg's "Tomcat" TC-9 fizzled out while Chris Burke was attempting to make it simulate all the details of CoCo hardware--and probably killed them all; if there were an archive of the CompuServe OS-9 SIG messages, Kevin Darling's cri de coeur directed to DECB users with the subject line "You're Killing the CoCo!" would be a useful link. Tandy threw away a significant opportunity--one should recall that a 1.8 MHz 6809 processor readily outperformed the 4.77 MHz 8088 in the original IBM PC, and people have run the Hitachi 6309 at 5 MHz.

    The end of the road for the CoCo

    On October 26, 1990, Ed Juge of Tandy announced that the CoCo 3 would be dropped from its computer line. Without an apparent successor, the announcement was disheartening to many loyal CoCo fans. One CoCo owner went as far as to write a letter to then-president of Radio Shack, Bernie Appel; to that individual's surprise, Mr. Appel called him one day explaining over the phone in detail the reasoning for discontinuing the CoCo 3.

    Even today, current and former CoCo owners agree that Tandy did not take the CoCo very seriously, despite it having been their best-selling computer for several years. They failed to market the CoCo as the powerful and useful machine that it was, and offered customers no hint at the massive third party software/hardware market that grew to fill the void.

    The release of the CoCo 3 was particularly lackluster despite its greatly enhanced graphic capabilities and RGB monitor support. Radio Shack fliers and stores alike typically depicted the CoCo 3 running CoCo 2 games, and offering a very limited selection of CoCo 3 specific software. There was an official Radio Shack store demo, but few stores bothered to run it.

    Additionally, DRAM prices skyrocketed at the time the CoCo 3 was released, making the 512K memory upgrade considerably more expensive than the 128K CoCo 3 itself! Very few stores displayed a 512K machine or a CoCo 3 running such games as Kings Quest or Leisure Suit Larry.

    CoCo Successors (CoCo 4)

    In spite of Tandy's apparent lack of concern for the CoCo market, there were rumors of the existence of a prototype CoCo 4 at Tandy's Fort Worth headquarters. Several first hand accounts of the prototype came from people like Mark Siegel of Tandy and Ken Kaplan of Microware, yet there exists no known physical evidence of such a machine.

    A few independent companies attempted to carry the CoCo torch, but the lack of decent backwards compatibility to the CoCo 3 failed to entice much of the CoCo community over to these new independent platforms. Many of these independent platforms did run OS9/68k, which was very similar to OS-9. However the bulk of the CoCo community moved on to more mainstream platforms. Some CoCo users swore their loyalty to Motorola and moved on to the Amiga, Atari ST, or even the Macintosh- all of which were based on the Motorola 68000 processor. Others jumped on the IBM PC-compatible bandwagon.

    Tomcat

    Frank Hogg Labs introduced the Tomcat TC-09 in June of 1990, which was somewhat compatible with the CoCo 3, but was mostly only able to run OS-9 software. A later version called the TC-70 (running on a Signetics 68070) had strong compatibility with the MM/1, and also ran OS-9/68K.

    MM/1

    The Multi-Media One was introduced in July of 1990, ran OS-9/68K on a 15 MHz Signetics 68070 processor with 3MB RAM, and had a 640x208 graphics resolution as well as supporting a 640x416 interlaced mode. It included a SCSI interface, stereo A/D and D/A conversion, an optional MIDI interface, and (later) an optional board to upgrade the CPU to a Motorola 68340 running at up to 25MHz. It is estimated that about 500 units were sold.

    AT306

    The AT306 (also known as the MM/1B) was a successor to the MM/1 that contained a Motorola 68306 CPU and was designed to allow the use of ISA bus cards.

    Delmar System IV/Peripheral Technology PT68K-4

    Peripheral Technology produced a 16 MHz Motorola 68000 system called a PTK68K-4, which was sold as a kit or a complete motherboard. Delmar sold complete systems based on the PT68K-4 and called the Delmar System IV. The PT68K-4 has the footprint of an IBM PC, so it will fit in a normal PC case, and it has seven 8-bit ISA slots. Video was provided by a standard IBM style monochrome, CGA, EGA, or VGA video card and monitor, but for high resolution graphics the software only supported certain ET4000 video cards. It appears that most users of this system used/uses OS-9, but there are several operating systems for it, including REX (a FLEX-like OS), and SK*DOS. Dan Farnsworth, who wrote REX, also wrote a BASIC interpreter that was fairly compatible to DECB, but it was too little, too late to be of interest to many CoCo users. There was also a card available called an ALT86, which was basically an IBM XT compatible computer on a card, which allowed the user to run DOS programs on it. In fact, you could run both the 68000 and the ALT86 card at the same time, if you didn't need access to the ISA bus from the 68000 side of it.

    Reflections and the CoCo in the 21st Century

    The CoCo still has a small but active user community.

    Most CoCo fans did (and still do) complain loudly of the perceived lack of support from Tandy. Indeed finding anyone at a Radio Shack store who knew more than the price of the computer was pot-luck. However, we must also remember that the department and toy stores that sold Commodores and Ataris were probably no better or worse. Despite of (and in fact, perhaps because of) the lack of corporate support for the system, a very active third party community evolved, supported mainly by CoCo-related periodicals. Of these the most popular and long-lived magazine was The Rainbow which featured hardware products from companies such as CoCo guru Tony DiStefano's DISTO. Many products and enhancements that Tandy either implemented poorly or not at all were rather readily available. Perhaps acknowledging the importance of the Rainbow's reader base, many CoCo systems, including all CoCo 3's, shipped with information about The Rainbow in their boxes.

    Even today, a few individuals and small companies still support the CoCo and are actively developing hardware and software for it. Companies such as Cloud-9 have taken the CoCo 3 beyond what many thought possible, with such things as SCSI and IDE hard drive controllers and memory upgrades to 2 megabytes.

    Emulation

    Emulation of the CoCo hardware has been possible on x86 PCs since at least the mid 90s. MESS is capable of emulating the CoCo, however the most popular emulator is Jeff Vavasour's CoCo emulators (see external links).

    It's important to note that in order for most of these emulators to run, you will need to have a dump from the CoCo ROMs. Instructions are usually provided with the emulators on how to get a ROM dump from your CoCo. Alternatively you might find a ROM online, which may be from a Brazilian CoCo clone.

    Utilities exist to transfer data from a PC to a CoCo. If you do not have compatible disk drives for your PC and CoCo, you may still transfer data by using special PC CoCo utilities to create a .wav audio file of the data. You can then hook your CoCo's cassette interface cables directly to the line out of your PC's soundcard, initiate the CLOAD (or CLOADM) command on the CoCo, and then play the sound file from your PC.

    The Final Mystery: 256 Colors?

    Early production notes for the CoCo 3 specified it would have a 256 color mode. A former Tandy employee once involved with the Color Computer product line has stated that this mode did make it in production CoCo 3s, but was never documented to avoid competition with the Tandy 1000 series of PCs. For years, several CoCo hobbyists have tried to confirm if this mode exists. The technical reference manual for the CoCo 3 as sold by Tandy had some clues to the existence of this mode, or at least showed where it may have existed but been removed before production.

    Basically 256 colors could be done using a page flipping technique which caused the screen to flicker badly, but was able to display 256 color graphics. This was used in some video screen capture software for the CoCo as well. There was also an OS-9 program that allowed viewing of 256 color graphic files.

    External links