The Pascal MicroEngine was a series of microcomputer products manufactured by Western Digital from 1979 through the mid-1980s, designed specifically to run the UCSD p-System efficiently. Compared to other microcomputers, which ran a machine language p-code interpreter, the Pascal Microengine had its interpreter implemented in microcode. So, p-code was, effectively, its native machine language.
The MicroEngine ran a special release III p-System, which was not to be used on any other platforms. However, the enhancements of release III were incorporated into release IV which was made available for other platforms but not for the MicroEngine.
The MicroEngine series of products was offered at various levels of integration:
- WD-9000 five chip microprocessor chip set
- WD-900 single board computer
- WD-90 packaged system
- SB-1600 MicroEngine single board computer
- ME-1600 Modular MicroEngine packaged system
The MicroEngine chipset was based on the MCP-1600 chipset, which formed the basis of the DEC LSI-11 low-end minicomputer and the WD16 processor used by Alpha Microsystems (each using different microcode).
One of the well regarded systems was the S-100 bus based dual processor cards developed by Digicomp Research of Ithaca, NY. These cards deserve an entry on their own, as they survived the demise of the WD single-board system and delivered reliable performance at up to 2.5Mhz. A typical configuration was a Digicomp dual processor board set, containing a Zilog Z80 and a bipolar memory mapper harnessed to a microengine chipset on the second board, linked by a direct cable. The sole configuration known to be still running in 2013 and documented on the web is described by Marcus Wigan and contains 312 kB of memory, RAM disc support through a modified Z80 BIOS (written by Tom Evans) taking advantage of the memory mapping chip on the Z80 board, and using the UCSD Pascal III version if the operating system tuned specifically for the awD chipset - once the Microengine had booted the ram-disc was available. A software facility within UCSD Pascal allowed the system to copy the entire operating system to the ram disc and transfer control to it. This sped it up remarkably. This use of a Z80 BIOS to handle all the devices, allowed the use of a range of floppy discs, I/O boards and hard disk controllers .
The performance of this Microengine on a series of simply Interface Age benchmarks (originally designed for BASIC programs) is documented in an Australian Computer Society, MICSIG, paper presented at the National Conference on Microcomputer Software, Canberra, ACT presented on June 1982, along with a wide range of other contemporary machines and compilers, including Z80 systems supported by the 9511 APU chip hosted in the Digicomp S-100 Microengine system that he used.
At the time of introduction, the only competitors were 8-bit processors (mainly Intel 8080, Z80, and MOS Technology 6502 based systems).[vague] The MicroEngine could compile Pascal source code in a fraction of the time (typically about 1/10) required by contemporaries. Fast compilation made the MicroEngine especially nice as a developer's machine, and the inclusion of a semaphore primitive in the microcode was particularly useful for multi user enhancements, which were developed in Melbourne for the Canberra Australia-based Ortex Company, extended to be a multiuser system and often sold with a bundled pharmacy management system, also delivered on the Sage IV computers under UCSD Pascal IV and enabled as a multiuser system using the Sage multiuser bios rather than by extending UCSD Pascal IV to add a semaphore. This performance advantage was eroded by the later availability of p-code to native machine code translators, and mainstream 16-bit microprocessors such as the Intel 8086 and Motorola 68000.
When details of the MicroEngine were first released, the system accumulated a very large number of pre-orders (for the time). The first boards shipped were poorly designed (power and ground traces the same size as signal traces, very few capacitors), required a large number of modifications, and even then did not work reliably. A couple of years would pass after introduction before a well-engineered MicroEngine was available. Between a damaged reputation and the introduction of the IBM PC, in the end the MicroEngine was only modestly successful.
A further example of a commercial product based on the MicroEngine was the AVAB Viking lighting control system, which used the Modular MicroEngine boards along with some custom hardware.
A group led by David A. Fisher developed the third validated Ada compiler using the Modular MicroEngine. This compiler was later transferred to mainframe/minicomputers under the name of GenSoft Ada. Ada was the only other full programming language available. Due to limited memory (62K 16-bit words, the last 2K words being reserved for memory-mapped I/O and PROM for the hard disk bootstrap code) only very small Ada programs could be compiled. At one point in the compilation the compiler swapped the operating system out to disk, to gain just a little more room.
"A(da" replaced "A(ssmble" on the main command menu. No native assembler was available or needed.
- Western Digital Pascal MicroEngine
- Pascal MICROENGINE documentation at bitsavers.org
- Western Digital Pascal Microengine-Based Systems at www.mwigan.com
- Marcus Wigan (2015-02-02). "Western Digital Pascal Microengine-Based Systems". Retrieved 2016-10-09.
- Wigan, M. R. "BASIC. FORTRAN.S-ALGOL. and Pascal Benchmarks on microcomputers. including the effects of floating point processor support" (PDF).
- Wigan, M. R. (1982). BASIC, FORTRAN, S-ALGOL and Pascal benchmarks on microcomputers, including the effects of floating point processor assistance
- . The March 1979 Preliminary Edition of the reference manual stated that a BASIC compiler was available for the system, but it is unknown if this compiler ever actually shipped.