Pascal MicroEngine is a series of microcomputer products manufactured by Western Digital from 1979 through the mid-1980s, designed specifically to run the UCSD p-System efficiently. [1] Compared to other microcomputers, which use a machine language p-code interpreter, the Pascal MicroEngine has its interpreter implemented in microcode; p-code is its machine language. The most common programming language used on the p-System is Pascal.
The MicroEngine runs a special release III p-System. The enhancements of release III were incorporated into release IV which was made publicly available for other platforms but not for the MicroEngine.
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 (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. [4] 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 [5] 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 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 (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 in June 1982, [6] [7] 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.[ citation needed ] 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. 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. [8] 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 (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. This UCSD-based Ada was later redeveloped for the Sage 4 by TeleSoft in San Diego.
A complex instruction set computer is a computer architecture in which single instructions can execute several low-level operations or are capable of multi-step operations or addressing modes within single instructions. The term was retroactively coined in contrast to reduced instruction set computer (RISC) and has therefore become something of an umbrella term for everything that is not RISC, where the typical differentiating characteristic is that most RISC designs use uniform instruction length for almost all instructions, and employ strictly separate load and store instructions.
In processor design, microcode serves as an intermediary layer situated between the central processing unit (CPU) hardware and the programmer-visible instruction set architecture of a computer, also known as its machine code. It consists of a set of hardware-level instructions that implement the higher-level machine code instructions or control internal finite-state machine sequencing in many digital processing components. While microcode is utilized in general-purpose CPUs in contemporary desktops, it also functions as a fallback path for scenarios that the faster hardwired control unit is unable to manage.
Pascal is an imperative and procedural programming language, designed by Niklaus Wirth as a small, efficient language intended to encourage good programming practices using structured programming and data structuring. It is named after French mathematician, philosopher and physicist Blaise Pascal.
The PDP–11 is a series of 16-bit minicomputers sold by Digital Equipment Corporation (DEC) from 1970 into the late 1990s, one of a set of products in the Programmed Data Processor (PDP) series. In total, around 600,000 PDP-11s of all models were sold, making it one of DEC's most successful product lines. The PDP-11 is considered by some experts to be the most popular minicomputer.
UCSD Pascal is a Pascal programming language system that runs on the UCSD p-System, a portable, highly machine-independent operating system. UCSD Pascal was first released in 1977. It was developed at the University of California, San Diego (UCSD).
Turbo Pascal is a software development system that includes a compiler and an integrated development environment (IDE) for the Pascal programming language running on CP/M, CP/M-86, and DOS. It was originally developed by Anders Hejlsberg at Borland, and was notable for its extremely fast compilation. Turbo Pascal, and the later but similar Turbo C, made Borland a leader in PC-based development tools.
BBC BASIC is an interpreted version of the BASIC programming language. It was developed by Acorn Computers Ltd when they were selected by the BBC to supply the computer for their BBC Literacy Project in 1981.
In computer science, an interpreter is a computer program that directly executes instructions written in a programming or scripting language, without requiring them previously to have been compiled into a machine language program. An interpreter generally uses one of the following strategies for program execution:
Southwest Technical Products Corporation, or SWTPC, was an American producer of electronic kits, and later complete computer systems. It was incorporated in 1967 in San Antonio, Texas, succeeding the Daniel E. Meyer Company. In 1990, SWTPC became Point Systems, before ceasing a few years later.
Modular programming is a software design technique that emphasizes separating the functionality of a program into independent, interchangeable modules, such that each contains everything necessary to execute only one aspect of the desired functionality.
Alpha Microsystems, Inc., often shortened to Alpha Micro, was an American computer company founded in 1977 in Costa Mesa, California, by John French, Dick Wilcox and Bob Hitchcock. During the dot-com boom, the company changed its name to AlphaServ, then NQL Inc., reflecting its pivot toward being a provider of Internet software. However, the company soon reverted to its original Alpha Microsystems name after the dot-com bubble burst.
The MCP-1600 is a multi-chip 16-bit microprocessor introduced by Western Digital in 1975 and produced through the early 1980s. Used in the Pascal MicroEngine, the WD16 processor in the Alpha Microsystems AM-100, and the DEC LSI-11 microcomputer, a cost-reduced and compact implementation of the DEC PDP-11.
A source-to-source translator, source-to-source compiler, transcompiler, or transpiler is a type of translator that takes the source code of a program written in a programming language as its input and produces an equivalent source code in the same or a different programming language. A source-to-source translator converts between programming languages that operate at approximately the same level of abstraction, while a traditional compiler translates from a higher level programming language to a lower level programming language. For example, a source-to-source translator may perform a translation of a program from Python to JavaScript, while a traditional compiler translates from a language like C to assembly or Java to bytecode. An automatic parallelizing compiler will frequently take in a high level language program as an input and then transform the code and annotate it with parallel code annotations or language constructs.
A BBC Micro expansion unit, for the BBC Micro is one of a number of peripherals in a box with the same profile and styling as the main computer.
Joel McCormack is an American computer scientist who designed the NCR Corporation version of the p-code machine, which is a kind of stack machine popular in the 1970s as the preferred way to implement new computing architectures and languages such as Pascal and BCPL. The NCR design shares no common architecture with the Pascal MicroEngine designed by Western Digital but both were meant to execute the UCSD p-System.[1,2]
Liverpool Software Gazette was a short-lived computer magazine published by Microdigital Ltd, a company who were based in Liverpool, England and run by Bruce Everiss.
The British Broadcasting Corporation Microcomputer System, or BBC Micro, is a series of microcomputer designed and built by Acorn Computers Limited in the 1980s for the Computer Literacy Project of the BBC. Designed with an emphasis on education, it was notable for its ruggedness, expandability, and the quality of its operating system. An accompanying 1982 television series, The Computer Programme, featuring Chris Serle learning to use the machine, was broadcast on BBC2.
A high-level language computer architecture (HLLCA) is a computer architecture designed to be targeted by a specific high-level programming language (HLL), rather than the architecture being dictated by hardware considerations. It is accordingly also termed language-directed computer design, coined in McKeeman (1967) and primarily used in the 1960s and 1970s. HLLCAs were popular in the 1960s and 1970s, but largely disappeared in the 1980s. This followed the dramatic failure of the Intel 432 (1981) and the emergence of optimizing compilers and reduced instruction set computer (RISC) architectures and RISC-like complex instruction set computer (CISC) architectures, and the later development of just-in-time compilation (JIT) for HLLs. A detailed survey and critique can be found in Ditzel & Patterson (1980).
The Byte Sieve is a computer-based implementation of the Sieve of Eratosthenes published by Byte as a programming language performance benchmark. It first appeared in the September 1981 edition of the magazine and was revisited on occasion. Although intended to compare the performance of different languages on the same computers, it quickly became a widely used machine benchmark.
The Gemini Challenger was a Motorola 68000 based computer, released in 1985 and designed by Gemini Microcomputers based in Chesham. This was Gemini's first non Z80 computer and their last.