Color Computer Technical Study

TheCoCo should be relatively easy, since it was entirely implemented in TTL chips and off-the-shelf LSI.
I'm fortunate enough to have an original technical manual for this machine.

TheCoCo3 should be rather harder, since it used a custom chip to implemented a lot of logic including the video controller and memory management. In return it added new features such as programmable palette and enhanced graphics modes with 32, 40, 64, and 80 column text. The 80-column text allowed it to do some serious applications, although this would be getting hard to read with the TVs of the day. It would improve clarity to use the RGB inputs of modern TVs.

The 6809E CPU is fairly rare these days. It was quite a complex CPU for an 8-bitter, resulting in a lot of internal circuitry. With being manufactured in NMOS technology, it got quite warm as well. It was later available in CMOS, and you might prefer to use this.

The key components in this machine are the 6847 VDG and the 6883 SAM. These parts work very closely. The entire timing of the machine is derived from the master oscillator running at 14.318180 MHz. The SAM uses this to generate the DRAM control signals and the VDG clock.

Although the SAM chip is fairly large (at 40 pins), its actions are quite simple. It multiplexes has a refresh row counter and this and the address lines A0...15 onto multiplexed address lines MA0...7 for dynamic RAM. It also generates !RAS !CAS and the video clock for a 6847. It replicates the 6847 address sequencer so that the 6847 does not need to drive address lines!

The 6847 VDG in VHDL

Colour carrier modulation

Keyboard

Memory Map

Range Size CoCo Dragon
32K Mode 64K Mode
0000-
1000-1FFF
8K   RAM RAM
2000
3000
8K  
4000
5000
8K  
6000
7000-7FFF
8K  
8000
9000-9FFF
8K Extended
Color BASIC ROM
BASIC ROM
in 32K mode
A000-AFFF
B000-BFFF
8K Color BASIC ROM
C000-CFFF
D000-DFFF
8K Cartridge
expansion
DOS
ROM
Cumana
DOS
ROM
only
Cartridge
expansion
Copy of BASIC ROM 2
exists in RAM here
E000-FEFF 8K
- 256
 
FF00-FF03 4 6821 PIA 0
FF04-FF07 4   6551 ACIA
FF20-FF23 4 6821 PIA 1
FF40-FF43 4 WD2797 FDC
FF48 1 Drive-select latch
FFC0-FFDF 32 6883 SAM
FFF0-FFFF 16 6809 interrupt vectors mapped from BFF0-BFFF by SAM

 

Drive select latch (at FF48 in the Dragon)

Bits:
0,1 - Read as a 2-bit number to select the required drive (0-3).
2 - Enables the drive selection & turns the disk motors on.
3 - Double/Single density select (1=single).
4 - Enable write precompensation.
5 - Enable NMI interrupt generation.
6-7 unused.

Links

Byte magazine article about the Color Computer