Write up on Tech Geek History: ColecoVision Adam

Literature Review:

The Coleco Adam is a home computer released in 1983 by American toy manufacturer Coleco. It was an attempt to follow on the success of the company’s ColecoVision video game console. The Adam was not very successful, partly because of early production problems, and was discontinued in early 1985.

Coleco announced the Adam in June 1983 at the Summer Consumer Electronics Show (CES) and executives predicted sales of 500,000 by Christmas 1983. From the time of the computer’s introduction to the time of its shipment, the price increased, from USD $525 to $725.

The Adam is famous for an incident connected with its showing at the June, 1983 CES. To showcase the machine, Coleco decided to demonstrate a port of its ColecoVision conversion of Donkey Kong on the system. Nintendo was in the midst of negotiating a deal with Atari to license its Famicom for distribution outside of Japan, and the final signing would have been done at CES. Atari had exclusive rights to Donkey Kong for home computers (as Coleco had for game consoles), and when Atari saw that Coleco was showing Donkey Kong on a computer, its proposed deal with Nintendo was delayed. Coleco had to agree not to sell the Adam version of Donkey Kong. Ultimately, it had no bearing on the Atari/Nintendo deal, as Atari’s CEO Ray Kassar was fired the next month and the proposal went nowhere, with Nintendo deciding to market its system on its own.

The Adam had a large software library from the start. It was derived from and compatible with the ColecoVision’s software and accessories, and, in addition, the popular CP/M operating system was available as an option. Its price gave a complete system: an 80 kB RAM computer, tape drive, letter-quality printer, and software including the Buck Rogers: Planet of Zoom video game. The IBM PCjr sold for $669 but included no peripherals, and although the popular Commodore 64 sold for around $200, its price was not much lower after the purchase of a printer, tape or disk drive, and software.

Like many home computers of its day, the Adam was intended to use a television set for its display. The SmartWriter electronic typewriter loaded when the system was turned on. In this mode, the system operated just like a typewriter, printing letters as soon as the user typed them. Pressing the Escape/WP key put SmartWriter into word processor mode, which functioned similarly to a modern word processor.

A less expensive version of the Adam plugged into a ColecoVision, which delivered on one of ColecoVision’s launch commitments that owners would one day be able to upgrade their game system to a fully featured computer system.

Specifications:

CPU: Zilog Z80[7] @ 3.58 MHz
Support processors: three Motorola 6801s @ 1 MHz (memory & I/O, tape, and keyboard control)
Memory: 80 kB RAM, 16 kB video RAM; 32 kB ROM
Expansion: 3 internal slots, 1 cartridge slot, and a 62.5 kbit/s half-duplex serial bus called AdamNet. The stand-alone also has an external expansion port of the same type as the ColecoVision expansion port, on the right hand side.
Secondary storage: Digital Data Pack tape cassette, 256 kB
Graphics: Texas Instruments TMS9928A (a close relative of the TMS9918 in the TI-99/4A)
256 × 192 resolution
32 sprites
Sound: Texas Instruments SN76489AN
3 voices
white noise

History

Originally founded as The Connecticut Leather Company, Coleco Industries sold goods like swimming pools and snowmobiles throughout the 1960s. In 1976, it introduced the Telstar console, which used the AY-3-8500 “Ball & Paddle” chip to play variations of Pong. There were difficulties, like a last-minute FCC violation which required the intervention of Ralph Baer, Magnavox, and a ferrite toroid. Coleco would lose $22 million on the Telstar.

Eric Bromley designed a new programmable game system, but RAM was not yet cheap enough for a mass-market product. When prices came down, Coleco’s second console – stubbornly dubbed the ColecoVision – debuted in the summer of 1982. It was designed to deliver arcade experiences in the home, and so having a smash arcade hit would be critical to success.

Seeking game licenses, Bromley visited Nintendo president Hiroshi Yamauchi in Kyoto. While searching for the office bathroom, he discovered a Donkey Kong cabinet in a hallway. The game was not yet well known in the West, and had not yet been discovered by Coleco’s rival Atari. Coleco negotiated a deal for a $200,000 advance and a $2 per unit royalty, delivered on a cocktail napkin – which was saved from the metaphorical trash can by a last-minute appeal to Yamauchi’s daughter, Yoko.

The pack-in Donkey Kong cartridge was impressively faithful to the original. Coleco would sell around two million consoles and publish 145 cartridge titles – including ZaxxonGorfBurger Time, and many lesser-known arcade ports – over the next three years.

