[Comp.Sci.Dept, Utrecht] Note from archiver<at>cs.uu.nl: This page is part of a big collection of Usenet postings, archived here for your convenience. For matters concerning the content of this page, please contact its author(s); use the source, if all else fails. For matters concerning the archive as a whole, please refer to the archive description or contact the archiver.

Subject: PDP-8 Frequently Asked Questions (posted every other month)

This article was archived around: 8 Jun 2001 08:08:08 GMT

All FAQs in Directory: dec-faq
All FAQs posted in: alt.sys.pdp8
Source: Usenet Version

Archive-name: dec-faq/pdp8 Last-modified: Apr 8, 2001
Frequently Asked Questions about the DEC PDP-8 computer. By Douglas Jones, jones@cs.uiowa.edu (with help from many folks) Reasonably current versions of this file is available by anonymous FTP from: ftp://rtfm.mit.edu/pub/usenet/alt.sys.pdp8 ftp://ftp.uu.net/usenet/news.answers/dec-faq ftp://src.doc.ic.ac.uk:/pub/usenet/news.answers/alt.sys.pdp8 Reasonably current automatic translations of this document to HTML format for the World Wide Web are available from: http://www.faqs.org/faqs/dec-faq/ http://www.cs.ruu.nl/wais/html/na-dir/dec-faq/.html An obsolete version of this file is available on the Walnut Creek USENET FAQ CDROM; another version will be published as part of the FAQbook by Pamela Greene et al. This posting conforms to RFC1153 USENET digest format (with exceptions due to the fact that it is not really a digest). Contents: What is a PDP? What is a PDP-8? What is the PDP-8 instruction set? What does PDP-8 assembly language look like? What character sets does the PDP-8 support? What different PDP-8 models were made? What about the LINC-8 and PDP-12? Where can I get a PDP-8 today? Where can I get PDP-8 documentation? What operating systems were written for the PDP-8? What programming languages were supported on the PDP-8? Where can I get PDP-8 software? Where can I get additional information? What use is a PDP-8 today? Who's Who? ---------------------------------------------------------------------- Subject: What is a PDP? In 1957, Ken Olson and Harlan Anderson founded Digital Equipment Corporation (DEC), capitalized at $100,000, and 70% owned by American Research and Development Corporation. Olson and Anderson had designed major parts of the AN/FSQ-7, the TX-0 and the TX-2 computers at Lincoln Labs. They wanted to call their company Digital Computer Corporation, but the venture capitalists insisted that they avoid the term Computer and hold off on building computers. With facilities in an old woolen mill in Maynard Massachusetts, DEC's first product was a line of transistorized digital "systems modules" based on the modules used in building TX-2 at Lincoln Labs; these were plug-in circuit boards with a few logic gates per board. Starting in 1960, DEC finally began to sell computers (the formal acceptance of the first PDP-1 by BBN is reported in Computers and Automation, April 1961, page 8B). Soon after this, there were enough users that DECUS, the Digital Equipment Computer User's Society was founded. DEC's first computer, the PDP-1, sold for only $120,000 at a time when other computers sold for over $1,000,000. (A good photo of a PDP-1 is printed in Computers and Automation, Dec. 1961, page 27). DEC quoted prices as low as $85,000 for minimal models. The venture capitalist's insistance on avoiding the term computer was based on the stereotype that computers were big and expensive, needing a computer center and a large staff; by using the term Programmable Data Processor, or PDP, DEC avoided this stereotype. For over a decade, all digital computers sold by DEC were called PDPs. (In early DEC documentation, the plural form "PDPs" is used as a generic term for all DEC computers.) In the early 1960's, DEC was the only manufacturer of large computers without a leasing plan. IBM, Burroughs, CDC and other computer manufacturers leased most of their machines, and many machines were never offered for outright sale. DEC's cash sales approach led to the growth of third party computer leasing companies such as DELOS, a spinoff of BB&N. DEC built a number of different computers under the PDP label, with a huge range of price and performance. The largest of these are fully worthy of large computer centers with big support staffs. Some early DEC computers were not really built by DEC. With the PDP-3 and LINC, for example, customers built the machines using DEC parts and facilities. Here is the list of PDP computers: MODEL DATE PRICE BITS NUMBER COMMENTS ===== ==== ======== ==== ====== ======== PDP-1 1960 $120,000 18 50 DEC's first computer PDP-2 NA 24 - Never built? Prototype only? PDP-3 NA 36 One built by a customer*, not by DEC. PDP-4 1962 $60,000 18 45 Predecessor of the PDP-7. PDP-5 1963 $27,000 12 1,000 The ancestor of the PDP-8. PDP-6 1964 $300,000 36 23 A big computer; 23 built, most for MIT. PDP-7 1965 $72,000 18 120 Widely used for real-time control. PDP-8 1965 $18,500 12 ~50,000 The smallest and least expensive PDP. PDP-9 1966 $35,000 18 445 An upgrade of the PDP-7. PDP-10 1967 $110,000 36 **~700 A PDP-6 followup, great for timesharing. PDP-11 1970 $10,800 16 >600,000 DEC's first and only 16 bit computer. PDP-12 1969 $27,900 12 725 A PDP-8 relative. PDP-13 NA - Bad luck, there was no such machine. PDP-14 *** A ROM-based programmable controller. PDP-15 1970 $16,500 18 790 A TTL upgrade of the PDP-9. PDP-16 1972 NA 8/16 ? A register-transfer module system. * Scientific Engineering Institute of Waltham MA. SEI was aledgedly founded in 1956 by the CIA to study the effects of microwaves (radar) on the human brain. If so, the PDP-3 may have been used as an instrumentation computer. More info on the CIA connection and the use of the PDP-3 would be nice! ** Includes DECsystem 20. Corrections and additions to this list are welcome! The prices given are for minimal systems in the year the machine was first introduced. Most of the production run numbers come from "Computer Engineering" by Bell, Mudge and McNamara, 1978, or from Computers and Automation's computer census figures published regularly throughout the 1960's. The bits column in the table indicates the word size. Note that the DEC PDP-10 became the DECSYSTEM-20 as a result of marketing considerations, and DEC's VAX series of machines began as the Virtual Address eXtension of the never-produced PDP-11/78. It is worth mentioning that it is widely (but somewhat incorrectly) accepted that the Data General Nova (see photo, Computers and Automation, Nov. 1968, page 48) grew out of the PDP-X, a 16-bit multi-register version of the PDP-8 designed by Edson DeCastro, Henry Burkhardt and Dick Soggee. (DeCastro was one of DEC's key design engineers; his name appears on many of the blueprints for machines from the PDP-5 up through the PDP-8/L). A prototype PDP-X was built at DEC; this and a competing 16-bit design were apparently submitted to Harold McFarland at Carnegie-Mellon University for evaluation; McFarland (and perhaps Gordon Bell, who was at C-MU at the time) evaluated the competing designs and rejected both in favor of what we now know as the PDP-11. (I was at Carnegie-Mellon at the time, and McFarland gave a guest lecture in a class I attended telling part of this story.) Some speculate, incorrectly, that Bell rejected the Nova design because the competing proposal used the register-transfer notation he had introduced in "Bell and Newell, Computer Structures -- Readings and Examples". An alternate and equally unfounded story is that the reason DEC never produced a PDP-13 was because the number 13 had been assigned to what became the Nova. In any case, when DeCastro, Burkhardt and Soggee founded Data General, Ken Olson at DEC was very angry, claiming for a long time that the Nova design was stolen. Gordon Bell and others concluded that the Nova design was sufficiently original that a lawsuit was unwarranted, but the feud between DeCastro and Olson lasted until after Ken Olson left DEC. It is more correct to say that the Nova is a reaction to the PDP-X than to say that it is based on the PDP-X. I am indebted to Jim Campbell, retired VP at Data General, for some of the details of this story. Today, all of the PDP machines are in DEC's corporate past, except the PDP-11 family, which survives as a line of microcomputers; DEC has promised to discontinue PDP-11 sales on Sept. 30, 1996. Occasionally, some lab has built a machine out of DEC hardware and called it a PDP with a new number. For example, the Australian Atomic Energy Commission once upgraded a PDP-7 by adding a PDP-15 on the side; they called the result a PDP-22. There is also a story about the PDP-2 1/2, built by Ed Rawson of the American Science Institute out of surplus modules that were originally used in the prototype PDP-2. In 1998, Compaq purchased DEC, and it is unclear how long DEC will retain any semblance of its original identity as a division of a larger company. ------------------------------ Subject: What is a PDP-8? The PDP-8 family of minicomputers were built by Digital Equipment Corporation between 1965 and 1990, although it is worth noting that the term minicomputer first came into prominence after the machine was introduced. The first use of the term appears to have been made by the head of DEC's operations in England, John Leng. He sent back a sales report that started: "Here is the latest minicomputer activity in the land of miniskirts as I drive around in my [Austin] Mini Minor." The term quickly became part of DEC's internal jargon and spread from there; the first computer explicitly sold as a minicomputer, though, was made by by Interdata (See the Interdata ad in Computers and Automation, May 1968, page 10). The PDP-8 was largely upward compatible with the PDP-5, a machine that was unveiled on August 11, 1963 at WESCON, and the inspiration for that machine came from two earlier machines, the LINC and the CDC 160. All of these machines were characterized by a 12 bit word with little or no hardware byte structure, typically 4K words of memory, and simple but powerful instruction sets. Although some people consider the CDC 160 the first minicomputer, the PDP-8 was the definitive minicomputer. By late 1973, the PDP-8 family was the best selling computer in the world, and it is likely that it was only displaced from this honor by the Apple II (which was displaced by the IBM PC). Most models of the PDP-8 set new records as the least expensive computer on the market at the time of their introduction. The PDP-8 has been described as the model-T of the computer industry because it was the first computer to be mass produced at a cost that just about anyone could afford. C. Gordon Bell has said that the basic idea of the PDP-8 was 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 (see CACM, march 1961, photo on page 244, text on page 246) 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 great supercomputer, the CDC 6600. Note that Cray's 12 bit machines had 6 basic addressing modes with variable length instruction words and other features that were far from the simple elegance 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 I/O complete. As a result, the PDP-8 is both far more flexible and it supports much tighter programming styles. ------------------------------ Subject: What is the PDP-8 instruction set? The PDP-8 word size is 12 bits, and the basic memory is 4K words. The minimal CPU contained the following registers: PC - the program counter, 12 bits. AC - the accumulator, 12 bits. L - the link, 1 bit, commonly prefixed to AC as <L,AC>. It is worth noting that many operations such as procedure linkage and indexing, which are usually thought of as involving registers, are done with memory on the PDP-8 family. Instruction words are organized as follows: _ _ _ _ _ _ _ _ _ _ _ _ |_|_|_|_|_|_|_|_|_|_|_|_| | | | | | | op |i|z| addr | op - the opcode. i - the indirect bit (0 = direct, 1 = indirect). z - the page bit (0 = page zero, 1 = current page). addr - the word in page. The top 5 bits of the 12 bit program counter give the current page, and memory addressing is also complicated by the fact that absolute memory locations 8 through 15 are incremented prior to use when used as indirect addresses. These locations are called auto-index registers (despite the fact that they are in memory); they allow the formulation of very tightly coded array operations. The basic instructions are: 000 - AND - and operand with AC. 001 - TAD - add operand to <L,AC> (a 13 bit value). 010 - ISZ - increment operand and skip if result is zero. 011 - DCA - deposit AC in memory and clear AC. 100 - JMS - jump to subroutine. 101 - JMP - jump. 110 - IOT - input/output transfer. 111 - OPR - microcoded operations. The ISZ and other skip instructions conditionally skip the next instruction in sequence. The ISZ is commonly used to increment a loop counter and skip if done, and it is also used as an general increment instruction, either followed by a no-op or in contexts where it is known that the result will never be zero. The JMS instruction stores the return address in relative word zero of the subroutine, with execution starting with relative word one. Subroutine return is done with an indirect JMP through the return address. Subroutines commonly increment their return addresses to index through inline parameter lists or to perform conditional skips over instructions following the call. The IOT instruction has the following form: _ _ _ _ _ _ _ _ _ _ _ _ |1|1|0|_|_|_|_|_|_|_|_|_| | | | | | | device | op | The IOT instruction specifies one of up to 8 operations on one of 64 devices. Typically (but not universally), each bit of the op field evokes an operation, and these can be microcoded in right to left order. Prior to the PDP-8/E, there were severe restrictions on the interpretation of the op field that resulted from the fact that the operation was delivered as a sequence of IOP pulses, each on a separate line of the I/O bus. Each line was typically used to evoke a different device function, so essentially, the operation 000 was always a no-op because it evoked no functions, and the code 111 evoked all three functions in series. As an example of the use of IOT instructions, consider the console terminal interface. On early PDP-8 systems, this was always assumed to be an ASR 33 teletype, complete with low-speed paper tape reader and punch. It was addressed as devices 03 (the keyboard/reader) and 04 (the teleprinter/punch): _ _ _ _ _ _ _ _ _ _ _ _ |1|1|0|_|_|_|_|_|_|_|_|_| |0 0 0 0 1 1|0 0 1 - KSF - keyboard skip if flag |0 0 0 0 1 1|0 1 0 - KCC - keyboard clear flag |0 0 0 0 1 1|1 0 0 - KRS - keyboard read static The keyboard flag is set by the arrival of a character. The KCC instruction clears both the flag and the accumulator. KRS ors the 8 bit input data with the low order 8 bits of AC. The commonly used KRB instruction is the or of KCC and KRS. To await one byte of input, use KSF to poll the flag, then read the byte with KRB. _ _ _ _ _ _ _ _ _ _ _ _ |1|1|0|_|_|_|_|_|_|_|_|_| |0 0 0 1 0 0|0 0 1 - TSF - teleprinter skip if flag |0 0 0 1 0 0|0 1 0 - TCF - teleprinter clear flag |0 0 0 1 0 0|1 0 0 - TPC - teleprinter print static The teleprinter flag is set by the completion of the TPC operation (as a result, on startup, many applications output a null in order to get things going). TCF clears the flag, and TPC outputs the low order 8 bits of the accumulator. The commonly used TLS instruction is the or of TCF and TPC. To output a character, first use TSF to poll the flag, then write the character with TLS. IOT instructions may be used to initiate data break transfers from block devices such as disk or tape. The term "data break" was, for years, DEC's preferred term for cycle-stealing direct-memory-access data transfers. Some CPU functions are accessed only by IOT instructions. For example, interrupt enable and disable are IOT instructions: _ _ _ _ _ _ _ _ _ _ _ _ |1|1|0|_|_|_|_|_|_|_|_|_| |0 0 0 0 0 0|0 0 1 - ION - interrupts turn on |0 0 0 0 0 0|0 1 0 - IOF - interrupts turn off An interrupt is requested when any device raised its flag. The console master clear switch resets all flags and disables interrupts. In effect, an interrupt is a JMS instruction to location zero, with the side effect of disabling interrupts. The interrupt service routine is expected to test the device flags and perform the operations needed to reset them, and then return using ION immediately before the indirect return JMP. The effect of ION is delayed so that interrupts are not enabled until after the JMP. The instructions controlling the optional memory management unit are also IOT instructions. This unit allows the program to address up to 32K of main memory by adding a 3 bit extension to the memory address. Two extensions are available, one for instruction fetch and direct addressing, the other for indirect addressing. A wide variety of operations are available through the OPR microcoded instructions: _ _ _ _ _ _ _ _ _ _ _ _ Group 1 |1|1|1|0|_|_|_|_|_|_|_|_| 1 - CLA - clear AC 1 - CLL - clear the L bit 1 - CMA - ones complement AC 1 - CML - complement L bit 1 - IAC - increment <L,AC> 1 0 0 - RAR - rotate <L,AC> right 0 1 0 - RAL - rotate <L,AC> left 1 0 1 - RTR - rotate <L,AC> right twice 0 1 1 - RTL - rotate <L,AC> left twice In general, the above operations can be combined by oring the bit patterns for the desired operations into a single instruction. If none of the bits are set, the result is the NOP instruction. When these operations are combined, they operate top to bottom in the order shown above. The exception to this is that IAC cannot be combined with the rotate operations on some models, and attempts to combine rotate operations have different effects from one model to another (for example, on the PDP-8/E, the rotate code 001 means swap 6 bit bytes in the accumulator, while previous models took this to mean something like "shift neither left nor right 2 bits"). _ _ _ _ _ _ _ _ _ _ _ _ Group 2 |1|1|1|1|_|_|_|_|_|_|_|0| 1 0 - SMA - skip on AC < 0 \ 1 0 - SZA - skip on AC = 0 > or group 1 0 - SNL - skip on L /= 0 / 0 0 0 1 - SKP - skip unconditionally 1 1 - SPA - skip on AC >= 0 \ 1 1 - SNA - skip on AC /= 0 > and group 1 1 - SZL - skip on L = 0 / 1 - CLA - clear AC 1 - OSR - or switches with AC 1 - HLT - halt The above operations may be combined by oring them together, except that there are two distinct incompatible groups of skip instructions. When combined, SMA, SZA and SNL, skip if one or the other of the indicated conditions are true (logical or), while SPA, SNA and SZL skip if all of the indicated conditions are true (logical and). When combined, these operate top to bottom in the order shown; thus, the accumulator may be tested and then cleared. Setting the halt bit in a skip instruction is a crude but useful way to set a breakpoint for front-panel debugging. If none of the bits are set, the result is an alternative form of no-op. A third group of operate microinstructions (with a 1 in the least significant bit) deals with the optional extended arithmetic element to allow such things as hardware multiply and divide, 24 bit shift operations, and normalize. These operations involve an additional data register, MQ or multiplier quotient, and a small step count register. On the PDP-8/E and successors, MQ and the instructions for loading and storing it were always present, even when the EAE was absent, and the EAE was extended to provide a useful variety of 24 bit arithmetic operations. ------------------------------ Subject: What does PDP-8 assembly language look like? There are many different assemblers for the PDP-8, but most use a compatible basic syntax; here is an example: START, CLA CLL / Clear everything TAD X / Load X AND I Y / And with the value pointed to by Y DCA X / Store in X HLT / Halt X, 1 / A variable Y, 7 / A pointer Note that labels are terminated by a comma, and comments are separated from the code by a slash. There are no fixed fields or column restrictions. The "CLA CLL" instruction on the first line is an example of the microcoding of two of the Group 1 operate instructions. CLA alone has the code 7200 (octal), while CLL has the code 7100; combining these as "CLA CLL" produces 7300. As a general rule, except when memory reference instructions are involved, the assembler simply ors together the values of all blank separated fields between the label and comment. Indirection is indicated by the special symbol I in the operand field, as in the third line of the example. The typical PDP-8 assembler has no explicit notation to distinguish between page zero and current page addresses. Instead, the assembler is expected to note the page holding the operand and automatically generate the appropriate mode. If the operand is neither in the current page nor page zero, some assemblers will raise an error, others will automatically generate an indirect pointer to the off-page operand; this should be avoided because it only works for directly addressed off-page operands, and only when the memory management unit is not being used to address a data field other than the current instruction field. Note, in the final two lines of the example, that there is no "define constant" pseudo-operation. Instead, where a constant is to be assembled into memory, the constant takes the place of the op-code field. The PDP-8 has no immediate addressing mode, but most assemblers provide a notation to allow the programmer to ignore this lack: TAD (3) / add 3, from memory on the current page. TAD [5] / add 5, from memory on page zero. JMP I (LAB) / jump indirect through the address of LAB. Assemblers that support this automatically fill the end of each page with constants defined in this way that have been accumulated during the assembly of that page. Note that the variants "(3" and "[5" (with no closing parentheses) are usually allowed but the use of this sloppy form is discouraged. Furthermore, the widely used PAL8 assembler interprets the unlikely operand "(3)+1" as being the same as "(3+1)". Arithmetic is allowed in operand fields and constant definitions, with expressions evaluated in strict left-to-right order, as: TAD X+1 / add the contents of the location after X. TAD (X-1) / add the address of the location before X. Other operators allowed include and (&), or (!), multiply (^) and divide (%), as well as a unary sign (+ or -). Unfortunately, one of the most widely used assemblers, PAL8, has trouble when unary operators are mixed with multiplication or division. Generally, only the first 6 characters of identifiers are significant and numeric constants are evaluated in octal. Other assembly language features are illustrated below: / Comments may stand on lines by themselves / Blank lines are allowed *200 / Set the assembly origin to 200 (octal) NL0002= CLA CLL CML RTL / Define new opcode NL0002. NL0002 / Use new opcode (load 0002 in AC) JMP .-1 / Jump to the previous instruction X1= 10 / Define X1 (an auto-index register address) LETA= "A / Define LETA as 000011000001 (ASCII A) TAD I X1 / Use autoindex register 1 IAC; RAL / Multiple instructions on one line $ / End of assembly The assembly file ends with a line containing a $ (dollar sign) not in a comment field. The $, * and = syntax used by most PDP-8 assemblers replaces functions performed by pseudo-operations on many other assemblers. In addition, PAL8, the most widely used PDP-8 assembler supports the following pseudo-operations: DECIMAL / Interpret numeric constants in base 10 OCTAL / Interpret numeric constants in base 8 EJECT / Force a page eject in the listing XLIST / Toggle listing XLIST N / Turn on listing if N=0, off if N=1 PAGE / Advance location counter to next page PAGE N / Set location counter start of page N FIELD N / Assemble into extended memory field N TEXT "STR" / Pack STR into consecutive 6 bit bytes ZBLOCK N / Allocate N words, initialized to zero IFDEF S <C> / Assemble C if symbol S is defined IFNDEF S <C> / Assemble C if symbol S is not defined IFZERO E <C> / Assemble C if expression E is zero IFNZRO E <C> / Assemble C if expression E is not zero FIXMRI OP= VAL / Define OP as memory reference instruction Conditonally assembled code must be enclosed in angle brackets. The enclosed code may extend over multiple lines and, because different assemblers treat comments within conditionals differently, the closing bracket should not be in a comment and any brackets in comments should be balanced. ------------------------------ Subject: What character sets does the PDP-8 support? From the beginning, PDP-8 software has generally assumed that textual I/O would be in 7 bit ASCII. Most early PDP-8 systems used teletypes as console terminals; as sold by DEC, these were configured for mark parity, so most older software assumes 7 bit ASCII, upper case only, with the 8th bit set to 1. On output, lines are generally terminated with both CR and LF; on input, CR is typically (but not always) the line terminator and LF is typically ignored. In addition, the tab character (HT) is generally allowed, but software support output of text containing tabs varies. One difficulty with much PDP-8 software is that it bypasses the device handlers provided by the operating system and goes directly to the device. This results in very irregular device support, so that, for example, control-S and control-Q work to start and stop output under OS/8, but the OS/8 PAL assembler ignores them when reporting errors. Most of the better engineered PDP-8 software tends to fold upper and lower case on input, and it ignores the setting of the 8th bit. Older PDP-8 software will generally fail when presented with lower case textual input (this includes essentially all OS/8 products prior to OS/278 V1). Internally, PDP-8 programmers are free to use other character sets, but the "X notation provided by the assembler encourages use of 7 bit ASCII with the 8th bit set to 1, and the TEXT pseudo-operation encourages the 6 bit character set called "stripped ASCII". To map from upper-case-only ASCII to stripped ASCII, each 8 bit character is anded with octal 77 and then packed 2 characters per word, left to right. Many programs use a semi-standard scheme for packing mixed upper and lower case into 6 bit TEXT form; this uses ^ to flip from upper to lower case or lower to upper case, % to encode CR-LF pairs, and @ (octal 00) to mark end of string. Note that this scheme makes no provision for encoding the %, ^ and @ characters, nor does it allow control characters other than the CR-LF pair. The P?S/8 operating system supports a similar 6 bit text file format, where upper and lower case are folded together, tabs are stored as _ (underline), end-of-line is represented by 00, padded with any nonzero filler to a word boundary, and end of file is 0000. Files under the widely used OS/8 system consist of sequences of 256 word blocks. When used for text, each block holds 384 bytes, packed 3 bytes per pair of words as follows: aaaaaaaa ccccaaaaaaaa bbbbbbbb CCCCbbbbbbbb ccccCCCC Control Z is used as an end of file marker. Because most of the PDP-8 system software was originally developed for paper tape, binary object code is typically stored in paper-tape image form using the above packing scheme. ------------------------------ Subject: What different PDP-8 models were made? The total sales figure for the PDP-8 family is estimated at over 300,000 machines. Over 7000 of these were sold prior to 1970, and 30,000 were sold by 1976. During the PDP-8 production run, a number of models were made, as listed in the following table. Of these, the PDP-8/E is generally considered to be the definitive machine. If the PDP-8 is considered to be the Model T of the computer industry, perhaps the PDP-8/E should be considered to be the industry's Model A. MODEL DATES SALES COST TECHNOLOGY REMARKS PDP-5 63-67 116 Transistor PDP-8 65-69 1450 $18,500 Transistor LINC-8 66-69 142 $38,500 Transistor PDP-8/S 66-70 1024 $10,000 Transistor Very slow PDP-8/I 68-71 3698 $12,800 TTL PDP-8/L 68-71 3902 $8,500 TTL Scaled down 8/I PDP-12 69-73? 3500? $27,900 TTL Followup to LINC-8 PDP-8/E 70-78 >10K? $6,500 TTL MSI Omnibus PDP-8/F 72-78? >10K? <$5K TTL MSI Omnibus Based on 8/E CPU PDP-8/M 72-78? >10K? <$5K TTL MSI Omnibus OEM version of 8/F PDP-8/A 75-84? >10K? $1,317 TTL LSI Omnibus New CPU or 8/E CPU VT78 78-80 $7,995 Intersil 6100 Workstation DECmate I 80-84 Harris 6120 Workstation DECmate II 82-86 $1,435 Harris 6120 Workstation DECmate III 84-90 $2,695 Harris 6120 Workstation DECmate III+85-90 Harris 6120 Workstation Additional information is available in part two of this FAQ, where all known models of the PDP-8, along with variants, alternate marketing names, and other peculiarities are given. 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. The following PDP-8 compatible or semi-compatible machines were made and sold by others; very little is known about many of these: MODEL DATE MAKER, NOTES TPA1001 69 Hungarian, KFKI product, transistorized. TPA1001/i 71 Hungarian, KFKI, IC version of 1001. TPA/i 71 Hungarian, KFKI, renamed TPA1001/i TPA/l 7? Hungarian, KFKI, enhanced TPA/i. TPAl/128H 7? Hungarian, KFKI, TPA/l with 128K memory. TPA/s 7? Hungarian, KFKI, based on Intersil CPU chip. TPA Quadro 8? Hungarian, KFKI, comparable to a DECmate. Electronica-100 ? Russian, discrete transistor technology. Electronica-100I ? Russian, probably a PDP-8/I clone. Electrotechnica-100I ? Yugoslavian, PDP-8/I? Possibly same as above. Saratov-2 ? Russian, built like a PDP-8/M but bulkier. SPEAR u-LINC 100 ? SPEAR, Inc, Waltham Mass (a LINC clone!) SPEAR u-LINC 300 ? SPEAR, Inc, Waltham Mass (a LINC clone!) DCC-112 70 Digital Computer Controls, PDP-8/L clone. DCC-112H 71 Digital Computer Controls MPS-1 74 Fabritek, PDP-8/L clone MP-12 74 (is this just different numbering of above?) 6100 Sampler 76? Intersil, their IM6100 promotional kit Intercept I 7? Intersil, based on IM6100 Intercept Jr 7? Intersil, based on IM6100 TLF MINI-12 77 Based on IM6100, in an elegant package. PCM-12 7? Pacific CyberMetrix, based on Intercept bus PCM-12A 77 Pacific CyberMetrix, fixed to clock at 4MHz SBC-8 84-88 CESI, Based on IM6120? SCSI bus More information on the Hungarian TPA series, built by KFKI (the Central Research Institute for Physics), was provided by Varga Akos Endre, hamster@telnet.hu; information on and photos of these machines are currently available from: http://www.internetto.hu/muzeum/e_tpa.html http://www.internetto.hu/muzeum/e_tpai.html The original machine in this series, the TPA1001, was built from the description in DEC's Small Computer Handbook. Only after the series was in production, when a machine was exhibited in Ljubljana, Yugoslavia, was full DEC compatability demonstrated, when a DEC user booted the TPA machine from a DEC paper tape. By the end of the TPA production run, around 900 PDP-8 compatable machines had been built. Given the Soviet era central planning for the computer industries in eastern europe, it is quite possible that the Electrotechnica and Electronica models listed above may have been TPA machines packaged for use in the USSR and other Soviet Block countries. It is amusing to note that the name TPA is very similar in origin to the name PDP used by DEC! There was a decree that computer development in Hungary was to cease, with all computers to be purchased from the USSR. In response, the people at KFKI ceased developing computers and began developing "Stored Program Analyzers" or, the acronym for which is TPA in Hungarian. The CESI (Computer Extension Systems, Inc.) machine had 128K words of local RAM on each processor card and allowed up to 4 processor cards per OMNIBUS, along with 128K words of global shared memory. 3 AMD 2901 bit-slice processor chips were used to build the 12-bit ALU and data paths, controlled by an 80-bit microword. ------------------------------ Subject: What about the LINC/8 and PDP-12? Wesley Clark and Charles Molnar, then at Lincoln Labs, built the LINC, or Laboratory INstrumentation Computer, as a personal laboratory computer, finishing the first in March 1962. The machine was developed in response to the needs of Mary Brazier, a neurophysiologist at MIT who needed better laboratory tools, and it was a followup to the Average Response Computer, an 18 bit special purpose machine built in 1958 for the same purpose. When Lincoln Labs decided that the LINC did not fit their mission, in January 1963, the project moved to MIT, and then in 1964, to Washington University in St Louis. The National Institute of Health funded the project as an experiment to see if coumputers would be a productive tool in the life sciences. By the end of 1963, 20 LINCs had been built and debugged, many by their eventual users. Over 24 LINC systems were built by customers before late 1964 when DEC began selling a commercial version (see Computers and Automation, Nov. 1964, page 43). By the time DEC introduced the LINC-8, 43 LINC systems had been installed (see Computers and Automation, Mar. 1966, page 34). In total, 50 LINC systems were built, 21 by DEC, 29 by customers (see Digital at Work, page 52). A photo of the last LINC in production use is available from http://www.mit.edu:8001/people/ijs/epl/LINC.html Wesley Clark wrote a history of the LINC, "The LINC was Early and Small", published in "A History of Personal Workstations," ACM Press, 1988, page 347. The LINC was the first 12 bit minicomputer built using DEC hardware. Like the PDP-5 and other early DEC computers, it was built with System Modules, DEC's first family of logic modules. Along with the CDC 160, it paved the way for the PDP-5 and PDP-8. When compared with the PDP-8, the LINC instruction set was not as well suited for general purpose computation, but the common peripherals needed for lab work such as analog-to-digital and digital-to-analog converters were all bundled into the LINC system. Users judged it to be a superb laboratory instrument. One of the major innovations introduced with the LINC was the LINCtape, designed by Tom Stockebrand scaled down from an experimental tape drive developed for the TX-2 at Lincoln Labs. LINCtapes could be carelessly pocketed or dropped on the floor without fear of data loss, and they allowed random access to data blocks. Stockebrand improved on this idea slightly after he came to DEC, where the improved idea was called DECtape; DECtape was widely used with all DEC computers made in the late 1960's and early 1970's. The motives behind the development of LINCtape were the same motives that led IBM to develop the floppy disk almost a decade later, and in fact, DECtape survived as a widely used medium until DEC introduced the RX01 8 inch floppy disk drive around 1975, and even after this, DECtape was only slowly phased out. Within a year of the introduction of the PDP-8, DEC released the LINC-8, a machine that combined a PDP-8 with a LINC in one package. The success of the LINC-8 led DEC to re-engineer the machine using TTL logic in the late 1960's; the new version was originally to be called the LINC-8/I, but it was sold as the PDP-12. Both the LINC-8 and the PDP-12 had impressive consoles, with separate sets of lights and switches for the LINC and PDP-8 halves. The success of the LINC-8 also led to the development of a clone, the SPEAR micro-LINC. This machine used Motorola MECL integrated circuits and was available for delivery in (June 1965? this date must be wrong!). The LINC-8 and PDP-12 could run essentially any PDP-8 or LINC program, with the exception of the few programs that relied on the primitive interrupt structure of the original LINC architecture; on the LINC-8, all interrupts were handled by the PDP-8 side of the hardware. Because the LINC-8 and PDP-12 had instructions for switching between modes, a new body of software was developed that required both modes. One feature of LINC and LINC-8 software is the common use of the graphic display for input-output. These machines were some of the first to include such a display as a standard component, and many programs used the knobs on the analog to digital converter to move a cursor on the display in the way we now use a mouse. Various versions of LAP, the Linc Assembly Program, were the dominant assemblers used on the LINC; the original version of LAP was a cross assembler written on the TX-2. WISAL (WISconson Assembly Language) or LAP6-W was the version of this assembler that survived to run on the PDP-12. Curiously, this includes a PDP-8 assembler written in LINC code. LAP6-DIAL (Display Interactive Assembly Language) evolved from this on the PDP-12 to became the dominant operating system for the PDP-12. The 8K version of this is DIAL MS (Mass Storage), even if it has only two LINCtape drives. These were eventually displaced by the OS/8 variant known as OS/12. ------------------------------ Subject: Where can I get a PDP-8 today? The IM6100 chip may still be available (Electronic Expediters, (818)781-1910 (in North America) listed them at US$23.50 each as of 10/1994), and CESI may still make their clone, for a high price, but you can't buy a new DEC PDP-8. There are quite a few PDP-8 machines to be found in odd places on the used equipment market. They were widely incorporated into products such as computer controlled machine tools, X-ray diffraction machines, and other industrial and lab equipment. Many of them were sold under the EduSystem marketing program to public schools and universities, and others were used to control laboratory instrumentation. After about 1976, Reuters bought as many as 10,000 OMNIBUS based machines per year, with perhaps 2000 per year going to other customers. Through the 1980's and 1990's, PDP-8 hardware was frequently discarded or sold for scrap, and many collectors were able to obtain CPU's, peripherals and occasional complete systems in exchange for the effort required to haul them away. This may be changing! In early 1999, a PDP-8 system in unknown condition was sold at auction through eBay for $1526.00; this is far less than the new cost of such a machine, but far more than the scrap value of such a system! Owners of original DEC hardware will likely need maintenance and test supplies. Douglas Electronics still makes extender boards and breadboards in DEC format, see: http://www.douglas.com/hardware/pcbs/breadboards/digital.html As of 2000, there are still a modest number of PDP-8 systems in production use, mostly PDP-8/A systems. These are supported by a shrinking number of commercial suppliers and maintenance contractors. For example, Michael Coffey <mdynac@netscape.net> has advertised the availability of spare parts and maintencance documents for Omnibus systems/ By the year 2000, a number of PDP-8 parts and systems have changed hands on E-bay. Sadly, many systems are sold piecemeal, with parts such as core memory destined to hang on den and office walls. The market is spotty, but looking back over the ebay.com sales history is a good way to get an idea of what parts might be worth. If you can't get real hardware, you can get emulators. Over the years, many PDP-8 emulators have been written; the best of these are indistinguishable from the real machine from a software prespective, and on a modern high-speed RISC platform, these frequently outperform the hardware they are emulating. An emulator is available from DECUS, catalog number RB0128; This and other emulators are available from: ftp://metalab.unc.edu/pub/academic/computer-science/history/pdp-8/emulators ftp://ftp.cs.uiowa.edu/public/jones/pdp8/emulator.txt.Z http://www.tiac.net/users/mps/retro/sources/simh25a.zip (previously ftp://ftp.digital.com/pub/DEC/sim/sources/sim_2.2d.tar.Z) The final collection of emulators listed above includes emulators for the Nova and other DEC machines as well as the IBM 1401. Bernhard Baehr's emulator for the Apple Mac, complete with an emulated front panel and a fair amount of software is available from: http://home.t-online.de/~bernhard.baehr/pdp8e/pdp8e.html The Spare Time Gizmos emulator for Windows doesn't have the elaborate front panel interface, but it appears to be reasonably complete and has a very realistic teletype interface window. http://www.sparetimegizmos.com/Software/WinEight.htm Finally, you can always build your own. The textbook "The Art of Digital Design," second edition, by Franklin Prosser and David Winkel (Prentice-Hall, 1987, ISBN 0-13-046780-4) uses the design of a PDP-8 as a running example; development new material based on this book continues, including an asynch interface chip and, now, several implementations based on Xilinx FPGAs. Contact Ingo Cyliax or Caleb Hess (cyliax@cs.indiana.edu or hess@cs.indiana.edu) for information on the current state of this work. Other FPGA implementation are being developed by Jon Andrews and David Conroy; see: http://www.jaywalk.co.uk/pdp8 http://www.jetnet.ab.ca/users/bfranchuk/index.html "Modern VLSI Design - A system approch" by Wayne Wolf (1994 Prentice-Hall) also uses the PDP-8 as a data-path example, as does "Verilog Design Computer Design" by Mark Gordon Arnold (Prentice Hall). It is worth noting that there are a sufficient number of PDP-8 systems still operational that some companies still manufacture peripherals. For example, Storage Computer (http://www.storage.com/) makes RK05 compatable semiconductor "disk drives" that can be directly connected to the Omnibus RK05 controllers of the PDP-8/E,F,M and A. Occasionally, someone connects a PDP-8 to the internet. The most interesting current venture in that direciton is available at: http://www.pdp8.net/ This machine, when working, has complete remote control of the front panel and even the on-off switch from a Java interface, and there's a web-cam so you can see the real machine as it responds to the remote front panel operations. ------------------------------ Subject: Where can I get PDP-8 documentation? The key documents published by DEC describing each model of the PDP-8 are all out of print, and DEC was in the habit of printing much of their documentation on newsprint with paperback bindings, which is to say, surviving copies tend to be yellow and brittle. DEC distributed huge numbers of catalogs and programming handbooks in this inexpensive paperback format, and these circulate widely on the second-hand market. When research laboratories and electronics shops are being cleaned out, it is still common to find a few dusty, yellowed copies of these books being thrown out. Douglas Jones has made a small number of bound photocopies of DEC's 1973 introduction to programming, perhaps the definitive introduction to the PDP-8, and the other early DEC handbooks need similar treatment before they all crumble. Thanks to David Gesswein, a growing collection of PDP-8 documentation, including the Small Computer Handbook, the PDP-8/e/f/m maintenance manual, and prints of various boards have been scanned in and made available on the web at: http://highgate.comm.sfu.ca/pdp8/ http://www.pdp8.net/query_docs/query.shtml Some PDP-8 reference material has been transcribed into Hypertext format and is available over WWW from: http://www.cs.uiowa.edu/~jones/pdp8/index.html Much more material is available from: http://www.spiritone.com/~nabil/pdp8/ In general, maintenance manuals are hard to find, but valuable. If you need one, you usually need to find someone willing to photocopy one of the few surviving copies. DEC has been friendly to collectors, granting fairly broad letters of permission to reprint obsolete documentation, and the network makes if fairly easy to find someone who has the documentation you need and can get copies. The most difficult to copy material is the large prints, many of which would be quite useful if photoreduced, but this is expensive. ------------------------------ Subject: What operating systems were written for the PDP-8? 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. Many paper tapes from this library survive to the present at various sites! The minimum configuration expected by these tapes is a CPU with 4K memory and a teletype ASR 33 with paper tape reader and punch. Note that much of this paper-tape-based software is based on memory-use and I/O conventions that are incompatible with later disk-based systems. 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. EduSystem 25 Basic is available from: ftp://russ.ucs.indiana.edu/pub/DEC/PDP8/Langs/Edu25Basic/Ascii/ P?S/8 was developed starting in 1971 from an MS/8 foundation. It runs on minimal PDP-8 configurations, supports somewhat device independant I/O and requires a random-access device for the file system (DECtape is random-access!). P?S/8 runs compatibly on most PDP-8 machines including DECmates, excepting only the PDP-8/S and PDP-5. P?S/8 is still being developed! 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. A year later, this was released as Programming System/8 (or PS/8), and then 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 P?S/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 licence, from: ftp://ftp.cs.uiowa.edu/public/jones/pdp8/os8distr.txt.Z ftp://ftp.digital.com/pub/DEC/sim/software/os8swre.tar.Z The second site above also includes an incomplete but useful RK05 image of OS/8 Version 3R. Parts of the OS/8 source can be found in: ftp://russ.ucs.indiana.edu/pub/DEC/PDP8/OS8/ OS/8 V3D was renamed OS/78 (to match the VT78), and in followups 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 incompatabilities with earlier versions of OS/8. OS/278 and related material is available from DECUS as catalog item 800941, or from: ftp://ftp.update.uu.se/pub/pdp8 ftp://metalab.unc.edu/pub/academic/computer-science/history/pdp-8/os8 A growing collection of OS/8 documentation, including the OS/8 software support manual on the internals of the system is available on line from: ftp://ftp.dbit.com/pub/pdp8/doc 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 requires 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. Significant parts of TSS-8 have been found, but at this time, nobody has managed to recover a complete working system. Much of the available TSS/8 code can be found at: http://www.spies.com/aek/12bit 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, and Jim Dempsey still has the full source for OMNI-8. Other timesharing systems developed for the PDP-8 include MULTI-8 and MULTOS. The source for MULTOS is available from: ftp://ftp.update.uu.se/pub/pdp8/multos8 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 from: ftp://metalab.unc.edu/pub/academic/computer-science/history/pdp-8/rts8 WPS was DEC's word processing system, developed for the 8/E with a VT50 terminal with special WPS keycaps replacing the standard keycaps, and 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 is 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. ------------------------------ Subject: What programming languages are supported on the PDP-8 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. Cross assemblers that are somewhat compatable with PAL can be obtained from: ftp://ftp.cs.uiowa.edu/public/jones/pdp8/pal.c.Z ftp://ftp.cs.uiowa.edu/public/jones/pdp8/palbart.c.Z ftp://metalab.unc.edu/pub/academic/computer-science/history/pdp-8/emulators/gray 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. Source for these is available from: ftp://russ.ucs.indiana.edu/pub/DEC/PDP8/PS8/FortranSabr/Ascii/ MACREL was developed in (unfulfilled) anticipation of similar use. MACREL was heavily used by the DECmate group at DEC. MACREL is available from: ftp://ftp.update.uu.se/pub/pdp8/os8 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). Versions of FORTRAN is available from ftp://ftp.update.uu.se/pub/pdp8/os8 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, P?S/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! Various versions of FOCAL are available from: ftp://russ.ucs.indiana.edu/pub/DEC/PDP8/Langs/Focal/ ftp://ftp.cs.uiowa.edu/public/jones/pdp8/coreimages.txt.Z 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. EduSystem 25 Basic is available from: ftp://russ.ucs.indiana.edu/pub/DEC/PDP8/Langs/Edu25Basic/ The source code for TSS-8 Basic is available from http://www.spies.com/aek/12bit 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. One version is available from: ftp://russ.ucs.indiana.edu/pub/DEC/PDP8/Langs/Algol/Ascii/ 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 Pascal S interpreter, requiring a 28K PDP-8/E configuration, is available from: ftp://russ.ucs.indiana.edu/pub/DEC/PDP8/Langs/Pascal/Ascii Another OS/8 Pascal system, the source code for which was rescued by Larwrence LeMay, is available from: ftp://ftp.dbit.com/pub/pdp8/pascal A LISP interpreters was written for the PDP-8; the original version ran in 4K (originally written in Germany?); a disassembled and commented version of this was the basis of expanded versions that eventually could utilize up to 16K. One version of LISP is available from: ftp://russ.ucs.indiana.edu/pub/DEC/PDP8/Langs/Lisp/Ascii/ 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. Richard F. Lary and Stan Rabinowitz made OS/8 TECO more compatible with other versions of TECO, and the result of this work is the version distributed by DECUS (catalog number 110450 is the manual). RT-11 TECO for the PDP-11 is a port of this code. DECUS also lists the PAGE8 language (catalog numbers 800936), the VISTA editor (catalog number 800938), and the ICE text editor (catalog number 800939). ------------------------------ Subject: Where can I get PDP-8 software? DEC is still making computers, but they've largely forgotten about the PDP-8. The main DEC WWW server is http://www.digital.com/ DECUS, the DEC User Society, is still alive and well, and their submission form still lists PAL8 and FOCAL as languages in which they accept submissions! The DECUS library catalog is available on-line at decus.org; www access is through gopher.decus.org or http://www.decus.org/ To quote the README file from the DECUS on-line catalog, "Items from older DECUS Library catalogs are still also available (provided their media can still be read), but machine readable catalog information is not available for these." Direct questions by E-mail to INFORMATION@DECUS.ORG. Bob Supnik at DEC has rescued OS/8 from oblivion within DEC and has managed to get DEC to grant a non-commercial free-use licence for OS/8 to all who wish to use it. In addition, he has released a demonstration version of OS/8 for his PDP-8 emulator, available with a copy of the free-use licence from: ftp://ftp.digital.com/pub/DEC/sim/software/os8swre.tar.Z The following anonymous FTP sites also contain publically accessable archives of PDP-8 software and other information: ftp://ftp.update.uu.se/pub/pdp8 ftp://russ.ucs.indiana.edu/pub/DEC/PDP8/ ftp://ftp.cs.uiowa.edu/pub/jones/pdp8 ftp://metalab.unc.edu/pub/academic/computer-science/history/pdp-8 The latter archive also maintains an archive of traffic in alt.sys.pdp8 in the directory ...pdp8/usenet and an archive of traffic in the pdp8-lovers mailing list in .../pdp8/pdp8-lovers. The archive at Indiana contains source code for many PDP-8 compilers and interpreters, as well as common utilities and games. ------------------------------ Subject: Where can I get additional information? The companion faq on PDP-8 models and options contains a detailed production history of the PDP-8 as well as a high level description of incompatabilities between models. This is available from: http://www.faqs.org/faqs/dec-faq/ http://www.cs.ruu.nl/wais/html/na-dir/dec-faq/.html A modest attempt at an on-line PDP-8 manual is available from: http://www.cs.uiowa.edu/~jones/pdp8/man/ The mailing list PDP8-Lovers@dbit.com reaches a number of PDP-8 owners and users. This list does not accept postings from nonsubscribers; to subscribe, send mail to PDP8-Lovers-request@dbit.com The pdp8-lovers mailing list has previously been hosted by onelist.com, mc.lcs.mit.edu, ai.mit.edu, zach1.tiac.net, egroups.com and yahoo.com. The archives for these older lists should be available on dbit.com, but currently, the best archive is at ftp://zach.dyndns.org/pub/pdp8-lovers. Many "archival" books have included fairly complete descriptions of the PDP-8; among them, "Computer Architecture, Readings and Examples" by Gordon Bell and Allen Newell is among the most accurate and complete, although notationally difficult (see Chapter 5). Gordon Bell has put this on the web at: http://research.microsoft.com/~gbell/Computer_Structures__Readings_and_Examples/ ------------------------------ Subject: What use is a PDP-8 today? What use is a Model T today? Collectors of both come in the same basic classes. First, there are antiquarians who keep an old one in the garage, polished and restored to new condition but hardly ever used. Once a year, they warm it up and use it, just to prove that it still works, but they don't make much practical use of it. PDP-8 systems maintained by antiquarians are frequently in beautiful shape. Antiquarians worry about dust, chipped paint, and missing switches, and they establish newsgroups and mailing lists to help them locate parts and the advice needed to fix their machines. In the second class are those who find old machines and soup them up, replacing major parts to make a hotrod that only looks like the original from the outside, or keeping the old mechanism and putting it to uses that were never intended. Some PDP-8 owners, for example, have built PDP-8 systems with modern SCSI disk interfaces! There is serious interest in some quarters in constructing an omnibus board that would support an IDE disk of the variety that was mass-produced for the IBM PC/AT. Last, there are the old folks who still use their old machines for their intended purposes long after any sane economic analysis would recommend such use. If it ain't broke, don't fix it, and if it can be fixed, why bother replacing it? Both Model T Fords and the classic PDP-8 machines are simple enough that end users can maintain and repair them indefinitely. All you need to keep a vintage -8 running are a stock of inexpensive silicon diodes and a stock of 2N3639B or better, 2N3640 transistors. Unlike most modern personal computers, PDP-8 systems were routinely sold with complete maintenance manuals; these included schematic diagrams, explanations of not only how to use the devices, but how they are built, and suggestions to those considering building their own peripherals. Compared with many so-called "open systems" of today, the PDP-8 was far better documented and far more open. Preservation of the PDP-8 has proven to be of immense practical value in defending against the rising tide of patents in the area of interactive graphics. For example, when Sanders Associates sued the Odyssey division of Magnavox, the key testimony in this suit was Steve Russell's Spacewar, originally written for the PDP-1 in the fall of 1961. The fact that documented versions of Spacewar and other computer games dating back to the early 1960's could still be run on a surviving LINC-8 apparently played an important part in arriving at an out-of-court settlement that ended, for practical purposes, the Sanders claim to the technology behind all video games. It is far easier to prove that some software technology existed by demonstrating it on original hardware than by waving a dusty listing in front of someone's face! Finally, the PDP-8 is such a minimal machine that it is an excellent introduction to how computers really work. Over the years, many students have built complete working PDP-8 systems from scratch as lab projects, and the I/O environment on a PDP-8 is simple enough that it is a very appropriate environment for learning operating system programming techniques. ------------------------------ Subject: Who's Who? You can't beat the book Digital at Work (Digital Press, 1992) for short writeups on the people inside DEC who made the PDP-8! 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 design that probably became the NOVA, and 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, then founded Data General to build the Nova. Ben Gurley designed the early DEC machines, starting with the PDP-1. The actual design work on the -8, however, was done by Ed deCastro, who later founded Data General to build the Nova. Warren K. Smith was manager of applications engineering for Flip-Chip modules between 1969 and 1975. Much of the M-series TTL module family dates from this period. Saul B. Dinman, product line manager for the module product line from 1966 to 1969 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. Ken Olson ran DEC from the beginning. Jozsef Lukacs and Janos Bogdany designed the Hungarian TPA1001 implementation of the PDP-8 instruction set, and Laszlo Szonyi and Pal Karadi designed the TPA/i. Ed Yourdon, who later became well known as a programming methodology guru, helped hack up the PAL III assembler for the -8 from PAL II. 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. 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 P?S/8, and he is widely known as a leader in the movement to preserve these historic machines. He created the alt.sys.pdp8 newsgroup. George Thissell oversaw the development of OS/8 FORTRAN-IV, with Denny Pavlock as part of the team. Wesley Clark developed the LINC while working at Lincoln Labs; this was the first 12 bit minicomputer built with DEC parts. 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 wrote the disk handler, file system, TTY handler and 680-I service routine for TSS-8, after working on the Disk Monitor System and PAL-D, the first disk-based version of PAL. Roger Pyle and John Everett wrote the PDP-8 Disk Monitor System, and John Everett adapted PAL-III to make PAL-D for DMS. Bob Bowering, author of MACRO for the -6 and -10, wrote an expanded version, PAL-X, for TSS-8. 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. Douglas W. Jones wrote this FAQ, but prior to the summer of 1992, he'd never used a PDP-8. He has also written a report on how to photocopy and archivally bind ailing paperback books such as DEC's handouts, a PAL-like cross assembler in C, and a UNIX-based PDP-8 emulator. ------------------------------ End of PDP-8 Frequently Asked Questions (posted every other month) ******************************************************************