Skip to content
Tech HistoryDeep Dive Published Updated 4 min readViews unavailable

DEC Rainbow 100: How the Z80 and 8088 Shared the Work

Read the Rainbow 100's dual-processor design through its shared memory and deliberately different Z80A and 8088 hardware responsibilities.

The DEC Rainbow 100 is often summarized as a personal computer with both a Z80 and an 8088. That description is true but incomplete. DEC’s technical documentation describes the processors as operating simultaneously, sharing a 62-kilobyte RAM region while retaining processor-specific memory and peripheral circuitry. The design is more interesting as a division of system responsibilities than as a simple count of CPUs. [1][2]

A dual-processor design with a shared boundary

The May 1984 Rainbow 100 Technical Manual describes the PC100 system module as using an 8088 and a Z80A. It identifies a 62 KB block of shared RAM and additional unshared memory and peripherals for the processors. DEC’s March 1983 PC100 System Specification also describes the shared memory as the path through which both processors operate and transfer data. [1][2]

The exact memory inventory should not be compressed into the inaccurate claim that the whole base memory was shared. The technical manual lists 64 KB of dynamic RAM, divided into 62 KB shared and 2 KB unshared, and separately lists 2 KB of static RAM. The safe architectural conclusion is that the processors had a substantial common RAM region plus memory that was not common to both. The manuals’ descriptions and memory tables should be consulted together when a board revision or expansion changes the configuration. [1]

                 +----------------------+
                 |   62 KB shared RAM   |
                 +----------+-----------+
                            |
              +-------------+-------------+
              |                           |
        +-----v-----+               +-----v-----+
        |  Z80A     |               |  8088     |
        | RX50 I/O  |               | video,    |
        | role      |               | keyboard, |
        +-----------+               | printer,  |
                                    | comms     |
                                    +-----------+

This diagram is deliberately simplified. It shows the shared memory and the responsibilities DEC names; it is not a bus-timing or address-map diagram. The technical manual also discusses each processor’s own memory and peripheral circuitry, so shared RAM should not be mistaken for a single undifferentiated system bus. [1]

The CPUs had different hardware jobs

DEC’s technical manual assigns the Z80A the functions required to read from and write to the RX50 diskette drive. The 8088 handles video output to the monitor, keyboard I/O, the printer port, communications with a host computer, and installed options. [1]

Processor Responsibility described by DEC Architectural consequence
Z80A RX50 diskette read/write functions Diskette-controller work had a dedicated processor path
8088 Monitor video, keyboard, printer, host communications, and options The main system processor also owned much of the interactive and expansion I/O
Both Access to the shared 62 KB RAM block Shared memory provided a data-exchange region, while private circuitry remained distinct

The documentation calls the architecture simultaneous, but that word alone does not establish that applications on the two CPUs formed a symmetric multiprocessor system. DEC’s own division of hardware work is explicit; claims about a particular operating system scheduling arbitrary application code across both processors require software documentation, not just the hardware manual. Likewise, a shared memory region does not by itself prove that a binary for one processor could execute on the other.

Why the pairing mattered

The Rainbow belongs to a period when a personal computer could be designed around more than one software and I/O expectation. An 8088 system could address the 16-bit PC software world, while the Z80A kept a role for 8-bit-oriented system components. Yet the hardware details show that this was not simply two interchangeable processors taking turns. DEC allocated device responsibilities, memory regions, and peripheral circuits around the pair.

That distinction is useful when reading the Rainbow’s history. “Dual processor” can describe a concurrency claim, an upgrade path, a compatibility strategy, or a fixed division of labor. In the PC100 manuals, the concrete evidence is the last two items in the table above: named devices assigned to the Z80A and a distinct group assigned to the 8088, connected by a defined shared-memory block. The sources do not justify turning that evidence into a broad claim about every program running on both CPUs at once.

Reading the surviving documentation

The 1983 system specification provides the earlier system-level description, while the May 1984 technical manual offers service-oriented detail for the PC100-A system module. They are complementary sources, but not interchangeable for every Rainbow 100B or Rainbow 100+ board revision. The later addendum exists precisely because those models had differences. This article therefore uses the PC100 architecture described by these two documents and does not generalize its component inventory to every member of the Rainbow family. [1][2]

The Rainbow’s historical significance is not just that it placed two processor names on one specification sheet. It is that DEC documented a dual-processor system with shared memory and intentionally divided hardware duties. That is a more precise starting point for understanding its compatibility goals, service procedures, and the constraints facing software that crossed those boundaries.

Related:

Sources:

Comments