The video game crash of 1983 took Coleco’s focus back toward traditional toys like the Cabbage Patch Kids dolls. But due to several missteps, including the poor reception of the Adam computer and talking ALF dolls, the company would file for Chapter 11 bankruptcy five years later.

Hardware

Unlike the Atari 2600, which features two pieces of custom silicon, the ColecoVision uses off-the-shelf components:

  • CPU : Zilog Z80A (NEC version) at 3.58 MHz
  • Video : Texas Instruments TMS9928A Video Display Controller
  • Sound : Texas Instruments SN76489A Digital Complex Sound Generator
  • Video RAM : 16 KB
  • General-Purpose RAM : 1 KB
  • ROM BIOS : 8 KB

A game cartridge plugs into the top of the unit, and it contains anywhere from 8 to 32 KB of ROM storage.

The ColecoVision also contains a BIOS ROM, a preprogrammed bit of code which runs when the console powers up or is reset. It displays a copyright notice for 12 seconds, and then transfers control to the game cartridge if one is present. The BIOS also contains bitmap fonts and various utility routines.

There is also an Expansion Module Interface at the front of the unit which can accept various plug-in modules to add functionality. Several different modules were produced during the console’s lifecycle – for example, an Atari 2600 compatibility module, and the Adam computer.

Video

The ColecoVision’s video signal is generated by a TMS-9918A Video Display Controller (VDC) chip. It was also used in the TI-99/4, MSX computers and some early Sega game consoles.

The VDC can generate a 256×192 frame at 60 FPS (50 FPS for PAL). There are several video modes, which we’ll describe in more detail later, but here is a brief summary:

  • Text : 40 columns by 24 rows of text. Each character is 6×8 pixels, and there are only two colors onscreen (foreground and background).
  • Graphics 1 : 32 columns by 24 rows of text. Each character is 8×8 pixels, and can have separate foreground and background colors.
  • Graphics 2 : 32 columns by 24 rows, with 768 different character patterns – in other words, enough to cover the entire screen. Each cell has 8 different foreground/background colors, one for each scanline.
  • Bitmap : Displays a 64×48 color bitmap.

On the ColecoVision, all colors come from a fixed palette of 16 colors.

IndexColor
0Transparent
1Black
2Medium Green
3Light Green
4Dark Blue
5Light Blue
6Dark Red
7Cyan
8Medium Red
9Light Red
10Dark Yellow
11Light Yellow
12Dark Green
13Magenta
14Gray
15White

Most of the graphics modes (except Text) can have sprites overlaid on top of the background. You can have up to 32 moveable 16×16 sprites anywhere on the screen, with the limitation that only 4 sprites may coexist on a single scanline. Each sprite can be assigned its own color from the palette, which is displayed for “on” pixels; all “off” pixels are transparent.

Sound

Sound is provided by a SN76489 Digital Complex Sound Generator (DCSG) from Texas Instruments. The same chip was also used in several home computers and game consoles, as well as arcade games like Mr. Do!.

It can produce 3 square wave tones simultaneously, each tone generated by a frequency divisor with 1024 possible values. The lack of divisor range means that not many bass notes can be produced; the lowest frequency possible is 109 Hz.

There is also a pseudorandom noise generator, which can either generate noise directly or be used as a frequency divider.

Controllers

The ColecoVision came with two rectangular controllers with a stubby round joystick and buttons on the side. There is a 12-digit keypad on the controller, into which plastic overlays could be slipped for certain games.

An optional driving controller and a trackball controller were also available via the Expansion Module port.

Memory Map

A system’s memory map describes which components (sometimes corresponding to physical chips) are connected to a given range of addresses. On many 8-bit systems, there is a single memory map which links the main CPU bus to all other components – e.g. RAM, ROM, and support chips.

The ColecoVision has three distinct memory maps: two are connected to the CPU, and one is behind the Video Display Controller.

On the ColecoVision, the Z80 CPU’s main (address) bus is connected to 1K of RAM, the built-in BIOS ROM, cartridge ROM, and the expansion port:

StartEndDescriptionRead/Write?
$0000$1FFFBuilt-in BIOS ROMread
$2000$5FFFExpansion portread/write
$6000$63FFRAM, general-purposeread/write
$8000$FFFFCartridge ROMread

The Z80’s IN/OUT instructions access the I/O bus. It controls video and sound, and also reads the controller inputs:

StartEndDescriptionRead/Write?
$80$9FSet keypad modewrite
$C0$DFVideo (VDC) registersread/write
$E0$DFSet joystick modewrite
$E0$FFSound registerswrite
$E0$FFControllersread

