February 9th, 2014 ~ by admin

Western Digital WD/9000 Pascal MicroEngine

DEC 1611H 21-15579 - LSI-11 RALU (MCP-1600)

DEC 1611H 21-15579 – LSI-11 RALU (MCP-1600)

Fully 10 years before Western Digital released their first hard drive, they made processors, calculator chips, Floppy Disk controllers and a host of other IC’s.  Western Digital began in 1970 making primarily calculator chips.  In 1976 they announced the multi-chip MCP-1600 processor.  This was an implementation of the PDP-11 minicomputer in silicon.  It consisted of a CP1611 Register/ALU chip, a CP1621 control chip and either 2 or 4 CP1631 512x 22bit MICROMs that contained the microcode implementation of the PDP-11 architecture.   Physically this was an 8-bit design, but clever microcode programming allowed it to function as a 16-bit processor.  Use of microcode allowed it to also implement floating point support, a very new concept in hardware in 1976.  The MCP-1600 was used in DECs LSI-11 microcomputer among others.

Western Digital CP2161B - 1979 Pascal Control Chip

Western Digital CP2161B – 1979 Pascal Control Chip

Having the microcode separate from the ALU/Control didn’t help with board layout or cost, but it did provide a very flexible platform to implement other architectures on.  In the late 1970s UCSD (University of California in San Diego) was working on a project, led by Kenneth Bowles, to make a portable version of the Pascal programming language, a version that could run on multiple hardware platforms, very similar to how Java has become today.  The code was compiled to a ‘p-code’ or pseudo code that could them be executed by a virtual machine onto whatever hardware.  Typically this virtual machine would be implemented in software, however the design of the MCP-1600 was such that it could be implemented in hardware, or rather microcode.  Thus in 1978, the WDC MICROENGINE was born.  This was to be a 5 chip set (original documentation states 4, but it ended up being 5) that consisted of the CP2151 Data chip (if you have a CP2151 you would like to donate, let us know) , the CP2161 Control chip, and 3 512 x 22 bit MICROMs which contained the microcode to directly execute UCSD Pascal on the data chip.  The CP2151 was no different from the CP1611 of the MCP-1600 chipset and could be interchanged.

The difference was in the CP2161 control chip and of course the MICROMs.  Though the CP2151 contained multiple registers, the Pascal implementation was a stack machine, it didn’t work as a register computer, but as a pure stack machine, much like the FORTH processors by Novix later on.  WD named the chipset the WD/9000 and created a separate company (MICROENGINE Corporation) to market it.

Western Digital CP2171B-10 - 1 of 3 MICROMs

Western Digital CP2171B-10 – 1 of 3 MICROMs

The WD/9000 chipset ran at 3.3MHz and was made on a NMOS process.  It required a 4-phase clock and 4 voltage supplies (+/- 5V and +/- 12V).  At the time there were plenty of single supply processors so this further complicated its marketing. (not to mention board design).  It was available in either an ‘A’ (ceramic) or ‘B’ plastic package.

The initial product was the WD/900 single board computer based on the WD/9000 chipset, which could execute Pascal code 10 times faster than most other systems, when it worked.  Unfortunately the board design and quality was terrible, leading to very unreliable hardware.  Not something that inspires users who had just spent $2995 on the board, or $5000 for a complete WD/90 system.  Eventually the quality problems were sorted out and the MICROENGINE went on to some success, though mostly as a development platform for Pascal.  As Pascal versions changed, so did the MICROMs, a user could upgrade their Pascal support by replacing the MICROMs in their system.  Since the implementation was structured well, not all upgrades required all 3 MICROMs to be replaced.  Known 3 chip sets are:

  • 10/12/13 Earliest release
  • 14/15/16
  • 14/15/17
  • 14/15/18 (Needed to run Pascal III.0 rH0)

Ultimately Pascal was pushed by the side as as a programming language which sealed the fate of the MICROENGINE.  By 1983 WDC no longer advertised it, instead contentrating on their now rapidly increasing portfolio of other products.  The concept of a hardware implementation of a programming language was not lost however.  There are still many processors that directly process FORTH code, Java code, and even some C code.



Posted in:
CPU of the Day

8 Responses to Western Digital WD/9000 Pascal MicroEngine

  1. Karel

    I like your articles.
    I spotted a minor mistake: You probably mean Novix instead of Novax.

    Gr. Karel

  2. admin

    AH yup thanks. Fixed.

  3. Western Digital Pascal MicroEngine WD900 | Rare & Old Computers

    […] Very nice page on the chip set […]

  4. marcus wigan

    I have several s100 Microengine board pairs(Digicomp research) and have documented some of this on my website. I also have all three Wd Modular microegines on which the Ada (later Gensoft Ada and run under a micro engine emulator on Prime and other gear) plus the original discs and tapes for this-and the proper line for UCSD Pascal III from th Regent so califorina to use it.. probably the rarest of all!

  5. admin

    Cool boards for sure!

  6. Eric Smith

    I would appreciate attribution for the material taken from my research and cctalk postings, particularly this one in 2012 which covered the similarities with the other WD chipsets, and the suffixes of the matched sets of Microms.


  7. Michael Sawatzki

    Hi folks, I own one of the original 4-Chip WD9000 Chip Sets with CP2151B, CP2161B, CP212171-01 and CP212171-02. The chips were never used, still resting in their original container with the preliminary documentation which was handed to me personally during my visit to WD in Nov. 1978.
    I retired 5 years ago and started cleaning up my lab and came across this chip set, which I would cerainly like to donate to a museum. If you still search for these chips and want them, just let me know.
    kind regards

  8. Rastakins

    The Microengine chipset used THREE power supply voltages (+5V, +12V, and -5V). Any number (typically 2, 3, or 4) of CP1631 512x 22bit MICROMs could be used in a MCP-1600 design.

Leave a Reply