home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1997 December / Internet_Info_CD-ROM_Walnut_Creek_December_1997.iso / faqs / alt / answers / dec-faq / pdp8 < prev   
Encoding:
Internet Message Format  |  1997-10-09  |  63.1 KB

  1. Path: senator-bedfellow.mit.edu!bloom-beacon.mit.edu!news-out.internetmci.com!newsfeed.internetmci.com!199.0.154.56!ais.net!iagnet.net!news.uiowa.edu!not-for-mail
  2. From: jones@cs.uiowa.edu (Douglas W. Jones)
  3. Newsgroups: alt.sys.pdp8,alt.answers,news.answers
  4. Subject: PDP-8 Frequently Asked Questions (posted every other month)
  5. Followup-To: alt.sys.pdp8
  6. Date: 8 Oct 1997 08:08:08 GMT
  7. Organization: Computer Science, University of Iowa, Iowa City, Iowa, USA
  8. Lines: 1298
  9. Approved: news-answers-request@MIT.Edu
  10. Distribution: world
  11. Expires: 8 Dec 1997 08:08:08 GMT
  12. Message-ID: <61g9q1$pm2$1@flood.weeg.uiowa.edu>
  13. NNTP-Posting-Host: pyrite.cs.uiowa.edu
  14. Summary: Answers to common questions about antique DEC PDP-8 computers.
  15.     Those posting to alt.sys.pdp8 should read this.
  16. Keywords: FAQ DEC PDP 8
  17. Xref: senator-bedfellow.mit.edu alt.sys.pdp8:2968 alt.answers:29467 news.answers:114118
  18.  
  19. Archive-name: dec-faq/pdp8
  20. Last-modified: Sep 29, 1997
  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. Reasonably current versions of this file is available by anonymous FTP from:
  28.  
  29.     ftp://rtfm.mit.edu/pub/usenet/alt.sys.pdp8
  30.     ftp://ftp.uu.net/usenet/news.answers/dec-faq
  31.     ftp://src.doc.ic.ac.uk:/pub/usenet/news.answers/alt.sys.pdp8
  32.  
  33. Reasonably current automatic translations of this document to HTML format
  34. for the World Wide Web are available from:
  35.  
  36.     http://www.cis.ohio-state.edu/hypertext/faq/usenet/dec-faq/top.html
  37.     http://www.faqs.org/faqs/dec-faq/
  38.     http://www.cs.ruu.nl/wais/html/na-dir/dec-faq/.html
  39.  
  40. An obsolete version of this file is available on the Walnut Creek USENET
  41. FAQ CDROM; another version will be published as part of the FAQbook by
  42. Pamela Greene et al.
  43.  
  44. This posting conforms to RFC1153 USENET digest format (with exceptions due
  45. to the fact that it is not really a digest).
  46.  
  47.  
  48. Contents:
  49.  
  50.     What is a PDP?
  51.     What is a PDP-8?
  52.     What is the PDP-8 instruction set?
  53.     What does PDP-8 assembly language look like?
  54.     What character sets does the PDP-8 support?
  55.     What different PDP-8 models were made?
  56.     What about the LINC-8 and PDP-12?
  57.     Where can I get a PDP-8 today?
  58.     Where can I get PDP-8 documentation?
  59.     What operating systems were written for the PDP-8?
  60.     What programming languages were supported on the PDP-8?
  61.     Where can I get PDP-8 software?
  62.     Where can I get additional information?
  63.     What use is a PDP-8 today?
  64.     Who's Who?
  65.  
  66. ----------------------------------------------------------------------
  67.  
  68. Subject: What is a PDP?
  69.  
  70. In 1957, Ken Olson and Harlan Anderson founded Digital Equipment
  71. Corporation (DEC), capitalized at $100,000, and 70% owned by American
  72. Research and Development Corporation.  Olson and Anderson had designed
  73. major parts of the AN/FSQ-7, the TX-0 and the TX-2 computers at
  74. Lincoln Labs.  They wanted to call their company Digital Computer
  75. Corporation, but the venture capitalists insisted that they avoid the
  76. term Computer and hold off on building computers.
  77.  
  78. With facilities in an old woolen mill in Maynard Massachusetts, DEC's
  79. first product was a line of transistorized digital "systems modules"
  80. based on the modules used in building TX-2 at Lincoln Labs; these
  81. were plug-in circuit boards with a few logic gates per board.  Starting
  82. in 1960, DEC finally began to sell computers (the formal acceptance of
  83. the first PDP-1 by BBN is reported in Computers and Automation, April
  84. 1961, page 8B).  Soon after this, there were enough users that DECUS,
  85. the Digital Equipment Computer User's Society was founded.
  86.  
  87. DEC's first computer, the PDP-1, sold for only $120,000 at a time when
  88. other computers sold for over $1,000,000.  (A good photo of a PDP-1 is
  89. printed in Computers and Automation, Dec. 1961, page 27).  DEC quoted
  90. prices as low as $85,000 for minimal models.  The venture capitalist's
  91. insistance on avoiding the term computer was based on the stereotype
  92. that computers were big and expensive, needing a computer center and a
  93. large staff; by using the term Programmable Data Processor, or PDP, DEC
  94. avoided this stereotype.  For over a decade, all digital computers sold
  95. by DEC were called PDPs.  (In early DEC documentation, the plural form
  96. "PDPs" is used as a generic term for all DEC computers.)
  97.  
  98. In the early 1960's, DEC was the only manufacturer of large computers
  99. without a leasing plan.  IBM, Burroughs, CDC and other computer
  100. manufacturers leased most of their machines, and many machines were
  101. never offered for outright sale.  DEC's cash sales approach led to the
  102. growth of third party computer leasing companies such as DELOS, a
  103. spinoff of BB&N.
  104.  
  105. DEC built a number of different computers under the PDP label, with a
  106. huge range of price and performance.  The largest of these are fully
  107. worthy of large computer centers with big support staffs.  Some early
  108. DEC computers were not really built by DEC.  With the PDP-3 and LINC,
  109. for example, customers built the machines using DEC parts and
  110. facilities.  Here is the list of PDP computers:
  111.  
  112.     MODEL  DATE  PRICE    BITS NUMBER COMMENTS
  113.     =====  ====  ======== ==== ====== ========
  114.     PDP-1  1960  $120,000 18       50 DEC's first computer
  115.     PDP-2            NA   24        - Never built?  Prototype only?
  116.     PDP-3            NA   36          One built by a customer*, not by DEC.
  117.     PDP-4  1962   $60,000 18       45 Predecessor of the PDP-7.
  118.     PDP-5  1963   $27,000 12    1,000 The ancestor of the PDP-8.
  119.     PDP-6  1964  $300,000 36       23 A big computer; 23 built, most for MIT.
  120.     PDP-7  1965   $72,000 18      120 Widely used for real-time control.
  121.     PDP-8  1965   $18,500 12  ~50,000 The smallest and least expensive PDP.
  122.     PDP-9  1966   $35,000 18      445 An upgrade of the PDP-7.
  123.     PDP-10 1967  $110,000 36   **~700 A PDP-6 followup, great for timesharing.
  124.     PDP-11 1970   $10,800 16 >600,000 DEC's first and only 16 bit computer.
  125.     PDP-12 1969   $27,900 12      725 A PDP-8 relative.
  126.     PDP-13           NA             - Bad luck, there was no such machine.
  127.     PDP-14                        *** A ROM-based programmable controller.
  128.     PDP-15 1970   $16,500 18      790 A TTL upgrade of the PDP-9.
  129.     PDP-16 1972      NA   8/16      ? A register-transfer module system.
  130.  
  131. *  Scientific Engineering Institute of Waltham MA.
  132. ** Includes DECsystem 20.
  133.  
  134. Corrections and additions to this list are welcome!  The prices given
  135. are for minimal systems in the year the machine was first introduced.
  136. Most of the production run numbers come from "Computer Engineering" by
  137. Bell, Mudge and McNamara, 1978, or from Computers and Automation's
  138. computer census figures published regularly throughout the 1960's.
  139. The bits column in the table indicates the word size.  Note that the
  140. DEC PDP-10 became the DECSYSTEM-20 as a result of marketing
  141. considerations, and DEC's VAX series of machines began as the Virtual
  142. Address eXtension of the never-produced PDP-11/78.
  143.  
  144. It is worth mentioning that it is generally accepted that the Data
  145. General Nova (see photo, Computers and Automation, Nov. 1968, page 48)
  146. grew out of the PDP-X, a 16-bit multi-register version of the PDP-8
  147. designed by Edson DeCastro (the designer of the PDP-5; his name appears
  148. on many of the blueprints of later PDP-8 systems up through the PDP-8/L).
  149. A prototype PDP-X was built at DEC; this and a competing 16-bit design
  150. were apparently submitted to Harold McFarland at Carnegie-Mellon
  151. University for evaluation; McFarland (and perhaps Gordon Bell, who was
  152. at C-MU at the time) evaluated the competing designs and rejected both
  153. in favor of what we now know as the PDP-11.  Some speculate that Bell
  154. rejected the Nova design because the competing proposal used the
  155. register-transfer notation he had introduced in "Bell and Newell,
  156. Computer Structures -- Readings and Examples".  An alternate story is
  157. that the reason DEC never produced a PDP-13 was because the number 13
  158. had been assigned to what became the Nova; these stories are unlikely.
  159. In any case, DeCastro did found Data General, and neither DEC nor Data
  160. General talk much about the connection between the PDP-X and the Nova.
  161.  
  162. Today, all of the PDP machines are in DEC's corporate past, except the
  163. PDP-11 family, which survives as a line of microcomputers; DEC has
  164. promised to discontinue PDP-11 sales on Sept. 30, 1996.
  165.  
  166. Occasionally, some lab has built a machine out of DEC hardware
  167. and called it a PDP with a new number.  For example, the Australian
  168. Atomic Energy Commission once upgraded a PDP-7 by adding a PDP-15 on
  169. the side; they called the result a PDP-22.  There is also a story about
  170. the PDP-2 1/2, built by Ed Rawson of the American Science Institute out of
  171. surplus modules that were originally used in the prototype PDP-2.
  172.  
  173. ------------------------------
  174.  
  175. Subject: What is a PDP-8?
  176.  
  177. The PDP-8 family of minicomputers were built by Digital Equipment
  178. Corporation between 1965 and 1990, although it is worth noting that the
  179. term minicomputer first came into prominence after the machine was
  180. introduced.  The first use of the term appears to have been made by
  181. the head of DEC's operations in England, John Leng.  He sent back a
  182. sales report that started: "Here is the latest minicomputer activity
  183. in the land of miniskirts as I drive around in my [Austin] Mini Minor."
  184. The term quickly became part of DEC's internal jargon and spread from
  185. there; the first computer explicitly sold as a minicomputer, though,
  186. was made by by Interdata (See the Interdata ad in Computers and
  187. Automation, May 1968, page 10).
  188.  
  189. The PDP-8 was largely upward compatible with the PDP-5, a machine that
  190. was unveiled on August 11, 1963 at WESCON, and the inspiration for that
  191. machine came from two earlier machines, the LINC and the CDC 160.  All
  192. of these machines were characterized by a 12 bit word with little or no
  193. hardware byte structure, typically 4K words of memory, and simple but
  194. powerful instruction sets.
  195.  
  196. Although some people consider the CDC 160 the first minicomputer, the
  197. PDP-8 was the definitive minicomputer.  By late 1973, the PDP-8 family
  198. was the best selling computer in the world, and it is likely that it was
  199. only displaced from this honor by the Apple II (which was displaced by
  200. the IBM PC).  Most models of the PDP-8 set new records as the least
  201. expensive computer on the market at the time of their introduction.
  202. The PDP-8 has been described as the model-T of the computer industry
  203. because it was the first computer to be mass produced at a cost that
  204. just about anyone could afford.
  205.  
  206. C. Gordon Bell has said that the basic idea of the PDP-8 was not really
  207. original with him.  He gives credit to Seymour Cray (of CDC and later
  208. Cray) for the idea of a single-accumulator 12 bit minicomputer.  Cray's
  209. CDC 160 family (see CACM, march 1961, photo on page 244, text on page
  210. 246) was such a machine, and in addition to the hundreds of CDC 160
  211. systems sold as stand-alone machines, a derivative 12 bit architecture
  212. was used for the I/O processors on Cray's first great supercomputer,
  213. the CDC 6600.
  214.  
  215. Note that Cray's 12 bit machines had 6 basic addressing modes with
  216. variable length instruction words and other features that were far from
  217. the simple elegance of the PDP-8.  Despite its many modes, the CDC 160
  218. architecture lacked the notion of current page addressing, it had no
  219. unconditional jump instruction, and the I/O instructions all blocked
  220. the CPU until I/O complete.  As a result, the PDP-8 is both far more
  221. flexible and it supports much tighter programming styles.
  222.  
  223. ------------------------------
  224.  
  225. Subject: What is the PDP-8 instruction set?
  226.  
  227. The PDP-8 word size is 12 bits, and the basic memory is 4K words.  The
  228. minimal CPU contained the following registers:
  229.  
  230.     PC - the program counter, 12 bits.
  231.     AC - the accumulator, 12 bits.
  232.     L  - the link, 1 bit, commonly prefixed to AC as <L,AC>.
  233.  
  234. It is worth noting that many operations such as procedure linkage and
  235. indexing, which are usually thought of as involving registers, are done
  236. with memory on the PDP-8 family.
  237.  
  238. Instruction words are organized as follows:
  239.      _ _ _ _ _ _ _ _ _ _ _ _
  240.     |_|_|_|_|_|_|_|_|_|_|_|_|
  241.     |     | | |             |
  242.     |  op |i|z|    addr     |
  243.  
  244.     op   - the opcode.
  245.     i    - the indirect bit (0 = direct, 1 = indirect).
  246.     z    - the page bit (0 = page zero, 1 = current page).
  247.     addr - the word in page.
  248.  
  249. The top 5 bits of the 12 bit program counter give the current page, and
  250. memory addressing is also complicated by the fact that absolute memory
  251. locations 8 through 15 are incremented prior to use when used as indirect
  252. addresses.  These locations are called auto-index registers (despite the
  253. fact that they are in memory); they allow the formulation of very tightly
  254. coded array operations.
  255.  
  256. The basic instructions are:
  257.  
  258.     000 - AND - and operand with AC.
  259.     001 - TAD - add operand to <L,AC> (a 13 bit value).
  260.     010 - ISZ - increment operand and skip if result is zero.
  261.     011 - DCA - deposit AC in memory and clear AC.
  262.     100 - JMS - jump to subroutine.
  263.     101 - JMP - jump.
  264.     110 - IOT - input/output transfer.
  265.     111 - OPR - microcoded operations.
  266.  
  267. The ISZ and other skip instructions conditionally skip the next
  268. instruction in sequence.  The ISZ is commonly used to increment a loop
  269. counter and skip if done, and it is also used as an general increment
  270. instruction, either followed by a no-op or in contexts where it is known
  271. that the result will never be zero.
  272.  
  273. The JMS instruction stores the return address in relative word zero of
  274. the subroutine, with execution starting with relative word one.
  275. Subroutine return is done with an indirect JMP through the return
  276. address.  Subroutines commonly increment their return addresses to index
  277. through inline parameter lists or to perform conditional skips over
  278. instructions following the call.
  279.  
  280. The IOT instruction has the following form:
  281.      _ _ _ _ _ _ _ _ _ _ _ _
  282.     |1|1|0|_|_|_|_|_|_|_|_|_|
  283.     |     |           |     |
  284.     |     |   device  | op  |
  285.  
  286. The IOT instruction specifies one of up to 8 operations on one of 64
  287. devices.  Typically (but not universally), each bit of the op field
  288. evokes an operation, and these can be microcoded in right to left
  289. order.  Prior to the PDP-8/E, there were severe restrictions on the
  290. interpretation of the op field that resulted from the fact that the
  291. operation was delivered as a sequence of IOP pulses, each on a separate
  292. line of the I/O bus.  Each line was typically used to evoke a different
  293. device function, so essentially, the operation 000 was always a no-op
  294. because it evoked no functions, and the code 111 evoked all three
  295. functions in series.
  296.  
  297. As an example of the use of IOT instructions, consider the console
  298. terminal interface.  On early PDP-8 systems, this was always assumed to
  299. be an ASR 33 teletype, complete with low-speed paper tape reader and
  300. punch.  It was addressed as devices 03 (the keyboard/reader) and 04
  301. (the teleprinter/punch):
  302.      _ _ _ _ _ _ _ _ _ _ _ _
  303.     |1|1|0|_|_|_|_|_|_|_|_|_|
  304.           |0 0 0 0 1 1|0 0 1  - KSF - keyboard skip if flag
  305.           |0 0 0 0 1 1|0 1 0  - KCC - keyboard clear flag
  306.           |0 0 0 0 1 1|1 0 0  - KRS - keyboard read static
  307.  
  308. The keyboard flag is set by the arrival of a character.  The KCC
  309. instruction clears both the flag and the accumulator.  KRS ors the 8 bit
  310. input data with the low order 8 bits of AC.  The commonly used KRB
  311. instruction is the or of KCC and KRS.  To await one byte of input, use
  312. KSF to poll the flag, then read the byte with KRB.
  313.      _ _ _ _ _ _ _ _ _ _ _ _
  314.     |1|1|0|_|_|_|_|_|_|_|_|_|
  315.           |0 0 0 1 0 0|0 0 1  - TSF - teleprinter skip if flag
  316.           |0 0 0 1 0 0|0 1 0  - TCF - teleprinter clear flag
  317.           |0 0 0 1 0 0|1 0 0  - TPC - teleprinter print static
  318.  
  319. The teleprinter flag is set by the completion of the TPC operation (as
  320. a result, on startup, many applications output a null in order to get
  321. things going).  TCF clears the flag, and TPC outputs the low order 8
  322. bits of the accumulator.  The commonly used TLS instruction is the or
  323. of TCF and TPC.  To output a character, first use TSF to poll the flag,
  324. then write the character with TLS.
  325.  
  326. IOT instructions may be used to initiate data break transfers from block
  327. devices such as disk or tape.  The term "data break" was, for years,
  328. DEC's preferred term for cycle-stealing direct-memory-access data
  329. transfers.
  330.  
  331. Some CPU functions are accessed only by IOT instructions.  For example,
  332. interrupt enable and disable are IOT instructions:
  333.      _ _ _ _ _ _ _ _ _ _ _ _
  334.     |1|1|0|_|_|_|_|_|_|_|_|_|
  335.           |0 0 0 0 0 0|0 0 1  - ION - interrupts turn on
  336.           |0 0 0 0 0 0|0 1 0  - IOF - interrupts turn off
  337.  
  338. An interrupt is requested when any device raised its flag.  The console
  339. master clear switch resets all flags and disables interrupts.  In
  340. effect, an interrupt is a JMS instruction to location zero, with the
  341. side effect of disabling interrupts.  The interrupt service routine
  342. is expected to test the device flags and perform the operations needed
  343. to reset them, and then return using ION immediately before the indirect
  344. return JMP.  The effect of ION is delayed so that interrupts are not
  345. enabled until after the JMP.
  346.  
  347. The instructions controlling the optional memory management unit are
  348. also IOT instructions.  This unit allows the program to address up to
  349. 32K of main memory by adding a 3 bit extension to the memory address.
  350. Two extensions are available, one for instruction fetch and direct
  351. addressing, the other for indirect addressing.
  352.  
  353. A wide variety of operations are available through the OPR microcoded
  354. instructions:
  355.          _ _ _ _ _ _ _ _ _ _ _ _
  356. Group 1 |1|1|1|0|_|_|_|_|_|_|_|_|
  357.              1                - CLA - clear AC
  358.                1              - CLL - clear the L bit
  359.                      1            - CMA - ones complement AC
  360.                        1          - CML - complement L bit
  361.                                1  - IAC - increment <L,AC>
  362.                          1 0 0    - RAR - rotate <L,AC> right
  363.                          0 1 0    - RAL - rotate <L,AC> left
  364.                      1 0 1    - RTR - rotate <L,AC> right twice
  365.                      0 1 1    - RTL - rotate <L,AC> left twice
  366.  
  367. In general, the above operations can be combined by oring the bit
  368. patterns for the desired operations into a single instruction.  If none
  369. of the bits are set, the result is the NOP instruction.  When these
  370. operations are combined, they operate top to bottom in the order shown
  371. above.  The exception to this is that IAC cannot be combined with the
  372. rotate operations on some models, and attempts to combine rotate
  373. operations have different effects from one model to another (for example,
  374. on the PDP-8/E, the rotate code 001 means swap 6 bit bytes in the
  375. accumulator, while previous models took this to mean something like
  376. "shift neither left nor right 2 bits").
  377.          _ _ _ _ _ _ _ _ _ _ _ _
  378. Group 2 |1|1|1|1|_|_|_|_|_|_|_|0|
  379.                    1     0        - SMA - skip on AC < 0  \
  380.                      1   0        - SZA - skip on AC = 0   > or group
  381.                        1 0        - SNL - skip on L /= 0  /
  382.                    0 0 0 1        - SKP - skip unconditionally
  383.                    1     1        - SPA - skip on AC >= 0 \
  384.                      1   1        - SNA - skip on AC /= 0  > and group
  385.                        1 1        - SZL - skip on L = 0   /
  386.                  1                - CLA - clear AC
  387.                            1      - OSR - or switches with AC
  388.                              1    - HLT - halt
  389.  
  390. The above operations may be combined by oring them together, except that
  391. there are two distinct incompatible groups of skip instructions.  When
  392. combined, SMA, SZA and SNL, skip if one or the other of the indicated
  393. conditions are true (logical or), while SPA, SNA and SZL skip if all of
  394. the indicated conditions are true (logical and).  When combined, these
  395. operate top to bottom in the order shown; thus, the accumulator may be
  396. tested and then cleared.  Setting the halt bit in a skip instruction is
  397. a crude but useful way to set a breakpoint for front-panel debugging.
  398. If none of the bits are set, the result is an alternative form of no-op.
  399.  
  400. A third group of operate microinstructions (with a 1 in the least
  401. significant bit) deals with the optional extended arithmetic element to
  402. allow such things as hardware multiply and divide, 24 bit shift
  403. operations, and normalize.  These operations involve an additional data
  404. register, MQ or multiplier quotient, and a small step count register.
  405. On the PDP-8/E and successors, MQ and the instructions for loading and
  406. storing it were always present, even when the EAE was absent, and the
  407. EAE was extended to provide a useful variety of 24 bit arithmetic
  408. operations.
  409.  
  410. ------------------------------
  411.  
  412. Subject: What does PDP-8 assembly language look like?
  413.  
  414. There are many different assemblers for the PDP-8, but most use a
  415. compatible basic syntax; here is an example:
  416.  
  417.     START,    CLA CLL        / Clear everything
  418.         TAD    X    / Load X
  419.         AND I    Y    / And with the value pointed to by Y
  420.         DCA    X    / Store in X
  421.         HLT        / Halt
  422.  
  423.     X,    1         / A variable
  424.     Y,    7         / A pointer
  425.  
  426. Note that labels are terminated by a comma, and comments are separated
  427. from the code by a slash.  There are no fixed fields or column
  428. restrictions.  The "CLA CLL" instruction on the first line is an example
  429. of the microcoding of two of the Group 1 operate instructions.  CLA
  430. alone has the code 7200 (octal), while CLL has the code 7100; combining
  431. these as "CLA CLL" produces 7300.  As a general rule, except when memory
  432. reference instructions are involved, the assembler simply ors together
  433. the values of all blank separated fields between the label and comment.
  434.     
  435. Indirection is indicated by the special symbol I in the operand field,
  436. as in the third line of the example.  The typical PDP-8 assembler has no
  437. explicit notation to distinguish between page zero and current page
  438. addresses.  Instead, the assembler is expected to note the page holding
  439. the operand and automatically generate the appropriate mode.  If the
  440. operand is neither in the current page nor page zero, some assemblers
  441. will raise an error, others will automatically generate an indirect
  442. pointer to the off-page operand; this should be avoided because it only
  443. works for directly addressed off-page operands, and only when the memory
  444. management unit is not being used to address a data field other than the
  445. current instruction field.
  446.  
  447. Note, in the final two lines of the example, that there is no "define
  448. constant" pseudo-operation.  Instead, where a constant is to be
  449. assembled into memory, the constant takes the place of the op-code field.
  450.  
  451. The PDP-8 has no immediate addressing mode, but most assemblers provide
  452. a notation to allow the programmer to ignore this lack:
  453.  
  454.         TAD    (3)    / add 3, from memory on the current page.
  455.         TAD    [5]    / add 5, from memory on page zero.
  456.         JMP I    (LAB)    / jump indirect through the address of LAB.
  457.  
  458. Assemblers that support this automatically fill the end of each page
  459. with constants defined in this way that have been accumulated during the
  460. assembly of that page.  Note that the variants "(3" and "[5" (with no
  461. closing parentheses) are usually allowed but the use of this sloppy form
  462. is discouraged.  Furthermore, the widely used PAL8 assembler interprets
  463. the unlikely operand "(3)+1" as being the same as "(3+1)".
  464.  
  465. Arithmetic is allowed in operand fields and constant definitions, with
  466. expressions evaluated in strict left-to-right order, as:
  467.  
  468.         TAD    X+1    / add the contents of the location after X.
  469.         TAD    (X-1)    / add the address of the location before X.
  470.  
  471. Other operators allowed include and (&), or (!), multiply (^) and divide
  472. (%), as well as a unary sign (+ or -).  Unfortunately, one of the most
  473. widely used assemblers, PAL8, has trouble when unary operators are mixed
  474. with multiplication or division.
  475.     
  476. Generally, only the first 6 characters of identifiers are significant
  477. and numeric constants are evaluated in octal.
  478.  
  479. Other assembly language features are illustrated below:
  480.  
  481.     / Comments may stand on lines by themselves
  482.                 / Blank lines are allowed
  483.  
  484.         *200        / Set the assembly origin to 200 (octal)
  485.  
  486.     NL0002=    CLA CLL CML RTL    / Define new opcode NL0002.
  487.  
  488.         NL0002        / Use new opcode (load 0002 in AC)
  489.         JMP    .-1    / Jump to the previous instruction
  490.  
  491.     X1=    10        / Define X1 (an auto-index register address)
  492.     LETA=    "A        / Define LETA as 000011000001 (ASCII A)
  493.  
  494.         TAD I    X1    / Use autoindex register 1
  495.  
  496.         IAC; RAL    / Multiple instructions on one line
  497.  
  498.         $        / End of assembly
  499.  
  500. The assembly file ends with a line containing a $ (dollar sign) not in
  501. a comment field.
  502.  
  503. The $, * and =  syntax used by most PDP-8 assemblers replaces functions
  504. performed by pseudo-operations on many other assemblers.  In addition,
  505. PAL8, the most widely used PDP-8 assembler supports the following
  506. pseudo-operations:
  507.  
  508.         DECIMAL        / Interpret numeric constants in base 10
  509.         OCTAL        / Interpret numeric constants in base 8
  510.         EJECT        / Force a page eject in the listing
  511.         XLIST        / Toggle listing
  512.         XLIST    N    / Turn on listing if N=0, off if N=1
  513.         PAGE          / Advance location counter to next page
  514.         PAGE     N    / Set location counter start of page N
  515.         FIELD    N    / Assemble into extended memory field N
  516.         TEXT    "STR"    / Pack STR into consecutive 6 bit bytes
  517.         ZBLOCK    N    / Allocate N words, initialized to zero
  518.         IFDEF    S <C>    / Assemble C if symbol S is defined
  519.         IFNDEF    S <C>    / Assemble C if symbol S is not defined
  520.         IFZERO    E <C>    / Assemble C if expression E is zero
  521.         IFNZRO    E <C>    / Assemble C if expression E is not zero
  522.         FIXMRI  OP= VAL    / Define OP as memory reference instruction
  523.  
  524. Conditonally assembled code must be enclosed in angle brackets.  The
  525. enclosed code may extend over multiple lines and, because different
  526. assemblers treat comments within conditionals differently, the closing
  527. bracket should not be in a comment and any brackets in comments should
  528. be balanced.
  529.  
  530. ------------------------------
  531.  
  532. Subject: What character sets does the PDP-8 support?
  533.  
  534. From the beginning, PDP-8 software has generally assumed that textual
  535. I/O would be in 7 bit ASCII.  Most early PDP-8 systems used teletypes
  536. as console terminals; as sold by DEC, these were configured for mark
  537. parity, so most older software assumes 7 bit ASCII, upper case only,
  538. with the 8th bit set to 1.  On output, lines are generally terminated
  539. with both CR and LF; on input, CR is typically (but not always) the
  540. line terminator and LF is typically ignored.  In addition, the tab
  541. character (HT) is generally allowed, but software support output of text
  542. containing tabs varies.
  543.  
  544. One difficulty with much PDP-8 software is that it bypasses the device
  545. handlers provided by the operating system and goes directly to the
  546. device.  This results in very irregular device support, so that, for
  547. example, control-S and control-Q work to start and stop output under
  548. OS/8, but the OS/8 PAL assembler ignores them when reporting errors.
  549.  
  550. Most of the better engineered PDP-8 software tends to fold upper and
  551. lower case on input, and it ignores the setting of the 8th bit.  Older
  552. PDP-8 software will generally fail when presented with lower case
  553. textual input (this includes essentially all OS/8 products prior to
  554. OS/278 V1).
  555.  
  556. Internally, PDP-8 programmers are free to use other character sets, but
  557. the "X notation provided by the assembler encourages use of 7 bit ASCII
  558. with the 8th bit set to 1, and the TEXT pseudo-operation encourages the
  559. 6 bit character set called "stripped ASCII".  To map from upper-case-only
  560. ASCII to stripped ASCII, each 8 bit character is anded with octal 77 and
  561. then packed 2 characters per word, left to right.  Many programs use a
  562. semi-standard scheme for packing mixed upper and lower case into 6 bit
  563. TEXT form; this uses ^ to flip from upper to lower case or lower to
  564. upper case, % to encode CR-LF pairs, and @ (octal 00) to mark end of
  565. string.  Note that this scheme makes no provision for encoding the %,
  566. ^ and @ characters, nor does it allow control characters other than the
  567. CR-LF pair.
  568.  
  569. The P?S/8 operating system supports a similar 6 bit text file format,
  570. where upper and lower case are folded together, tabs are stored as _
  571. (underline), end-of-line is represented by 00, padded with any
  572. nonzero filler to a word boundary, and end of file is 0000.
  573.  
  574. Files under the widely used OS/8 system consist of sequences of 256 word
  575. blocks.  When used for text, each block holds 384 bytes, packed 3 bytes
  576. per pair of words as follows:
  577.  
  578.         aaaaaaaa        ccccaaaaaaaa
  579.         bbbbbbbb        CCCCbbbbbbbb
  580.         ccccCCCC
  581.  
  582. Control Z is used as an end of file marker.  Because most of the PDP-8
  583. system software was originally developed for paper tape, binary object
  584. code is typically stored in paper-tape image form using the above packing
  585. scheme.
  586.  
  587. ------------------------------
  588.  
  589. Subject: What different PDP-8 models were made?
  590.  
  591. The total sales figure for the PDP-8 family is estimated at over 300,000
  592. machines.  Over 7000 of these were sold prior to 1970, and 30,000 were
  593. sold by 1976.  During the PDP-8 production run, a number of models were
  594. made, as listed in the following table.  Of these, the PDP-8/E is generally
  595. considered to be the definitive machine.  If the PDP-8 is considered to
  596. be the Model T of the computer industry, perhaps the PDP-8/E should be
  597. considered to be the industry's Model A.
  598.  
  599.     MODEL    DATES    SALES   COST    TECHNOLOGY    REMARKS
  600.  
  601.     PDP-5    63-67     116        Transistor
  602.     PDP-8    65-69     1450    $18,500    Transistor
  603.     LINC-8    66-69     142    $38,500    Transistor
  604.     PDP-8/S    66-70    1024    $10,000    Transistor    Very slow
  605.     PDP-8/I    68-71     3698    $12,800    TTL
  606.     PDP-8/L    68-71     3902     $8,500    TTL        Scaled down 8/I
  607.     PDP-12    69-73?    3500?    $27,900    TTL        Followup to LINC-8
  608.     PDP-8/E    70-78    >10K?     $6,500    TTL MSI    Omnibus
  609.     PDP-8/F    72-78?    >10K?    <$5K    TTL MSI Omnibus    Based on 8/E CPU
  610.     PDP-8/M    72-78?    >10K?    <$5K    TTL MSI Omnibus    OEM version of 8/F
  611.     PDP-8/A    75-84?    >10K?     $1,317    TTL LSI Omnibus    New CPU or 8/E CPU
  612.     VT78    78-80         $7,995    Intersil 6100    Workstation
  613.     DECmate I    80-84            Harris 6120    Workstation
  614.     DECmate II    82-86         $1,435    Harris 6120    Workstation
  615.     DECmate III    84-90         $2,695    Harris 6120    Workstation
  616.     DECmate III+85-90            Harris 6120    Workstation
  617.  
  618. Additional information is available in part two of this FAQ, where all
  619. known models of the PDP-8, along with variants, alternate marketing
  620. names, and other peculiarities are given.
  621.  
  622. The last years of the PDP-8 family were dominated by the PDP-8 compatible
  623. microprocessor based VT78 and DECmate workstations.  The Intersil 6100,
  624. also known as the CMOS-8 chip, was developed in 1976; GE later acquired
  625. Intersil.  DEC also used the followup Harris 6120 microprocessors
  626. (Introduced 1981) in many peripheral controllers for the PDP-11 and
  627. PDP-15 as well as in the DECmate series of systems.  While all of the
  628. earlier PDP-8 systems were open architecture systems, the DECmates had
  629. closed architectures with an integrated console terminals and limited
  630. peripheral options.  It is interesting to note that the Harris 6120 was
  631. a 10Mhz chip and some chips could be clocked at 15Mhz; furthermore, the
  632. 6120 was essentially based on gate array technology.
  633.  
  634. The following PDP-8 compatible or semi-compatible machines were made and
  635. sold by others; very little is known about many of these:
  636.  
  637.     MODEL         DATE    MAKER, NOTES
  638.  
  639.     TPA         68?    Hungarian, a PDP-8/L clone, ran FOKAL
  640.         Electronica-100  ?    Russian, discrete transistor technology.
  641.         Electronica-100I ?    Russian, probably a PDP-8/I clone.
  642.     Electrotechnica-100I ?    Yugoslavian, PDP-8/I?  Possibly same as above.
  643.     Saratov-2     ?    Russian, built like a PDP-8/M but bulkier.
  644.     SPEAR u-LINC 100 ?    SPEAR, Inc, Waltham Mass (a LINC clone!)
  645.     SPEAR u-LINC 300 ?    SPEAR, Inc, Waltham Mass (a LINC clone!)
  646.     DCC-112         70    Digital Computer Controls, PDP-8/L clone.
  647.     DCC-112H     71    Digital Computer Controls
  648.     MPS-1         74    Fabritek, PDP-8/L clone
  649.     MP-12         74    (is this just different numbering of above?)
  650.     6100 Sampler     76?    Intersil, their IM6100 promotional kit
  651.     Intercept I     7?    Intersil, based on IM6100
  652.     Intercept Jr     7?    Intersil, based on IM6100
  653.     TLF MINI-12      77     Based on IM6100, in an elegant package.
  654.     PCM-12         7?    Pacific CyberMetrix, based on Intercept bus
  655.     PCM-12A         77    Pacific CyberMetrix, fixed to clock at 4MHz
  656.     SBC-8         84-88    CESI, Based on IM6120, SCSI bus
  657.     
  658. ------------------------------
  659.  
  660. Subject: What about the LINC/8 and PDP-12?
  661.  
  662. Wesley Clark and Charles Molnar, then at Lincoln Labs, built the LINC, or
  663. Laboratory INstrumentation Computer, as a personal laboratory computer,
  664. finishing the first in March 1962.  The machine was developed in response
  665. to the needs of Mary Brazier, a neurophysiologist at MIT who needed better
  666. laboratory tools, and it was a followup to the Average Response Computer,
  667. an 18 bit special purpose machine built in 1958 for the same purpose.
  668. When Lincoln Labs decided that the LINC did not fit their mission, in
  669. January 1963, the project moved to MIT, and then in 1964, to Washington
  670. University in St Louis.  The National Institute of Health funded the
  671. project as an experiment to see if coumputers would be a productive tool
  672. in the life sciences.  By the end of 1963, 20 LINCs had been built and
  673. debugged, many by their eventual users.
  674.  
  675. Over 24 LINC systems were built by customers before late 1964 when DEC
  676. began selling a commercial version (see Computers and Automation, Nov.
  677. 1964, page 43).  By the time DEC introduced the LINC-8, 43 LINC systems
  678. had been installed (see Computers and Automation, Mar. 1966, page 34).
  679. In total, 50 LINC systems were built, 21 by DEC, 29 by customers (see
  680. Digital at Work, page 52).  A photo of the last LINC in production use
  681. is available from http://www.mit.edu:8001/people/ijs/epl/LINC.html
  682. Wesley Clark wrote a history of the LINC, "The LINC was Early and
  683. Small", published in "A History of Personal Workstations," ACM Press,
  684. 1988, page 347.
  685.  
  686. The LINC was the first 12 bit minicomputer built using DEC hardware.
  687. Like the PDP-5 and other early DEC computers, it was built with System
  688. Modules, DEC's first family of logic modules.  Along with the CDC 160,
  689. it paved the way for the PDP-5 and PDP-8.
  690.  
  691. When compared with the PDP-8, the LINC instruction set was not as well
  692. suited for general purpose computation, but the common peripherals
  693. needed for lab work such as analog-to-digital and digital-to-analog
  694. converters were all bundled into the LINC system.  Users judged it to
  695. be a superb laboratory instrument.
  696.  
  697. One of the major innovations introduced with the LINC was the LINCtape,
  698. designed by Tom Stockebrand scaled down from an experimental tape drive
  699. developed for the TX-2 at Lincoln Labs.  LINCtapes could be carelessly
  700. pocketed or dropped on the floor without fear of data loss, and they
  701. allowed random access to data blocks.  Stockebrand improved on this idea
  702. slightly after he came to DEC, where the improved idea was called
  703. DECtape; DECtape was widely used with all DEC computers made in the
  704. late 1960's and early 1970's.
  705.  
  706. The motives behind the development of LINCtape were the same motives
  707. that led IBM to develop the floppy disk almost a decade later, and in
  708. fact, DECtape survived as a widely used medium until DEC introduced the
  709. RX01 8 inch floppy disk drive around 1975, and even after this, DECtape
  710. was only slowly phased out.
  711.  
  712. Within a year of the introduction of the PDP-8, DEC released the LINC-8,
  713. a machine that combined a PDP-8 with a LINC in one package.  The
  714. success of the LINC-8 led DEC to re-engineer the machine using TTL
  715. logic in the late 1960's; the new version was originally to be called
  716. the LINC-8/I, but it was sold as the PDP-12.  Both the LINC-8 and the
  717. PDP-12 had impressive consoles, with separate sets of lights and
  718. switches for the LINC and PDP-8 halves.
  719.  
  720. The success of the LINC-8 also led to the development of a clone, the
  721. SPEAR micro-LINC.  This machine used Motorola MECL integrated circuits
  722. and was available for delivery in (June 1965? this date must be wrong!).
  723.  
  724. The LINC-8 and PDP-12 could run essentially any PDP-8 or LINC program,
  725. with the exception of the few programs that relied on the primitive
  726. interrupt structure of the original LINC architecture; on the LINC-8,
  727. all interrupts were handled by the PDP-8 side of the hardware.  Because
  728. the LINC-8 and PDP-12 had instructions for switching between modes, a
  729. new body of software was developed that required both modes.
  730.  
  731. One feature of LINC and LINC-8 software is the common use of the graphic
  732. display for input-output.  These machines were some of the first to
  733. include such a display as a standard component, and many programs used
  734. the knobs on the analog to digital converter to move a cursor on the
  735. display in the way we now use a mouse.
  736.  
  737. Various versions of LAP, the Linc Assembly Program, were the dominant
  738. assemblers used on the LINC; the original version of LAP was a cross
  739. assembler written on the TX-2.  WISAL (WISconson Assembly Language) or
  740. LAP6-W was the version of this assembler that survived to run on the
  741. PDP-12.  Curiously, this includes a PDP-8 assembler written in LINC code.
  742.  
  743. LAP6-DIAL (Display Interactive Assembly Language) evolved from this on
  744. the PDP-12 to became the dominant operating system for the PDP-12.  The
  745. 8K version of this is DIAL MS (Mass Storage), even if it has only two
  746. LINCtape drives.  These were eventually displaced by the OS/8 variant
  747. known as OS/12.
  748.  
  749. ------------------------------
  750.  
  751. Subject: Where can I get a PDP-8 today?
  752.  
  753. The IM6100 chip is still available (Electronic Expediters, (818)781-1910
  754. (in North America) listed them at US$23.50 each as of 10/1994), and CESI
  755. may still make their clone, for a high price, but you can't buy a new
  756. DEC PDP-8.  There are quite a few PDP-8 machines to be found in odd
  757. places on the used equipment market.  They were widely incorporated into
  758. products such as computer controlled machine tools, X-ray diffraction
  759. machines, and other industrial and lab equipment.  Many of them were
  760. sold under the EduSystem marketing program to public schools and
  761. universities, and others were used to control laboratory instrumentation.
  762. After about 1976, Reuters bought as many as 10,000 OMNIBUS based
  763. machines per year, with perhaps 2000 per year going to other customers.
  764.  
  765. If you can't get real hardware, you can get emulators.  Over the years,
  766. many PDP-8 emulators have been written; the best of these are
  767. indistinguishable from the real machine from a software prespective,
  768. and on a modern high-speed RISC platform, these frequently outperform
  769. the hardware they are emulating.  An emulator is available from DECUS,
  770. catalog number RB0128; This and other emulators are available from:
  771.  
  772.   ftp://sunsite.unc.edu/pub/academic/computer-science/history/pdp-8/emulators
  773.   ftp://ftp.cs.uiowa.edu/public/jones/pdp8/emulator.txt.Z
  774.   ftp://ftp.digital.com/pub/DEC/sim/sources/sim_2.2d.tar.Z
  775.  
  776. The final collection of emulators listed above includes emulators for the
  777. Nova and other DEC machines as well as the IBM 1401.
  778.  
  779. An emulator for the Apple Mac is available by E-mail from Bernhard Baehr
  780. (bb@informatik.uni-hannover.de).
  781.  
  782. Finally, you can always build your own.  The textbook "The Art of
  783. Digital Design," second edition, by Franklin Prosser and David Winkel
  784. (Prentice-Hall, 1987, ISBN 0-13-046780-4) uses the design of a PDP-8 as
  785. a running example; development new material based on this book continues,
  786. including an asynch interface chip and, soon, a VHDL specification that
  787. can be used to synthesize an FPGA implementation of the machine.  Contact
  788. Ingo Cyliax (cyliax@cs.indiana.edu) for information on the current state
  789. of this work.  "Modern VLSI Design - A system approch" by Wayne Wolf
  790. (1994 Prentice-Hall) also uses the PDP-8 as a data-path example.
  791.  
  792. It is worth noting that there are a sufficient number of PDP-8 systems
  793. still operational that some companies still manufacture peripherals.
  794. For example, Storage Computer (http://www.storage.com/) makes RK05
  795. compatable semiconductor "disk drives" that can be directly connected to
  796. the Omnibus RK05 controllers of the PDP-8/E,F,M and A.
  797.  
  798. ------------------------------
  799.  
  800. Subject: Where can I get PDP-8 documentation?
  801.  
  802. The key documents published by DEC describing each model of the PDP-8
  803. are all out of print, and DEC was in the habit of printing much of
  804. their documentation on newsprint with paperback bindings, which is to
  805. say, surviving copies tend to be yellow and brittle.  DEC distributed
  806. huge numbers of catalogs and programming handbooks in this inexpensive
  807. paperback format, and these circulate widely on the second-hand market.
  808. When research laboratories and electronics shops are being cleaned out,
  809. it is still common to find a few dusty, yellowed copies of these books
  810. being thrown out.
  811.  
  812. Douglas Jones has made a small number of bound photocopies of DEC's
  813. 1973 introduction to programming, perhaps the definitive introduction
  814. to the PDP-8, and the other early DEC handbooks need similar treatment
  815. before they all crumble.
  816.  
  817. Some PDP-8 reference material has been transcribed into Hypertext format
  818. and is available over WWW from:
  819.  
  820.     http://www.cs.uiowa.edu/~jones/pdp8/index.html
  821.  
  822. Maintenance manuals are harder to find, but more valuable.  If you need
  823. one, you usually need to find someone willing to photocopy one of the
  824. few surviving copies.  DEC has been friendly to collectors, granting
  825. fairly broad letters of permission to reprint obsolete documentation,
  826. and the network makes if fairly easy to find someone who has the
  827. documentation you need and can get copies.  The most difficult to copy
  828. material is the large prints, many of which would be quite useful if
  829. photoreduced, but this is expensive.
  830.  
  831. ------------------------------
  832.  
  833. Subject: What operating systems were written for the PDP-8?
  834.  
  835. A punched paper-tape library of stand-alone programs was commonly used
  836. with the smallest (diskless and tapeless) configurations from the
  837. beginning up through the mid 1970's.  This included a paper-tape based
  838. text editor, the PAL III and MACRO-8 assembler, and a FORTRAN compiler,
  839. as well as a library of support routines.  Many paper tapes from this
  840. library survive to the present at various sites!  The minimum
  841. configuration expected by these tapes is a CPU with 4K memory and a
  842. teletype ASR 33 with paper tape reader and punch.  Note that much of this
  843. paper-tape-based software is based on memory-use and I/O conventions that
  844. are incompatible with later disk-based systems.
  845.  
  846. The DECtape Library System was a DECtape oriented save and restore system
  847. that was available from the start.  The resident portion of this system
  848. occupies only 17 words of memory (7600-7625 octal), and it allowed saving
  849. and restoring absolute core images as named files on a reel of DECtape.
  850. Initially, program development was still done with paper tape, and only
  851. executable memory images were stored on DECtape, but eventually, a limited
  852. DECtape-based text editor was introduced, along with a DECtape based
  853. assembler.
  854.  
  855. The 4K Disk Monitor System provided slightly better facilities.  This
  856. supported on-line program development and it worked with any device that
  857. supported 129 word blocks (DECtape, the DF32 disk, or the RF08 disk).
  858. It was quite slow, but it also used very little of the available memory.
  859.  
  860. MS/8 or the RL Monitor System, was developed starting in 1966 by
  861. Richard F. Lary; it was submitted to DECUS in 1970.  This was a disk
  862. oriented system, faster than the above, with tricks to make it run
  863. quickly on DECtape based systems.
  864.  
  865. POLY BASIC was a BASIC only system submitted to DECUS and later sold by
  866. DEC as part of its EduSystem marketing program.  EduSystem 25 Basic
  867. is available from:
  868.  
  869.     ftp://russ.ucs.indiana.edu/pub/DEC/PDP8/Langs/Edu25Basic/Ascii/
  870.  
  871. P?S/8 was developed starting in 1971 from an MS/8 foundation.  It runs
  872. on minimal PDP-8 configurations, supports somewhat device independant
  873. I/O and requires a random-access device for the file system (DECtape is
  874. random-access!).  P?S/8 runs compatibly on most PDP-8 machines including
  875. DECmates, excepting only the PDP-8/S and PDP-5.  P?S/8 is still being
  876. developed!
  877.  
  878. Richard F. Lary developed a system called the Fully Upward Compatible
  879. Keyboard Monitor; and between a Wednesday and the following Friday, a
  880. prototype was up and running from DECtape.  The original intention of
  881. this project was to build a programming environment for the PDP-8 that
  882. looked like TOPS-10 on the PDP-10.  A year later, this was released as
  883. Programming System/8 (or PS/8), and then renamed OS/8 in 1971 because
  884. Eli Glaser (a salesman from Long Island) said he could sell more systems
  885. with an operating system than with a programming system, and because, by
  886. renaming the system, DEC could increase the price despite Nixon's
  887. wage-price freeze.
  888.  
  889. OS/8, developed in parallel with P?S/8, became the main PDP-8 programming
  890. environment sold by DEC.  The minimum configuration required was 8K words
  891. and a random-access device to hold the system.  For some devices, OS/8
  892. requires 12K.  There are a large number of OS/8 versions that are not
  893. quite portable across various subsets of the PDP-8 family.  RX01 images of
  894. OS/8 Version 3Q are available, with DEC's free non-commercial use licence,
  895. from:
  896.  
  897.     ftp://ftp.cs.uiowa.edu/public/jones/pdp8/os8distr.txt.Z
  898.     ftp://ftp.digital.com/pub/DEC/sim/software/os8swre.tar.Z
  899.  
  900. The second site above also includes an incomplete but useful RK05 image
  901. of OS/8 Version 3R.  Parts of the OS/8 source can be found in:
  902.  
  903.     ftp://russ.ucs.indiana.edu/pub/DEC/PDP8/OS8/
  904.  
  905. OS/8 V3D was renamed OS/78 (to match the VT78), and in followups to this
  906. distribution, support for Omnibus machines was no longer important.  OS/78
  907. V4 was developed for the DECmate I, and the name OS/278 used for the
  908. versions released with later DECmate machines.  These have unnecessary
  909. incompatabilities with earlier versions of OS/8.  OS/278 and related
  910. material is available from DECUS as catalog item 800941, or from:
  911.  
  912.     ftp://ftp.telebit.com/pub/pdp8/os278
  913.     ftp://ftp.update.uu.se/pub/pdp8
  914.     ftp://sunsite.unc.edu/pub/academic/computer-science/history/pdp-8/os8
  915.  
  916. Some OS/8 documentation is available on line from:
  917.  
  918.     ftp://ftp.dbit.com/pub/pdp8/doc
  919.  
  920. OS8 (no slash) may still be viable.  It requires 8K of main memory, an
  921. extended arithmetic unit, and DECtape hardware.  Unlike most PDP-8
  922. operating systems, it uses a directory structure on DECtape compatible
  923. with that used on the PDP-10.
  924.  
  925. The timesharing system TSS-8 was developed by Don Witcraft and John Everett
  926. at DEC, starting in late 1967, and with the first beta sites up and running
  927. in the fall of 1968.  This was based on a protection architecture proposed by
  928. Adrian Van Der Goor, a grad student of Gordon Bell's at Carnegie-Mellon.
  929. It required a minimum of 12K words of memory and a
  930. swapping device.  It was the standard operating system on the EduSystem
  931. 50 which was sold to many small colleges and large public school systems.
  932. The first installation was at Lexington High School in Massachusetts,
  933. and the second was at Northern Arizona University.  Each user gets a
  934. virtual 4K PDP-8; many of the utilities users ran on these virtual
  935. machines were only slightly modified versions of utilities from the
  936. Disk Monitor System or paper-tape environments.
  937.  
  938. Other timesharing systems developed for the PDP-8 include MULTI-8, ETOS,
  939. MULTOS, and OMNI-8; some of these required nonstandard memory management
  940. hardware.  By the mid 1970's, some of these were true virtual machine
  941. operating systems in the same spirit as IBM's VM-370; they typically
  942. supported some version of OS/8 running on a 32K virtual PDP-8 assigned
  943. to each user.  Some could support different user operating systems on
  944. each virtual machine, others supported addressing of more than 4K for
  945. data, but limited code to field zero of a process's virtual memory.
  946. The source for MULTOS is available from:
  947.  
  948.     ftp://ftp.update.uu.se/pub/pdp8/multos8
  949.  
  950. CAPS-8 was a cassette based operating system supporting PAL and BASIC.
  951. There are OS/8 utilities to manipulate CAPS-8 cassettes, and the file
  952. format on cassette is compatible with a PDP-11 based system called
  953. CAPS-11.
  954.  
  955. RTS/8 was a real-time system developed by DEC, developed from an earlier
  956. system, SRT8, dating back to at least 1974.  Curiously, even the last
  957. versions of RTS/8 continued to support paper-tape and DECtape.  Source
  958. code for most of the versions of RTS and SRT are available from:
  959.  
  960.     ftp://sunsite.unc.edu/pub/academic/computer-science/history/pdp-8/rts8
  961.  
  962. WPS was DEC's word processing system, developed for the 8/E with a VT50
  963. terminal with special WPS keycaps replacing the standard keycaps, and
  964. widely used on the 1980's vintage machines.  It was heavily promoted on
  965. the VT-78, and when the DECmates came out, DEC began to suppress knowledge
  966. that DECmates could run anything else.  WPS-11 was a curious distributed
  967. system using a PDP-11 as a file server for a cluster of VT-78 WPS systems.
  968. DECmate/WPS Version 2.3 is available from DECUS for the DECmate II and
  969. DECmate III under the catalog entry DM0114.
  970.  
  971. COS-310, DEC's commercial operating system for the PDP-8, supported the
  972. DIBOL language.  COS-310 was a derivative of MS/8 and OS/8, but with a
  973. new text file format.  The file system is almost the same as OS/8, but
  974. dates are recorded differently, and a few applications can even run under
  975. both COS and OS/8.  COS was the last operating system other than WPS
  976. promoted by DEC for the DECmates.
  977.  
  978. SCPSYS, developed by D. C. Amoss prior to 1974 at Clemson University, is
  979. a system that copies most of the features of LAP (the LINC Assembly
  980. Program) for a pure PDP-8 based system.  A DECtape of this system has
  981. recently come to light, with one known application, Spacewar.
  982.  
  983. AMOS, an operating system for the PDP-8/E with TD8E DECtape interface,
  984. was a very small system developed in Australia or New Zealand and supporting
  985. assembly and text editing on a 4K machine.
  986.  
  987. ------------------------------
  988.  
  989. Subject: What programming languages are supported on the PDP-8
  990.  
  991. The PAL family of assembly languages, particularly PAL III and PAL8 are
  992. as close to a standard assembly language as can be found for the PDP-8;
  993. these are included with all OS/8 distributions.  They produce absolute
  994. object code and there are versions of PAL for minimally configured
  995. machines, although these have severe symbol table limitations.  Cross
  996. assemblers that are somewhat compatable with PAL can be obtained from:
  997.  
  998.     ftp://ftp.cs.uiowa.edu/public/jones/pdp8/pal.c.Z
  999.     ftp://ftp.cs.uiowa.edu/public/jones/pdp8/palbart.c.Z
  1000.     ftp://sunsite.unc.edu/pub/academic/computer-science/history/pdp-8/emulators/gray
  1001.  
  1002. MACRO-8 was DEC's first macro assembly language for the PDP-8, but it
  1003. was rarely used outside the paper-tape environment.  MACREL and SABR are
  1004. assembly languages that produce relocatable output.  SABR is the final
  1005. pass for the ALICS II FORTRAN compiler (developed by ICS); it is included
  1006. with the standard OS/8 software distributions.  Source for these is
  1007. available from:
  1008.  
  1009.     ftp://russ.ucs.indiana.edu/pub/DEC/PDP8/PS8/FortranSabr/Ascii/
  1010.  
  1011. MACREL was developed in (unfulfilled) anticipation of similar use.  MACREL
  1012. was heavily used by the DECmate group at DEC.  MACREL is available from:
  1013.  
  1014.     ftp://ftp.update.uu.se/pub/pdp8/os8
  1015.  
  1016. RALF, the relocatable assembler supporting RTPS FORTRAN is also included
  1017. in OS/8 standard distributions.  FLAP, an absolute assembler, was derived
  1018. from RALF.  Both SABR and RALF/FALP are assemblers that handle their
  1019. intended applications but have quirky and incompatible syntax.
  1020.  
  1021. A subset of FORTRAN was supported on both the PDP-5 and the original
  1022. PDP-8.  Surviving documentation describes a DEC compiler written in 1964
  1023. by Larry Portner, nicknamed "Fivetran", and a compiler written by
  1024. Information Control Systems from 1968.  The latter, ALICS II FORTRAN,
  1025. was originally a paper tape based compiler, but it forms the basis of
  1026. the OS/8 8K FORTRAN compiler, and was also adapted to the Disk Monitor
  1027. System (the latter version had overlay support that was never carried
  1028. forward into more modern systems).
  1029.  
  1030. RTPS FORTRAN required 8K and a floating point processor; it had real-time
  1031. extensions and was a full implementation of FORTRAN IV (also known as
  1032. ANSI FORTRAN 66).  OS/8 F4 is RTPS FORTRAN stripped of the requirement
  1033. for hardware floating point (if the hardware is missing, it uses
  1034. software emulation).  Versions of FORTRAN is available from
  1035.  
  1036.     ftp://ftp.update.uu.se/pub/pdp8/os8
  1037.  
  1038. FOCAL, an interpretive language comparable to BASIC, was available on
  1039. all models of the family, including the PDP-5 and PDP-8/S.  Versions of
  1040. FOCAL run under OS/8, P?S/8 and other systems, and there were many special
  1041. purpose overlays for FOCAL developed by DEC and by various users.  DEC's
  1042. later FOCAL releases for the PDP-8 included code to deliberately introduce
  1043. subtle bugs when run on a DCC 112 computer!  Various versions of FOCAL
  1044. are available from:
  1045.  
  1046.     ftp://russ.ucs.indiana.edu/pub/DEC/PDP8/Langs/Focal/
  1047.     ftp://ftp.cs.uiowa.edu/public/jones/pdp8/coreimages.txt.Z
  1048.  
  1049. Many versions of BASIC were also available, from DEC and other sources.
  1050. DEC BASIC was widely used on PDP-8 systems sold under the EduSystem
  1051. marketing program.  A paper-tape version was available that ran in 4K
  1052. and was compatible with disk based systems, versions distributed with
  1053. OS/8 and TSS-8, an 8K stand-alone time-sharing version was available,
  1054. and there were others.  EduSystem 25 Basic is available from:
  1055.  
  1056.     ftp://russ.ucs.indiana.edu/pub/DEC/PDP8/Langs/Edu25Basic/
  1057.  
  1058. DIBOL was DEC's attempt at competing with COBOL in the commercial arena.
  1059. It was originally implemented under MS/8 but most versions were sold to
  1060. run under the COS operating system.
  1061.  
  1062. Algol was available from a fairly early date.  One version is available
  1063. from:
  1064.  
  1065.     ftp://russ.ucs.indiana.edu/pub/DEC/PDP8/Langs/Algol/Ascii/
  1066.  
  1067. At least two Pascal compilers were developed for the PDP-8.  One was a
  1068. Pascal-S interpreter, written in assembler, the other was a Pascal-P
  1069. compiler with a P-code interpreter written in assembler.
  1070. A Pascal S interpreter, requiring a 28K PDP-8/E configuration, is available
  1071. from:
  1072.  
  1073.     ftp://russ.ucs.indiana.edu/pub/DEC/PDP8/Langs/Pascal/Ascii
  1074.  
  1075. Another OS/8 Pascal system, the source code for which was rescued by
  1076. Larwrence LeMay, is available from:
  1077.  
  1078.     ftp://ftp.dbit.com/pub/pdp8/pascal
  1079.  
  1080. A LISP interpreters was written for the PDP-8; the original version
  1081. ran in 4K (originally written in Germany?); a disassembled and commented
  1082. version of this was the basis of expanded versions that eventually
  1083. could utilize up to 16K.  One version of LISP is available from:
  1084.  
  1085.     ftp://russ.ucs.indiana.edu/pub/DEC/PDP8/Langs/Lisp/Ascii/
  1086.  
  1087. POLY SNOBOL was a version of SNOBOL that was somewhere between
  1088. Griswold's definitions of SNOBOL 3 and SNOBOL 4.
  1089.  
  1090. TECO, the text editor, was included in the standard OS/8 distributions and
  1091. is a general purpose language (the Emacs editor began as a set of Teco
  1092. macros!).  The story of TECO on the PDP-8 is convoluted.  Russ Ham
  1093. implemented TECO under his OS8 (without a slash) system.  This version of
  1094. TECO was pirated by the Oregon Museum of Science and Industry (OMSI), where
  1095. the system was ported to PS/8.  Richard F. Lary and Stan Rabinowitz made it
  1096. more compatible with other versions of TECO, and the result of this work
  1097. is the version distributed by DECUS (catalog number 110450 is the manual).
  1098. RT-11 TECO for the PDP-11 is a port of this code.
  1099.  
  1100. DECUS also lists the PAGE8 language (catalog numbers 800936), the VISTA
  1101. editor (catalog number 800938), and the ICE text editor (catalog number
  1102. 800939).
  1103.  
  1104. ------------------------------
  1105.  
  1106. Subject: Where can I get PDP-8 software?
  1107.  
  1108. DEC is still making computers, but they've largely forgotten about the
  1109. PDP-8.  The main DEC WWW server is
  1110.  
  1111.     http://www.digital.com/
  1112.  
  1113. DECUS, the DEC User Society, is still alive and well, and their submission
  1114. form still lists PAL8 and FOCAL as languages in which they accept
  1115. submissions!  The DECUS library catalog is available on-line at
  1116. decus.org; www access is through gopher.decus.org or
  1117.  
  1118.     http://www.decus.org/
  1119.  
  1120. To quote the README file from the DECUS on-line catalog, "Items from
  1121. older DECUS Library catalogs are still also available (provided their
  1122. media can still be read), but machine readable catalog information is
  1123. not available for these."  Direct questions by E-mail to
  1124. INFORMATION@DECUS.ORG.
  1125.  
  1126. Bob Supnik at DEC has rescued OS/8 from oblivion within DEC and has
  1127. managed to get DEC to grant a non-commercial free-use licence for OS/8
  1128. to all who wish to use it.  In addition, he has released a demonstration
  1129. version of OS/8 for his PDP-8 emulator, available with a copy of the
  1130. free-use licence from:
  1131.  
  1132.     ftp://ftp.digital.com/pub/DEC/sim/software/os8swre.tar.Z
  1133.  
  1134. The following anonymous FTP sites also contain publically accessable
  1135. archives of PDP-8 software and other information:
  1136.  
  1137. #    ftp://ftp.telebit.com/pub/pdp8
  1138.     ftp://ftp.update.uu.se/pub/pdp8
  1139.     ftp://russ.ucs.indiana.edu/pub/DEC/PDP8/
  1140.     ftp://ftp.cs.uiowa.edu/pub/jones/pdp8
  1141.     ftp://sunsite.unc.edu/pub/academic/computer-science/history/pdp-8
  1142.  
  1143. The latter archive also maintains an archive of traffic in alt.sys.pdp8
  1144. in the directory ...pdp8/usenet and an archive of traffic in the
  1145. pdp8-lovers mailing list in .../pdp8/pdp8-lovers.
  1146.  
  1147. The archive at Indiana contains source code for many PDP-8 compilers and
  1148. interpreters, as well as common utilities and games.
  1149.  
  1150. ------------------------------
  1151.  
  1152. Subject: Where can I get additional information?
  1153.  
  1154. The companion faq on PDP-8 models and options contains a detailed production
  1155. history of the PDP-8 as well as a high level description of incompatabilities
  1156. between models.  This is available from:
  1157.  
  1158.     http://www.cis.ohio-state.edu/hypertext/faq/usenet/dec-faq/top.html
  1159.     http://www.cs.ruu.nl/wais/html/na-dir/dec-faq/.html
  1160.  
  1161. The file WHAT-IS-A-PDP8, by Charles Lasner contains considerable
  1162. additional information; this file is available by ftp from:
  1163.  
  1164.     ftp://ftp.telebit.com/pub/pdp8/WHAT-IS-A-PDP8
  1165.  
  1166. A modest attempt at an on-line PDP-8 manual is available from:
  1167.  
  1168.     http://www.cs.uiowa.edu/~jones/pdp8/man/
  1169.  
  1170. The mailing list pdp8-lovers@zach1.tiac.net reaches a number of PDP-8
  1171. owners and users, not all of whom have USENET feeds.  (This list does not
  1172. accept postings from nonsubscribers; to subscribe, send 'subscribe' as
  1173. the body of an E-mail message to pdp8-lovers-request@zach1.tiac.net).
  1174. This mailing list replaces the older list pdp8-lovers@ai.mit.edu, which
  1175. was destroyed by repeated commercial spamming.  The server also offers
  1176. subscribers access to an archive of traffic on the list.
  1177.  
  1178. Many "archival" books have included fairly complete descriptions of the
  1179. PDP-8; among them, "Computer Architecture, Readings and Examples" by
  1180. Gordon Bell and Allen Newell is among the most accurate and complete
  1181. (but difficult to read).
  1182.  
  1183. ------------------------------
  1184.  
  1185. Subject: What use is a PDP-8 today?
  1186.  
  1187. What use is a Model T today?  Collectors of both come in the same basic
  1188. classes.  First, there are antiquarians who keep an old one in the
  1189. garage, polished and restored to new condition but hardly ever used.
  1190. Once a year, they warm it up and use it, just to prove that it still
  1191. works, but they don't make much practical use of it.
  1192.  
  1193. PDP-8 systems maintained by antiquarians are frequently in beautiful
  1194. shape.  Antiquarians worry about dust, chipped paint, and missing
  1195. switches, and they establish newsgroups and mailing lists to help them
  1196. locate parts and the advice needed to fix their machines.
  1197.  
  1198. In the second class are those who find old machines and soup them up,
  1199. replacing major parts to make a hotrod that only looks like the original
  1200. from the outside, or keeping the old mechanism and putting it to uses
  1201. that were never intended.  Some PDP-8 owners, for example, have built
  1202. PDP-8 systems with modern SCSI disk interfaces!  There is serious
  1203. interest in some quarters in constructing an omnibus board that would
  1204. support an IDE disk of the variety that was mass-produced for the
  1205. IBM PC/AT.
  1206.  
  1207. Last, there are the old folks who still use their old machines for their
  1208. intended purposes long after any sane economic analysis would recommend
  1209. such use.  If it ain't broke, don't fix it, and if it can be fixed,
  1210. why bother replacing it?  Both Model T Fords and the classic PDP-8
  1211. machines are simple enough that end users can maintain and repair them
  1212. indefinitely.  All you need to keep a vintage -8 running are a stock
  1213. of inexpensive silicon diodes and a stock of 2N3639B or better,
  1214. 2N3640 transistors.
  1215.  
  1216. Unlike most modern personal computers, PDP-8 systems were routinely sold
  1217. with complete maintenance manuals; these included schematic diagrams,
  1218. explanations of not only how to use the devices, but how they are built,
  1219. and suggestions to those considering building their own peripherals.
  1220. Compared with many so-called "open systems" of today, the PDP-8 was far
  1221. better documented and far more open.
  1222.  
  1223. Preservation of the PDP-8 has proven to be of immense practical value
  1224. in defending against the rising tide of patents in the area of
  1225. interactive graphics.  For example, when Sanders Associates sued the
  1226. Odyssey division of Magnavox, the key testimony in this suit was Steve
  1227. Russell's Spacewar, originally written for the PDP-1 in the fall of 1961.
  1228. The fact that documented versions of Spacewar and other computer games
  1229. dating back to the early 1960's could still be run on a surviving LINC-8
  1230. apparently played an important part in arriving at an out-of-court
  1231. settlement that ended, for practical purposes, the Sanders claim to
  1232. the technology behind all video games.  It is far easier to prove that
  1233. some software technology existed by demonstrating it on original hardware
  1234. than by waving a dusty listing in front of someone's face!
  1235.  
  1236. Finally, the PDP-8 is such a minimal machine that it is an excellent
  1237. introduction to how computers really work.  Over the years, many students
  1238. have built complete working PDP-8 systems from scratch as lab projects,
  1239. and the I/O environment on a PDP-8 is simple enough that it is a very
  1240. appropriate environment for learning operating system programming
  1241. techniques.
  1242.  
  1243. ------------------------------
  1244.  
  1245. Subject: Who's Who?
  1246.  
  1247. You can't beat the book Digital at Work (Digital Press, 1992) for short
  1248. writeups on the people inside DEC who made the PDP-8!
  1249.  
  1250. C. Gordon Bell is generally credited with the original design of the
  1251. PDP-8 (as well as designing the PDP-4, 5 and 6).  He was also involved
  1252. with recommending what became the PDP-11 when that design was competing
  1253. with the design that probably became the NOVA, and as vice president of
  1254. research, he oversaw the development of the DEC VAX family.
  1255.  
  1256. Alan Kotok worked with Bell in working up the original specifications
  1257. of the PDP-8.
  1258.  
  1259. Edson DeCastro was a key man in the design of the PDP-5 through the
  1260. PDP-8/L, then founded Data General to build the Nova.
  1261.  
  1262. Ben Gurley designed the early DEC machines, starting with the
  1263. PDP-1.  The actual design work on the -8, however, was done by Ed
  1264. deCastro, who later founded Data General to build the Nova.
  1265.  
  1266. Ken Olson ran DEC from the beginning.
  1267.  
  1268. Ed Yourdon, who later became well known as a programming methodology
  1269. guru, helped hack up the PAL III assembler for the -8 from PAL II.
  1270.  
  1271. Richard Merrill invented FOCAL and wrote the original (1968) and classic
  1272. FOCAL-69 interpreters for the PDP-8.  He also did early translations of
  1273. the interpreter to PDP-7/PDP-9 code and perhaps the earliest PDP-11
  1274. version.  In addition, he wrote the EDIT-8 paper-tape based text editor
  1275. based on the FOCAL built-in text editor.
  1276.  
  1277. Richard F. Lary developed the RL Monitor System, and then went on to
  1278. develop OS/8, with help from Ed Friedman and another programmer named
  1279. Paul, under the management of Chuck Conley.
  1280.  
  1281. Charles Lasner developed P?S/8, and he is widely known as a leader in
  1282. the movement to preserve these historic machines.  He created the
  1283. alt.sys.pdp8 newsgroup.
  1284.  
  1285. George Thissell oversaw the development of OS/8 FORTRAN-IV, with Denny
  1286. Pavlock as part of the team.
  1287.  
  1288. Wesley Clark developed the LINC while working at Lincoln Labs; this was
  1289. the first 12 bit minicomputer built with DEC parts.
  1290.  
  1291. Mary Allen Wilkes Clark developed the early LAP programs for the LINC.
  1292.  
  1293. Don Witcraft wrote the TSS-8 scheduler, command decoder and UUO
  1294. handler, after working on the first swapping monitor for the PDP-10.
  1295. John Everett wrote the disk handler, file system, TTY handler
  1296. and  680-I service routine for TSS-8, after working on the Disk Monitor
  1297. System and PAL-D, the first disk-based version of PAL.
  1298.  
  1299. Roger Pyle and John Everett wrote the PDP-8 Disk Monitor System, and
  1300. John Everett adapted PAL-III to make PAL-D for DMS.  Bob Bowering, author
  1301. of MACRO for the -6 and -10, wrote an expanded version, PAL-X, for TSS-8.
  1302.  
  1303. Jimmy Dykes was the program manager for Harris in the contract development
  1304. of the Harris 6120 microprocessor; he later moved to GE Semiconductor.
  1305. Robert M. Smith was involved in the DEC side of this joint venture, after
  1306. having designed a number of OMNIBUS interfaces during the 1970's.
  1307.  
  1308. Douglas W. Jones wrote this FAQ, but prior to the summer of 1992, he'd
  1309. never used a PDP-8.  He has also written a report on how to photocopy
  1310. and archivally bind ailing paperback books such as DEC's handouts, a
  1311. PAL-like cross assembler in C, and a UNIX-based PDP-8 emulator.
  1312.  
  1313. ------------------------------
  1314.  
  1315. End of PDP-8 Frequently Asked Questions (posted every other month)
  1316. ******************************************************************
  1317.