Tandy Color Computer

Made in USA by Tandy Radio Shack in 1980
The earliest Coco computers (1 and 2) were initially "TRS-80" branded despite not being hardware or generally software compatible with any other TRS-80 branded systems. However, TRS-80 Model I/III/4 BASIC is a hardware neutral version of Microsoft BASIC-80 and will run on a Coco without modification except for any hardware specific POKE, PEEK, and USR statements. TRS-80 Coco BASIC is based on Microsoft BASIC-69 which was of course licensed from Microsoft.

Most CoCos that were sold as "16K" are actually 32K and most sold as "32K" are actually 64K. This was due to certain large memory moduals being cheeper than smaller ones at times and the practice of not telling any of this to customers (for unknown reasons)

Tandy was bound by contract with Microsoft to only use Microsoft brand BASIC in their system ROMs. But Microsoft would not provide an update to BASIC for the CoCo 3 hardware. Tandy hired Microware to provide Microware Extended BASIC. Microware's BASIC is not in the CoCo 3s ROM since that would violate contract. Instead, there is an additional ROM chip that 'patches' Microsoft BASIC, making it into Microware BASIC (titled, "Tandy Extended Color BASIC").

The ROMS were socketed to ease upgrading in Coco1 and Coco2 systems. Chip swapping had proven necessary in the TRS-80 models just for memory upgrades and even some periferals. But this turned out not to be a common issue for the Coco series. Additionally, Radio Shack personel were not informed about the CoCo as they had been about the TRS-80. Employees were only told the price. The Coco 1 and Coco 2 ROMs had many quirks and even a few known errors, promting many hobbyists to create there own versions with workarrounds and/or improvements. Such hacking had been allowed, even encouraged, by Tandy for the TRS-80s. In fact, customers could bring parts to Radio Shack and get them installed on their TRS-80s for no labor charge (Thus Radio Shack earned a nickname, "The S Hack"). CoCo 1 & 2 customers learned quickly that those services did not extend to CoCo systems. Many customers were rather upset when Tandy decided that their Coco3 ROM was without flaws and soldiered them to the motherboard. This was especially exasperating becase the CoCo 3's new GIME GPU was mapped into memory that some previously realeased games used (these games malfunction and crash on CoCo 3s, or simply do not display graphics). Had the ROMs been socketed, hobbyists may have invested in a workarround for the old games. additionally, the CoCo 3 was intended to use modern higher capacity disks, hard drives, have advanced sound hardware, a parallel port, upgradible graphics capability, built-in modem, and ethernet. Tandy became concerned that the CoCo 3 would take away too many Tandy 1000 sales (pehaps a real concern, since CoCo had been outselling T1Ks previously). These advanced features were cut shortly before release. Soldiered chips meant it was extremely difficult to resore these features.

The 6809 CPU of the Coco can be replaced with 6309 with 100% compatibility. A few games are designed to use advanced 6309 features are are tagged with both CPUs. Any games that are tagged as 6309 and not 6809 will not run on a 6809 equipped machine.

Tandy's own technical documentation of the CoCo display chips was lost in a fire. So the hardware was released to the public without full documentation. Much of what is known was reconstructed by Tandy's people, 3rd party developers, and hobbyist via reverse engineering. Rumors persist of a 256 color mode in the CoCo 3 hardware because partial documentation mentions it. The MC6883 chip and the VDG chip (normally) work together to translate data in memory into a 3.579545 MHz color TV signal OR an RGB signal (the hardware is incapable of detecting which display attached and developers relied and users to tell the software which signal to generate). Each mode involves setting multiple bits for each chip. There
are cominations that do not fit any documented mode. The documentation lables bits for certain modes as "DO NOT CARE" and "DO NOT CHANGE" but these can of course be used in undocumented ways (creating a virtual 128x192x8 mode for example). The hardware is not designed to generate a PAL signal and will only show monochrome signals on PAL displays unless the software uses undocumented hacking. The Dragon series of clones has the opposite problem and same solution. Software must be ported between the two for this as well as other reasons. The VDG chip is actually ternary rather than binary but must, obviously, be addressed using binary code. There is an MC1372 chip as well that is a complete Color TV video modulator (256x192x24bit, no problem) but it is not directly adddressable by software; only the MC6883 chip and the VDG can address the MC1372. There is actually hardware to disable some of the MC6883 features. Perhaps Tandy anticipated hardware upgrades similar to what was done with the TRS-80s. No such upgrades were ever produced by Tandy.

