home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1993 #1 / NN_1993_1.iso / spool / alt / sys / pdp8 / 128 < prev    next >
Encoding:
Text File  |  1993-01-08  |  31.7 KB  |  717 lines

  1. Newsgroups: alt.sys.pdp8
  2. Path: sparky!uunet!news.uiowa.edu!news
  3. From: jones@pyrite.cs.uiowa.edu (Douglas W. Jones,201H MLH,3193350740,3193382879)
  4. Subject: FAQ
  5. Sender: news@news.uiowa.edu (News)
  6. Message-ID: <1993Jan8.161622.29829@news.uiowa.edu>
  7. Date: Fri, 8 Jan 1993 16:16:22 GMT
  8. Nntp-Posting-Host: pyrite.cs.uiowa.edu
  9. Organization: University of Iowa, Iowa City, IA, USA
  10. Lines: 705
  11.  
  12. Frequently Asked Questions about the PDP-8
  13.  
  14.     By Douglas Jones, jones@cs.uiowa.edu
  15.     (with help from many folks)
  16.  
  17.  
  18. Contents
  19.  
  20.     What is a PDP?
  21.     What is a PDP-8?
  22.     What is the PDP-8 instruction set?
  23.     What does PDP-8 assembly language look like?
  24.     What different PDP-8 models were made?
  25.     What about the LINC/8 and PDP-12?
  26.     Where can I get a PDP-8 today?
  27.     Where can I get PDP-8 documentation?
  28.     What operating systems were written for the PDP-8?
  29.     What programming languages were supported on the PDP-8
  30.     Where can I get PDP-8 software?
  31.     Where can I get additional information?
  32.     What use is a PDP-8 today?
  33.  
  34.  
  35. What is a PDP?
  36.  
  37.     For over a decade, all programmable digital computers sold by
  38.     Digital Equipment Corporation were sold as Programmable Data
  39.     Processors (PDPs) instead of computers.  I have DEC documentation
  40.     that actually calls them "PDPs", so this is not improper usage.
  41.     DEC's first computer, the PDP-1, had a selling price of only
  42.     $120,000 at a time when competing machines were selling for over
  43.     $1,000,000.  Everyone (DEC's stockholders included) knew that
  44.     computers were big and expensive and needed a computer center and
  45.     a large staff, and apparently, DEC chose to avoid dealing with
  46.     these stereotypes by entirely avoiding the term "computer".
  47.  
  48.     DEC built a number of different computers under the PDP label, with
  49.     a huge range of price and performance.  The largest of these are
  50.     fully worthy of large computer centers with big support staffs.
  51.     Here is the list of PDP computers:
  52.  
  53.     MODEL  DATE  PRICE     BITS  COMMENTS
  54.     =====  ====  ========  ====  =====
  55.     PDP-1  1960  $120,000  18    DEC's first computer
  56.     PDP-2                  24    Never built?
  57.     PDP-3                  36    Only 1 was ever built.
  58.     PDP-4  1962            18    DEC used these in their factory.
  59.     PDP-5  1963   $30,000  12    The ancestor of the PDP-8.
  60.     PDP-6  1964            36    A really big computer; only 23 built.
  61.     PDP-7  1965  ~$60,000  18    Widely used for real-time control.
  62.     PDP-8  1965   $18,500  12    The smallest and cheapest PDP.
  63.     PDP-9  1966   $35,000  18    An upgrade of the PDP-7.
  64.     PDP-10 1967            36    A PDP-6 revival, great for timesharing.
  65.     PDP-11 1970   $10,800  16    DEC's first and only 16 bit computer.
  66.     PDP-12 1969   $27,900  12    Originally known as the LINC-8/I.
  67.     PDP-13                       Bad luck, there was no such machine.
  68.     PDP-14                       A ROM-based controller, not a computer!
  69.     PDP-15 1970   $16,500  18    A TTL upgrade of the PDP-9.
  70.     PDP-16 1972            8/16  A register-transfer module system.
  71.  
  72.     Corrections and additions to this list are welcome!  The prices
  73.     given above are the prices for minimal systems in the year the
  74.     machine was first introduced.  The bits column indicates the word
  75.     size.  It's worth noting that the DEC PDP-10 became the
  76.     DECSYSTEM-20 as a result of marketing considerations, and DEC's
  77.     VAX series of computers began as the Virtual Address eXtension of
  78.     the PDP-11/78.
  79.  
  80.     Today, all of the PDP machines are in DEC's corporate past, with the
  81.     exception of the PDP-11 family of minicomputers and microprocessors.
  82.     
  83.  
  84. What is a PDP-8?
  85.  
  86.     The PDP-8 family of minicomputers were built by Digital Equipment
  87.     corporation between 1965 and 1990 (if you include the PDP-5, the
  88.     starting date should be 1963).  These machines were characterized
  89.     by a 12 bit word, with no hardware byte structure, a 4K minimum
  90.     memory configuration, and a simple but powerful instruction set.
  91.     By 1970, the PDP-8 was the best selling computer in the world, and
  92.     many models of the PDP-8 set new records as the least expensive
  93.     computer on the market.  The PDP-8 has been described as the
  94.     model-T of the computer industry.
  95.  
  96.     C. Gordon Bell (who later was chief architect of the PDP-11 and
  97.     who, as Vice President, oversaw the development of the VAX) says
  98.     that the basic idea of the PDP-8 was not really original with him.
  99.     He gives credit to Seymour Cray (of CDC and later Cray) for the
  100.     idea of a single-accumulator 12 bit minicomputer.  Cray's CDC 160
  101.     family, sold starting around 1959, certainly was a very similar 12
  102.     bit architecture, and the peripheral processors of Cray's first
  103.     supercomputer, the CDC 6600, are also familiar to PDP-8
  104.     programmers.
  105.  
  106.     Note that the CDC 160 and CDC 6600 peripheral processors had
  107.     6 basic addressing modes, with variable length instruction words
  108.     and other features that were far from the simple elegance of the
  109.     PDP-8.  Despite its many modes, the CDC architecture lacked the
  110.     notion of current page addressing, and the result is that for
  111.     examples that don't involve indexing, PDP-8 code is frequently
  112.     just as effective as the code on the CDC 12-bit minicomputers.
  113.  
  114.  
  115. What is the PDP-8 instruction set?
  116.  
  117.     The PDP-8 word size is 12 bits, and the basic memory is 4K
  118.     words.  The minimal CPU contained the following visible registers:
  119.  
  120.         PC - the program counter, 12 bits.
  121.         AC - the accumulator, 12 bits.
  122.         L  - the link, 1 bit, commonly prefixed to AC as <L,AC>.
  123.  
  124.     It is worth noting that many operations such as procedure linkage
  125.     and indexing which are usually thought of as involving registers
  126.     were done with memory on the PDP-8 family.
  127.  
  128.     Instruction words are organized as follows:
  129.                  _ _ _ _ _ _ _ _ _ _ _ _
  130.         |_|_|_|_|_|_|_|_|_|_|_|_|
  131.                 |     | | |             |
  132.                 |  op |i|z|    addr     |
  133.  
  134.         op   - the opcode.
  135.         i    - the indirect bit (0 = direct, 1 = indirect).
  136.         z    - the page bit (0 = page zero, 1 = current page).
  137.         addr - the word in page.
  138.  
  139.     The top 5 bits of the 12 bit program counter give the current page,
  140.     and memory addressing is also complicated by the fact that absolute
  141.     memory locations 8 through 15 are incremented prior to use when
  142.     used for indirect addressing.  These locations are called the
  143.     auto-index registers (despite the fact that they are in memory),
  144.     and they allow the formulation of very tightly coded array
  145.     operations.
  146.  
  147.     The basic instructions are:
  148.  
  149.         000 - AND - and operand with AC.
  150.         001 - TAD - add operand to <L,AC> (a 13 bit value).
  151.         010 - ISZ - increment operand and skip if result is zero.
  152.         011 - DCA - deposit AC in memory and clear AC.
  153.         100 - JMS - jump to subroutine.
  154.         101 - JMP - jump.
  155.         110 - IOT - input/output transfer.
  156.         111 - OPR - microcoded operations.
  157.  
  158.     The ISZ and other skip instructions conditionally skip the
  159.     next instruction in sequence.  The subroutine calling sequence
  160.     involves putting the return address in relative word zero of the
  161.     subroutine, with execution starting with relative word one.
  162.     Return from subroutine is done with an indirect jump through the
  163.     return address.  Subroutines frequently increment their return
  164.     addresses to index through inline parameter lists or to provide
  165.     return codes by conditionally skipping the next instruction.
  166.  
  167.     The IOT instruction has the following form:
  168.                  _ _ _ _ _ _ _ _ _ _ _ _
  169.         |1|1|0|_|_|_|_|_|_|t|c|s|
  170.                 |     |           |     |
  171.                 |     |   device  | op  |
  172.  
  173.     The IOT instruction specifies one of 8 operations on one of 64
  174.     devices; typically (but not universally), each bit of the op field
  175.     evokes an operation as follows:  If the s bit is set, the
  176.     instruction causes a skip if the device is ready, if the c bit is
  177.     set, the device ready status is reset and, for some devices, AC is
  178.     also cleared, and if the t bit is set, data is either ored with AC
  179.     or output from AC to the device.
  180.  
  181.     IOT instructions may be used to initiate data break transfers from
  182.     block devices such as disk or tape.  The term "data break" was,
  183.     for years, DEC's preferred term for cycle-stealing direct-memory-
  184.     access data transfers.
  185.  
  186.     Some CPU functions are accessed only by IOT instructions.  For
  187.     example, interrupt enable and disable are IOT instructions, as
  188.     are instructions controlling the optional memory management
  189.     unit that is needed to address more than 4K words.
  190.  
  191.     A wide variety of operations are available through the OPR
  192.     microcoded instructions:
  193.                  _ _ _ _ _ _ _ _ _ _ _ _
  194.     Group 1 |1|1|1|0|_|_|_|_|_|_|_|_|
  195.                  1                - CLA - clear AC
  196.                    1              - CLL - clear the L bit
  197.                          1            - CMA - ones complement AC
  198.                            1          - CML - complement L bit
  199.                                    1  - IAC - increment <L,AC>
  200.                              1 0 0    - RAR - rotate <L,AC> right
  201.                              0 1 0    - RAL - rotate <L,AC> left
  202.                          1 0 1    - RTR - rotate <L,AC> right twice
  203.                          0 1 1    - RTL - rotate <L,AC> left twice
  204.  
  205.     In general, the above operations can be combined by oring the
  206.     bit patterns for the desired operations into a single instruction.
  207.     If none of the bits are set, the result is the NOP instruction.
  208.     When these operations are combined, they operate top to bottom
  209.     in the order shown above.  The exception to this is that IAC cannot
  210.     be combined with the rotate operations on some models, and attempts
  211.     to combine rotate operations have different effects from one model
  212.     to another (for example, on the PDP-8/E, the rotate code 001 means
  213.     swap 6 bit bytes in the accumulator, while previous models took
  214.     this to mean something like "shift neither left nor right 2 bits").
  215.                  _ _ _ _ _ _ _ _ _ _ _ _
  216.     Group 2 |1|1|1|1|_|_|_|_|_|_|_|0|
  217.                        1     0        - SMA - skip on AC < 0  \
  218.                          1   0        - SZA - skip on AC = 0   > or
  219.                            1 0        - SNL - skip on L /= 0  /
  220.                        0 0 0 1        - SKP - skip unconditionally
  221.                        1     1        - SPA - skip on AC >= 0 \
  222.                          1   1        - SNA - skip on AC /= 0  > and
  223.                            1 1        - SZL - skip on L = 0   /
  224.                      1                - CLA - clear AC
  225.                                1      - OSR - or switches with AC
  226.                                  1    - HLT - halt
  227.  
  228.     The above operations may be combined by oring them together,
  229.     except that there are two distinct incompatible groups of skip
  230.     instructions.  When combined, SMA, SZA and SNL, skip if one or the
  231.     other of the indicated conditions are true, while SPA, SNA and SZL
  232.     skip if all of the indicated conditions are true (logical and).
  233.     When combined, these operate top to bottom in the order shown;
  234.     thus, the accumulator may be tested and then cleared.  Setting
  235.     the halt bit in a skip instruction is a crude but useful way to
  236.     set a breakpoint for front-panel debugging.  If none of the bits
  237.     are set, the result is an alternative form of no-op.
  238.  
  239.     A third group of operate microinstructions (with a 1 in the least
  240.     significant bit) deals with the optional extended arithmetic
  241.     element to allow such things as hardware multiply and divide, 24
  242.     bit shift operations, and normalize.  These operations involve
  243.     an additional data register, MQ or multiplier quotient, and a small
  244.     step count register.  On the PDP-8/E and successors, MQ and the
  245.     instructions for loading and storing it were always present, even
  246.     when the EAE was absent, and the EAE was extended to provide a
  247.     useful variety of 24 bit arithmetic operations.
  248.  
  249.  
  250. What does PDP-8 assembly language look like?
  251.  
  252.     Here is an example:
  253.  
  254.     START,    CLA CLL        / Clear everything
  255.         TAD    X    / Load X
  256.         AND I    Y    / And with the value pointed to by Y
  257.         DCA    X    / Store in X
  258.         HLT        / Halt
  259.  
  260.     X,    1         / A variable
  261.     Y,    7         / A pointer
  262.  
  263.     Note that labels are terminated by a comma, and comments are
  264.     separated from the code by a slash.  There are no fixed fields
  265.     or column restrictions.  The "CLA CLL" instruction on the first
  266.     line is an example of the microcoding of two of the Group 1
  267.     operate instructions.  CLA alone has the code 7200 (octal),
  268.     while CLL has the code 7100; combining these as "CLA CLL" produces
  269.     7300, the instruction to clear both AC and the link bit.  As a
  270.     general rule, except when memory reference instructions are
  271.     involved, the assembler simply ors together the values of all
  272.     blank separated fields between the label and comment.
  273.     
  274.     Indirection is indicated by the special symbol I in the operand
  275.     field, as in the third line of the example.  The typical PDP-8
  276.     assembler has no explicit notation to distinguish between page zero
  277.     and current page addresses.  Instead, the assembler is expected to
  278.     note the page holding the operand and automatically generate the
  279.     appropriate mode.  If the operand is neither in the current page
  280.     nor page zero, some assemblers will raise an error, others will
  281.     automatically generate an indirect pointer to the off-page operand
  282.     (This feature should be avoided when it is available).
  283.  
  284.     Note, in the final two lines of the example, that there is no
  285.     "define constant" pseudo-operation.  Instead, where a constant
  286.     is to be assembled into memory, the constant takes the place of
  287.     the op-code field.
  288.  
  289.     The PDP-8 has no immediate addressing mode, but the assemblers
  290.     provide a mechanism to allow the programmer to ignore this lack:
  291.  
  292.         TAD    (3)    / add 3, from memory on the current page.
  293.         TAD    [5]    / add 5, from memory on page zero.
  294.         JMP I    (LAB)    / jump indirect through the address of LAB.
  295.  
  296.     The assembler automatically fills the end of each page with
  297.     constants defined in this way that have been accumulated during
  298.     the assembly of that page.
  299.  
  300.     Arithmetic is allowed in operand fields and constant definitions,
  301.     but expressions are evaluated in strict left-to-right order, as
  302.     shown below:
  303.  
  304.         TAD    X+1    / add the contents of the location after X.
  305.         TAD    (X-1)    / add the address of the location before X.
  306.  
  307.     Other operators allowed included and (&), or (!), multiply (^) and
  308.     divide (%).
  309.     
  310.     Generally, identifiers are not limited in length, but only the
  311.     first 6 characters are significant.  All numeric constants are
  312.     in octal, unless a DECIMAL pseudo-op has been used to change number
  313.     base (change back with the OCTAL pseudo-op).
  314.  
  315.     Other assembly language features are illustrated below:
  316.  
  317.     / Comments may stand on lines by themselves
  318.                 / Blank lines are allowed
  319.  
  320.     *200            / Set the assembly origin to 200 (octal)
  321.  
  322.     NL0002=    CLA CLL CML RTL    / Define new opcode NL0002.
  323.  
  324.         NL0002        / Use new opcode (load 0002 in AC)
  325.         JMP    .-1    / Jump to the previous instruction
  326.  
  327.     X1=    10        / Define X1 (an auto-index register address)
  328.  
  329.         TAD I    X1    / Use autoindex register 1
  330.  
  331.         IAC; RAL    / Multiple instructions on one line
  332.  
  333.     $            / End of assembly
  334.  
  335.     The assembly file ends with a line containing a $ (dollar sign)
  336.     not in a comment field.
  337.  
  338.  
  339. What different PDP-8 models were made?
  340.  
  341.     The following basic models of the PDP-8 were sold by DEC:
  342.  
  343.     MODEL    DATES    SALES   COST    TECHNOLOGY    REMARKS
  344.  
  345.     PDP-5    63-65            Transistor    Limited compatibility
  346.     PDP-8    65-68     >1000    $18,500    Transistor    Table-top or rack
  347.     LINC-8    66-69    153    $38,500    Transistor    Rack only
  348.     PDP-8/S    66-70?    >1000?    $10,000    Transistor     Incompatable, slow!
  349.     PDP-8/I    68-70?    >2000?    $12,800    TTL        Pedistal or rack
  350.     PDP-8/L    68-70?    >2000?     $8,500    TTL        Scaled down 8/I (1)
  351.     PDP-12    69-71    3500    $27,900    TTL        Followup to LINC-8
  352.     PDP-8/E    70-78    >10K?     $7,390    TTL MSI    Omnibus    (2)
  353.     PDP-8/F    72-78?    >10K?    <$7K    TTL MSI Omnibus Based on 8/E CPU
  354.     PDP-8/M    72-78?    >10K?    <$7K    TTL MSI Omnibus OEM version of 8/F
  355.     PDP-8/A    75-84?    >10K?    <$7K    TTL LSI Omnibus New CPU or 8/E CPU
  356.     VT78    78-80    >    ?    Microprocessor  Intersil IM6100
  357.     Dm I (3)80-84            Microprocessor    Intersil IM6120
  358.     Dm II    82-86            Microprocessor    Intersil IM6120
  359.     Dm III    84-90            Microprocessor
  360.     Dm III+    85-90            Microprocessor
  361.             (4)
  362.  
  363.     Notes   (1) Memory upgrade to 32K words was eventually sold.
  364.         (2) The PDP-8/E is considered by many to be the definitive
  365.             PDP-8.  If the PDP-8 was the model-T of the computer
  366.             industry, perhaps the PDP-8/E was the model-A.
  367.         (3) Dm stands for DECmate.
  368.         (4) The total sales figure for the PDP-8 family is
  369.             estimated at over 300,000 machines.  Over 8500
  370.             of these were sold prior to 1970.
  371.  
  372.     When possible, the costs given above are for a minimal system
  373.     consisting of 4K of main memory, a console teletype, and the
  374.     minimal software needed to use the machine (FOCAL, BASIC, or a
  375.     paper-tape based assembler).  Additional information on costs
  376.     and production is needed!
  377.  
  378.     The above list does not include many PDP-8 variants sold by DEC
  379.     to meet the needs of various special users.  For example, the
  380.     Industrial-8 was really just a PDP-8/E with a different nameplate
  381.     and color scheme.  Burger King had thousands of PDP-8/M based
  382.     point-of-sale systems with no standard peripherals.  In addition,
  383.     DEC made many peripheral controllers for the PDP-11 and PDP-15
  384.     that used IM6100 microprocessors.
  385.  
  386.     The following PDP-8 compatible or semi-compatible machines were
  387.     made and sold by others; very little is known about many of these:
  388.  
  389.     MODEL        DATE    MAKER, NOTES
  390.  
  391.     MP-12        6?    Fabritek
  392.     TPA        68?    Hungarian, possibly a DEC PDP-8/L in drag
  393.     DCC-112        70-71    Digital Computer Controls
  394.     DCC-112H    71    Digital Computer Controls
  395.     6100 Sampler    7?    Intersil, their IM6100 promotional kit
  396.     Intercept    7?    Intersil, based on IM6100
  397.     Intercept Jr    7?    Intersil, based on IM6100
  398.     SBC-8        84-88    CESI, Based on IM6120, SCSI bus
  399.     
  400.  
  401. What about the LINC/8 and PDP-12?
  402.  
  403.     Lincoln Labs developed the LINC, or Laboratory INstrumentation
  404.     Computer, under a grant from the National Institute of Health in
  405.     the early 1960's.  This computer was built using DEC modules,
  406.     and along with the CDC 160, it paved the way for the PDP-5 and
  407.     PDP-8.
  408.  
  409.     When compared with the PDP-8, the LINC instruction set was not
  410.     as well suited for general purpose computation, but far better
  411.     suited for complex data acquisition and control applications.
  412.  
  413.     Within a year of the introduction of the PDP-8, DEC released the
  414.     LINC-8, a machine that combined a PDP-8 with a LINC in one
  415.     package.  This was not a dual processor, in the sense of allowing
  416.     both machines to execute in parallel, but rather, a machine with
  417.     two operating modes, LINC-mode and PDP-8-mode.
  418.  
  419.     The sales success of the LINC-8 led DEC to re-engineer the
  420.     machine using TTL logic in the late 1960's; the new version was
  421.     originally developed as the LINC-8/I, but it was sold as the
  422.     PDP-12; thousands were sold.  Both the LINC-8 and the PDP-12 had
  423.     impressive consoles, with full sets of lights and switches for
  424.     the registers of each processor.
  425.  
  426.     These machines could run essentially any PDP-8 or LINC software,
  427.     but because they included instrucitons for switching between
  428.     modes, a third body of software was developed that required
  429.     both instruction sets.
  430.  
  431.     One feature of LINC and LINC-8 software is the common use of the
  432.     graphic display for input-output.  These machines were some of
  433.     the first to include such a display as a standard component, and
  434.     many programs used the knobs on the analog to digital converter
  435.     to move a cursor on the display in the way we now use a mouse.
  436.  
  437.     LAP, the Linc Assembly Program, was the dominant assembler used
  438.     on the LINC.  WISAL (WISconson Assembly Language) or LAP6-W was
  439.     the version of this assembler that survived to run on the PDP-12.
  440.     Curiously, this includes a PDP-8 assembler written in LINC code.
  441.  
  442.     LAP-6 DIAL (Display Interactive Assembly Language) evolved from
  443.     this on the PDP-12 to became the dominant operating system for
  444.     the PDP-12.  The 8K version of this is DIAL MS (Mass Storage),
  445.     even if it has only two LINCtape drives.
  446.  
  447.  
  448. Where can I get a PDP-8 today?
  449.  
  450.     The CESI machine may still be on the market, for a high price, but
  451.     generally, you can't buy a new PDP-8 anymore.  There are quite a
  452.     few PDP-8 machines to be found in odd places on the used equipment
  453.     market.  They were widely incorporated into products such as
  454.     computer controlled machine tools, X-ray diffraction machines, and
  455.     other industrial and lab equipment.  Many of them were sold under
  456.     the EduSystem marketing program to public schools and universities,
  457.     and others were used to control laboratory instrumentation.
  458.     Reuters bought the tail end of the Omnibus based production run.
  459.  
  460.     If you can't get real hardware, you can get emulators.  Over the
  461.     years, many PDP-8 emulators have been written; the best of these
  462.     are indistinguishable from the real machine from a software
  463.     prespective, and on a modern high-speed RISC platform, these
  464.     frequently outperform the hardware they are emulating.
  465.  
  466.     It is worth noting that the PDP-8, when it was introduced in 1965,
  467.     was about as fast as was practical with the logic technology used
  468.     at the time.  The PDP-8/E was the last attempt at making a faster
  469.     PDP-8, and it was about as fast as the core memory then available
  470.     could handle without interleaving or other tricks.
  471.  
  472.  
  473. Where can I get PDP-8 documentation?
  474.  
  475.     The 1973 Introduction to Programming was probably DEC's definitive
  476.     manual for this family, but it is out of print, and DEC was in the
  477.     habit of printing much of their documentation on newsprint with
  478.     paperback bindings, which is to say, surviving copies tend to be
  479.     yellow and brittle.
  480.  
  481.     DEC distributed huge numbers of catalogs and programming handbooks
  482.     in this inexpensive paperback format, and these circulate widely
  483.     on the second-hand market.  When research laboratories and
  484.     electronics shops are being cleaned out, it is still common to
  485.     find a few dusty, yellowed copies of these books being thrown in
  486.     the trash.
  487.  
  488.     Maintenance manuals are harder to find, but more valuable.
  489.     Generally, you'll need to find someone who's willing to photocopy
  490.     one of the few surviving copies.  Fortunately, DEC has been
  491.     friendly to collectors, granting fairly broad letters of permission
  492.     to reprint obsolete documentation, and the network makes if fairly
  493.     easy to find someone who has the documentation you need and can
  494.     get copies.
  495.  
  496.  
  497. What operating systems were written for the PDP-8?
  498.  
  499.     A punched paper-tape library of stand-alone programs was commonly
  500.     used with the smallest (diskless and tapeless) configurations from
  501.     the beginning up through the late 1970's.  Many paper tapes from
  502.     this library survive to the present at various sites!  The minimum
  503.     configuration expected by these tapes is a CPU with 4K memory,
  504.     and a teletype ASR 33 with paper tape reader and punch.
  505.  
  506.     The DECtape Library System was an early DECtape oriented save and
  507.     restore system that allowed a reel of tape to hold a directory of
  508.     named files that could be loaded and run on a 4K system.
  509.     Eventually, this supported a very limited tape-based text editor
  510.     for on-line program development.  This did not use the DECtape's
  511.     block addressable character; the software was based on minimal
  512.     ports of the paper-tape based software described above.
  513.  
  514.     The 4K Disk Monitor System provided slightly better facilities.
  515.     This supported on-line program development and it worked with any
  516.     device that supported 129 word blocks (DECtape, the DF32 disk, or
  517.     the RF08 disk).
  518.  
  519.     MS/8 or the R-L Monitor System, developed starting in 1966 and
  520.     submitted to DECUS in 1970.  This was a disk oriented system,
  521.     faster than the above, with tricks to make it run quickly on
  522.     tape based systems.
  523.  
  524.     POLY BASIC, a BASIC only system submitted to DECUS and later sold
  525.     by DEC as part of its EduSystem marketing program.
  526.  
  527.     P?S/8, developed starting in 1971 from an MS/8 foundation.  Runs
  528.     on minimal PDP-8 configurations, supports device semi-independant
  529.     I/O and a file system on a random-access device, including DECtape.
  530.     P?S/8 runs compatably on most PDP-8 machines including DECmates,
  531.     excepting only the PDP-8/S and PDP-5.  P?S/8 is still being
  532.     developed!
  533.  
  534.     OS/8, developed in parallel with P?S/8, became the main PDP-8
  535.     programming environment sold by DEC.  The minimum configuration
  536.     required was 8K words and a random-access device to hold the
  537.     system.  For some devices, OS/8 requires 12K.  There are a large
  538.     number of OS/8 versions that are not quite portable across various
  539.     subsets of the PDP-8 family.
  540.  
  541.     TSS/8 was developed in 1968 as a timesharing system.  It required
  542.     a minimum of 12K words of memory and a swapping device.  It was
  543.     the standard operating system on the EduSystem 50 which was sold
  544.     to many small colleges and large public school systems.  Each user
  545.     gets a virtual 4K PDP-8; many of the utilities users ran on these
  546.     virtual machines were only slightly modified versions of utilities
  547.     from the Disk Monitor System.
  548.  
  549.     Other timesharing systems developed for the PDP-8 include MULTI-8,
  550.     ETOS (which required special hardware), MULTOS, and OMNI-8; these
  551.     were similar to TSS/8, and by the mid 1970's, many of these were
  552.     true virtual machine operating systems in the same spirit as IBM's
  553.     VM-370.  All are able to support OS/8 running on a 32K virtual
  554.     PDP-8 assigned to each user.  Some could support multiple user
  555.     operating systems, others required OS/8 as the user system.
  556.  
  557.     CAPS-8 was a cassette based operating system supporting PAL and
  558.     BASIC.  There are OS/8 utilities to manipulate CAPS-8 cassettes,
  559.     and the file format on cassette is compatible with a PDP-11 based
  560.     system called CAPS-11.
  561.  
  562.     WPS was DEC's word processing system that was widely used on the
  563.     1980's vintage machines with a special WPS keycaps replacing the
  564.     standard keycaps on the keyboard.  This was written in the 1970's.
  565.  
  566.     COS-310, DEC's commercial operating system for the PDP-8, supported
  567.     the DIBOL language.  COS-310 was a derivative of OS/8, but with a
  568.     new text file format.  It maintains only very limited compatibility
  569.     with OS/8.
  570.  
  571.  
  572. What programming languages are supported on the PDP-8
  573.  
  574.     The PAL family of assembly languages are as close to a standard
  575.     assembly language as can be found for the PDP-8.  These produce
  576.     absolute object code and versions of PAL will run on minimally
  577.     configured machines (but with a small symbol table).
  578.  
  579.     MACRO-8 was DEC's first macro assembly language for the PDP-8, but
  580.     it was never used outside the paper-tape environment.  MACREL and
  581.     SABR are assembly languages that produce relocatable output.
  582.     SABR is the final pass for the ALICS II FORTRAN compiler, and
  583.     MACREL was developed in (unfulfilled) anticipation of similar use.
  584.  
  585.     There was also RALF, the relocatable assembler supporting RTPS
  586.     FORTRAN, and FLAP, an absolute assembler derived from RALF.
  587.     Both SABR and RALF/FALP are quirky assemblers that barely handle
  588.     their intended applications.
  589.  
  590.     A subset of FORTRAN was supported on both the PDP-5 and the
  591.     original PDP-8.  Surviving documentation describes a DEC compiler
  592.     from 1964 and a compiler written by Information Control Systems
  593.     from 1968.  The latter, ALICS II FORTRAN, was originally a paper
  594.     tape based compiler, but it forms the basis of the OS/8 8K FORTRAN
  595.     compiler.
  596.  
  597.     RTPS FORTRAN required 8K and a floating point processor; it had
  598.     real-time extensions and was a full implementation of FORTRAN IV
  599.     (also known as ANSI FORTRAN 66).  OS/8 F4 is RTPS FORTRAN stripped
  600.     of the requirement for hardware floating point (if the hardware is
  601.     missing, it uses software emulation).
  602.  
  603.     FOCAL, an interpretive language comparable to BASIC was available
  604.     on all models of the family, including the PDP-5 and PDP-8/S.
  605.     Varsions of FOCAL run under PS/8, P?S/8 and other systems.
  606.  
  607.     BASIC was also available, and was widely used on PDP-8 systems
  608.     sold under the EduSystem marketing program.  A paper-tape version
  609.     was available that ran in 4K, there were versions that ran under
  610.     OS/8 and TSS/8, and there was an 8K stand-alone time-sharing
  611.     version.
  612.  
  613.     DIBOL was DEC's attempt at competing with COBOL in the commercial
  614.     arena.  It was originally implemented under MS/8 but most versions
  615.     were sold to run under the COS operating system.
  616.  
  617.     Algol was available from a fairly early date.
  618.  
  619.     At least two Pascal compilers were developed for the PDP-8.  One
  620.     was a Pascal-S interpreter, written in assembler, the other was a
  621.     Pascal-P compiler with a P-code interpreter written in assembler.
  622.  
  623.     At least two LISP interpreters were written for the PDP-8; one
  624.     runs in 4K, the other can use up to 16K.
  625.  
  626.     TECO, the text editor, is available, and is also a general purpose
  627.     language, and someone is working on a PDP-8 C.  The story of TECO
  628.     on the PDP-8 is convoluted.  Russ Ham implemented TECO under his
  629.     OS8 (without a slash) system.  This version of TECO was pirated
  630.     by the Oregon Museum of Science and Industry (OMSI), where the
  631.     system was ported to PS/8.  Richard Lary ported it from there to
  632.     OS/8; this version, in turn, was modified by Stan Rabinowitz to
  633.     make it compatible with the version under RT-11 on the PDP-11, and
  634.     this is the version distrubuted by DECUS.
  635.  
  636.  
  637. Where can I get PDP-8 software?
  638.  
  639.     DECUS, the DEC User Society, is still alive and well, and their
  640.     submission form still lists PAL-8 and FOCAL as languages in which
  641.     they accept submissions!
  642.  
  643.     There is a young but growing FTPable archive of PDP-8 software at
  644.     ftp.telebit.com in directory /pub/pdp8.
  645.  
  646.  
  647. Where can I get additional information?
  648.  
  649.     The file WHAT-IS-A-PDP8, by Charles Lasner contains considerable
  650.     additional information; this file is included in the FTPable
  651.     archive cited above.  This file gives details of every model
  652.     of the PDP-8, including the small quirks and incompatabilities
  653.     that (to be generous) allow software to determine which model it
  654.     is running on.  These quirks also make it all too easy for
  655.     careless programmers to write almost portable software with very
  656.     obscure bugs.
  657.  
  658.     The mailing list pdp8-lovers@ai.mit.edu reaches a number of PDP-8
  659.     owners and users, not all of whom have USENET feeds.  The USENET
  660.     newsgroup alt.sys.pdp8 is fairly new, but someday, the newsgroup
  661.     and mailing list will be gatewayed to each other.
  662.  
  663.     Many "archival" books have included fairly complete descriptions
  664.     of the PDP-8; among them, "Computer Architecture, Readings and
  665.     Examples" by Gordon Bell and Allen Newell is among the most
  666.     complete (and difficult to read).  Considering Bell's role in the
  667.     design of the PDP-8 and the history of DEC, the description in
  668.     this book should be accurate!
  669.  
  670.  
  671. What use is a PDP-8 today?
  672.  
  673.     What use is a Model T today?  Collectors of both come in the same
  674.     basic classes.  First, there are antiquarians who keep an old one
  675.     in the garage, polished and restored to new condition but hardly
  676.     ever used.  Once a year, they warm it up and use it, just to prove
  677.     that it still works, but they don't have much practical use.
  678.  
  679.     PDP-8 systems maintained by antiquarians are frequently in
  680.     beautiful shape.  Antiquarians worry about dust, chipped paint,
  681.     and missing switches, and they establish newsgroups and mailing
  682.     lists to help them locate parts and the advice needed to fix their
  683.     machines.
  684.  
  685.     In the second class are those who find old machines and soup them
  686.     up, replacing major parts to make a hotrod that only looks like
  687.     the original from the outside, or keeping the old mechanism and
  688.     putting it to uses that were never intended.  Some PDP-8 owners,
  689.     for example, are building PDP-8 systems with modern SCSI disk
  690.     interfaces!  There is serious interest in some quarters in
  691.     constructing an omnibus board that would support an IDE disk of
  692.     the variety that was mass-produced for the IBM PC/AT.
  693.  
  694.     Last, there are the old folks who still use their old machines for
  695.     their intended purposes long after any sane economic analysis
  696.     would recommend such use.  If it ain't broke, don't fix it, and if
  697.     it can be fixed, why bother replacing it?  Both Model T Fords and
  698.     the classic PDP-8 machines are simple enough that end users can
  699.     maintain and repair them indefinitely.  All you need to keep a
  700.     vintage -8 running are a stock of inexpensive silicon diodes and
  701.     a stock of 2N3639B or better, 2N3640 transistors.
  702.  
  703.     Unlike most modern personal computers, PDP-8 systems were
  704.     routinely sold with complete maintenance manuals; these included
  705.     schematic diagrams, explanations of not only how to use the
  706.     devices, but how they are built, and suggestions to those
  707.     considering building their own peripherals.  Compared with many
  708.     so-called "open systems" of today, the PDP-8 seems to have been far
  709.     better documented and far more open.
  710.  
  711.     Finally, the PDP-8 is such a minimal machine that it is an excellent
  712.     introduction to how computers really work.  Over the years, many
  713.     students have built complete working PDP-8 systems from scratch as
  714.     lab projects, and the I/O environment on a PDP-8 is simple enough
  715.     that it is a very appropriate environment for learning operating
  716.     system programming techniques.
  717.