The majority of RAM in the system, 16 KB ($4000 bytes) is directly connected to the Video Display Controller. It cannot be accessed directly by the CPU, but only via the video I/O ports, one byte at a time.

However, the video RAM memory map is not fixed. The programmer can configure the VDC to use different regions of RAM for different purposes. Each of these regions is called a table, and their locations are configured via registers.

There are five different tables:

  • Image Table – Defines the background tile map, which selects a character out of the pattern table for each cell on the screen.
  • Pattern Table – Defines an 8×8 (or 6×8 in Text mode) bitmap for each character.
  • Color Table – Varies between graphics modes, but generally chooses colors for either characters or regions of the screen.
  • Sprite Attribute Table – Defines position, bitmap, and color for each of the 32 possible sprites.
  • Sprite Pattern Table – Defines a 16×16 bitmap for each sprite, with 64 bitmaps in each table. There is also an 8×8 sprite mode with 256 bitmaps.

Tables cannot be placed at arbitrary locations in the 16 KB of video RAM; each table has a specific granularity that limits its possible starting location. For example, the Sprite Pattern Table has a granularity of $800, so it can be set to location $0, $800, $1000, or $1800. In some modes, the granularity is limited further.

Table NameGranularityDescription
Image Table$400Background tile map
Pattern Table$800 / $2000Character bitmaps
Color Table$40 / $2000Background color map
Sprite Attribute Table$80Sprite positions and attributes
Sprite Pattern Table$800Sprite bitmaps

Programming

Almost all ColecoVision commercial titles were written in Z80 assembly language. This allowed developers to fine-tune each and every byte of their programs. This was critical when fitting games into the small but expensive in the game cartridge. It also allowed for clever optimizations which squeeze the most performance possible out of each frame of animation.

Nowadays, homebrew ColecoVision developers usually write games in either assembler or C, the latter using the SDCC compiler toolchain. Writing in C gives you more functionality per line of code. While it has lower performance and greater code size than a well-written assembly program, you can still write a pretty good game in C.

!!! Note: The 8bitworkshop IDE doesn’t use the original ColecoVision BIOS. Instead, we replace it with a minimal (yet incompatible) open-source BIOS. Our C library interacts with the hardware directly and doesn’t need to call BIOS routines, so all our version does it look for a cartridge and start it. Our BIOS also contains a bitmapped font that can be used by cartridges. If you want to use your own BIOS, upload it to the IDE with the name coleco.rom.

Programming the ColecoVision hardware, especially the VDC, is a little tricky, so we’re going to use an open-source C library called LibCV, and its companion library LibCVU. They relieve some of the drudgery of programming I/O ports directly.

The ColecoVision was one of the more powerful systems of its era when Coleco Toys introduced it in late 1982. In fact, it was actually much closer to the Nintendo Entertainment System in terms of overall power than any of its competitors in the pre-1983 Crash video game market. It was expandable, had a fast CPU and a Texas Instruments GPU with its own video memory, and had a decent assortment of attachments (at least on paper). It’s probably more famous now for being the machine that brought the first truly faithful port of Donkey Kong (1981) to the home user, and for getting sued by Atari over the “Expansion Module”, basically an Atari 2600 in a box that could attach to a port on the console. The company also released a standalone 2600 clone, the Gemini.

Like the Intellivision, the ColecoVision used a controller that combined a joystick with a 12-key keypad (which allowed games to include overlays to show how the buttons would be used). Unlike the Intellivision however, the controllers were detachable and could be replaced by third-party 8-pin alternatives such as the Atari 2600 controller. A special “Super Action Joystick” would be released, with some games that could only exclusively use them (such as Rocky Super Action Boxing and Super Action Baseball), and a driving wheel was released as well.

The ColecoVision did well initially, and Coleco decided to take things further by introducing the ADAM, a full PC based on the ColecoVision’s motherboard (by way of a daughterboard in a plastic case). ADAM was sold as a complete word-processing system, a big deal in 1983, and as such it shipped with a built-in text editor (which ran on startup), a full-size, full-travel keyboard, a daisy-wheel printer (which the power cord ran through), and a “datapack” drive that used a proprietary, modified cassette tape. It also had a serial peripheral bus called ADAMNET; despite appearing 3 years before Apple’s ADB system, its potential was never fully explored and only the keyboard and printer ever used it.