Each text character is 8x12 pixels and filled with a character from the ASCII table in ROM

ALPHANUMERIC Text 32x24 (CoCo 3 only)
ALPHANUMERIC Text 40x16 (CoCo 3 only)
ALPHANUMERIC Text 40x24 (CoCo 3 only)
ALPHANUMERIC Text 64x16 (CoCo 3 only)
ALPHANUMERIC Text 64x24 (CoCo 3 only)
ALPHANUMERIC Text 80x16 (CoCo 3 only)
ALPHANUMERIC Text 80x24 (CoCo 3 only)

ALPHA SEMIGraphics-4 64x32
Each 8x12 text character can be an ASCII character or divided into a 2x2 box of pixels that are 1 of 9 colors

ALPHA SEMIGraphics-6 64x48
characters can be 2x3 pixels, 4 colors

ALPHA SEMIGraphics-8 64x64
characters can be 2x4 pixels, 9 colors. This mode does not exist in CoCo 3 hardware.

ALPHA SEMIGraphics-12 64x96
characters can be 2x6 pixels, 9 colors. This mode does not exist in CoCo 3 hardware.

ALPHA SEMIGraphics-24 64x192
characters can be 2x12 pixels, 9 colors. This mode does not exist in CoCo 3 hardware.

Graphics 64x64, 4 colors

Graphics 128x64, 2 colors

Graphics 128x64, 4 colors

Graphics 128x96, 2 colors

Graphics 128x96, 4 colors

Graphics 128x192, 2 colors

Graphics 128x192, 4 colors

Graphics 160x192

Graphics 160x225 (CoC 3 only)

Graphics 256x192, 2 colors

Graphics 256x225 (CoC 3 only)

Graphics 320x192 (CoC 3 only)

Graphics 320x225 (CoC 3 only)

Graphics 640x192 (CoC 3 only)

Graphics 640x255 (CoC 3 only)

Tandy Color Computer (Tandy CoCo)
Authorized Clones
  • Tandy TDP System 100
Very Different Clones
  • Alice MC-10 (6803 CPU, authorized)
  • AT306 (68306 CPU)
  • Codimex CD6809
  • Delmar System IV (6800 CPU)
  • Dragon 32
  • Dragon 64
  • Dragon TANO 64k
  • Dynacom MX1600
  • Fujitsu FM-7 (Dual 6809 CPUs)
  • LZ Color64
  • MC-10 (6503 CPU),
  • Micro Color Computer (6503 CPU)
  • Microdigital TKS800
  • Micro-SEP
  • MM/1 (68070 CPU),
  • Peripheral Technology PT68K-4 (6800 CPU)
  • Prologica CP400 Color (100% Coco 2 compatible)
  • Sysdata Tcolor (6503 CPU)
Other Clones
  • Sampo Color Computer
  • Tandy MC-10 (6803 CPU, authorized)
  • Tomcat TC-9,
  • Tomcat TC-70 (68070 CPU)
  • Varixx VC50
  • Coco 4/Cyclone CoCo

