Pascal MicroEngine


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 most common programming language used on the p-System is Pascal.
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 publicly available for other platforms but not for the MicroEngine.

Products

The MicroEngine series of products was offered at various levels of integration:
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.
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 2018 and documented on the web is described by Marcus Wigan and contains 312 kB of memory, RAM disc support through a modified Z80 BIOS taking advantage of the memory mapping chip on the Z80 board, and using the UCSD Pascal III version of the operating system tuned specifically for the WD 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 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.

Reception

At the time of introduction, the only competitors were 8-bit processors. The MicroEngine could compile Pascal source code in a fraction of the time 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. The first boards shipped were poorly designed, 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.

Other languages

A group led by David A. Fisher developed the third validated Ada compiler using the Modular MicroEngine.
for version 17.1 of the Ada verification system then in use.
This compiler was later transferred to mainframe/minicomputers under the name of GenSoft Ada, and ran in an emulator of the Microengine under the MicroEngine-specific UCSD 3 operating system. Copies of the Prime computer version are known to be held by M R Wigan, who also holds a zero price licence for the full MicroEngine Ada system and UCSD 3 Operating system used for the Modular Microengine, as well as the three Modular MicroEngines used to create the 17.1 Ada, and all the development 8" floppy discs.
Ada was the only other full programming language available.
John Lloyd of the University of Melbourne created an early version of his Prolog for this system and both Basic and Fortran 77 compilers were ported from other UCSD P-system implementations at various times, but not widely distributed.
Due to limited memory 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. This UCSD-based Ada was later redeveloped for the Sage 4 by TeleSoft in San Diego.