# PERQ

The PERQ, also referred to as the Three Rivers PERQ or ICL PERQ, is a pioneering workstation computer produced in the late 1970s through the early 1980s. It is the first commercially-produced personal workstation with a graphical user interface (GUI). The design of the PERQ was heavily influenced by the original workstation computer, the Xerox Alto, which was never commercially produced. The workstation was conceived by six former Carnegie Mellon University alumni and employees: Brian S. Rosen, James R. Teter, William H. Broadley, J. Stanley Kriz, Raj Reddy and Paul G. Newbury, who formed the startup Three Rivers Computer Corporation (3RCC) in 1974.
The name "PERQ" was chosen both as an acronym of "Pascal Engine that Runs Quicker," and to evoke the word perquisite commonly called a perk, that is an additional employee benefit.
In June 1979, the company took its very first order from the UK's Rutherford Appleton Laboratory and the computer was officially launched in August 1979 at SIGGRAPH in Chicago. 3RCC later entered into a relationship with the British computer company International Computers Limited (ICL) in 1981 for European distribution, and later co-development and manufacturing, as a result of interest from the UK Science Research Council (later, the Science and Engineering Research Council).
The PERQ was used in a number of academic research projects in the UK during the 1980s. 3RCC was renamed PERQ System Corporation in 1984. It went out of business in 1986, largely due to competition from other workstation manufacturers such as Sun Microsystems, Apollo Computer and Silicon Graphics.
Brian Rosen, one of the founders of 3RCC, also worked at Xerox PARC on the Dolphin workstation.

## Hardware
### Processor

The PERQ CPU was a microcoded discrete logic design, rather than a microprocessor. It was based around 74S181 bit-slice ALUs and an Am2910 microcode sequencer. The PERQ CPU was unusual in having 20-bit wide registers and a writable control store (WCS), allowing the microcode to be redefined. The CPU had a microinstruction cycle period of 170 ns (5.88 MHz).

### PERQ 1

The original PERQ (also known as the PERQ 1), launched in 1980, was housed in a pedestal-type cabinet with a brown fascia and an 8-inch floppy disk drive mounted horizontally at the top.
The PERQ 1 CPU had a WCS comprising 4k words of 48-bit microcode memory. The later PERQ 1A CPU extended the WCS to 16k words. The PERQ 1 could be configured with 256 KB, 1 or 2 MB of 64-bit-wide RAM (accessed via a 16-bit bus), a 12 or 24 MB, 14-inch Shugart SA-4000-series hard disk, and an 8-inch floppy disk drive. The internal layout of the PERQ 1 was dominated by the vertically mounted hard disk drive. It was largely this that determined the height and depth of the chassis.
A basic PERQ 1 system comprised a CPU board, a memory board (incorporating the framebuffer and monitor interface) and an I/O board (IOB, also called CIO). The IOB included a Zilog Z80 microprocessor, an IEEE-488 interface, an RS-232 serial port, hard and floppy disk interfaces and speech synthesis hardware. PERQ 1s also had a spare Optional I/O (OIO) board slot for additional interfaces such as Ethernet.
A graphics tablet was standard. Most PERQ 1s were supplied with an 8½ ×11-inch, 768×1024 pixel, portrait orientation, white phosphor monochrome monitor.

### PERQ 2

The PERQ 2 (codenamed Kristmas during development) was announced in 1983. The PERQ 2 could be distinguished from the PERQ 1 by its wider, ICL-designed cabinet, with a lighter-coloured fascia, vertical floppy disk drive and three-digit diagnostic display.
The PERQ 2 used the same 16k WCS CPU as the PERQ 1A and had a 3-button mouse in place of the graphics tablet. It was configured with a quieter 8-inch 35 MB Micropolis Corporation 1201 hard disk, 1 or 2 MB of RAM and had the option of the PERQ 1's portrait monitor or a 19-inch, 1280×1024 landscape orientation monitor.
Due to manufacturing problems with the original 3RCC PERQ 2 (also known as the K1), ICL revised the hardware design, resulting in the PERQ 2 T1 (or ICL 8222).
The later PERQ 2 T2 (ICL 8223) and PERQ 2 T4 models replaced the 8-inch hard disk with a 5¼-inch hard disk, which also allowed for a second disk to be installed internally.
The T4 model (of which only around 10 are thought to have been produced) had an extended 24-bit CPU and backplane bus, allowing the use of a 4MB RAM board.
The PERQ 2 retained the PERQ 1's OIO slot, but replaced the IOB with either an EIO (Ethernet I/O) or NIO (Non-Ethernet I/O) boards. These were similar to the IOB, with the addition of a non-volatile real-time clock, a second RS-232 port, and (on the EIO board) an Ethernet interface.

### PERQ 3

