The PDP-8
Introduction
The PDP-8 was a 12-bit minicomputer that was produced by Digital Equipment Corporation (DEC). It was the first commercially successful minicomputer. Approximately 50,000 units were sold over the model's lifetime. Other estimates I've seen quote sales of as many as 300,000 units. The PDP-8/E was considered the most popular model sold. The first model was introduced on March 22, 1965 and was priced at $18,500. This computer was introduced at a time when competing larger systems from manufacturers such as IBM, CDC and Honeywell were leased to clients. The concept of actually owning a computer was novel, but these smaller computers, due to their low cost, allowed clients to purchase their own. These "minicomputers" heralded a client migration from timesharing and leasing of computers to owning their own computer. The PDP-8 family is often credited as having established the "minicomputer" market. Fundamentally, the minicomputer was the predecessor of the personal computer market, as these early systems could only be used by one person at a time.
This early machine was built with Diode Transistor Logic (DTL) circuits packaged on flip chip modules which DEC had produced in past. Due to it's low cost it was the best selling computer for its time. The base PDP-8 model was followed in 1966 by the PDP-8/S model which was available in as desktop or rack mount configurations. It was slower and smaller than the original PDP-8 but a basic sold for only $10,000. By using a 1 bit serial Arithmetic Logic Unit (ALU) costs were cut making this the most affordable computer of it's day.
Later systems (the PDP-8/I, /L, /E, /F, /M, and /A) returned to faster, fully parallel implementations but use much less costly transistor–transistor logic (TTL) MSI logic. The PDP-8/E is a common model, and well-regarded because of the many types of I/O devices available for it. The last commercial PDP-8 models were introduced in 1979 and were based on the Intersil 6100 CMOS microprocessor. Intersil sold the integrated circuits commercially through 1982 as the Intersil 6100 microprocessor. Some literature referred to the 6100 as a gate array implementation of the PDP-8 architecture. By virtue of the CMOS technology the PDP-8/A had low power requirements and were used in some embedded military systems. The chief engineer who designed the initial version of the PDP-8 was Edson de Castro, who left DEC to create Data General Corporation.
Gordon Bell mentioned that the basic ideas behind the PDP-5 and PDP-8 were not really original with him. He gives credit to Seymour Cray (of CDC and later Cray) for the idea of a single-accumulator 12 bit minicomputer. Cray's CDC 160 family was such a machine, and in addition to the hundreds of CDC 160 systems sold as stand-alone machines, a derivative 12 bit architecture was used for the I/O processors on Cray's first supercomputer; the CDC 6600. Cray's 12 bit machines had 6 basic addressing modes with variable length instruction words and other features that were far from the simple architecture of the PDP-8. Despite its many modes, the CDC 160 architecture lacked the notion of current page addressing, it had no unconditional jump instruction and the I/O instructions all blocked the CPU until the I/O completed. As a result, the PDP-8 was far more flexible and supported much tighter programming styles. Although some consider the CDC 160 as the first minicomputer, the PDP-8 was the definitive minicomputer that established the mini industry. (ref: Doug Jones)
The PDP-8 combined low cost, simplicity, expandability, and careful engineering for value. The greatest historical significance was that the PDP-8's low cost and high volume made a computer available to many new customers for many new uses. Its continuing significance is as a historical example of value-engineered computer design. The low complexity brought other costs. It made programming cumbersome. Much of one's code performed the required mechanics, as opposed to setting out the algorithm. For example, subtracting a number involves computing its two's complement then adding it; writing a conditional jump involves writing a conditional skip around the jump, the skip coding the condition negative to the one desired. Some ambitious programming projects failed to fit in memory or developed design defects that could not be solved.
As design advances reduced the costs of logic and memory, the programmer's time became relatively more important. Subsequent computer designs emphasized ease of programming, typically using larger and more intuitive instruction sets. Eventually, most machine code was generated by compilers and report generators. The reduced instruction set computer returned full-circle to the PDP-8's emphasis on a simple instruction set and achieving multiple actions in a single instruction cycle, in order to maximize execution speed.
Processor Design
The PDP-8 used ideas from several 12-bit predecessors, most notably the LINC designed by W.A. Clark and C.E. Molnar, who were inspired by Seymour Cray's CDC 160 minicomputer. The PDP-8 uses 12 bits for its word size and arithmetic (on unsigned integers from 0 to 4095 or signed integers from −2048 to +2047). However, software can do multiple-precision arithmetic. An interpreter was available for floating point operations, for example, that used a 36-bit floating point representation with a two-word (24-bit) significand and one-word exponent. Subject to speed and memory limitations, the PDP-8 can perform calculations similar to more expensive contemporary electronic computers, such as the IBM 1130 and various models of the IBM System/360, while being easier to interface with external devices.
The memory address space is 12 bits, so the PDP-8's basic configuration has a maximum main memory of 4,096 twelve-bit words. An optional memory-expansion unit can switch banks of memories using an IOT instruction. The memory is magnetic-core memory with a cycle time of 1.5 microseconds (0.667 MHz), so that a typical two-cycle (Fetch, Execute) memory-reference instruction runs at a speed of 0.333 MIPS. The 1974 Pocket Reference Card for the PDP-8/E gives a basic instruction time of 1.2 microseconds, or 2.6 microseconds for instructions that reference memory. Each core memory card requires two other cards to support it. For example, 1K words of memory requires 3 cards and 3 backplane slots to support it.
The PDP-8 was designed in part to handle contemporary telecommunications and text. Six-bit character codes were in widespread use at the time, and the PDP-8's twelve-bit words can efficiently store two such characters. In addition, a six-bit teleprinter code called the Teletypesetting or TTS code was in widely used by news wire services, and an early application for the PDP-8 was typesetting using. Later, 7-bit ASCII and 8-bit UTF-8 character codes were developed in part as a response to the limitations of five and six-bit character codes.
Figure 1 - PDP-8/E Architecture

