home *** CD-ROM | disk | FTP | other *** search
/ ftp.update.uu.se / ftp.update.uu.se.2014.03.zip / ftp.update.uu.se / pub / pdp8 / pdp8faq < prev    next >
Text File  |  1993-11-12  |  48KB  |  1,003 lines

  1. Newsgroups: alt.sys.pdp8,alt.answers,news.answers
  2. Path: senator-bedfellow.mit.edu!bloom-beacon.mit.edu!news.kei.com!sol.ctr.columbia.edu!howland.reston.ans.net!math.ohio-state.edu!hobbes.physics.uiowa.edu!news.uiowa.edu!news
  3. From: jones@cs.uiowa.edu (Douglas W. Jones)
  4. Subject: PDP-8 Frequently Asked Questions (posted every other month)
  5. Summary: Answers to common questions about antique DEC PDP-8 computers.
  6.     Those posting to alt.sys.pdp8 should read this.
  7. Sender: news@news.uiowa.edu (News)
  8. Message-ID: <1993Oct8.220111.18851@news.uiowa.edu>
  9. Approved: news-answers-request@MIT.Edu
  10. Date: Fri, 8 Oct 1993 08:08:08 GMT
  11. Expires: Wed, 8 Dec 1993 08:08:08 GMT
  12. Nntp-Posting-Host: pyrite.cs.uiowa.edu
  13. Organization: Computer Science, University of Iowa, Iowa City, Iowa, USA
  14. Keywords: FAQ DEC PDP 8
  15. Followup-To: alt.sys.pdp8
  16. Lines: 984
  17. Xref: senator-bedfellow.mit.edu alt.sys.pdp8:428 alt.answers:1025 news.answers:13347
  18.  
  19. Archive-name: dec-faq/pdp8
  20. Last-modified: Oct 1, 1993
  21.  
  22. Frequently Asked Questions about the DEC PDP-8 computer.
  23.  
  24.     By Douglas Jones, jones@cs.uiowa.edu
  25.     (with help from many folks)
  26.  
  27. The most recent version of this file is available by anonymous FTP from:
  28.  
  29.     rtfm.mit.edu:/pub/usenet/alt.sys.pdp8
  30.     sunsite.unc.edu:/pub/academic/computer-science/history/pdp-8/doc
  31.  
  32.     
  33. Contents:
  34.  
  35.     What is a PDP?
  36.     What is a PDP-8?
  37.     What is the PDP-8 instruction set?
  38.     What does PDP-8 assembly language look like?
  39.     What character sets does the PDP-8 support?
  40.     What different PDP-8 models were made?
  41.     What about the LINC-8 and PDP-12?
  42.     Where can I get a PDP-8 today?
  43.     Where can I get PDP-8 documentation?
  44.     What operating systems were written for the PDP-8?
  45.     What programming languages were supported on the PDP-8?
  46.     Where can I get PDP-8 software?
  47.     Where can I get additional information?
  48.     What use is a PDP-8 today?
  49.     Who's Who?
  50.  
  51.  
  52. What is a PDP?
  53.  
  54.     In 1957, Ken Olson and Harlan Anderson founded Digital Equipment
  55.     Corporation (DEC), capitalized at $100,000, and 70% owned by
  56.     American Research and Development Corporation.  Olson and Anderson
  57.     wanted to call the company Digital Computer Corporation, but the
  58.     venture capitalists insisted that they avoid the term Computer and
  59.     hold off on building computers.  With facilities in an old woolen
  60.     mill in Maynard Massachusetts, DEC's first product was a line of
  61.     transistorized digital "systems modules", plug-in circuit boards
  62.     with a few transistorized logic gates per board.  Starting in
  63.     1960, DEC finally began to sell computers (the formal acceptance
  64.     of the first PDP-1 by BBN is reported in Computers and Automation,
  65.     April 1961, page 8B).  Soon after this, there were enough users
  66.     that DECUS, the Digital Equipment Computer User's Society was
  67.     founded.
  68.  
  69.     DEC's first computer, the PDP-1, sold for only $120,000 at a time
  70.     when other computers sold for over $1,000,000.  (A good photo of
  71.     a PDP-1 is printed in Computers and Automation, Dec. 1961, page 27).
  72.     DEC quoted prices as low as $85,000 for minimal models of this
  73.     machine.  The venture capitalist's insistance on avoiding the term
  74.     computer was based on the steriotype that computers were big and
  75.     expensive and needed a computer center and a large staff; by using
  76.     the term Programmable Data Processor, or PDP, DEC avoided these
  77.     stereotypes by entirely avoiding the term "computer"; thus, for
  78.     over a decade, all digital computers sold by DEC were called PDPs.
  79.     (In early DEC documentation, plural form "PDPs" is used as a
  80.     generic term for all DEC computers.)
  81.  
  82.     In the early 1960's, DEC was the only manufacturer of large
  83.     computers without a computer leasing plan.  IBM and all the
  84.     other larger manufacturers leased most of their machines, and
  85.     many machines were never offered for outright sale.  DEC's cash
  86.     sales approach led to the growth of third party computer leasing
  87.     companies such as DELOS, a spinoff of BB&N.
  88.  
  89.     DEC built a number of different computers under the PDP label, with
  90.     a huge range of price and performance.  The largest of these are
  91.     fully worthy of large computer centers with big support staffs.
  92.     Many early DEC computers were not really built by DEC.  With the
  93.     PDP-3 and LINC, for example, customers built the machines using DEC
  94.     parts and facilities.  Here is the list of PDP computers:
  95.  
  96.     MODEL  DATE  PRICE     BITS  COMMENTS
  97.     =====  ====  ========  ====  =====
  98.     PDP-1  1960  $120,000  18    DEC's first computer
  99.     PDP-2            NA    24    Never built?
  100.     PDP-3            NA    36    One was built by a customer, not by DEC.
  101.     PDP-4  1962   $60,000  18    Predecessor of the PDP-7.
  102.     PDP-5  1963   $27,000  12    The ancestor of the PDP-8.
  103.     PDP-6  1964  $300,000  36    A big computer; 23 built, most for MIT.
  104.     PDP-7  1965   $72,000  18    Widely used for real-time control.
  105.     PDP-8  1965   $18,500  12    The smallest and least expensive PDP.
  106.     PDP-9  1966   $35,000  18    An upgrade of the PDP-7.
  107.     PDP-10 1967  $110,000  36    A PDP-6 successor, great for timesharing.
  108.     PDP-11 1970   $10,800  16    DEC's first and only 16 bit computer.
  109.     PDP-12 1969   $27,900  12    A PDP-8 relative.
  110.     PDP-13           NA          Bad luck, there was no such machine.
  111.     PDP-14                       A ROM-based programmable controller.
  112.     PDP-15 1970   $16,500  18    A TTL upgrade of the PDP-9.
  113.     PDP-16 1972      NA    8/16  A register-transfer module system.
  114.  
  115.     Corrections and additions to this list are welcome!  The prices
  116.     given are for minimal systems in the year the machine was first
  117.     introduced.  The bits column indicates the word size.  Note that
  118.     the DEC PDP-10 became the DECSYSTEM-20 as a result of marketing
  119.     considerations, and DEC's VAX series of began as the Virtual
  120.     Address eXtension of the never-produced PDP-11/78.
  121.  
  122.     It is worth mentioning that it is generally accepted that the Data
  123.     General Nova (see photo, Computers and Automation, Nov. 1968,
  124.     page 48) was originally developed as the PDP-X, a 16-bit
  125.     multi-register version of the PDP-8.  A prototype PDP-X was built
  126.     at DEC before the design was rejected.  This and a competing 16-bit
  127.     design were apparently submitted to Harold McFarland at
  128.     Carnegie-Mellon University for evaluation; McFarland (and perhaps
  129.     Gordon Bell, who was at C-MU at the time) evaluated the competing
  130.     designs and rejected both in favor of what we know as the PDP-11.
  131.     (A less common version of this story is that the reason that DEC
  132.     never produced a PDP-13 was because the number 13 was assigned to
  133.     what became the Nova; this is unlikely because the PDP-X prototype
  134.     came before the PDP-11.)  Both DEC and Data General are quiet about
  135.     these stories.
  136.  
  137.     Today, all of the PDP machines are in DEC's corporate past, with the
  138.     exception of the PDP-11 family of minicomputers and microprocessors.
  139.  
  140.     Of course, occasionally, some lab builds a machine out of DEC
  141.     hardware and calls it a PDP with a new number.  For example, the
  142.     Australian Atomic Energy Commission once upgraded a PDP-7 by adding
  143.     a PDP-15 on the side; they called the result a PDP-22.
  144.     
  145.  
  146. What is a PDP-8?
  147.  
  148.     The PDP-8 family of minicomputers were built by Digital Equipment
  149.     corporation between 1965 and 1990, although it is worth noting
  150.     that the term minicomputer first came into prominence in early 1968.
  151.     (See Interdata ad, Computers and Automation, May 1968, page 10).
  152.     The PDP-8 was largely upward compatable with the PDP-5, a machine
  153.     that was unveiled on August 11, 1963 at WESCON, and the inspiration
  154.     for that machine came from two earlier machines, the LINC and the
  155.     CDC 160.  All of these machines were characterized by a 12 bit word
  156.     with no hardware byte structure, a 4K minimum memory configuration,
  157.     and simple but powerful instruction sets.
  158.  
  159.     Although some people consider the CDC 160 the first minicomputer,
  160.     the PDP-8 was the definitive minicomputer.  By late 1973, the
  161.     PDP-8 family was the best selling computer in the world, and it is
  162.     likely that it was only displaced from this honor by the Apple II
  163.     and later, the IBM PC.  Most models of the PDP-8 set new records
  164.     as the least expensive computer on the market at the time of their
  165.     introduction.  The PDP-8 has been described as the model-T of the
  166.     computer industry because it was the first computer to be mass
  167.     produced at a cost that just about anyone could afford.
  168.  
  169.     C. Gordon Bell has said that the basic idea of the PDP-8 was not
  170.     really original with him.  He gives credit to Seymour Cray (of CDC
  171.     and later Cray) for the idea of a single-accumulator 12 bit
  172.     minicomputer.  Cray's CDC 160 family (see CACM, march 1961, photo
  173.     on page 244, text on page 246) was such a machine, and in addition
  174.     to the hundreds of CDC 160 systems sold as stand-alone machines,
  175.     a derivative 12 bit architecture was used for the I/O processors
  176.     on Cray's first great supercomputer, the CDC 6600.
  177.  
  178.     Note that Cray's 12 bit machines had 6 basic addressing modes with
  179.     variable length instruction words and other features that were far
  180.     from the simple elegance of the PDP-8.  Despite its many modes,
  181.     the CDC architecture lacked the notion of current page addressing,
  182.     and the result is that, for examples that don't involve indexing,
  183.     PDP-8 code is generally as tight as the code on Cray's machines.
  184.  
  185.  
  186. What is the PDP-8 instruction set?
  187.  
  188.     The PDP-8 word size is 12 bits, and the basic memory is 4K
  189.     words.  The minimal CPU contained the following registers:
  190.  
  191.         PC - the program counter, 12 bits.
  192.         AC - the accumulator, 12 bits.
  193.         L  - the link, 1 bit, commonly prefixed to AC as <L,AC>.
  194.  
  195.     It is worth noting that many operations such as procedure linkage
  196.     and indexing, which are usually thought of as involving registers,
  197.     are done with memory on the PDP-8 family.
  198.  
  199.     Instruction words are organized as follows:
  200.          _ _ _ _ _ _ _ _ _ _ _ _
  201.         |_|_|_|_|_|_|_|_|_|_|_|_|
  202.         |     | | |             |
  203.         |  op |i|z|    addr     |
  204.  
  205.         op   - the opcode.
  206.         i    - the indirect bit (0 = direct, 1 = indirect).
  207.         z    - the page bit (0 = page zero, 1 = current page).
  208.         addr - the word in page.
  209.  
  210.     The top 5 bits of the 12 bit program counter give the current page,
  211.     and memory addressing is also complicated by the fact that absolute
  212.     memory locations 8 through 15 are incremented prior to use when
  213.     used as indirect addresses.  These locations are called auto-index
  214.     registers (despite the fact that they are in memory); they allow
  215.     the formulation of very tightly coded array operations.
  216.  
  217.     The basic instructions are:
  218.  
  219.         000 - AND - and operand with AC.
  220.         001 - TAD - add operand to <L,AC> (a 13 bit value).
  221.         010 - ISZ - increment operand and skip if result is zero.
  222.         011 - DCA - deposit AC in memory and clear AC.
  223.         100 - JMS - jump to subroutine.
  224.         101 - JMP - jump.
  225.         110 - IOT - input/output transfer.
  226.         111 - OPR - microcoded operations.
  227.  
  228.     The ISZ and other skip instructions conditionally skip the next
  229.     instruction in sequence.  The ISZ is commonly used to increment a
  230.     loop counter and skip if done, and it is also used as an general
  231.     increment instruction, either followed by a no-op or in contexts
  232.     where it is known that the result will never be zero.
  233.  
  234.     The JMS instruction stores the return address in relative word
  235.     zero of the subroutine, with execution starting with relative word
  236.     one.  Subroutine return is done with an indirect JMP through the
  237.     return address.  Subroutines commonly increment their return
  238.     addresses to index through inline parameter lists or to perform
  239.     conditional skips over instructions following the call.
  240.  
  241.     The IOT instruction has the following form:
  242.          _ _ _ _ _ _ _ _ _ _ _ _
  243.         |1|1|0|_|_|_|_|_|_|_|_|_|
  244.         |     |           |     |
  245.         |     |   device  | op  |
  246.  
  247.     The IOT instruction specifies one of up to 8 operations on one of
  248.     64 devices.  Typically (but not universally), each bit of the op
  249.     field evokes an operation, and these can be microcoded in left to
  250.     right order.  Prior to the PDP-8/E, there were severe restrictions
  251.     on the interpretation of the op field.
  252.  
  253.     As an example of the use of IOT instructions, consider the console
  254.     terminal interface.  On early PDP-8 systems, this was always
  255.     assumed to be an ASR 33 teletype, complete with low-speed paper
  256.     tape reader and punch.  It was addressed as devices 03 (the
  257.     keyboard/reader) and 04 (the teleprinter/punch):
  258.          _ _ _ _ _ _ _ _ _ _ _ _
  259.         |1|1|0|_|_|_|_|_|_|_|_|_|
  260.               |0 0 0 0 1 1|0 0 1  - KSF - keyboard skip if flag
  261.               |0 0 0 0 1 1|0 1 0  - KCC - keyboard clear flag
  262.               |0 0 0 0 1 1|1 0 0  - KRS - keyboard read static
  263.  
  264.     The keyboard flag is set by the arrival of a character.  The KCC
  265.     instruction clears both the flag and the accumulator.  KRS ors the
  266.     8 bit input data with the low order 8 bits of AC.  The commonly
  267.     used KRB instruction is the or of KCC and KRS.  To await one byte
  268.     of input, use KSF to poll the flag, then read it with KRB.
  269.          _ _ _ _ _ _ _ _ _ _ _ _
  270.         |1|1|0|_|_|_|_|_|_|_|_|_|
  271.               |0 0 0 1 0 0|0 0 1  - TSF - teleprinter skip if flag
  272.               |0 0 0 1 0 0|0 1 0  - TCF - teleprinter clear flag
  273.               |0 0 0 1 0 0|1 0 0  - TPC - teleprinter print static
  274.  
  275.     The teleprinter flag is set by the completion of the TPC operation
  276.     (as a result, on startup, many applications use TPC to print a null
  277.     in order to get things going).  TCF clears the flag, and TPC
  278.     outputs the low order 8 bits of the accumulator.  The commonly used
  279.     TLS instruction is the or of TCF and TPC.  To output a character,
  280.     first use TSF to poll the flag, then write the character with TLS.
  281.  
  282.     IOT instructions may be used to initiate data break transfers from
  283.     block devices such as disk or tape.  The term "data break" was,
  284.     for years, DEC's preferred term for cycle-stealing direct-memory-
  285.     access data transfers.
  286.  
  287.     Some CPU functions are accessed only by IOT instructions.  For
  288.     example, interrupt enable and disable are IOT instructions:
  289.          _ _ _ _ _ _ _ _ _ _ _ _
  290.         |1|1|0|_|_|_|_|_|_|_|_|_|
  291.               |0 0 0 0 0 0|0 0 1  - ION - interrupts turn on
  292.               |0 0 0 0 0 0|0 1 0  - IOF - interrupts turn off
  293.  
  294.     An interrupt was requested when any device raised its flag.  The
  295.     console master clear switch would reset all flags and disable
  296.     interrupts.  Effectively, an interrupt is a JMS instruction to
  297.     location zero, with the side effect of disabling interrupts.  The
  298.     interrupt service routine would test flags and perform the
  299.     operations needed to reset them, and then return using ION
  300.     immediately before the indirect return JMP.  The effect of ION
  301.     is delayed so that interrupts are not enabled until after the JMP.
  302.  
  303.     The instructions controlling the optional memory management unit
  304.     are also IOT instructions.  This unit allows the program to address
  305.     up to 23K of main memory by adding a 3 bit extension to the memory
  306.     address.  Two extensions are available, one for instruction fetch
  307.     and direct addressing, the other for indirect addressing.
  308.  
  309.     A wide variety of operations are available through the OPR
  310.     microcoded instructions:
  311.              _ _ _ _ _ _ _ _ _ _ _ _
  312.     Group 1 |1|1|1|0|_|_|_|_|_|_|_|_|
  313.                  1                - CLA - clear AC
  314.                    1              - CLL - clear the L bit
  315.                          1            - CMA - ones complement AC
  316.                            1          - CML - complement L bit
  317.                                    1  - IAC - increment <L,AC>
  318.                              1 0 0    - RAR - rotate <L,AC> right
  319.                              0 1 0    - RAL - rotate <L,AC> left
  320.                          1 0 1    - RTR - rotate <L,AC> right twice
  321.                          0 1 1    - RTL - rotate <L,AC> left twice
  322.  
  323.     In general, the above operations can be combined by oring the
  324.     bit patterns for the desired operations into a single instruction.
  325.     If none of the bits are set, the result is the NOP instruction.
  326.     When these operations are combined, they operate top to bottom
  327.     in the order shown above.  The exception to this is that IAC cannot
  328.     be combined with the rotate operations on some models, and attempts
  329.     to combine rotate operations have different effects from one model
  330.     to another (for example, on the PDP-8/E, the rotate code 001 means
  331.     swap 6 bit bytes in the accumulator, while previous models took
  332.     this to mean something like "shift neither left nor right 2 bits").
  333.              _ _ _ _ _ _ _ _ _ _ _ _
  334.     Group 2 |1|1|1|1|_|_|_|_|_|_|_|0|
  335.                        1     0        - SMA - skip on AC < 0  \
  336.                          1   0        - SZA - skip on AC = 0   > or
  337.                            1 0        - SNL - skip on L /= 0  /
  338.                        0 0 0 1        - SKP - skip unconditionally
  339.                        1     1        - SPA - skip on AC >= 0 \
  340.                          1   1        - SNA - skip on AC /= 0  > and
  341.                            1 1        - SZL - skip on L = 0   /
  342.                      1                - CLA - clear AC
  343.                                1      - OSR - or switches with AC
  344.                                  1    - HLT - halt
  345.  
  346.     The above operations may be combined by oring them together,
  347.     except that there are two distinct incompatible groups of skip
  348.     instructions.  When combined, SMA, SZA and SNL, skip if one or the
  349.     other of the indicated conditions are true, while SPA, SNA and SZL
  350.     skip if all of the indicated conditions are true (logical and).
  351.     When combined, these operate top to bottom in the order shown;
  352.     thus, the accumulator may be tested and then cleared.  Setting
  353.     the halt bit in a skip instruction is a crude but useful way to
  354.     set a breakpoint for front-panel debugging.  If none of the bits
  355.     are set, the result is an alternative form of no-op.
  356.  
  357.     A third group of operate microinstructions (with a 1 in the least
  358.     significant bit) deals with the optional extended arithmetic
  359.     element to allow such things as hardware multiply and divide, 24
  360.     bit shift operations, and normalize.  These operations involve
  361.     an additional data register, MQ or multiplier quotient, and a small
  362.     step count register.  On the PDP-8/E and successors, MQ and the
  363.     instructions for loading and storing it were always present, even
  364.     when the EAE was absent, and the EAE was extended to provide a
  365.     useful variety of 24 bit arithmetic operations.
  366.  
  367.  
  368. What does PDP-8 assembly language look like?
  369.  
  370.     There are many different assemblers for the PDP-8, but most use
  371.     a compatable basic syntax; here is an example:
  372.  
  373.     START,    CLA CLL        / Clear everything
  374.         TAD    X    / Load X
  375.         AND I    Y    / And with the value pointed to by Y
  376.         DCA    X    / Store in X
  377.         HLT        / Halt
  378.  
  379.     X,    1         / A variable
  380.     Y,    7         / A pointer
  381.  
  382.     Note that labels are terminated by a comma, and comments are
  383.     separated from the code by a slash.  There are no fixed fields
  384.     or column restrictions.  The "CLA CLL" instruction on the first
  385.     line is an example of the microcoding of two of the Group 1
  386.     operate instructions.  CLA alone has the code 7200 (octal),
  387.     while CLL has the code 7100; combining these as "CLA CLL" produces
  388.     7300, the instruction to clear both AC and the link bit.  As a
  389.     general rule, except when memory reference instructions are
  390.     involved, the assembler simply ors together the values of all
  391.     blank separated fields between the label and comment.
  392.     
  393.     Indirection is indicated by the special symbol I in the operand
  394.     field, as in the third line of the example.  The typical PDP-8
  395.     assembler has no explicit notation to distinguish between page zero
  396.     and current page addresses.  Instead, the assembler is expected to
  397.     note the page holding the operand and automatically generate the
  398.     appropriate mode.  If the operand is neither in the current page
  399.     nor page zero, some assemblers will raise an error, others will
  400.     automatically generate an indirect pointer to the off-page operand
  401.     (This feature should be avoided!).
  402.  
  403.     Note, in the final two lines of the example, that there is no
  404.     "define constant" pseudo-operation.  Instead, where a constant
  405.     is to be assembled into memory, the constant takes the place of
  406.     the op-code field.
  407.  
  408.     The PDP-8 has no immediate addressing mode, but most assemblers
  409.     provide an optional mechanism to allow the programmer to ignore
  410.     this lack:
  411.  
  412.         TAD    (3)    / add 3, from memory on the current page.
  413.         TAD    [5]    / add 5, from memory on page zero.
  414.         JMP I    (LAB)    / jump indirect through the address of LAB.
  415.  
  416.     Assemblers that support this automatically fill the end of each page
  417.     with constants defined in this way that have been accumulated during
  418.     the assembly of that page.  Note that the variants "(3" and "[5"
  419.     (with no closing parentheses) are usually allowed but the use of
  420.     this sloppy form is generally discouraged.  Furthermore, the widely
  421.     used PAL8 assembler interprets "(3)+1" as being the same as "(3+1)".
  422.  
  423.     Arithmetic is allowed in operand fields and constant definitions,
  424.     but expressions are evaluated in strict left-to-right order, as
  425.     shown below:
  426.  
  427.         TAD    X+1    / add the contents of the location after X.
  428.         TAD    (X-1)    / add the address of the location before X.
  429.  
  430.     Other operators allowed included and (&), or (!), multiply (^) and
  431.     divide (%), as well as a unary sign (+ or -).  Unfortunately, one
  432.     of the most widely used assemblers, PAL8, has trouble when unary
  433.     operators are mixed with multiplication or division.
  434.     
  435.     Generally, only the first 6 characters of identifiers are
  436.     significant and numeric constants are evaluated in octal.
  437.  
  438.     Other assembly language features are illustrated below:
  439.  
  440.     / Comments may stand on lines by themselves
  441.                 / Blank lines are allowed
  442.  
  443.         *200        / Set the assembly origin to 200 (octal)
  444.  
  445.     NL0002=    CLA CLL CML RTL    / Define new opcode NL0002.
  446.  
  447.         NL0002        / Use new opcode (load 0002 in AC)
  448.         JMP    .-1    / Jump to the previous instruction
  449.  
  450.     X1=    10        / Define X1 (an auto-index register address)
  451.  
  452.         TAD I    X1    / Use autoindex register 1
  453.  
  454.         IAC; RAL    / Multiple instructions on one line
  455.  
  456.         $        / End of assembly
  457.  
  458.     The assembly file ends with a line containing a $ (dollar sign)
  459.     not in a comment field.
  460.  
  461.     The $, * and =  syntax used by most PDP-8 assemblers replace
  462.     functions performed by pseudo-operations on many other assemblers.
  463.     In addition, PAL8, the most widely used PDP-8 assembler supports
  464.     the following pseudo-operations:
  465.  
  466.         DECIMAL        / Interpret numeric constants in base 10
  467.         OCTAL        / Interpret numeric constants in base 8
  468.         EJECT        / Force a page eject in the listing
  469.         XLIST        / toggle listing
  470.         PAGE          / Advance location counter to next page
  471.         FIELD    N    / Assemble into extended memory field N
  472.         TEXT    STRING    / Pack STRING into consecutive 6 bit bytes
  473.         ZBLOCK    N    / Allocate N words, initialized to zero
  474.         IFDEF    S <C>    / Assemble C if symbol S is defined
  475.         IFNDEF    S <C>    / Assemble C if symbol S is not defined
  476.         IFZERO    E <C>    / Assemble C if expression E is zero
  477.         IFNZRO    E <C>    / Assemble C if expression E is not zero
  478.  
  479.     Conditonally assembled code must be enclosed in angle brackets.
  480.     The conditionally assembled code may extend over multiple lines.
  481.  
  482.  
  483. What character sets does the PDP-8 support?
  484.  
  485.     With its 12 bit word, the PDP-8 is somewhat awkward in its support
  486.     for modern 7 and 8 bit character sets.  Nonetheless, from the
  487.     beginning, PDP-8 software has generally assumed that text I/O would
  488.     be in 7 bit ASCII.  Most early PDP-8 systems used teletypes as
  489.     console terminals; as sold by DEC, these were configured for mark
  490.     parity, so most older software assumes 7 bit ASCII, upper case
  491.     only, with the 8th bit set to 1.  On output, lines are generally
  492.     terminated with both CR and LF; on input, CR is typically (but not
  493.     always) the line terminator and LF is typically ignored.  In
  494.     addition, the tab character (HT) is generally interpreted in terms
  495.     of a tab-stop every 8 spaces.
  496.  
  497.     Most of the better engineered PDP-8 software tends to fold upper
  498.     and lower case on input, and it ignores the setting of the 8th bit.
  499.  
  500.     Internally, PDP-8 programmers are free to use other character sets,
  501.     but the TEXT pseudo-operation strongly encourages the 6 bit
  502.     character set called "stripped ASCII".  To map from upper-case-only
  503.     ASCII to stripped ASCII, each 8 bit character is anded with octal
  504.     77 and then packed 2 characters per word, left to right.  Many
  505.     programs use a semi-standardized scheme for packing mixed upper and
  506.     lower case into 6 bit TEXT form; this uses ^ to flip from upper to
  507.     lower case or lower to upper case, % to encode CR-LF pairs, and @
  508.     (octal 00) to mark end of string.  Note that this scheme makes no
  509.     provision for encoding the %, ^ and @ characters, nor does it allow
  510.     control characters other than the CR-LF pair.
  511.  
  512.     Files under the widely used OS/8 system consist of sequences of 256
  513.     word blocks.  When used for text, each block holds 384 bytes, packed
  514.     3 bytes per pair of words as follows:
  515.  
  516.             aaaaaaaa        ccccaaaaaaaa
  517.             bbbbbbbb        CCCCbbbbbbbb
  518.             ccccCCCC
  519.  
  520.     Control Z is used as an end of file marker.  Because most of the
  521.     PDP-8 system software was originally developed for paper tape,
  522.     binary object code is typically stored in paper-tape image form
  523.     using the above packing scheme.
  524.  
  525.  
  526. What different PDP-8 models were made?
  527.  
  528.     The total sales figure for the PDP-8 family is estimated at over
  529.     300,000 machines.  Over 7000 of these were sold prior to 1970.
  530.     During the PDP-8 production run, a number of models were made, as
  531.     listed in the following table.  Of these, the PDP-8/E is generally
  532.     considered to be the definitive machine.  If the PDP-8 is
  533.     considered to be the Model T of the computer industry, perhaps
  534.     the PDP-8/E should be considered to be the industry's Model A.
  535.  
  536.     MODEL    DATES    SALES   COST    TECHNOLOGY    REMARKS
  537.  
  538.     PDP-5    63-67     116        Transistor
  539.     PDP-8    65-69     1450    $18,500    Transistor
  540.     LINC-8    66-69     142    $38,500    Transistor
  541.     PDP-8/S    66-70    1024    $10,000    Transistor
  542.     PDP-8/I    68-71     3698    $12,800    TTL
  543.     PDP-8/L    68-71     3902     $8,500    TTL        Scaled down 8/I
  544.     PDP-12    69-73?    3500?    $27,900    TTL        Followup to LINC-8
  545.     PDP-8/E    70-78    >10K?     $7,390    TTL MSI    Omnibus
  546.     PDP-8/F    72-78?    >10K?    <$7K    TTL MSI Omnibus Based on 8/E CPU
  547.     PDP-8/M    72-78?    >10K?    <$7K    TTL MSI Omnibus OEM version of 8/F
  548.     PDP-8/A    75-84?    >10K?     $1,317    TTL LSI Omnibus New CPU or 8/E CPU
  549.     VT78    78-80        <$10K    Intersil IM6100
  550.     Dm I    80-84            Harris 6120
  551.     Dm II    82-86         $1,435    Harris 6120
  552.     Dm III    84-90         $2,695    Harris 6120
  553.     Dm III+    85-90            Harris 6120
  554.  
  555.     Additional information is available in part two of this FAQ,
  556.     where all known models of the PDP-8, along with variants,
  557.     alternate marketing names, and other peculiarities are given.
  558.  
  559.     The last years of the PDP-8 family were dominated by the
  560.     PDP-8 compatable microprocessor based VT78 and DECmate (Dm in the
  561.     above table) machines.  DEC also used the Intersil IM6100 and
  562.     Harris 6120 microprocessors in many peripheral controllers for
  563.     the PDP-11 and PDP-15.  While all of the earlier PDP-8 systems
  564.     were open architecture systems, the DECmates had closed
  565.     architectures with an integrated console terminals and limited
  566.     peripheral options.
  567.  
  568.     The following PDP-8 compatible or semi-compatible machines were
  569.     made and sold by others; very little is known about many of these:
  570.  
  571.     MODEL        DATE    MAKER, NOTES
  572.  
  573.     MP-12        6?    Fabritek
  574.     TPA        68?    Hungarian, a PDP-8/L clone, ran FOKAL
  575.     Saratov        ?    Russian, another PDP-8/L clone
  576.     Voronezh    ?    Russian, another PDP-8/? clone
  577.     SPEAR u-LINC    ?    SPEAR, Inc, Waltham Mass.
  578.     DCC-112        70-71    Digital Computer Controls
  579.     DCC-112H    71    Digital Computer Controls
  580.     6100 Sampler    7?    Intersil, their IM6100 promotional kit
  581.     Intercept I    7?    Intersil, based on IM6100
  582.     Intercept Jr    7?    Intersil, based on IM6100
  583.     PCM-12        7?    Pacific CyberMetrix, based on Intercept bus
  584.     PCM-12A        7?    Pacific CyberMetrix, fixed to clock at 4MHz
  585.     SBC-8        84-88    CESI, Based on IM6120, SCSI bus
  586.     
  587.  
  588. What about the LINC/8 and PDP-12?
  589.  
  590.     Wesley Clark, then at Lincoln Labs, developed the LINC, or
  591.     Laboratory INstrumentation Computer, as a personal laboratory
  592.     computer in the early 1960's.  He developed it in response to
  593.     the needs of Mary Brazier, a neurophysiologist at MIT who needed
  594.     better laboratory tools.  Over 24 LINC systems were built by
  595.     customers before late 1964 when DEC began selling a commercial
  596.     version (see Computers and Automation, Nov. 1964, page 43).
  597.     By the time DEC introduced the LINC-8, 43 LINC systems had been
  598.     installed (see Computers and Automation, Mar. 1966, page 34).
  599.  
  600.     When Lincoln Labs decided that the LINC did not fit their mission,
  601.     a group at the the National Institute of Health funded an
  602.     experiment to see if the LINC would be a productive tool in the
  603.     life sciences.  As a result of this project, 12 LINCs were
  604.     built and debugged, each by its eventual user.
  605.  
  606.     The LINC was the first 12 bit minicomputer built using DEC hardware.
  607.     Like the PDP-5 and other early DEC computers, it was built with
  608.     system modules, DEC's first family of logic modules.  Along with
  609.     the CDC 160, it paved the way for the PDP-5 and PDP-8.
  610.  
  611.     When compared with the PDP-8, the LINC instruction set was not
  612.     as well suited for general purpose computation, but the common
  613.     peripherals needed for lab work such as analog to digital and
  614.     digital to analog converters were all bundled into the LINC
  615.     system.  Users judged it to be a superb laboratory instrument.
  616.  
  617.     One of the major innovations introduced with the LINC was the
  618.     LINCtape.  These tapes could be carelessly pocketed or dropped on
  619.     the floor without fear of data loss, and they allowed random
  620.     access to data blocks.  DEC improved on this idea slightly to
  621.     make their DECtape format, and DECtape was widely used with all
  622.     DEC computers made in the late 1960's and early 1970's.
  623.  
  624.     The motives behind the development of LINCtape were the same
  625.     motivives that led IBM to develop the floppy disk almost a decade
  626.     later, and in fact, DECtape survived as a widely used medium until
  627.     DEC introduced the RX01 8 inch floppy disk drive around 1975.
  628.  
  629.     Within a year of the introduction of the PDP-8, DEC released the
  630.     LINC-8, a machine that combined a PDP-8 with a LINC in one package.
  631.     The success of the LINC-8 led DEC to re-engineer the machine using
  632.     TTL logic in the late 1960's; the new version was originally to be
  633.     called the LINC-8/I, but it was sold as the PDP-12.  Both the
  634.     LINC-8 and the PDP-12 had impressive consoles, with separate sets
  635.     of lights and switches for the LINC and PDP-8 halves.
  636.  
  637.     The success of the LINC-8 also led to the development of a clone,
  638.     the SPEAR micro-LINC.  This machine used Motorola MECL integrated
  639.     circuits and was available for delivery in (June 1965? this date
  640.     must be wrong!).
  641.  
  642.     The LINC-8 and PDP-12 could run essentially any PDP-8 or LINC
  643.     software, but because they included instructions for switching
  644.     between modes, a third body of software was developed that required
  645.     both modes.
  646.  
  647.     One feature of LINC and LINC-8 software is the common use of the
  648.     graphic display for input-output.  These machines were some of the
  649.     first to include such a display as a standard component, and many
  650.     programs used the knobs on the analog to digital converter to move
  651.     a cursor on the display in the way we now use a mouse.
  652.  
  653.     LAP, the Linc Assembly Program, was the dominant assembler used
  654.     on the LINC.  WISAL (WISconson Assembly Language) or LAP6-W was
  655.     the version of this assembler that survived to run on the PDP-12.
  656.     Curiously, this includes a PDP-8 assembler written in LINC code.
  657.  
  658.     LAP6-DIAL (Display Interactive Assembly Language) evolved from
  659.     this on the PDP-12 to became the dominant operating system for
  660.     the PDP-12.  The 8K version of this is DIAL MS (Mass Storage),
  661.     even if it has only two LINCtape drives.  These were eventually
  662.     displaced by the OS/8 variant known as OS/12.
  663.  
  664.  
  665. Where can I get a PDP-8 today?
  666.  
  667.     The CESI machine may still be on the market, for a high price, but
  668.     generally, you can't buy a new PDP-8 anymore.  There are quite a
  669.     few PDP-8 machines to be found in odd places on the used equipment
  670.     market.  They were widely incorporated into products such as
  671.     computer controlled machine tools, X-ray diffraction machines, and
  672.     other industrial and lab equipment.  Many of them were sold under
  673.     the EduSystem marketing program to public schools and universities,
  674.     and others were used to control laboratory instrumentation.
  675.     After about 1976, Reuters bought on the order of 10,000 OMNIBUS
  676.     based machines per year, with perhaps 2000 per year going to other
  677.     customers.
  678.  
  679.     If you can't get real hardware, you can get emulators.  Over the
  680.     years, many PDP-8 emulators have been written; the best of these
  681.     are indistinguishable from the real machine from a software
  682.     prespective, and on a modern high-speed RISC platform, these
  683.     frequently outperform the hardware they are emulating.
  684.  
  685.     Finally, you can always build your own.  The textbook "The Art of
  686.     Digital Design," second edition, by Franklin Prosser and David
  687.     Winkel (Prentice-Hall, 1987, ISBN 0-13-046780-4) uses the design
  688.     of a PDP-8 as a running example.  Many students who have used this
  689.     book were required to build working PDP-8 systems as lab projects.
  690.  
  691.  
  692. Where can I get PDP-8 documentation?
  693.  
  694.     Part II of this FAQ cites the key documents published by DEC
  695.     describing each model of the PDP-8.  These are all out of print,
  696.     and DEC was in the habit of printing much of their documentation
  697.     on newsprint with paperback bindings, which is to say, surviving
  698.     copies tend to be yellow and brittle.  DEC distributed huge
  699.     numbers of catalogs and programming handbooks in this inexpensive
  700.     paperback format, and these circulate widely on the second-hand
  701.     market.  When research laboratories and electronics shops are
  702.     being cleaned out, it is still common to find a few dusty,
  703.     yellowed copies of these books being thrown out.
  704.  
  705.     Douglas Jones has made a small number of bound photocopies of
  706.     DEC's 1973 introduction to programming, perhaps the definitive
  707.     introduction to the PDP-8, and the other early DEC handbooks need
  708.     similar treatment before they all crumble.
  709.  
  710.     Maintenance manuals are harder to find, but more valuable.  If you
  711.     need one, you usually need to find someone willing to photocopy
  712.     one of the few surviving copies.  Fortunately, DEC has been
  713.     friendly to collectors, granting fairly broad letters of permission
  714.     to reprint obsolete documentation, and the network makes if fairly
  715.     easy to find someone who has the documentation you need and can
  716.     get copies.
  717.  
  718.  
  719. What operating systems were written for the PDP-8?
  720.  
  721.     A punched paper-tape library of stand-alone programs was commonly
  722.     used with the smallest (diskless and tapeless) configurations from
  723.     the beginning up through the mid 1970's.  Many paper tapes from
  724.     this library survive to the present at various sites!  The minimum
  725.     configuration expected by these tapes is a CPU with 4K memory,
  726.     and a teletype ASR 33 with paper tape reader and punch.
  727.  
  728.     The DECtape Library System was an early DECtape oriented save and
  729.     restore system that allowed a reel of tape to hold a directory of
  730.     named files that could be loaded and run on a 4K system.
  731.     Eventually, this supported a very limited tape-based text editor
  732.     for on-line program development.  This did not use the DECtape's
  733.     block addressable character; the software was based on minimal
  734.     ports of the paper-tape based software described above.
  735.  
  736.     The 4K Disk Monitor System provided slightly better facilities.
  737.     This supported on-line program development and it worked with any
  738.     device that supported 129 word blocks (DECtape, the DF32 disk, or
  739.     the RF08 disk).
  740.  
  741.     MS/8 or the R-L Monitor System, was developed starting in 1966
  742.     and submitted to DECUS in 1970.  This was a disk oriented system,
  743.     faster than the above, with tricks to make it run quickly on
  744.     DECtape based systems.
  745.  
  746.     POLY BASIC was a BASIC only system submitted to DECUS and later
  747.     sold by DEC as part of its EduSystem marketing program.
  748.  
  749.     P?S/8 was developed starting in 1971 from an MS/8 foundation.  It
  750.     runs on minimal PDP-8 configurations, supports somewhat device
  751.     independant I/O and requires a random-access device for the file
  752.     system (DECtape is random-access!).  P?S/8 runs compatably on
  753.     most PDP-8 machines including DECmates, excepting only the PDP-8/S
  754.     and PDP-5.  P?S/8 is still being developed!
  755.  
  756.     OS/8, developed in parallel with P?S/8, became the main PDP-8
  757.     programming environment sold by DEC.  The minimum configuration
  758.     required was 8K words and a random-access device to hold the
  759.     system.  For some devices, OS/8 requires 12K.  There are a large
  760.     number of OS/8 versions that are not quite portable across various
  761.     subsets of the PDP-8 family.  OS/78 was developed from OS/8 to
  762.     support the DECmate I, and OS/278 was developed for the later
  763.     DECmate machines.  These have unnecessary incompatabilities with
  764.     earlier versions of OS/8 and with pre-Omnibus machines.  There are
  765.     also stories that DEC included code in either OS/8 or one of its
  766.     predecessors to make it incompatable with the DCC-112.
  767.  
  768.     OS8 (no slash) may still be viable.  It requires 8K of main memory,
  769.     an extended arithmetic unit, and DECtape hardware.  Unlike most
  770.     PDP-8 operating systems, it uses a directory structure on DECtape
  771.     compatable with that used on the PDP-10.
  772.  
  773.     TSS/8 was developed in 1968 as a timesharing system.  It required
  774.     a minimum of 12K words of memory and a swapping device.  It was
  775.     the standard operating system on the EduSystem 50 which was sold
  776.     to many small colleges and large public school systems.  Each user
  777.     gets a virtual 4K PDP-8; many of the utilities users ran on these
  778.     virtual machines were only slightly modified versions of utilities
  779.     from the Disk Monitor System or paper-tape environments.
  780.  
  781.     Other timesharing systems developed for the PDP-8 include MULTI-8,
  782.     ETOS, MULTOS, and OMNI-8; some of these required nonstandard
  783.     memory management hardware.  By the mid 1970's, some of these were
  784.     true virtual machine operating systems in the same spirit as IBM's
  785.     VM-370; they typically supported some version of OS/8 running on a
  786.     32K virtual PDP-8 assigned to each user.  Some could support
  787.     different user operating systems on each virtual machine, others
  788.     supported addressing of more than 4K for data, but limited code to
  789.     field zero of a process's virtual memory.
  790.  
  791.     CAPS-8 was a cassette based operating system supporting PAL and
  792.     BASIC.  There are OS/8 utilities to manipulate CAPS-8 cassettes,
  793.     and the file format on cassette is compatible with a PDP-11 based
  794.     system called CAPS-11.
  795.  
  796.     WPS was DEC's word processing system, developed on the 8/E and
  797.     widely used on the 1980's vintage machines with a special WPS
  798.     keycaps replacing the standard keycaps on the keyboard.  It was
  799.     heavily promoted on the VT-78, and when the DECmates came out, DEC
  800.     began to suppress knowledge that DECmates could run anything else.
  801.     WPS-11 was a curious distributed system using a PDP-11 as a file
  802.     server for a cluster of VT-78 WPS systems.
  803.  
  804.     COS-310, DEC's commercial operating system for the PDP-8, supported
  805.     the DIBOL language.  COS-310 was a derivative of MS/8 and OS/8, but
  806.     with a new text file format.  The file system is almost the same as
  807.     OS/8, but dates are recorded differently, and a few applications
  808.     can even run under both COS and OS/8.  COS was the last operating
  809.     system other than WPS promoted by DEC for the DECmates.
  810.  
  811.  
  812. What programming languages are supported on the PDP-8
  813.  
  814.     The PAL family of assembly languages, particularly PAL III and PAL8
  815.     are as close to a standard assembly language as can be found for
  816.     the PDP-8.  These produce absolute object code and there are
  817.     versions of PAL for minimally configured machines, although these
  818.     have sever symbol table limitations.
  819.  
  820.     MACRO-8 was DEC's first macro assembly language for the PDP-8, but
  821.     it was rarely used outside the paper-tape environment.  MACREL and
  822.     SABR are assembly languages that produce relocatable output.  SABR
  823.     is the final pass for the ALICS II FORTRAN compiler, and MACREL was
  824.     developed in (unfulfilled) anticipation of similar use.  MACREL was
  825.     heavily used by the DECmate group at DEC.
  826.  
  827.     There was also RALF, the relocatable assembler supporting RTPS
  828.     FORTRAN, and FLAP, an absolute assembler derived from RALF.
  829.     Both SABR and RALF/FALP are assemblers that handle their intended
  830.     applications but have quirky and incompatible syntax.
  831.  
  832.     A subset of FORTRAN was supported on both the PDP-5 and the
  833.     original PDP-8.  Surviving documentation describes a DEC compiler
  834.     from 1964 and a compiler written by Information Control Systems
  835.     from 1968.  The latter, ALICS II FORTRAN, was originally a paper
  836.     tape based compiler, but it forms the basis of the OS/8 8K FORTRAN
  837.     compiler, and was also adapted to the Disk Monitor System.
  838.  
  839.     RTPS FORTRAN required 8K and a floating point processor; it had
  840.     real-time extensions and was a full implementation of FORTRAN IV
  841.     (also known as ANSI FORTRAN 66).  OS/8 F4 is RTPS FORTRAN stripped
  842.     of the requirement for hardware floating point (if the hardware is
  843.     missing, it uses software emulation).
  844.  
  845.     FOCAL, an interpretive language comparable to BASIC, was available
  846.     on all models of the family, including the PDP-5 and PDP-8/S.
  847.     Varsions of FOCAL run under PS/8, P?S/8 and other systems.
  848.  
  849.     Many versions of BASIC were also available, from DEC and other
  850.     sources.  DEC BASIC was widely used on PDP-8 systems sold under the
  851.     EduSystem marketing program.  A paper-tape version was available
  852.     that ran in 4K, versions for OS/8 and TSS/8, an 8K stand-alone
  853.     time-sharing version, and others.
  854.  
  855.     DIBOL was DEC's attempt at competing with COBOL in the commercial
  856.     arena.  It was originally implemented under MS/8 but most versions
  857.     were sold to run under the COS operating system.
  858.  
  859.     Algol was available from a fairly early date.
  860.  
  861.     At least two Pascal compilers were developed for the PDP-8.  One
  862.     was a Pascal-S interpreter, written in assembler, the other was a
  863.     Pascal-P compiler with a P-code interpreter written in assembler.
  864.  
  865.     At least two LISP interpreters were written for the PDP-8; one
  866.     runs in 4K, the other can use up to 16K.
  867.  
  868.     POLY SNOBOL was a version of SNOBOL that was somewhere between
  869.     Griswald's definitions of SNOBOL 3 and SNOBOL 4.
  870.  
  871.     TECO, the text editor, is available, and is also a general purpose
  872.     language, and someone is working on a PDP-8 C.  The story of TECO
  873.     on the PDP-8 is convoluted.  Russ Ham implemented TECO under his
  874.     OS8 (without a slash) system.  This version of TECO was pirated by
  875.     the Oregon Museum of Science and Industry (OMSI), where the system
  876.     was ported to PS/8.  Richard Lary and Stan Rabinowitz made it
  877.     more compatible with other versions of TECO, and the result of
  878.     work is the version distributed by DECUS.  RT-11 TECO for the
  879.     PDP-11 is a port of this code.
  880.  
  881.  
  882. Where can I get PDP-8 software?
  883.  
  884.     DECUS, the DEC User Society, is still alive and well, and their
  885.     submission form still lists PAL8 and FOCAL as languages in which
  886.     they accept submissions!  The DECUS library is available on-line
  887.     by anonymous FTP at acfcluster.nyu.edu in subdirectory DECUS.
  888.     To quote the README file from the current on-line catalog, "Items
  889.     from older DECUS Library catalogs are still also available
  890.     (provided their media can still be read), but machine readable
  891.     catalog information is not available for these."  Direct questions
  892.     by E-mail to INFORMATION@DECUS.ORG.
  893.  
  894.     The following anonymous FTP sites contain publically accessable
  895.     archives of PDP-8 software and other information:
  896.  
  897.       ftp.telebit.com:/pub/pdp8
  898.       ftp.update.uu.se:/pub/pdp8
  899.       sunsite.unc.edu:/pub/academic/computer-science/history/pdp-8.
  900.  
  901.     The latter archive also maintains an archive of traffic in
  902.     alt.sys.pdp8 in the directory ...pdp8/usenet.
  903.  
  904.  
  905. Where can I get additional information?
  906.  
  907.     The file WHAT-IS-A-PDP8, by Charles Lasner contains considerable
  908.     additional information; this file is included in the telebit.com
  909.     archive cited above.  This file gives details of every PDP-8 model
  910.     including the small quirks and incompatabilities that (to be
  911.     generous) allow software to determine which model it is running on.
  912.     These quirks also make it all too easy for careless programmers to
  913.     write almost portable software with very obscure bugs.
  914.  
  915.     The mailing list pdp8-lovers@ai.mit.edu reaches a number of PDP-8
  916.     owners and users, not all of whom have USENET feeds.  The USENET
  917.     newsgroup alt.sys.pdp8 needs to be gatewayed to this mailing list.
  918.  
  919.     Many "archival" books have included fairly complete descriptions
  920.     of the PDP-8; among them, "Computer Architecture, Readings and
  921.     Examples" by Gordon Bell and Allen Newell is among the most
  922.     accurate and complete (but difficult to read).
  923.  
  924.  
  925. What use is a PDP-8 today?
  926.  
  927.     What use is a Model T today?  Collectors of both come in the same
  928.     basic classes.  First, there are antiquarians who keep an old one
  929.     in the garage, polished and restored to new condition but hardly
  930.     ever used.  Once a year, they warm it up and use it, just to prove
  931.     that it still works, but they don't make much practical use of it.
  932.  
  933.     PDP-8 systems maintained by antiquarians are frequently in beautiful
  934.     shape.  Antiquarians worry about dust, chipped paint, and missing
  935.     switches, and they establish newsgroups and mailing lists to help
  936.     them locate parts and the advice needed to fix their machines.
  937.  
  938.     In the second class are those who find old machines and soup them
  939.     up, replacing major parts to make a hotrod that only looks like
  940.     the original from the outside, or keeping the old mechanism and
  941.     putting it to uses that were never intended.  Some PDP-8 owners,
  942.     for example, have built PDP-8 systems with modern SCSI disk
  943.     interfaces!  There is serious interest in some quarters in
  944.     constructing an omnibus board that would support an IDE disk of
  945.     the variety that was mass-produced for the IBM PC/AT.
  946.  
  947.     Last, there are the old folks who still use their old machines for
  948.     their intended purposes long after any sane economic analysis
  949.     would recommend such use.  If it ain't broke, don't fix it, and if
  950.     it can be fixed, why bother replacing it?  Both Model T Fords and
  951.     the classic PDP-8 machines are simple enough that end users can
  952.     maintain and repair them indefinitely.  All you need to keep a
  953.     vintage -8 running are a stock of inexpensive silicon diodes and
  954.     a stock of 2N3639B or better, 2N3640 transistors.
  955.  
  956.     Unlike most modern personal computers, PDP-8 systems were routinely
  957.     sold with complete maintenance manuals; these included schematic
  958.     diagrams, explanations of not only how to use the devices, but how
  959.     they are built, and suggestions to those considering building their
  960.     own peripherals.  Compared with many so-called "open systems" of
  961.     today, the PDP-8 was far better documented and far more open.
  962.  
  963.     Finally, the PDP-8 is such a minimal machine that it is an excellent
  964.     introduction to how computers really work.  Over the years, many
  965.     students have built complete working PDP-8 systems from scratch as
  966.     lab projects, and the I/O environment on a PDP-8 is simple enough
  967.     that it is a very appropriate environment for learning operating
  968.     system programming techniques.
  969.  
  970. Who's Who?
  971.  
  972.     C. Gordon Bell is generally credited with the original design of
  973.     the PDP-8.  He was also involved with recommending what became
  974.     the PDP-11 when that design was competing with the design that
  975.     probably became the NOVA, and as vice president of research, he
  976.     oversaw the development of the DEC VAX family.
  977.  
  978.     Alan Kotok worked with Bell in working up the original
  979.     specifications of the PDP-8.
  980.  
  981.     Ben Gurley designed most of the big DEC machines, starting with
  982.     the PDP-1.  The actual design work on the -8, however, was done
  983.     by Ed deCastro, who later founded Data General to build the Nova.
  984.  
  985.     Ken Olson ran DEC from the beginning.
  986.  
  987.     Ed Yourdon, who later became well known as a programming methodology
  988.     guru, hacked up the PAL III assembler for the -8, based on PAL II.
  989.  
  990.     Charles Lasner developed P?S/8, and he is widely known as the grand
  991.     old man of the movement to preserve these historic machines.
  992.  
  993.     Wesley Clark developed the LINC while working at Lincoln Labs;
  994.     this was the first 12 bit minicomputer built with DEC parts.
  995.  
  996.     Mary Allen Wilkes Clark developed the early LAP programs for the
  997.     LINC.
  998.  
  999.     Douglas W. Jones wrote this FAQ, but prior to the summer of 1992,
  1000.     he'd never used a PDP-8.  He has also written a report on how to
  1001.     photocopy and archivally bind ailing paperback books such as DEC's
  1002.     handouts, and he has written a PAL-like cross assembler in C.
  1003.