The 6809E was an unusually optimized CPU that was highly respected in the industry for it's speedy processing and low coding overhead at a reasonably increased price. Some have called it the most advanced 8-bit CPU ever made. The 6502 was way cheaper but no where near as good. A z80 was technically a bit cheeper (and 8080 compatible), but could actually ended up costing slightly more to use in a microcomputer due to the other hardware required to interface with it. For example, a z80 required expensive high-speed RAM to match the clock cycle but the 6809E could efficiently access cheeper slower RAM to achieve the same transfer rate. Generally, any low-cost components suitable for the budget 6502 will also work with the 6809. But, taking full advantage of the 6809's capabilities required using expensive components, which the CoCo (nor Coco 3) ever did during it'd manufacturing. 6809 architecture resembles what would later be called RISC processors (despite the "E" variant actually having 72 _more_ instructions that a 6800 :) Internal coding was bypassed and most instructions executed using fewer clock cycles (like RISC). It could also access memory faster than contemporary CPUs. Although the 6809E only ran at 0.895 MHz (default speed in a Coco 1), benchmarking shows that it was comparable in speed to a [email protected] MHz (and later model Cocos ran 1 MHz then 1.8 MHz equivalent to an [email protected] MMz). Many of the chips features were actually 16-bit while the 8-bit features came in pairs (ie: two 8-bit accumulators) that could be joined together and used as 16-bit (this was done in the hardware without software tricks). Math processing was fully 16-bit. Programmers had previously used what is known as reentrant programming tricks (putting code in the wrong places) for various purposes but the 6809 did the same thing in hardware (position-independent code). Hacks became features. Previous CPUs would execute code differently dependent on where it was located in memory unless the system used an MMU. For example, if extra stack registers where needed, one could use the data registers as stack registers. An operation that needed to use the stack registers 4 times over 4 clock cycles could instead use data and stack registers and do the same operation in 2 cycles with the 6809. Not only did doing this in hardware decrease CPU usage, it reduced the amount of code needed. Pushing all that data into the 'wrong' places and successfully dealing with the consequences on any other CPU could take at least 40% more code. In case you are reading this and haven't yet thought it through, the 6809 was ideal for multi-threading, multi-tasking, and multi simultaneous users. There is no other 8-bit CPU like it.

The 6809E was rated to run at 1 MHz and could be made to do so on a Coco 1 within machine code or using a POKE statement in BASIC ("Speed POKE"). In a Coco 2, the clock rate was 1 MHz and could be upped to 1.8 MHz. The video display was dependent on the clock speed so careful math and timing had to be used to prevent the video from turning to random looking junk (if the display was absolutely required, a garbled or switched off display while the computer calculates a chess move for example). The Coco 3 added hardware to handle the video signal independently and ran the 6809E at 1.8 MHz at all times. However, this sacrificed some of the low resolution modes previously available on the Coco 1 and 2 meaning some games will not display properly, or not at all, on a Coco 3.

Fuzix is a Linux distro based on the ELKS kernel (embedded Linux). It runs, (just barely, but completely stable) on stock CoCo 2 with 64K or decently on a CoCo 3 with 512K. It should run even better once optimized for 6309. Fuzix runs on a wide variety of 8-bit systems (Z80, Z180, and yikes!, 6502) but was built with the 6809 in mind and is amazing on that family of processors. A 6809 CPU is the only way to run Fuzix on less than 512K and the only way to calculate single-variable 64-bit and floating-point math under Fuzix.

Coco 4
Cyclone CoCo is an 100% compatible unauthorized clone with many additional features
Overclocking to 7.16 Mhz
VGA (640×480x512 graphics, 80×60x512 text.
SD card slot
PS/2 mouse
Joystick port
12-bit Stereo
GPU (accelerates *all* functions)

Tomcat TC-09
1990. Designed for OS-9 software, it was not fully CoCo 3 compatible which upset many in the CoCo
Tomcat TC-70.
Used a 68070 based CPU and ran OS-9/68K

1990. Multi-Media One also used a 68070 based CPU. 640x208 and 640x416 graphics. SCSI, MIDI. [email protected] upgrade option.

AT306 (MM/1B)
[email protected] ISA expansion slots.

Delmar System IV/Peripheral Technology PT68K-4
[email protected] system using ISA cards (IBM-PC video cards) with OS-9 compatibility. A software based DECB Extended Color Computer BASIC interpretor would run CoCo BASIC games and aplications. An ALT86 card would run MS-DOS and Windows 1.0-3.0 at the same time as OS-9 if the 68000 was not using the ISA bus.

tech info

resolution: 256 x 192 x 8 colors, 15bit palette, 128 sprites
memory: 16K (32K) RAM, 16K ROM
CPU: 8/16-bit Motorola [email protected] MHz
sound: Sony SPC700, 8 channels

Related systems

Tandy Color Computer1980
Tandy Zoomer1992