PDP-8 instructions have a 3-bit opcode, so there are only eight instructions. The assembler provides more instruction mnemonics to a programmer by translating I/O and operate-mode instructions to combinations of the op-codes and instruction fields. It also has only three programmer-visible registers: A 12-bit accumulator (AC), a program counter (PC), and a carry flag called the "link register" (L).
For input and output, the PDP-8 has a single interrupt shared by all devices, an I/O bus accessed by I/O instructions and a direct memory access (DMA) channel. The programmed I/O bus typically runs low to medium-speed peripherals, such as printers, teletypes, paper tape punches and readers, while DMA is used for high speed I/O devices such as cathode ray tube screens with a light pen, analog-to-digital converters, digital-to-analog converters, tape drives, and disk drives.
Basic models use software to do multiplication and division. For faster math, the Extended Arithmetic Element (EAE) provides multiply and divide instructions with an additional register, the Multiplier/Quotient (MQ) register. The EAE was an option on the original PDP-8, the 8/I and the 8/E, but it is an integral part of the Intersil 6100 microprocessor. The PDP-8 is optimized for simplicity of design. Compared to more complex machines, unnecessary features were removed and logic is shared when possible. Instructions use auto-increment, auto-clear, and indirect access to increase the software's speed, reduce memory use, and substitute inexpensive memory for expensive registers.
A PDP-8 CPU has only four 12-bit registers: the accumulator, program counter, memory-buffer register and memory-address register. To save money, these served multiple purposes at different points in the operating cycle. For example, the memory buffer register provides arithmetic operands, is part of the instruction register and stores data to rewrite the core memory. (This restores the core data destroyed by the read.)
Because of their simplicity, early PDP-8 models were less expensive than most other commercially available computers. However, they used costly production methods often used for prototypes. They used thousands of very small, standardized logic-modules, with gold connectors, integrated by a costly, complex wire-wrapped backplane in a large cabinet.
In the later 8/S model, two different logic voltages increased the fan-out of the inexpensive DTL logic. The 8/S also reduced the number of logic gates by using a serial, single-bit-wide data path to do arithmetic. The CPU of the PDP-8/S has only about 519 logic gates. By comparison, current small micro controllers usually have 15,000 or more gates. The reduction in the electronics footprint permitted a much smaller case. The PDP-8/E is a larger, more capable computer, but further re-engineered for better value. It employs faster TTL logic in integrated circuits. The core memory was redesigned. It allows expansion with less expense because it uses the OMNIBUS in place of the wire-wrapped backplane on earlier models.
Prologue
The last years of the PDP-8 family were dominated by the PDP-8 compatible microprocessor based VT78 and DECmate workstations. The Intersil 6100, also known as the CMOS-8 chip, was developed in 1976; GE later acquired Intersil. DEC also used the followup Harris 6120 microprocessors (Introduced 1981) in many peripheral controllers for the PDP-11 and PDP-15 as well as in the DECmate series of systems. While all of the earlier PDP-8 systems were open architecture systems, the DECmates had closed architectures with an integrated console terminals and limited peripheral options. It is interesting to note that the Harris 6120 was a 10Mhz chip and some chips could be clocked at 15Mhz; furthermore, the 6120 was essentially based on gate array technology. (ref: Doug Jones)
Operating Systems
A punched paper-tape library of stand-alone programs was commonly used with the smallest (diskless and tapeless) configurations from the beginning up through the mid 1970's. This included a paper-tape based text editor, the PAL III and MACRO-8 assembler, and a FORTRAN compiler, as well as a library of support routines. The minimum configuration is a CPU with 4K memory and a teletype ASR 33 with paper tape reader and punch. Coincidentally this was the exact configuration of the first PDP-8/E system I had access to at Dawson College in Montreal. The DECtape Library System was a DECtape oriented save and restore system that was available from the start. The resident portion of this system occupies only 17 words of memory (7600-7625 octal), and it allowed saving and restoring absolute core images as named files on a reel of DECtape. Initially, program development was still done with paper tape, and only executable memory images were stored on DECtape, but eventually, a limited DECtape-based text editor was introduced, along with a DECtape based assembler.
The 4K Disk Monitor System provided slightly better facilities. This supported on-line program development and it worked with any device that supported 129 word blocks (DECtape, the DF32 disk, or the RF08 disk). It was quite slow, but it also used very little of the available memory. MS/8 or the RL Monitor System, was developed starting in 1966 by Richard F. Lary; it was submitted to DECUS in 1970. This was a disk oriented system, faster than the above, with tricks to make it run quickly on DECtape based systems.
POLY BASIC was a BASIC only system submitted to DECUS and later sold by DEC as part of its EduSystem marketing program.
PS/8 was developed starting in 1971 from an MS/8 foundation. It ran on minimal PDP-8 configurations, supported somewhat device independant I/O and required a random-access device for the file system (DECtape is random-access). PS/8 ran compatibly on most PDP-8 machines including DECmates, excepting only the PDP-8/S and PDP-5.
Richard F. Lary developed a system called the Fully Upward Compatible Keyboard Monitor; and between a Wednesday and the following Friday, a prototype was up and running from DECtape. The original intention of this project was to build a programming environment for the PDP-8 that looked like TOPS-10 on the PDP-10. As the acronym was distinctly impolite, when the product was released a year later, it became Programming System/8 (or PS/8). Comments in the source code called it the THE *BLEEP* MONITOR. The *bleep* monitor was renamed OS/8 in 1971 because Eli Glaser (a salesman from Long Island) said he could sell more systems with an operating system than with a programming system, and because, by renaming the system, DEC could increase the price despite Nixon's wage-price freeze.
OS/8, developed in parallel with PS/8, became the main PDP-8 programming environment sold by DEC. The minimum configuration required was 8K words and a random-access device to hold the system. For some devices, OS/8 requires 12K. There are a large number of OS/8 versions that are not quite portable across various subsets of the PDP-8 family. RX01 images of OS/8 Version 3Q are available, with DEC's free non-commercial use license. OS/8 V3D was renamed OS/78 (to match the VT78), and in follow-up to this distribution, support for Omnibus machines was no longer important. OS/78 V4 was developed for the DECmate I, and the name OS/278 used for the versions released with later DECmate machines. These have unnecessary incompatibilities with earlier versions of OS/8. OS8 (no slash) may still be viable. It requires 8K of main memory, an extended arithmetic unit, and DECtape hardware. Unlike most PDP-8 operating systems, it uses a directory structure on DECtape compatible with that used on the PDP-10.The timesharing system TSS-8 was developed by Don Witcraft and John Everett at DEC, starting in late 1967, and with the first beta sites up and running in the fall of 1968. This was based on a protection architecture proposed by Adrian Van Der Goor, a grad student of Gordon Bell's at Carnegie-Mellon. It required a minimum of 12K words of memory and a swapping device; on a 24K word machine, it could give good support for 17 users. It was the standard operating system on the EduSystem 50 which was sold to many small colleges and large public school systems. The first installation was at Lexington High School in Massachusetts, and the second was at Northern Arizona University. Each user gets a virtual 4K PDP-8. Many of the utilities users ran on these virtual machines were only slightly modified versions of utilities from the Disk Monitor System or paper-tape environments. Internally, TSS8 consists of RMON, the resident monitor, DMON, the disk monitor (file system), and KMON, the keyboard monitor (command shell). BASIC was well supported, while restricted (4K) versions of FORTRAN D and Algol were available.
Jim Dempsey, an alum of the OS/8 group at DEC, developed ETOS for Educomp (later Quodata) for the PDP-8/E. This was a true virtual machine operating system in the spirit of IBM's VM/370, and a special board was required to optionally trap JMP and JMS instructions; this was enabled after an emulated CIF instruction so that the actual change of instruction field could be emulated when the JMP or JMS was attempted. After leaving Quodata and founding Network-Systems Design in 1976, Dempsey went on to develop OMNI-8, first installed at Ripon College. Initially it was priced at $4900, several hundred copies were sold. The OMNI-8 operating system supported the enlarged PDP-8 address space of the CESI (Computer Extension Systems Inc.) memory cards, and when CESI began making PDP-8 clones, OMNI-8 was extended to support asymmetric multiprocessors (one CPU handled the I/O). The end of OMNI-8 development came around 1990. Dumps of the ETOS kernel and drivers survive in various places.
Other timesharing systems developed for the PDP-8 include MULTI-8 and MULTOS.
CAPS-8 was a cassette based operating system supporting PAL and BASIC. There are OS/8 utilities to manipulate CAPS-8 cassettes, and the file format on cassette is compatible with a PDP-11 based system called CAPS-11.
RTS/8 was a real-time system developed by DEC, developed from an earlier system, SRT8, dating back to at least 1974. Curiously, even the last versions of RTS/8 continued to support paper-tape and DECtape. RTS/8 also offered a virtual PDP-8 for background processing, unlike ETOS, this did not require special hardware, instead, software emulation was used to retain control of the machine between the CIF instruction and a following JMP or JMS. Source code for most of the versions of RTS and SRT is available.
WPS was DEC's word processing system, developed for the PDP-8/E with a VT50 terminal using special WPS key caps replacing the standard key caps. It was widely used on the 1980's vintage machines. It was heavily promoted on the VT-78, and when the DECmates came out, DEC began to suppress knowledge that DECmates could run anything else. WPS-11 was a curious distributed system using a PDP-11 as a file server for a cluster of VT-78 WPS systems. DECmate/WPS Version 2.3 is available from DECUS for the DECmate II and DECmate III under the catalog entry DM0114.
COS-310, DEC's commercial operating system for the PDP-8, supported the DIBOL language. COS-310 was a derivative of MS/8 and OS/8, but with a new text file format. The file system was almost the same as OS/8, but dates are recorded differently, and a few applications can even run under both COS and OS/8. COS was the last operating system other than WPS promoted by DEC for the DECmates.
SCPSYS, developed by D. C. Amoss prior to 1974 at Clemson University, is a system that copies most of the features of LAP (the LINC Assembly Program) for a pure PDP-8 based system. A DECtape of this system has recently come to light, with one known application, Spacewar.
AMOS, an operating system for the PDP-8/E with TD8E DECtape interface, was a very small system developed in Australia or New Zealand and supporting assembly and text editing on a 4K machine. (Ref: Doug Jones)
Programming Languages
The PAL family of assembly languages, particularly PAL III and PAL8 are as close to a standard assembly language as can be found for the PDP-8. These are included with all OS/8 distributions. They produce absolute object code and there are versions of PAL for minimally configured machines, although these have severe symbol table limitations.
MACRO-8 was DEC's first macro assembly language for the PDP-8, but it was rarely used outside the paper-tape environment. MACREL and SABR are assembly languages that produce relocatable output. SABR is the final pass for the ALICS II FORTRAN compiler (developed by ICS). It is included with the standard OS/8 software distributions. MACREL was heavily used by the DECmate group at DEC.
RALF, the relocatable assembler supporting RTPS FORTRAN is also included in OS/8 standard distributions. FLAP, an absolute assembler, was derived from RALF. Both SABR and RALF/FALP are assemblers that handle their intended applications but have quirky and incompatible syntax.
A subset of FORTRAN was supported on both the PDP-5 and the original PDP-8. Surviving documentation describes a DEC compiler written in 1964 by Larry Portner, nicknamed "Fivetran", and a compiler written by Information Control Systems from 1968. The latter, ALICS II FORTRAN, was originally a paper tape based compiler, but it forms the basis of the OS/8 8K FORTRAN compiler, and was also adapted to the Disk Monitor System (the latter version had overlay support that was never carried forward into more modern systems). RTPS FORTRAN required 8K and a floating point processor. It had real-time extensions and was a full implementation of FORTRAN IV (also known as ANSI FORTRAN 66). OS/8 F4 is RTPS FORTRAN stripped of the requirement for hardware floating point (if the hardware is missing, it uses software emulation).
FOCAL, an interpretive language comparable to BASIC, was available on all models of the family, including the PDP-5 and PDP-8/S. Versions of FOCAL run under OS/8, PS/8 and other systems, and there were many special purpose overlays for FOCAL developed by DEC and by various users. DEC's later FOCAL releases for the PDP-8 included code to deliberately introduce subtle bugs when run on a DCC 112 computer!
Many versions of BASIC were also available, from DEC and other sources. DEC BASIC was widely used on PDP-8 systems sold under the EduSystem marketing program. A paper-tape version was available that ran in 4K and was compatible with disk based systems, versions distributed with OS/8 and TSS-8. An 8K stand-alone time-sharing version was available, and there were others.
DIBOL was DEC's attempt at competing with COBOL in the commercial arena. It was originally implemented under MS/8 but most versions were sold to run under the COS operating system.
ALGOL was available from a fairly early date.
At least two Pascal compilers were developed for the PDP-8. One was a Pascal-S interpreter, written in assembler, the other was a Pascal-P compiler with a P-code interpreter written in assembler.
A LISP interpreters was written for the PDP-8. The original version ran in 4K. A disassembled and commented version of this was the basis of expanded versions that eventually could utilize up to 16K.
POLY SNOBOL was a version of SNOBOL that was somewhere between Griswold's definitions of SNOBOL 3 and SNOBOL 4.
TECO, the text editor, was included in the standard OS/8 distributions and is a general purpose language (the Emacs editor began as a set of TECO macros!). The story of TECO on the PDP-8 is convoluted. Russ Hamm implemented TECO under his OS8 (without a slash) system, and then gave a listing to Don Baccus at the Oregon Museum of Science and Industry (OMSI) who, along with Barry Smith ported it to PS/8. This was the beginning of what became Oregon Software, later famous for OMSI Pascal.
PDP-8 Contributors
- C. Gordon Bell is generally credited with the original design of the PDP-8 (as well as designing the PDP-4, 5 and 6). He was also involved with recommending what became the PDP-11 when that design was competing with the PDP-X (the design that led to Data General's Nova). As Vice President of Research, he oversaw the development of the DEC VAX family.
- Alan Kotok worked with Bell in working up the original specifications of the PDP-8.
- Edson DeCastro was a key man in the design of the PDP-5 through the PDP-8/L and the never-marketed 16-bit PDP-X. He left DEC to found Data General to build the 16 bit Nova, a machine that could be considered a reaction to the PDP-X.
- Ken Olsen ran DEC from the beginning. When DeCastro developed the Nova, Ken Olsen was so angry that he wanted to sue DeCastro for copying DEC processor designs. However, Gordon Bell convinced him not to because the Nova design was significantly different from the DEC processor designs.
- Ben Gurley designed the early DEC machines, starting with the PDP-1. The actual design work on the PDP-8, however, was done by Ed deCastro, who later founded Data General.
- Warren K. Smith was manager of application engineering for Flip-Chip modules between 1969 and 1975. Much of the M-series TTL module family dates from this period.
- Saul B. Dinman was product line manager for the module product line from 1966 to 1969. He designed the PDP-8/S and built the engineering prototype, largely in his spare time. Most of his time was devoted to the K-series of industrial automation modules. Later, he founded GRI Computer Corp, where he designed the GRI 909 16-bit minicomputer.
- Ed Yourdon helped hack up the PAL III assembler for the PDP-8 from PAL II. He later became well known as a programming methodology guru.
- Richard Merrill invented FOCAL and wrote the original (1968) and classic FOCAL-69 interpreters for the PDP-8. He also did early translations of the interpreter to PDP-7/PDP-9 code and perhaps the earliest PDP-11 version. In addition, he wrote the EDIT-8 paper-tape based text editor based on the FOCAL built-in text editor.
- Luis Villalobos Consulted for DEC from 1962 to 1966. Did design reviews on the logic and wrote diagnostics for many early DEC processors, starting with the PDP-1.
- Richard F. Lary developed the RL Monitor System, and then went on to develop OS/8, with help from Ed Friedman and another programmer named Paul, under the management of Chuck Conley.
- Charles Lasner developed PS/8, and he is widely known as a leader in the movement to preserve these historic machines. He created the alt.sys.pdp8 newsgroup on Usenet.
- George Thissell oversaw the development of OS/8 FORTRAN-IV, with Denny Pavlock as part of the team.
- Wesley Clark developed the 9-bit FX-1 and then the 12-bit LINC while working at Lincoln Labs. The latter was the first 12 bit minicomputer built with DEC parts, and served as an important inspiration for the PDP-5.
- Mary Allen Wilkes Clark developed the early LAP programs for the LINC.
- Don Witcraft wrote the TSS-8 scheduler, command decoder and UUO handler, after working on the first swapping monitor for the PDP-10.
- John Everett worked with Roger Pyle on the the PDP-8 Disk Monitor System, and adapted PAL-III to make PAL-D for DMS. This was the first disk-based version of PAL. After this, he wrote the disk handler, file system, TTY handler and 680-I service routine for TSS-8.
- Roger Pyle wrote the PDP-8 Disk Monitor System with John Everett.
- Bob Bowering author of MACRO (the assembler for the PDP-6 and PDP-10), wrote a cross assembler called PAL-X, which ran on the PDP-10 and produced PDP-8 binary code. Its first use was for the development of TSS-8, but it was a "spare time" unfunded project.
- Jimmy Dykes was the program manager for Harris in the contract development of the Harris 6120 microprocessor. He later moved to GE Semiconductor. Robert M. Smith was involved in the DEC side of this joint venture, after having designed a number of OMNIBUS interfaces during the 1970's.
- Max Dietrich was hired by DEC in 1968 to write the PDP-X FORTRAN compiler, after 2-years as a PDP-8 programmer at the University of Iowa. His career at DEC spanned the PDP-8 through PDP-15, before he left to join Tandem as a developer of their Non-Stop operating system.
- Douglas W. Jones was not involved in the PDP-8 computer development but he wrote the PDP-8 FAQ whose content makes up a good portion of this web page. Prior to the summer of 1992, he'd never used a PDP-8!
- Adapted from: https://en.wikipedia.org/wiki/PDP-8>
- Adapted from: Douglas W. Jones, University of Iowa