home *** CD-ROM | disk | FTP | other *** search
Text File | 1993-12-10 | 46.6 KB | 1,004 lines |
- Newsgroups: alt.sys.pdp8,alt.answers,news.answers
- Path: senator-bedfellow.mit.edu!bloom-beacon.mit.edu!nic.hookup.net!europa.eng.gtefsd.com!uunet!news.uiowa.edu!news
- From: jones@cs.uiowa.edu (Douglas W. Jones)
- Subject: PDP-8 Frequently Asked Questions (posted every other month)
- Summary: Answers to common questions about antique DEC PDP-8 computers.
- Those posting to alt.sys.pdp8 should read this.
- Sender: news@news.uiowa.edu (News)
- Message-ID: <1993Dec8.221620.28091@news.uiowa.edu>
- Approved: news-answers-request@MIT.Edu
- Date: Wed, 8 Dec 1993 08:08:08 GMT
- Expires: Tue, 8 Feb 1994 08:08:08 GMT
- Nntp-Posting-Host: pyrite.cs.uiowa.edu
- Organization: Computer Science, University of Iowa, Iowa City, Iowa, USA
- Keywords: FAQ DEC PDP 8
- Followup-To: alt.sys.pdp8
- Lines: 985
- Xref: senator-bedfellow.mit.edu alt.sys.pdp8:544 alt.answers:1385 news.answers:15619
-
- Archive-name: dec-faq/pdp8
- Last-modified: Dec 8, 1993
-
- Frequently Asked Questions about the DEC PDP-8 computer.
-
- By Douglas Jones, jones@cs.uiowa.edu
- (with help from many folks)
-
- The most recent version of this file is available by anonymous FTP from:
-
- rtfm.mit.edu:/pub/usenet/alt.sys.pdp8
- sunsite.unc.edu:/pub/academic/computer-science/history/pdp-8/doc
-
-
- 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?
-
-
- 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
- wanted to call the 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", plug-in circuit boards
- with a few transistorized 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 of this
- machine. The venture capitalist's insistance on avoiding the term
- computer was based on the steriotype that computers were big and
- expensive and needed a computer center and a large staff; by using
- the term Programmable Data Processor, or PDP, DEC avoided these
- stereotypes by entirely avoiding the term "computer"; thus, for
- over a decade, all digital computers sold by DEC were called PDPs.
- (In early DEC documentation, 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 computer leasing plan. IBM and all the
- other larger 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.
- Many 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 COMMENTS
- ===== ==== ======== ==== =====
- PDP-1 1960 $120,000 18 DEC's first computer
- PDP-2 NA 24 Never built?
- PDP-3 NA 36 One was built by a customer, not by DEC.
- PDP-4 1962 $60,000 18 Predecessor of the PDP-7.
- PDP-5 1963 $27,000 12 The ancestor of the PDP-8.
- PDP-6 1964 $300,000 36 A big computer; 23 built, most for MIT.
- PDP-7 1965 $72,000 18 Widely used for real-time control.
- PDP-8 1965 $18,500 12 The smallest and least expensive PDP.
- PDP-9 1966 $35,000 18 An upgrade of the PDP-7.
- PDP-10 1967 $110,000 36 A PDP-6 successor, great for timesharing.
- PDP-11 1970 $10,800 16 DEC's first and only 16 bit computer.
- PDP-12 1969 $27,900 12 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 A TTL upgrade of the PDP-9.
- PDP-16 1972 NA 8/16 A register-transfer module system.
-
- Corrections and additions to this list are welcome! The prices
- given are for minimal systems in the year the machine was first
- introduced. The bits column 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 began as the Virtual
- Address eXtension of the never-produced PDP-11/78.
-
- It is worth mentioning that it is generally accepted that the Data
- General Nova (see photo, Computers and Automation, Nov. 1968,
- page 48) was originally developed as the PDP-X, a 16-bit
- multi-register version of the PDP-8. A prototype PDP-X was built
- at DEC before the design was rejected. 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 know as the PDP-11.
- (A less common version of this story is that the reason that DEC
- never produced a PDP-13 was because the number 13 was assigned to
- what became the Nova; this is unlikely because the PDP-X prototype
- came before the PDP-11.) Both DEC and Data General are quiet about
- these stories.
-
- Today, all of the PDP machines are in DEC's corporate past, with the
- exception of the PDP-11 family of minicomputers and microprocessors.
-
- Of course, occasionally, some lab builds a machine out of DEC
- hardware and calls 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.
-
-
- 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 in early 1968.
- (See Interdata ad, Computers and Automation, May 1968, page 10).
- The PDP-8 was largely upward compatable 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 no hardware byte structure, a 4K minimum memory configuration,
- 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
- and later, 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 architecture lacked the notion of current page addressing,
- and the result is that, for examples that don't involve indexing,
- PDP-8 code is generally as tight as the code on Cray's machines.
-
-
- 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 left to
- right order. Prior to the PDP-8/E, there were severe restrictions
- on the interpretation of the op field.
-
- 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 it 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 use TPC to print 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 was requested when any device raised its flag. The
- console master clear switch would reset all flags and disable
- interrupts. Effectively, an interrupt is a JMS instruction to
- location zero, with the side effect of disabling interrupts. The
- interrupt service routine would test 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 23K 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
- 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
- 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, 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.
-
-
- What does PDP-8 assembly language look like?
-
- There are many different assemblers for the PDP-8, but most use
- a compatable 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, the instruction to clear both AC and the link bit. 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 feature should be avoided!).
-
- 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 an optional mechanism 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 generally discouraged. Furthermore, the widely
- used PAL8 assembler interprets "(3)+1" as being the same as "(3+1)".
-
- Arithmetic is allowed in operand fields and constant definitions,
- but expressions are evaluated in strict left-to-right order, as
- shown below:
-
- 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 included 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)
-
- 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 replace
- 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
- PAGE / Advance location counter to next page
- FIELD N / Assemble into extended memory field N
- TEXT STRING / Pack STRING 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
-
- Conditonally assembled code must be enclosed in angle brackets.
- The conditionally assembled code may extend over multiple lines.
-
-
- What character sets does the PDP-8 support?
-
- With its 12 bit word, the PDP-8 is somewhat awkward in its support
- for modern 7 and 8 bit character sets. Nonetheless, from the
- beginning, PDP-8 software has generally assumed that text 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 interpreted in terms
- of a tab-stop every 8 spaces.
-
- 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.
-
- Internally, PDP-8 programmers are free to use other character sets,
- but the TEXT pseudo-operation strongly 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-standardized 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.
-
- 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.
-
-
- 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.
- 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
- 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? $7,390 TTL MSI Omnibus
- PDP-8/F 72-78? >10K? <$7K TTL MSI Omnibus Based on 8/E CPU
- PDP-8/M 72-78? >10K? <$7K 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 <$10K Intersil IM6100
- Dm I 80-84 Harris 6120
- Dm II 82-86 $1,435 Harris 6120
- Dm III 84-90 $2,695 Harris 6120
- Dm III+ 85-90 Harris 6120
-
- 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 compatable microprocessor based VT78 and DECmate (Dm in the
- above table) machines. DEC also used the Intersil IM6100 and
- Harris 6120 microprocessors in many peripheral controllers for
- the PDP-11 and PDP-15. 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.
-
- 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
-
- MP-12 6? Fabritek (a surviving example runs FOCAL).
- TPA 68? Hungarian, a PDP-8/L clone, ran FOKAL
- Electrotechnica-100I ? Russian, a PDP-8/I? clone.
- Saratov-2 ? Russian, a slow clone, perhaps PDP-8/S
- Voronezh ? Russian, another PDP-8/? clone
- SPEAR u-LINC ? SPEAR, Inc, Waltham Mass.
- DCC-112 70-71 Digital Computer Controls
- DCC-112H 71 Digital Computer Controls
- 6100 Sampler 7? Intersil, their IM6100 promotional kit
- Intercept I 7? Intersil, based on IM6100
- Intercept Jr 7? Intersil, based on IM6100
- PCM-12 7? Pacific CyberMetrix, based on Intercept bus
- PCM-12A 7? Pacific CyberMetrix, fixed to clock at 4MHz
- SBC-8 84-88 CESI, Based on IM6120, SCSI bus
-
-
- What about the LINC/8 and PDP-12?
-
- Wesley Clark, then at Lincoln Labs, developed the LINC, or
- Laboratory INstrumentation Computer, as a personal laboratory
- computer in the early 1960's. He developed it in response to
- the needs of Mary Brazier, a neurophysiologist at MIT who needed
- better laboratory tools. 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).
-
- When Lincoln Labs decided that the LINC did not fit their mission,
- a group at the the National Institute of Health funded an
- experiment to see if the LINC would be a productive tool in the
- life sciences. As a result of this project, 12 LINCs were
- built and debugged, each by its eventual user.
-
- 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. These tapes could be carelessly pocketed or dropped on
- the floor without fear of data loss, and they allowed random
- access to data blocks. DEC improved on this idea slightly to
- make their DECtape format, and 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
- motivives 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.
-
- 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
- software, but because they included instructions for switching
- between modes, a third 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.
-
- LAP, the Linc Assembly Program, was the dominant assembler used
- on the LINC. 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.
-
-
- Where can I get a PDP-8 today?
-
- The CESI machine may still be on the market, for a high price, but
- generally, you can't buy a new PDP-8 anymore. 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 on the order of 10,000 OMNIBUS
- based machines per year, with perhaps 2000 per year going to other
- customers.
-
- 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.
-
- 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. Many students who have used this
- book were required to build working PDP-8 systems as lab projects.
-
-
- Where can I get PDP-8 documentation?
-
- Part II of this FAQ cites the key documents published by DEC
- describing each model of the PDP-8. These 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.
-
- Maintenance manuals are harder to find, but more valuable. If you
- need one, you usually need to find someone willing to photocopy
- one of the few surviving copies. Fortunately, 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.
-
-
- 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. 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.
-
- The DECtape Library System was an early DECtape oriented save and
- restore system that allowed a reel of tape to hold a directory of
- named files that could be loaded and run on a 4K system.
- Eventually, this supported a very limited tape-based text editor
- for on-line program development. This did not use the DECtape's
- block addressable character; the software was based on minimal
- ports of the paper-tape based software described above.
-
- 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).
-
- MS/8 or the R-L Monitor System, was developed starting in 1966
- and 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.
-
- 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 compatably on
- most PDP-8 machines including DECmates, excepting only the PDP-8/S
- and PDP-5. P?S/8 is still being developed!
-
- 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. OS/78 was developed from OS/8 to
- support the DECmate I, and OS/278 was developed for the later
- DECmate machines. These have unnecessary incompatabilities with
- earlier versions of OS/8 and with pre-Omnibus machines. There are
- also stories that DEC included code in either OS/8 or one of its
- predecessors to make it incompatable with the DCC-112.
-
- 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
- compatable with that used on the PDP-10.
-
- TSS/8 was developed in 1968 as a timesharing system. It required
- a minimum of 12K words of memory and a swapping device. It was
- the standard operating system on the EduSystem 50 which was sold
- to many small colleges and large public school systems. 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.
-
- Other timesharing systems developed for the PDP-8 include MULTI-8,
- ETOS, MULTOS, and OMNI-8; some of these required nonstandard
- memory management hardware. By the mid 1970's, some of these were
- true virtual machine operating systems in the same spirit as IBM's
- VM-370; they typically supported some version of OS/8 running on a
- 32K virtual PDP-8 assigned to each user. Some could support
- different user operating systems on each virtual machine, others
- supported addressing of more than 4K for data, but limited code to
- field zero of a process's virtual memory.
-
- 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.
-
- WPS was DEC's word processing system, developed on the 8/E and
- widely used on the 1980's vintage machines with a special WPS
- keycaps replacing the standard keycaps on the keyboard. 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.
-
- 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.
-
-
- 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 produce absolute object code and there are
- versions of PAL for minimally configured machines, although these
- have sever 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, and MACREL was
- developed in (unfulfilled) anticipation of similar use. MACREL was
- heavily used by the DECmate group at DEC.
-
- There was also RALF, the relocatable assembler supporting RTPS
- FORTRAN, and FLAP, an absolute assembler 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
- from 1964 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.
-
- 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.
- Varsions of FOCAL run under PS/8, P?S/8 and other systems.
-
- 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, versions for OS/8 and TSS/8, an 8K stand-alone
- time-sharing version, and 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.
-
- At least two LISP interpreters were written for the PDP-8; one
- runs in 4K, the other can use up to 16K.
-
- POLY SNOBOL was a version of SNOBOL that was somewhere between
- Griswald's definitions of SNOBOL 3 and SNOBOL 4.
-
- TECO, the text editor, is available, and is also a general purpose
- language, and someone is working on a PDP-8 C. The story of TECO
- on the PDP-8 is convoluted. Russ Ham implemented TECO under his
- OS8 (without a slash) system. This version of TECO was pirated by
- the Oregon Museum of Science and Industry (OMSI), where the system
- was ported to PS/8. Richard Lary and Stan Rabinowitz made it
- more compatible with other versions of TECO, and the result of
- work is the version distributed by DECUS. RT-11 TECO for the
- PDP-11 is a port of this code.
-
-
- Where can I get PDP-8 software?
-
- 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 is available on-line
- by anonymous FTP at acfcluster.nyu.edu in subdirectory DECUS.
- To quote the README file from the current 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.
-
- The following anonymous FTP sites contain publically accessable
- archives of PDP-8 software and other information:
-
- ftp.telebit.com:/pub/pdp8
- ftp.update.uu.se:/pub/pdp8
- sunsite.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.
-
-
- Where can I get additional information?
-
- The file WHAT-IS-A-PDP8, by Charles Lasner contains considerable
- additional information; this file is included in the telebit.com
- archive cited above. This file gives details of every PDP-8 model
- including the small quirks and incompatabilities that (to be
- generous) allow software to determine which model it is running on.
- These quirks also make it all too easy for careless programmers to
- write almost portable software with very obscure bugs.
-
- The mailing list pdp8-lovers@ai.mit.edu reaches a number of PDP-8
- owners and users, not all of whom have USENET feeds. The USENET
- newsgroup alt.sys.pdp8 needs to be gatewayed to this mailing list.
-
- 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 (but difficult to read).
-
-
- 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.
-
- 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.
-
- Who's Who?
-
- C. Gordon Bell is generally credited with the original design of
- the PDP-8. 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.
-
- Ben Gurley designed most of the big 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.
-
- Ken Olson ran DEC from the beginning.
-
- Ed Yourdon, who later became well known as a programming methodology
- guru, hacked up the PAL III assembler for the -8, based on PAL II.
-
- Charles Lasner developed P?S/8, and he is widely known as the grand
- old man of the movement to preserve these historic machines.
-
- 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.
-
- 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, and he has written a PAL-like cross assembler in C.
-