The ADAM could be obtained by itself (in which case it had a Coleco cartridge port), or, at least on paper, as an attachment to an existing ColecoVision. The ADAM was rushed to meet the Christmas 1983 shopping season (which it failed to do—arriving closer to January 1984), and its launch was fraught with problems. The power supply had a high failure rate, and the tape drives were poorly shielded and would erase the tape if not treated with care. note 

Most of the extra software and peripherals Coleco promised for the ADAM never surfaced. However, third-party support for the ADAM was surprisingly large. A new external power supply meant the noisy, slow daisy-wheel printer could be replaced. Floppy drives could be added, and faster modems could be used.

The ColecoVision had very few exclusive games, partly due to lasting only two years in production, partly because Coleco continued to release games for the 2600 and the Intellivision as well as for their own console. (Atari, for their part, released a few games for the ColecoVision under the Atarisoft label.) Most of its game library consisted of ports of arcade games, though these conversions usually turned out better than the versions produced for competing consoles; as noted, its version of Donkey Kong was nearly flawless and came bundled with the system. It was such a good port, in fact, that Nintendo themselves took great influence from the Colecovision when designing The Nintendo Entertainment System.

Both the ColecoVision and the Coleco ADAM were quickly discontinued after The Great Video Game Crash of 1983 killed the market. Coleco itself quickly followed them; while they had a huge hit with the Cabbage Patch Kids dolls in 1984, they eventually lost the license and sold themselves to Hasbro in 1989, who would acquire the dolls in the deal and continue making them until 1994 before losing the rights to Mattel, Intellivision’s creators.

While not as widely known as the Atari 2600 in modern pop culture, the ColecoVision was still an important part of video game history in several respects. The system made a huge impression on Nintendo, which used it as a baseline when designing their Famicom. Additionally, the ColecoVision’s port of Donkey Kong was used to demonstrate the capabilities of the Coleco ADAM at the 1983 Summer Consumer Electronics Show. Atari took this as a violation of their exclusive rights to release Donkey Kong on home computers, and killed a tentative deal with Nintendo to distribute the NES in Western markets. The Great Video Game Crash Of 1983 would intervene before Atari and Nintendo could reconcile, leaving Nintendo to distribute their system on their own. The console was also quite influential on Sega. Sega had originally struck a deal to become the Japanese distributor of the ColecoVision. Those plans never came to fruition, but Sega would use the ColecoVision’s technology as the basis for their first home console, the SG-1000.

In 2014, At Games released the ColecoVision Flashback, a pretty faithful recreation of the original model system with 60 built-in games that run under emulation. Unfortunately, due to licensing issues many of the arcade ports that made the Colecovision so popular (like Donkey Kong) were not included. At Games made up for this by including several popular homebrew games.


Specifications:

Processors

  • The main processor was the venerable (and, in 1983, still quite formidable) Zilog Z80, running at 4 MHz. The ADAM added several Motorola 6801s for running the keyboard, printer and tape drives.
  • Both systems used the same GPU, the TMS9918 – originally created for the TI-99 computer, then used on several other systems such as the MSX line, and (in improved forms) the Sega Master System and Sega Genesis consoles.
    • Sega’s SG-1000, the ancestor of both the Master System and Genesis, was virtually identical to the ColecoVision, to the extent that at least one clone console, namely the Dina 2-in-1, could play both ColecoVision and SG-1000 cartridges. The Dina was also distributed in the States as the Telegames Personal Arcade, though as the numeric keypad on it was built into the console itself (for some strange reason, not to mention that it would be clunky to reach to the console just to press a certain ColecoVision action button), a number of games that require two numeric controllers will not work on the Dina.

Memory

  • The main CPU was somewhat starved of RAM—only 1K unless you had ADAM, but both systems had a very generous 16K of dedicated VRAM, making them two of the most powerful consoles of their time.
  • ADAM itself had a full complement of 64K, as well as two different operating systems in ROM. (Or one OS and a word processor.)

Sound

  • Used a TI three-channel programmable sound generator, the same as in TI’s own machines and the IBM PCjr, and similar in capabilities to the GI/Microchip AY-3-89xx used by the Intellivision and MSX.

0 thoughts on “Write up on Tech Geek History: ColecoVision Adam”

  1. Hi! I know this is somewhat off topic but I was wondering if you knew where I could locate a captcha plugin for my comment form? I’m using the same blog platform as yours and I’m having problems finding one? Thanks a lot!

    Your comment is awaiting moderation.

Leave a Comment

Your email address will not be published. Required fields are marked *