The PERQ 3A (otherwise known as the ICL 3300 Advanced Graphics Workstation) was developed by ICL as a replacement for the PERQ 2. The PERQ 3A had an all-new hardware architecture based around a 12.5 MHz Motorola 68020 microprocessor, 68881 floating-point unit and 68450 Direct Memory Access Controller, plus two AMD 29116A 32-bit bit slice processors which acted as graphics co-processors. It also had up to 2 MB of RAM, a SCSI hard disk and was housed in a desktop "mini-tower"-style enclosure. The operating system was a port of UNIX System V Release 2 called PNX 300. Prototype units were produced in 1985, but the project was cancelled before full production commenced (the project had run late and ICL decided it was a solution provider - it would sell Sun workstations as part of the solution).
Another workstation design under development at the time of the company's demise, the PERQ 3B was a colour model (sometimes referred to as the PERQ 5) was taken over by Crosfield Electronics for its Crosfield Studio 9500 page layout workstation. The workstation was also known internally as Python, was developed in 1986 jointly by MegaScan and Conner Scelza Associates (both in Gibsonia, PA, U.S.A.) and the Crosfield team (in Hemel Hempstead, England). MegaScan, led by Brian Rosen, developed the workstation electronics and Conner Scelza Associates (led by Jerry Conner and Don Scelza) ported UNIX and wrote all the other supporting software. Crosfield (led by Andrew Chapman) were the overall project managers and had embedded engineers in MegaScan (Simon Butler and Mark Somervail) and Conner Scelza (Roger Willcocks).
The Crosfield requirement was for a very high performance graphics system (known as Viper, developed by their subsidiary benchMark Technologies) and a large (at the time) amount of disk storage. The Crosfield team in Hemel Hempstead developed an early RAID solution that supported up to 8 SCSI controllers operating in parallel with data streaming from 5¼-inch full-height drives and a fast fibre-optic network known as GALAN. Prototypes were running in late 1986 in both the US and UK and volume production from Crosfield's Peterborough factory started early 1987.

### Peripherals

Various optional OIO boards were produced for the PERQ 1 and 2: 3RCC OIO boards provided a 16-bit parallel PERQlink interface (intended for downloading microcode from another PERQ at boot time) plus Ethernet or a Canon CX laser printer controller. Thus, a PERQ 2 could be configured with two Ethernet ports (EIO plus OIO). A dot-matrix printer could also be connected to the RS-232 or IEEE-488 ports. Other third-party OIO boards were produced to interface to other devices, such as QIC-02 tape drives or video cameras.

## Software

The PERQ's original p-Code-like instruction set (called Q-Code) was optimized for Pascal (specifically, an extended PERQ Pascal). Q-Code instructions could be executed at a rate of up to 1 million instructions per second. This gave rise to the alternative definition of the PERQ name: Pascal Evaluation Real Quick. In fact it was generally more efficient to use Pascal than to attempt to create "assembly language" programs directly with Q-Code.

### Operating systems

A variety of operating systems were developed for the PERQ. These included:

#### POS (PERQ Operating System)

    The initial single-task operating system for PERQ workstations, developed by 3RCC. POS and its utilities were written in PERQ Pascal.

#### MPOS (Multitasking POS)

    A multitasking version of POS, not officially released by 3RCC.

#### Accent

    A multitasking research operating system developed at CMU, with a window manager called Sapphire. Accent was a predecessor of the Mach kernel which many later operating systems would use. A UNIX System V-compatible environment running under Accent in a Sapphire window, called QNIX, was developed by Spider Systems.

#### PNX (/ˈpiːnɪks/ PEE-nix)

    A port of Unix for the PERQ, based on Seventh Edition Unix and UNIX System III. This was developed by ICL at Bracknell, Dalkeith Palace and later Kidsgrove (Staffordshire) for the UK research community. PNX used its own microcode, more appropriate for the C programming language, called C-Code.

#### FLEX

    Developed by the Royal Signals and Radar Establishment, FLEX was implemented in microcode and similar to other early workstation systems such as Lisp machines, UCSD Pascal or Modula-2, except that the language of choice was ALGOL 68.

### Compilers

ICL and 3RCC contracted with the Edinburgh Regional Computing Center (ERCC) over 1981-1982 to supply an optimised Fortran77 compiler. This also resulted in an Imp compiler being created, as the F77 compiler from the ERCC was written in Imp. The ERCC compilers generated Q-Code. By 1987, maintenance of the PERQ compiler suite had been taken over by a commercial spin-off group of ex-ERCC employees, Edinburgh Portable Compilers Ltd (EPCL).

### Applications

The PERQ was a popular early graphical workstation; therefore, it helped spawn many early third-party applications that took advantage of the graphical user interface and bitmapped graphics. Intran (around 1982) produced a pioneering graphical program suite called MetaForm, which consisted of the separate Graphics Builder, Font Builder, Form Builder, and File Manager programs. The PERQ also served as a dedicated platform for several pioneering hypertext programs, such as ZOG, KMS, and Guide. DP ("Drawing Program"), a CAD system used for creating circuit diagrams on the PERQ, was written by Dario Giuse at CMU.