Knowledge (XXG)

PDP-8

Source 📝

1982:*10 / Set current assembly origin to address 10, STPTR, STRNG-1 / An auto-increment register (one of eight at 10-17) *200 / Set assembly origin (load address) LOOP, TAD I STPTR / Pre-increment mem location 10, fetch indirect to get the next character of our message SNA / Skip on non-zero AC HLT / Else halt at end of message JMS OUT1 / Write out one character JMP LOOP / And loop back for more OUT1, 0 / Will be replaced by caller's updated PC TSF / Skip if printer ready JMP .-1 / Wait for flag TLS / Send the character in the AC CLA CLL / Clear AC and Link for next pass JMP I OUT1 / Return to caller STRNG, "H / A well-known message "e / "l / NOTE: "l / "o / Strings in PAL-8 and PAL-III were "sixbit" ", / To use ASCII, we spell it out, character by character " / "w / "o / "r / "l / "d / "! / 015 / 012 / 0 / Mark the end of our null-terminated string (.ASCIZ hadn't been invented yet!) 1951:*10 / Set current assembly origin to address 10, STPTR, STRNG-1 / An auto-increment register (one of eight at 10-17) *200 / Set current assembly origin to program text area HELLO, CLA CLL / Clear AC and Link again (needed when we loop back from tls) TAD I Z STPTR / Get next character, indirect via PRE-auto-increment address from the zero page SNA / Skip if non-zero (not end of string) HLT / Else halt on zero (end of string) TLS / Output the character in the AC to the teleprinter TSF / Skip if teleprinter ready for character JMP .-1 / Else jump back and try again JMP HELLO / Jump back for the next character STRNG, 310 / H 345 / e 354 / l 354 / l 357 / o 254 /, 240 / (space) 367 / w 357 / o 362 / r 354 / l 344 / d 241 / ! 0 / End of string $ HELLO /DEFAULT TERMINATOR 744: 2041:*200 MAIN, CLA CLL /Set the message pointer TAD (MESSG /To the beginning of the message (literal) DCA SP LOOP, JMS POP SNA /Stop execution if zero HLT JMS OUT /Otherwise, output a character JMP LOOP MESSG, "H "e "l "l "o ", " "w "o "r "l "d "! 015 012 0 OUT, 0 / Will be replaced by caller's updated PC TSF / Skip if printer ready JMP .-1 / Wait for flag TLS / Send the character in the AC CLA CLL / Clear AC and Link for next pass JMP I OUT / Return to caller 1932:/Compare numbers in memory at OPD1 and OPD2 CLA CLL /Must start with 0 in AC and link TAD OPD1 /Load first operand into AC (by adding it to 0); link is still clear CIA /Complement, then increment AC, negating it TAD OPD2 /AC now has OPD2-OPD1; if OPD2≥OPD1, sum overflows and link is set SZL /Skip if link is clear JMP OP2GT /Jump somewhere in the case that OPD2≥OPD1; /Otherwise, fall through to code below. 772: 1852: 1836: 226: 1905:
instruction (whether it has executed a CIF and not yet executed the matching jump instruction). The manager has to include a complete PDP-8 emulator (not difficult for an 8-instruction machine). Whenever a CIF instruction traps to the manager, it has to emulate the instructions up to the next jump. Fortunately, as a jump usually is the next instruction after CIF, this emulation does not slow programs down much, but it is a large workaround to a seemingly small design deficiency.
758: 1351:(PC) register, meaning that the addressed location was within the same 128 words as the instruction. If bit 4 is clear, zeroes are used, so the addressed location is within the first 128 words of memory. Bit 3 specifies indirection; if set, the address obtained as described so far points to a 12-bit value in memory that gives the actual effective address for the instruction; this way, operands can be anywhere in memory at the expense of an additional word. The 2020:
If one module is coded with an incorrect or obsolete address for a subroutine, it would not just fail to execute the entire code sequence of the subroutine, it might modify a word of the subroutine's code, depositing a return address that the processor might interpret as an instruction during a subsequent correct call to the subroutine. Both types of error might become evident during the execution of code that was written correctly.
814: 214: 3477: 1148:
operated the fuel handling machine at Reactor #85, the Platteville, Colorado Nuclear Fuel powered Electric Generating Station, Ft. St. Vrain. It was reviewed by Rockwell International and performed flawlessly for 2.5 years during the operation of the Fuel Handling Machine while it was used to remove fuel from the reactor core and decommission the plant. It included a simulated paper tape loader and front panel.
1844: 786: 38: 800: 47: 3487: 1828: 1901:
instructions (including those that operated on the Memory Extension Controller) cause a trap (an interrupt handled by the manager). In this way, the manager can map memory references, map data or instruction fields, and redirect I/O to different devices. Each original program has complete access to a "virtual machine" provided by the manager.
518: 2035:*100 /make routines accessible for next example PUSH, 0 DCA DATA CLA CMA / -1 TAD SP DCA SP TAD DATA DCA I SP JMP I PUSH /Return POP, 0 CLA CLL TAD I SP ISZ SP JMP I POP DATA, 0 SP, 0 306:
computing its two's complement then adding it; writing a conditional jump involves writing a conditional skip around the jump, the skip coding the condition negative to the one desired. Some ambitious programming projects failed to fit in memory or developed design defects that could not be solved. For example, as noted
2077:
Because there is only a single interrupt line on the I/O bus, the occurrence of an interrupt does not inform the processor of the source of the interrupt. Instead, the interrupt service routine has to serially poll each active I/O device to see if it is the source. The code that does this is called a
2019:
The use of the JMS instruction makes debugging difficult. If a programmer makes the mistake of having a subroutine call itself, directly or by an intermediate subroutine, then the return address for the outer call is destroyed by the return address of the subsequent call, leading to an infinite loop.
1975:
occurs. (A stack can be implemented in software, as demonstrated in the next section.) Instead, the JMS instruction simply stores the updated PC (pointing past JMS, to the return address) at the effective address and jumps to the effective address plus one. The subroutine returned to its caller using
1935:
As shown, much of the text of a typical PDP-8 program focuses not on the author's intended algorithm but on low-level mechanics. An additional readability problem is that in conditional jumps such as the one shown above, the conditional instruction (which skips around the JMP) highlights the opposite
1891:
The extended memory scheme let existing programs handle increased memory with minimal changes. For example, 4K FOCAL normally had about 3K of code with only 1K left over for user program and data. With a few patches, FOCAL could use a second 4K field for user program and data. Moreover, additional 4K
1661:
In most cases, the operations are sequenced so that they can be combined in the most useful ways. For example, combining CLA (CLear Accumulator), CLL (CLear Link), and IAC (Increment ACcumulator) first clears the AC and Link, then increments the accumulator, leaving it set to 1. Adding RAL to the mix
2052:
GETN, 0 /Gets the number pointed to and moves the pointer CLA CLL /Clear accumulator TAD I PTR /Gets the number pointed to DCA TEMP /Save current value ISZ PTR /Increment pointer TAD I PTR /Get next address DCA PTR /Put in pointer JMP I GETN
1859:
A 12-bit word can have 4,096 different values, and this is the maximum number of words the original PDP-8 can address indirectly through a word pointer. 4,096 12-bit words represent 6,144 bytes in modern terminology, or 6 kB. As programs became more complex and the price of memory fell, it
1625:
00 01 02 03 04 05 06 07 08 09 10 11 ___________________________________ | 1| 1| 1| 0| | | | | | | | | |__|__|__|__|__|__|__|__|__|__|__|__| |CLA CMA RAR BSW CLL CML RAL IAC Execution order 1 1 2 2 4 4 4 3
1246:
One-cycle data break effectively triples the DMA transfer rate because only the target data needed to be transferred to and from the core memory. However, the I/O devices need more electronic logic to manage their own word count and transfer address registers. By the time the PDP-8/E was introduced,
305:
The low complexity brought other costs. It made programming cumbersome, as is seen in the examples in this article and from the discussion of "pages" and "fields". Much of one's code performed the required mechanics, as opposed to setting out the algorithm. For example, subtracting a number involves
2099:
by David Winkel and Franklin Prosser, contains an example problem spanning several chapters in which the authors demonstrate the process of designing a computer that is compatible with the PDP-8/I. The function of every component is explained. Although it is not a production design, as it uses more
1425:). Memory in page 0 is at a premium, since variables placed here can be addressed directly from any page. (Moreover, address 0000 is where any interrupt service routine must start, and addresses 0010–0017 have the special property of auto-incrementing preceding any indirect reference through them.) 684:
Basic models use software to do multiplication and division. For faster math, the Extended Arithmetic Element (EAE) provides multiply and divide instructions with an additional register, the Multiplier/Quotient (MQ) register. The EAE was an option on the original PDP-8, the 8/I, and the 8/E, but it
1867:
Each 4K of memory is called a field. The Memory Extension Controller contains two three-bit registers: the DF (Data Field) and the IF (Instruction Field). These registers specify a field for each memory reference of the CPU, making a total of 15 bits of address. The IF register specifies the field
699:
Because of their simplicity, early PDP-8 models were less expensive than most other commercially available computers. However, they used costly production methods often used for prototypes. They used thousands of very small, standardized logic-modules, with gold connectors, integrated by a costly,
301:
The PDP-8 combines low cost, simplicity, expandability, and careful engineering for value. The greatest historical significance was that the PDP-8's low cost and high volume made a computer available to many new customers for many new uses. Its continuing significance is as a historical example of
1908:
By the time of the PDP-8/A, memory prices had fallen enough that memory exceeding 32K was desirable. The 8/A added a new set of instructions for handling more than eight fields of memory. The field number could now be placed in the AC, rather than hard-coded into the instruction. However, by this
1871:
A set of I/O instructions in the range 6200 through 6277 is handled by the Memory Extension Controller and give access to the DF and IF registers. The 62X1 instruction (CDF, Change Data Field) set the data field to X. Similarly 62X2 (CIF) set the instruction field, and 62X3 set both. Pre-existing
1863:
To maintain compatibility with pre-existing programs, new hardware outside the original design added high-order bits to the effective addresses generated by the program. The Memory Extension Controller expands the addressable memory by a factor of 8, to a total of 32,768 words. This expansion was
1431:
It was important to write routines to fit within 128-word pages, or to arrange routines to minimize page transitions, as references and jumps outside the current page require an extra word. Consequently, much time was spent cleverly conserving one or several words. Programmers deliberately placed
1872:
programs would never execute CIF or CDF; the DF and IF registers would both point to the same field, a single field to which these programs were limited. The effect of the CIF instruction was deferred to coincide with the next JMP or JMS instruction, so that executing CIF would not cause a jump.
1603:
The OPR instruction was said to be "microcoded." This did not mean what the word means today (that a lower-level program fetched and interpreted the OPR instruction), but meant that each bit of the instruction word specifies a certain action, and the programmer could achieve several actions in a
730:, in integrated circuits. The core memory was redesigned. It allows expansion with less expense because it uses the OMNIBUS in place of the wire-wrapped backplane on earlier models. (A personal account of the development of the PDP-8/E can be read on the Engineering and Technology History Wiki.) 1900:
On the PDP-8/E and later models, the Memory Extension Controller was enhanced to enable machine virtualization. A program written to use a PDP-8's entire resources can coexist with other such programs on the same PDP-8 under the control of a virtual machine manager. The manager can make all I/O
1875:
It was more complicated for multiple-field programs to deal with field boundaries and the DF and IF registers than it would have been if they could simply generate 15-bit addresses, but the design provided backward compatibility and is consistent with the 12-bit architecture used throughout the
1242:
called "three-cycle data break" is supported; this requires the assistance of the processor. The "data break" method moves some of common logic needed to implement DMA I/O from each I/O device into one common copy of the logic within the processor. "Data break" places the processor in charge of
1147:
One of the first commercial versions of a PDP-8/S virtual machine ran on a Kaypro 386 (an 80386-based computer) and was written in the C computer language (before the ANSI-C standard was finalized) and assembler by David Beecher of Denver, Colorado. It replaced a failing PDP-8/S computer that
1904:
New I/O instructions to the Memory Extension Controller retrieve the current value of the data and instruction fields, letting software save and restore most of the machine state across a trap. However, a program can not sense whether the CPU is in the process of deferring the effect of a CIF
1721:
00 01 02 03 04 05 06 07 08 09 10 11 ___________________________________ | 1| 1| 1| 1| | | | | 1| | | 0| |__|__|__|__|__|__|__|__|__|__|__|__| |CLA SNA OSR SPA SZL HLT 2 1 1 1 3 2
1681:
00 01 02 03 04 05 06 07 08 09 10 11 ___________________________________ | 1| 1| 1| 1| | | | | 0| | | 0| |__|__|__|__|__|__|__|__|__|__|__|__| |CLA SZA OSR SMA SNL HLT 2 1 1 1 3 3
1665:
The combination CMA IAC, which the assembler lets you abbreviate as CIA, produces the arithmetic inverse of AC: the twos-complement negation. Since there is no subtraction instruction, only the twos-complement add (TAD), computing the difference of two operands, requires first negating the
1769:
00 01 02 03 04 05 06 07 08 09 10 11 ___________________________________ | 1| 1| 1| 1| | | | | | | | 1| |__|__|__|__|__|__|__|__|__|__|__|__| |CLA SCA \_ _/ | MQA MQL CODE 1* 2 2 2 3
696:. Compared to more complex machines, unnecessary features were removed and logic is shared when possible. Instructions use autoincrement, autoclear, and indirect access to increase the software's speed, reduce memory use, and substitute inexpensive memory for expensive registers. 1143:
re-implementations. The best of these correctly execute DEC's operating systems and diagnostic software. The software simulations often simulate late-model PDP-8s with all possible peripherals. Even these use only a tiny fraction of the capacity of a modern personal computer.
1765:
Unused bit combinations of OPR are defined as a third Group of microprogrammed actions mostly affecting the MQ (Multiplier/Quotient) register. The MQ register and the extended arithmetic element (EAE) instructions are optional and only exist when EAE option was purchased.
1868:
for instruction fetches and direct memory references; the DF register specifies the field for indirect data accesses. A program running in one field can reference data in the same field by direct addressing, and reference data in another field by indirect addressing.
1319:, was also available. TSS-8 allows multiple users to log into the system via 110-baud terminals, and edit, compile and debug programs. Languages include a special version of BASIC, a FORTRAN subset similar to FORTRAN-1 (no user-written subroutines or functions), an 2015:
JUMPL, DCA TEMP / Deposit the accumulator in some temporary location TAD JUMPL+3 / Load the return address into the accumulator: hard coded JMP SUBRO / Go to the subroutine, and have it handle jumping back (to JUMPL+3)
602:
PDP-8 instructions have a three-bit opcode, so there are only eight instructions. The programmer can use many additional instruction mnemonics, which the assembler translates to specific OPR or IOT instructions. The PDP-8 has only three programmer-visible
1709:
Three of the bits (CLA, OSR, HLT) perform actions if set. Another three bits (SMA, SZA, SNL) encode skip conditions; a skip is performed if any of the specified conditions are true. For example, "SMA SZA", opcode 7540, skips if AC ≤ 0.
325:
returned full-circle to the PDP-8's emphasis on a simple instruction set and achieving multiple actions in a single instruction cycle, in order to maximize execution speed, although the newer computers have much longer instruction words.
248:. It was the first computer to be sold for under $ 20,000, making it the best-selling computer in history at that time. The Straight-8 was supplanted in 1966 by the PDP-8/S, which was available in desktop and rack-mount models. Using a 313:
As design advances reduced the costs of logic and memory, the programmer's time became relatively more important. Subsequent computer designs emphasized ease of programming, typically using larger and more intuitive instruction sets.
1346:
word (labelled bits 0 through 2) are the operation code. For the six operations that refer to memory, bits 5 through 11 provide a seven-bit address. Bit 4, if set, says to complete the address using the five high-order bits of the
1599:
Many operations are achieved using OPR, including most of the conditionals. OPR does not address a memory location; conditional execution is achieved by conditionally skipping the following instruction, which is typically a JMP.
627:. To save money, these serve multiple purposes at different points in the operating cycle. For example, the memory buffer register provides arithmetic operands, is part of the instruction register, and stores data to rewrite the 2086:
device in need of service.) The relative interrupt priority of the I/O devices is determined by their position in the skip chain: If several devices interrupt, the device tested earlier in the skip chain is serviced first.
2069:
to location 0000. As it is difficult to write reentrant subroutines, it is difficult to nest interrupts and this is usually not done; each interrupt runs to completion and re-enables interrupts just before executing the
2417: 743: 1573:
Bits 9 through 11 of an IOT instruction select the function(s) the device performs. Simple devices (such as the paper tape reader and punch and the console keyboard and printer) use the bits in standard ways:
1255:
Early PDP-8 systems were shipped with no pre-installed software; each time the PDP-8 was powered up, the user hand-entered instructions using a bank of 12 toggle switches. Typically, these instructions were a
1662:(so CLA CLL IAC RAL) causes the accumulator to be cleared, incremented, then rotated left, leaving it set to 2. In this way, small integer constants were placed in the accumulator with a single instruction. 1243:
maintaining the DMA address and word count registers. In three successive memory cycles, the processor updates the word count, updates the transfer address, and stores or retrieves the actual I/O data word.
2001:
with the PDP-8 because read-write return-address storage is commingled with read-only code storage in the address space. Programs intended to be placed into ROMs approach this problem in several ways:
1308:
multi-user systems were available: a real-time system (RTS-8) was available as were multiuser commercial systems (COS-300 and COS-310) and a dedicated single-user word-processing system (WPS-8).
2467:
Another advantage of using a high-level level language is that the same program can be compiled to many different machine languages and, hence, be brought to run on many different machines.
1754:
performed if all of the specified inverted conditions are true. For example, "SPA SNA", opcode 7550, skips if AC > 0. If none of bits 5–7 are set, then the skip is unconditional.
545:(mantissa) and one-word exponent. Subject to speed and memory limitations, the PDP-8 can perform calculations similar to more expensive contemporary electronic computers, such as the 255:(ALU) allowed the PDP-8/S to be smaller and less expensive, although slower than the original PDP-8. A basic 8/S sold for under $ 10,000, the first machine to reach that milestone. 1428:
The standard assembler places constant values for arithmetic in the current page. Likewise, cross-page jumps and subroutine calls use an indirect address in the current page.
723:(as of 2008) usually have 15,000 or more. The reductions in the electronics permitted a much smaller case, about the size of a bread-box. The 8/S was designed by Saul Dinman. 1614:
The OPR instructions come in Groups. Bits 3, 8 and 11 identify the Group of an OPR instruction, so it is impossible to combine the microcoded actions from different groups.
1604:
single instruction cycle by setting multiple bits. In use, a programmer can write several instruction mnemonics alongside one another, and the assembler combines them with
1591:
More complicated devices, such as disk drives, use these 3 bits in device-specific fashions. Typically, a device decodes the 3 bits to give 8 possible function codes.
236:
The earliest PDP-8 model, informally known as a "Straight-8", was introduced on 22 March 1965 priced at $ 18,500 (equivalent to about $ 178,900 in 2023). It uses
3526: 2008:
They are placed into special ROM cards that provide a few words of read/write memory, accessed indirectly through the use of a thirteenth flag bit in each ROM word.
595:
were in widespread use at the time, and the PDP-8's twelve-bit words can efficiently store two such characters. In addition, a six-bit teleprinter code called the
1979:
For example, here is "Hello, World!" re-written to use a subroutine. When the JMS instruction jumps to the subroutine, it modifies the 0 coded at location OUT1:
588:. The 1974 Pocket Reference Card for the PDP-8/E gives a basic instruction time of 1.2 microseconds, or 2.6 microseconds for instructions that reference memory. 2082:
because it consists of a series of PDP-8 "test and skip if flag set" I/O instructions. (It was not unheard-of for a skip chain to reach its end without finding
2032:, stacks can be implemented in software. Here are example PUSH and POP subroutines, simplified to omit issues such as testing for stack overflow and underflow: 2520: 182:. It was the first commercially successful minicomputer, with over 50,000 units being sold over the model's lifetime. Its basic design follows the pioneering 1847:
One of three inter-connected modules that make up a PDP-8 core memory plane. This is the middle of the three and contains the array of actual ferrite cores.
1490:
The PDP-8 processor defined few of the IOT instructions, but simply provided a framework. Most IOT instructions were defined by the individual I/O devices.
715:. The 8/S also reduced the number of logic gates by using a serial, single-bit-wide data path to do arithmetic. The CPU of the PDP-8/S has only about 519 258:
Later systems (the PDP-8/I and /L, the PDP-8/E, /F, and /M, and the PDP-8/A) returned to a faster, fully parallel implementation but use much less costly
2204:
How Much Is That in Real Money? A Historical Price Index for Use as a Deflator of Money Values in the Economy of the United States: Addenda et Corrigenda
2904: 2011:
They avoid the use of subroutines; or use code such as the following, instead of the JMS instruction, to put the return address in read-write memory:
2565: 2350: 3003: 3043: 2437:
a phrase used in Section 1.1 of "Introduction to the Central Processing Unit (CPU)" of a 2007 document about a Texas Instruments microcomputer.
1565:
Instructions for device 0 affect the processor as a whole. For example, ION (6001) enables interrupt processing, and IOFF (6002) disables it.
2383: 2239: 1864:
thought sufficient because, with core memory then costing about 50 cents a word, a full 32K of memory would equal the cost of the CPU.
3015: 1790:
Typically CLA and MQA were combined to transfer MQ into AC. Another useful combination is MQA and MQL, to exchange the two registers.
599:
or TTS code was in widespread use by the news wire services, and an early application for the PDP-8 was typesetting using this code.
3516: 2504: 2224:
How Much Is That in Real Money? A Historical Price Index for Use as a Deflator of Money Values in the Economy of the United States
522: 826:
The total sales figure for the PDP-8 family has been estimated at over 300,000 machines. The following models were manufactured:
693: 322: 52: 932: 727: 259: 3490: 3447: 585: 2104:
components and solid state rather than core memory, the exercise provides a detailed description of the computer's operation.
3401: 2274: 1343: 534: 1945: 1545:
Bits 3 through 8 of an IOT instruction select an I/O device. Some of these device addresses are standardized by convention:
634:
For input and output, the PDP-8 has a single interrupt shared by all devices, an I/O bus accessed by I/O instructions and a
282:
family. By virtue of their CMOS technology they had low power requirements and were used in some embedded military systems.
533:
size and arithmetic (on unsigned integers from 0 to 4095 or signed integers from −2048 to +2047). However, software can do
3052: 2403: 2305: 1133: 179: 72: 1260:
to read a program from the paper tape reader. Program development could then proceed, using paper tape input and output.
3431: 3345: 2231: 2211: 1264: 1207: 1132:, as its instruction set is much simpler than modern architectures. Enthusiasts have created entire PDP-8s using single 726:
The even later PDP-8/E is a larger, more capable computer, but further reengineered for better value. It employs faster
530: 1617:
One action (and corresponding bit) which is the same in all groups is bit 4, CLA. If set, the accumulator is cleared.
59:, England. This example is from the first generation of PDP-8s, built with discrete transistors and later known as the 3221: 663: 659: 1669:
A Group 1 OPR instruction that has none of the microprogrammed bits set performs no action. The programmer can write
712: 237: 2853: 310:, inadvertent recursion of a subroutine produces defects that are difficult to trace to the subroutine in question. 3511: 3036: 2029: 1986: 1960: 1584:
Bit 9 moves a word between AC and the device, initiates another I/O transfer, and clears the device's "ready" flag.
1469: 1301: 2740: 270:
devices were available for it. The last commercial PDP-8 models introduced in 1979 are called "CMOS-8s", based on
3531: 3521: 3061: 2760: 859: 538: 230: 82: 1611:
Microcoded actions take place in a well-defined sequence designed to maximize the utility of many combinations.
1355:
instruction does not operate on a memory word, except if indirection is specified, but has the same bit fields.
2065:
line on the PDP-8 I/O bus. The processor handles any interrupt by disabling further interrupts and executing a
266:
logic. Most surviving PDP-8s are from this era. The PDP-8/E is common, and well-regarded because many types of
2882: 1330:, the Digital Equipment Corporation User Society, and often came with full source listings and documentation. 2979: 2964:, pages 120–136. With enough detail that an electrical engineer could build one (if able to find the parts). 2496: 2313: 1305: 678: 624: 608: 249: 2703: 1588:
These operations take place in a well-defined order that gives useful results if more than one bit is set.
677:
To save money, the design uses inexpensive main memory for many purposes that are served by more expensive
3480: 3302: 1990: 620: 592: 2584: 1909:
time, the PDP-8 was in decline, so very little standard software was modified to use these new features.
3462: 3029: 2617: 2342: 252: 202: 1884:
memory addresses are expanded to 20 bits by combining them with the contents of a specified or implied
2720: 1985:
The fact that the JMS instruction uses the word just before the code of the subroutine to deposit the
1851: 1835: 1713:
A Group 2 OPR instruction that has none of the microprogrammed bits set is another No-Op instruction.
1234:
slots) introduced in the PDP-8/E. (Details are described in the referenced IEEE article listed below.)
584:), so that a typical two-cycle (Fetch, Execute) memory-reference instruction runs at a speed of 0.333 3452: 2135: 1239: 1140: 635: 628: 569: 2119:
There was a minicomputer named IZOT-0310, produced in Bulgaria in 70s and 80s, which cloned PDP-8L.
1892:
fields could be allocated to separate users, turning 4K FOCAL into a multi-user timesharing system.
2483: 1964: 1747: 1605: 1449: 639: 541:
operations, for example, that uses a 36-bit floating point representation with a two-word (24-bit)
771: 757: 2101: 1096: 604: 263: 136: 2162: 225: 2222: 2202: 1608:
to devise the actual instruction word. Many I/O devices support "microcoded" IOT instructions.
1432:
code at the end of a page to achieve a free transition to the next page as PC was incremented.
3360: 2500: 2379: 2270: 1918: 1699: 1203: 1180: 707:
In the later 8/S model, introduced in August 1966, two different logic voltages increased the
638:(DMA) channel. The programmed I/O bus typically runs low to medium-speed peripherals, such as 2555:
C. Gordon Bell, et al.; Computer Structures, Principles and Organization, 1982, PDP-8 chapter
2264: 3208: 3180: 3117: 3079: 2218: 2198: 2179: 1998: 1885: 1881: 1352: 651: 241: 172: 2937: 1263:
Paper-tape versions of a number of programming languages became available, including DEC's
1247:
electronic logic had become less expensive and "one-cycle data break" became more popular.
3457: 3021: 1348: 1199: 720: 612: 499: 286: 187: 619:
called the "link register" (L). Additional registers not visible to the programmer are a
2112:
The USSR produced the minicomputers Saratov-1 and Saratov-2, which cloned the PDP-8 and
3350: 2439: 1075: 813: 565: 550: 503: 2985: 2457: 1156:
The I/O systems underwent huge changes during the PDP-8 era. Early PDP-8 models use a
3505: 3411: 3406: 2834: 2800: 2780: 2492: 1462:
010 – ISZ – Increment the memory operand and Skip next instruction if result is Zero.
1099: 1069: 686: 279: 1578:
Bit 11 causes the processor to skip the next instruction if the I/O device is ready.
3426: 3396: 3391: 3198: 2953: 2647: 2375:
The ultimate entrepreneur: the story of Ken Olsen and Digital Equipment Corporation
1312: 1184: 1177: 1161: 591:
The PDP-8 was designed in part to handle contemporary telecommunications and text.
556:
The memory address space is also 12 bits, so the PDP-8's basic configuration has a
507: 290: 267: 245: 175: 92: 2661: 2183: 1139:
Several software simulations of a PDP-8 are available on the Internet, as well as
2976:
pdp-8 Documentation: The Small Computer Handbook (1966 Edition), Sections 1 and 2
2373: 681:
registers in other computers, such as auxiliary counters and subroutine linkage.
3421: 3320: 3272: 3007: 2949: 2685: 2479: 2426:
the best use of today's most precious computer resource: a programmer's time ...
1843: 1442: 1414: 1282: 1192: 1188: 1165: 1157: 643: 596: 577: 557: 542: 217:
An open PDP-8/E with its logic modules behind the front panel and one dual TU56
213: 2539: 2317: 2266:
DEC is dead, long live DEC: the lasting legacy of Digital Equipment Corporation
2038:
And here is "Hello World" with this "stack" implemented, and "OUT" subroutine:
1289:
development system using languages such as PAL-III assembly language, FORTRAN,
3416: 3368: 3340: 3335: 3267: 1968: 1929:
The following piece of code shows what is needed just to compare two numbers:
1877: 1670: 1231: 785: 716: 671: 667: 647: 616: 573: 476: 274:
microprocessors. They were not priced competitively, and the offering failed.
2291: 1997:
without additional work by the programmer. It also makes it difficult to use
1413:
This use of the instruction word divides the 4,096-word memory into 128-word
3383: 3373: 3277: 2062: 1994: 1972: 1855:
One of three inter-connected modules that make up a PDP-8 core memory plane.
1839:
One of three inter-connected modules that make up a PDP-8 core memory plane.
1558:
03 is the console keyboard (and any associated low-speed paper tape reader).
1418: 1339: 1279: 1218: 1196: 799: 701: 655: 56: 37: 2819: 1561:
04 is the console printer (and any associated low-speed paper tape punch).
1549:
00 is handled by the processor and not sent to any I/O device (see below).
1168:
printer with an optional paper-tape punch. Over time, I/O systems such as
3292: 3287: 3282: 3262: 3257: 2857: 1452: 1286: 1129: 546: 318: 275: 1976:
an indirect JMP instruction that addresses the subroutine's first word.
1827: 1326:
A fair amount of user-donated software for the PDP-8 was available from
3325: 3159: 3147: 2184:"The Digital Equipment Corporation PDP-8 -- Frequently Asked Questions" 2136:"Early Computing at the NIH - Office of NIH History and Stetten Museum" 2113: 1800:
7403 – SCL – Step Counter Load (immediate word follows, PDP-8/I and up)
1742:
When bit 8 is set, the Group 2 skip condition is inverted; the skip is
1268: 1257: 1169: 1105: 993: 708: 511: 218: 17: 3012: 198:
which is a modernized version of the PDP-8 and LINC concepts, and the
46: 3252: 3216: 3193: 3164: 3154: 3130: 3107: 1173: 972: 883: 285:
The chief engineer who designed the initial version of the PDP-8 was
199: 195: 159: 2975: 2906:
FOCAL Programming Manual for PDP-8, PDP-8/S, PDP-8/I, LAB-8, LINC-8
1783:
7421 – MQL – Multiplier Quotient Load (Transfer AC to MQ, clear AC)
1202:
were popular I/O devices. Modern enthusiasts have created standard
977:
A PDP-8/I with support for LINC instructions (replaced the LINC-8)
517: 3330: 3297: 3188: 3137: 3102: 3097: 3092: 3087: 2269:. San Francisco, Calif.: Berrett-Koehler Publishers. p. 271. 1850: 1842: 1834: 1826: 1422: 1327: 1320: 1316: 1294: 1290: 494:
The PDP-8 used ideas from several 12-bit predecessors such as the
224: 212: 191: 149: 1227:
A "Positive" I/O bus (the same architecture using TTL signalling)
3125: 2686:"PDP-8 Summary of Models and Options (posted every other month)" 1777:
7501 – MQA – Multiplier Quotient with AC (logical or MQ into AC)
1275: 1079: 889: 495: 271: 183: 3025: 2528:. Digital Equipment Corporation. September 1969. DEC-08-YQYB-D. 1793:
Three bits specified a multiply/divide instruction to perform:
3312: 3244: 2005:
They copy themselves to read-write memory before execution, or
1417:; bit 4 of the instruction selects either the current page or 1104:
CMOS single-chip PDP-8-compatible microprocessor (used in the
863: 581: 561: 278:
sold the integrated circuits commercially through 1982 as the
2625: 2049:
Another possible subroutine for the PDP-8 is a linked list.
1465:
011 – DCA – Deposit AC into the memory operand and Clear AC.
2485:
Computer Engineering: A DEC View of Hardware Systems Design
2424:. Vol. 4, no. 22. October 29, 1985. p. 112. 1274:
Toward the end of the PDP-8 era, operating systems such as
1210:
hard disk adapters for real and simulated PDP-8 computers.
1746:
performed if any of the or group conditions are true. By
3018:
explanation on how the PDP-8 works and how to program it.
553:, while being easier to interface with external devices. 2926:. Digital Equipment Corporation. 1968. pp. 130–136. 2522:
PDP-8 Floating-Point System Programmers Reference Manual
1224:
A "Negative" I/O bus (using negative voltage signalling)
3006: – Computer History Collection from the 1757:
The actions (CLA, OSR, HLT) are not affected by bit 8.
564:
in modern terms. An optional memory-expansion unit can
244:
cards in a machine about the size of a small household
2400:
Small Computer Handbook, NEW PDP 8/I edition (Forward)
1944:
This complete PDP-8 assembly language program outputs
2912:. Digital Equipment Corporation. 1968. DEC-08-AJAB-D. 1657:
7002 – BSW – Byte Swap 6-bit "bytes" (PDP 8/e and up)
998:
Fewer, larger boards to improve price and efficiency
3440: 3382: 3359: 3311: 3243: 3207: 3179: 3116: 3078: 3060: 1054:LSI logic allowed the CPU to fit on a single board 194:instruction set. Similar machines from DEC are the 155: 145: 135: 127: 116: 98: 88: 78: 68: 2572:. Digital Equipment Corporation. 1966. p. 41. 2337: 2335: 2566:"Chapter 8: Extended Arithmetic Element Type 182" 2960:, McGraw-Hill Book Company, New York. Chapter 5 2592:. Digital Equipment Corporation. 1969. pp. 4–22. 1812:7413 – SHL – Shift left (immediate word follows) 1673:(No Operation) to assemble such an instruction. 2583:"Chapter 4: System Description and Operation". 2157: 2155: 1552:01 is usually the high-speed paper tape reader. 317:Eventually, most machine code was generated by 2095:An engineering textbook popular in the 1980s, 1921:as one might write for the PAL-III assembler. 1481:111 – OPR – microcoded OPeRations (see below). 1478:110 – IOT – Input/Output Transfer (see below). 1323:subset, FOCAL, and an assembler called PAL-D. 3037: 3004:The Digital Equipment Corporation PDP-8, 1965 2876: 2874: 2856:. AntiqueTech.com. 2009-04-21. Archived from 2440:"TMS320C28x CPU and Instruction Set (Rev. F)" 2074:instruction that returns from the interrupt. 1786:7621 – CAM – CLA + MQL clears both AC and MQ. 1191:were added. Toward the end of the PDP-8 era, 8: 2854:"The Explosion 1975-1976 » AntiqueTech" 2748:(1967-68 ed.). 1968. p. 290 (300). 1651:7012 – RTR – Rotate <L,AC> Right Twice 30: 2456:Torben Ægidius Mogensen (August 20, 2010). 1654:7006 – RTL – Rotate <L,AC> Left Twice 650:punches and readers, while DMA is used for 123:, equivalent to about $ 178,900 in 2023 3176: 3075: 3071: 3066: 3044: 3030: 3022: 2958:Computer Structures: Readings and Examples 2174: 2172: 2028:Though the PDP-8 does not have a hardware 1917:The following examples show code in PDP-8 45: 36: 29: 2887:, (Poster), Digital Equipment Corporation 2768:(1970 ed.). 1970. p. 277 (291). 2292:"The Digital Equipment Corporation PDP-8" 2258: 2256: 1959:The PDP-8 processor does not implement a 1689:7500 – SMA – Skip on AC < 0 (or group) 560:of 4,096 (2) twelve-bit words, or 6  1636:7040 – CMA – Ones Complement Accumulator 1486:IOT (Input-Output Transfer) instructions 1468:100 – JMS – JuMp to Subroutine (storing 1230:The Omnibus (a backplane of undedicated 1035:An OEM PDP-8/F with altered front panel 828: 568:using an IOT instruction. The memory is 516: 3448:Compaq Professional Workstation 1000 XP 2820:"System Source Computer Museum: PDP-8M" 2704:"PDP-8 - A High Speed Digital Computer" 2240:"Consumer Price Index (estimate) 1800–" 2127: 1963:upon which to store registers or other 1860:became desirable to expand this limit. 1735:7450 – SNA – Skip on AC ≠ 0 (and group) 1732:7510 – SPA – Skip on AC ≥ 0 (and group) 911:Lower-cost serial version of the PDP-8 3527:Computer-related introductions in 1965 2622:PDP-8 Technology Before The Millennium 2606:. Digital Equipment Corporation. 1971. 2545:. Digital Equipment Corporation. 1965. 2482:; J. C. Mudge; J. E. McNamara (1978). 1780:7441 – SCA – Step counter load into AC 1738:7430 – SZL – Skip on L = 0 (and group) 1692:7440 – SZA – Skip on AC = 0 (or group) 1645:7010 – RAR – Rotate <L,AC> Right 1555:02 is the high-speed paper tape punch. 1455:the memory operand to <L,AC> (a 1017:Lower-cost counterpart to the PDP-8/E 955:Lower-cost counterpart to the PDP-8/I 333: 190:, which is an expanded version of the 3013:Digital Equipment Corporation's PDP-8 2728:(5th ed.). October 1970. p. 1-2. 2238:Federal Reserve Bank of Minneapolis. 2163:"PDP-8 Summary of Models and Options" 1695:7420 – SNL – Skip on L ≠ 0 (or group) 1648:7004 – RAL – Rotate <L,AC> Left 858:Semi-discrete components. Used some 7: 3486: 2372:Glenn Rifkin; George Harrar (1988). 1213:Several types of I/O are supported: 1815:7415 – ASR – Arithmetic shift right 1642:7001 – IAC – Increment <L,AC> 1221:dedicated slots for I/O controllers 537:. An interpreter was available for 180:Digital Equipment Corporation (DEC) 2986:"PDP-8 Frequently Asked Questions" 2884:Family Tree of Digital's Computers 2053:/return PTR, 0 TEMP, 0 1278:and COS-310 allowed a traditional 1238:A simplified, inexpensive form of 302:value-engineered computer design. 25: 2924:Small Computer Handbook 1967–1968 2648:"First-Hand:PDP-8/E OMNIBUS Ride" 1726:7410 – SKP – Skip Unconditionally 1459:signed value (AC) w. carry in L). 1046:57 pounds (26 kg) (typical) 1027:57 pounds (26 kg) (typical) 1009:90 pounds (41 kg) (typical) 931:First PDP-8 made out of standard 3485: 3476: 3475: 2759:"Table 13-1 Installation data". 1818:7417 – LSR – Logical shift right 812: 798: 784: 770: 756: 742: 323:reduced instruction set computer 307: 53:The National Museum of Computing 2833:"PDP-8 Family Specifications". 2799:"PDP-8 Family Specifications". 2779:"PDP-8 Family Specifications". 2739:"Table 11. Installation data". 2353:from the original on 2021-02-26 2316:. 16 March 2012. Archived from 529:The PDP-8 uses 12 bits for its 3402:DEC 7000 AXP and DEC 10000 AXP 2978:and others are available from 1936:of the condition of interest. 1630:7200 – CLA – Clear Accumulator 1472:in first word of subroutine!). 704:backplane in a large cabinet. 229:A "Straight-8" running at the 1: 3053:Digital Equipment Corporation 2662:"Doug Jones's DEC PDP-8 FAQs" 2404:Digital Equipment Corporation 1639:7020 – CML – Complement L Bit 1074:Single-chip PDP-8-compatible 631:, which is erased when read. 535:multiple-precision arithmetic 73:Digital Equipment Corporation 3432:Digital Personal Workstation 3346:Digital Personal Workstation 2418:"Benchmarking the Languages" 2347:Rhode Island Computer Museum 2232:American Antiquarian Society 2212:American Antiquarian Society 2165:. Section - What is a PDP-5. 1702:front-panel switches with AC 1633:7100 – CLL – Clear the L Bit 664:digital-to-analog converters 660:analog-to-digital converters 2586:Introduction to Programming 1750:, this means that the skip 1445:the memory operand with AC. 1300:Fairly modern and advanced 728:transistor–transistor logic 692:The PDP-8 is optimized for 685:is an integral part of the 321:and report generators. The 260:transistor–transistor logic 3548: 2836:PDP-8/e/f/m Sales Brochure 2802:PDP-8/e/f/m Sales Brochure 2782:PDP-8/e/f/m Sales Brochure 2722:PDP-8/S Maintenance Manual 2646:Remo J. Vogelsang (2013). 2604:PDP-8/S Maintenance Manual 2540:"PDP-8 Typesetting System" 1302:real-time operating system 1124:Latter-day implementations 549:and various models of the 472: 465: 450: 443: 428: 417: 410: 297:Architectural significance 3471: 3069: 2459:Basics of Compiler Design 2263:Schein, Edgar H. (2004). 2097:The Art of Digital Design 1876:PDP-8. Compare the later 1831:PDP-8/I core memory stack 1533: 1530: 1527: 1401: 1398: 1395: 1392: 947:250 pounds (110 kg) 878:250 pounds (113 kg) 231:Stuttgart Computer Museum 83:Programmed Data Processor 44: 35: 27:Minicomputer product line 3517:Transistorized computers 1421:(addresses 0000–0177 in 566:switch banks of memories 2980:Simon Fraser University 2938:"DEC PDP-8 Subroutines" 2762:Small Computer Handbook 2742:Small Computer Handbook 2314:Smithsonian Institution 1306:preemptive multitasking 967:80 pounds (36 kg) 923:84 pounds (38 kg) 819:PDP-8/A 400 front panel 719:. In comparison, small 625:memory-address register 593:Six-bit character codes 523:Living Computers Museum 506:, who were inspired by 3303:VAX 7000 and VAX 10000 2378:. Contemporary Books. 1856: 1848: 1840: 1832: 1809:7411 – NMI – Normalize 1271:compiler and runtime. 1251:Programming facilities 713:diode–transistor logic 621:memory-buffer register 526: 238:diode–transistor logic 233: 222: 104:; 59 years ago 51:A PDP-8 on display at 3463:List of VAX computers 2990:Internet FAQ Archives 2881:Bell, Gordon (1980), 2666:homepage.cs.uiowa.edu 2570:PDP-8 User's Handbook 1925:Comparing two numbers 1854: 1846: 1838: 1830: 1803:7405 – MUY – Multiply 1774:7601 – CLA – Clear AC 1729:7610 – CLA – Clear AC 1686:7600 – CLA – Clear AC 1338:The three high-order 1267:interpreter and a 4K 1128:The PDP-8 is readily 830:PDP-8 models summary 520: 253:arithmetic logic unit 228: 216: 203:industrial controller 178:that was produced by 3453:Itsy Pocket Computer 1948:to the teleprinter. 1141:open-source hardware 694:simplicity of design 636:direct memory access 570:magnetic-core memory 289:, who later founded 2709:. 1965. p. 18. 1806:7407 – DVI – Divide 1797:7401 – No operation 831: 805:PDP-8/F front panel 791:PDP-8/E front panel 777:PDP-8/I front panel 763:PDP-8/L front panel 749:PDP-8/S front panel 711:of the inexpensive 336: 102:March 22, 1965 32: 2290:Douglas W. Jones. 2061:There is a single 1857: 1849: 1841: 1833: 1717:Group 2, And Group 1436:Basic instructions 847:Quantity produced 829: 527: 334: 234: 223: 186:but has a smaller 117:Introductory price 3512:DEC minicomputers 3499: 3498: 3374:DECsystem servers 3239: 3238: 3234: 3233: 3230: 3229: 3173: 3172: 2936:Mark Smotherman. 2385:978-1-55958-022-9 2108:Unlicensed clones 1919:assembly language 1705:7402 – HLT – Halt 1677:Group 2, Or Group 1581:Bit 10 clears AC. 1538: 1537: 1475:101 – JMP – JuMP. 1406: 1405: 1285:and command-line 1121: 1120: 1108:word processors) 888:Could run either 492: 491: 488: 487: 165: 164: 16:(Redirected from 3539: 3532:Serial computers 3522:12-bit computers 3489: 3488: 3479: 3478: 3222:DEC Professional 3177: 3076: 3072: 3067: 3046: 3039: 3032: 3023: 3000: 2998: 2997: 2941: 2934: 2928: 2927: 2920: 2914: 2913: 2911: 2901: 2895: 2894: 2893: 2892: 2878: 2869: 2868: 2866: 2865: 2850: 2844: 2843: 2841: 2830: 2824: 2823: 2816: 2810: 2809: 2807: 2796: 2790: 2789: 2787: 2776: 2770: 2769: 2767: 2756: 2750: 2749: 2747: 2736: 2730: 2729: 2727: 2717: 2711: 2710: 2708: 2700: 2694: 2693: 2682: 2676: 2675: 2673: 2672: 2658: 2652: 2651: 2643: 2637: 2636: 2634: 2633: 2624:. Archived from 2614: 2608: 2607: 2600: 2594: 2593: 2591: 2580: 2574: 2573: 2562: 2556: 2553: 2547: 2546: 2544: 2536: 2530: 2529: 2527: 2517: 2511: 2510: 2490: 2476: 2470: 2469: 2464: 2453: 2447: 2446: 2444: 2435: 2429: 2428: 2414: 2408: 2407: 2396: 2390: 2389: 2369: 2363: 2362: 2360: 2358: 2349:. Aug 18, 2020. 2339: 2330: 2329: 2327: 2325: 2302: 2296: 2295: 2287: 2281: 2280: 2260: 2251: 2250: 2248: 2246: 2235: 2229: 2215: 2209: 2194: 2188: 2187: 2180:Douglas W. Jones 2176: 2167: 2166: 2159: 2150: 2149: 2147: 2146: 2132: 2116:, respectively. 2073: 2068: 1971:is called or an 1886:segment register 1748:De Morgan's laws 1493: 1492: 1450:Two's complement 1358: 1357: 1258:bootstrap loader 1195:and moving-head 1189:fixed-head disks 832: 816: 802: 788: 774: 760: 746: 721:microcontrollers 689:microprocessor. 652:cathode-ray tube 341: 340: 337: 335:PDP-8 registers 221:drive at the top 122: 112: 110: 105: 49: 40: 33: 21: 3547: 3546: 3542: 3541: 3540: 3538: 3537: 3536: 3502: 3501: 3500: 3495: 3467: 3458:Jupiter project 3436: 3378: 3355: 3307: 3235: 3226: 3203: 3169: 3112: 3056: 3050: 2995: 2993: 2992:. 27 March 2014 2984: 2972: 2967: 2944: 2935: 2931: 2922: 2921: 2917: 2909: 2903: 2902: 2898: 2890: 2888: 2880: 2879: 2872: 2863: 2861: 2852: 2851: 2847: 2839: 2832: 2831: 2827: 2818: 2817: 2813: 2805: 2798: 2797: 2793: 2785: 2778: 2777: 2773: 2765: 2758: 2757: 2753: 2745: 2738: 2737: 2733: 2725: 2719: 2718: 2714: 2706: 2702: 2701: 2697: 2684: 2683: 2679: 2670: 2668: 2660: 2659: 2655: 2645: 2644: 2640: 2631: 2629: 2616: 2615: 2611: 2602: 2601: 2597: 2589: 2582: 2581: 2577: 2564: 2563: 2559: 2554: 2550: 2542: 2538: 2537: 2533: 2525: 2519: 2518: 2514: 2507: 2488: 2478: 2477: 2473: 2462: 2455: 2454: 2450: 2442: 2438: 2436: 2432: 2416: 2415: 2411: 2398: 2397: 2393: 2386: 2371: 2370: 2366: 2356: 2354: 2341: 2340: 2333: 2323: 2321: 2304: 2303: 2299: 2289: 2288: 2284: 2277: 2262: 2261: 2254: 2244: 2242: 2237: 2227: 2219:McCusker, J. J. 2217: 2207: 2199:McCusker, J. J. 2197: 2195: 2191: 2178: 2177: 2170: 2161: 2160: 2153: 2144: 2142: 2140:history.nih.gov 2134: 2133: 2129: 2125: 2110: 2093: 2071: 2066: 2059: 2054: 2047: 2042: 2036: 2026: 2017: 1983: 1957: 1952: 1946:"Hello, world!" 1942: 1933: 1927: 1915: 1825: 1771: 1763: 1723: 1719: 1683: 1679: 1627: 1623: 1597: 1488: 1438: 1349:program counter 1336: 1334:Instruction set 1253: 1154: 1126: 824: 823: 822: 821: 820: 817: 808: 807: 806: 803: 794: 793: 792: 789: 780: 779: 778: 775: 766: 765: 764: 761: 752: 751: 750: 747: 736: 654:screens with a 613:program counter 597:teletypesetting 521:PDP-8/e at the 445:Program counter 401: 396: 391: 386: 381: 376: 371: 366: 361: 356: 351: 346: 332: 299: 287:Edson de Castro 211: 188:instruction set 171:is a family of 120: 108: 106: 103: 64: 28: 23: 22: 15: 12: 11: 5: 3545: 3543: 3535: 3534: 3529: 3524: 3519: 3514: 3504: 3503: 3497: 3496: 3494: 3493: 3483: 3472: 3469: 3468: 3466: 3465: 3460: 3455: 3450: 3444: 3442: 3438: 3437: 3435: 3434: 3429: 3424: 3419: 3414: 3409: 3404: 3399: 3394: 3388: 3386: 3380: 3379: 3377: 3376: 3371: 3365: 3363: 3357: 3356: 3354: 3353: 3348: 3343: 3338: 3333: 3328: 3323: 3317: 3315: 3309: 3308: 3306: 3305: 3300: 3295: 3290: 3285: 3280: 3275: 3270: 3265: 3260: 3255: 3249: 3247: 3241: 3240: 3237: 3236: 3232: 3231: 3228: 3227: 3225: 3224: 3219: 3213: 3211: 3205: 3204: 3202: 3201: 3196: 3191: 3185: 3183: 3174: 3171: 3170: 3168: 3167: 3162: 3157: 3152: 3151: 3150: 3140: 3135: 3134: 3133: 3122: 3120: 3114: 3113: 3111: 3110: 3105: 3100: 3095: 3090: 3084: 3082: 3070: 3064: 3058: 3057: 3051: 3049: 3048: 3041: 3034: 3026: 3020: 3019: 3016:Steve Gibson's 3010: 3001: 2982: 2971: 2970:External links 2968: 2966: 2965: 2945: 2943: 2942: 2929: 2915: 2896: 2870: 2845: 2825: 2811: 2791: 2771: 2751: 2731: 2712: 2695: 2677: 2653: 2638: 2609: 2595: 2575: 2557: 2548: 2531: 2512: 2505: 2480:C. Gordon Bell 2471: 2448: 2430: 2409: 2391: 2384: 2364: 2331: 2297: 2282: 2275: 2252: 2236:1800–present: 2189: 2168: 2151: 2126: 2124: 2121: 2109: 2106: 2092: 2089: 2058: 2055: 2051: 2046: 2043: 2040: 2034: 2025: 2024:Software stack 2022: 2014: 2013: 2012: 2009: 2006: 1987:return address 1981: 1956: 1953: 1950: 1941: 1938: 1931: 1926: 1923: 1914: 1911: 1898: 1897: 1896:Virtualization 1824: 1823:Memory control 1821: 1820: 1819: 1816: 1813: 1810: 1807: 1804: 1801: 1798: 1788: 1787: 1784: 1781: 1778: 1775: 1768: 1762: 1759: 1740: 1739: 1736: 1733: 1730: 1727: 1720: 1718: 1715: 1707: 1706: 1703: 1700:logically 'or' 1696: 1693: 1690: 1687: 1680: 1678: 1675: 1659: 1658: 1655: 1652: 1649: 1646: 1643: 1640: 1637: 1634: 1631: 1624: 1622: 1619: 1596: 1593: 1586: 1585: 1582: 1579: 1571: 1570: 1563: 1562: 1559: 1556: 1553: 1550: 1543: 1542: 1536: 1535: 1532: 1529: 1525: 1524: 1521: 1519: 1516: 1513: 1511: 1509: 1507: 1505: 1502: 1499: 1497: 1487: 1484: 1483: 1482: 1479: 1476: 1473: 1470:return address 1466: 1463: 1460: 1446: 1437: 1434: 1411: 1410: 1404: 1403: 1400: 1397: 1394: 1390: 1389: 1386: 1384: 1382: 1380: 1378: 1376: 1373: 1370: 1367: 1364: 1362: 1342:of the 12-bit 1335: 1332: 1252: 1249: 1236: 1235: 1228: 1225: 1222: 1181:dumb terminals 1153: 1150: 1125: 1122: 1119: 1118: 1116: 1114: 1112: 1109: 1102: 1093: 1092: 1090: 1088: 1086: 1083: 1076:microprocessor 1072: 1066: 1065: 1063: 1061: 1058: 1055: 1052: 1048: 1047: 1044: 1042: 1039: 1036: 1033: 1029: 1028: 1025: 1023: 1021: 1018: 1015: 1011: 1010: 1007: 1005: 1002: 999: 996: 990: 989: 987: 984: 981: 978: 975: 969: 968: 965: 962: 959: 956: 953: 949: 948: 945: 942: 939: 936: 929: 925: 924: 921: 918: 915: 912: 909: 905: 904: 902: 899: 896: 893: 892:or PDP-8 code 886: 880: 879: 876: 873: 870: 867: 856: 852: 851: 848: 845: 842: 839: 836: 818: 811: 810: 809: 804: 797: 796: 795: 790: 783: 782: 781: 776: 769: 768: 767: 762: 755: 754: 753: 748: 741: 740: 739: 738: 737: 735: 732: 551:IBM System/360 539:floating point 514:minicomputer. 490: 489: 486: 485: 479: 474: 470: 469: 463: 462: 452: 448: 447: 441: 440: 430: 426: 425: 419: 415: 414: 412:Main registers 408: 407: 405:(bit position) 402: 399: 397: 394: 392: 389: 387: 384: 382: 379: 377: 374: 372: 369: 367: 364: 362: 359: 357: 354: 352: 349: 347: 344: 331: 328: 298: 295: 250:one-bit serial 210: 207: 163: 162: 157: 153: 152: 147: 143: 142: 139: 133: 132: 129: 125: 124: 118: 114: 113: 100: 96: 95: 90: 86: 85: 80: 79:Product family 76: 75: 70: 66: 65: 50: 42: 41: 26: 24: 14: 13: 10: 9: 6: 4: 3: 2: 3544: 3533: 3530: 3528: 3525: 3523: 3520: 3518: 3515: 3513: 3510: 3509: 3507: 3492: 3484: 3482: 3474: 3473: 3470: 3464: 3461: 3459: 3456: 3454: 3451: 3449: 3446: 3445: 3443: 3439: 3433: 3430: 3428: 3425: 3423: 3420: 3418: 3415: 3413: 3410: 3408: 3407:DECpc AXP 150 3405: 3403: 3400: 3398: 3395: 3393: 3390: 3389: 3387: 3385: 3381: 3375: 3372: 3370: 3367: 3366: 3364: 3362: 3358: 3352: 3349: 3347: 3344: 3342: 3339: 3337: 3334: 3332: 3329: 3327: 3324: 3322: 3319: 3318: 3316: 3314: 3310: 3304: 3301: 3299: 3296: 3294: 3291: 3289: 3286: 3284: 3281: 3279: 3276: 3274: 3271: 3269: 3266: 3264: 3261: 3259: 3256: 3254: 3251: 3250: 3248: 3246: 3242: 3223: 3220: 3218: 3215: 3214: 3212: 3210: 3206: 3200: 3197: 3195: 3192: 3190: 3187: 3186: 3184: 3182: 3178: 3175: 3166: 3163: 3161: 3158: 3156: 3153: 3149: 3146: 3145: 3144: 3141: 3139: 3136: 3132: 3129: 3128: 3127: 3124: 3123: 3121: 3119: 3115: 3109: 3106: 3104: 3101: 3099: 3096: 3094: 3091: 3089: 3086: 3085: 3083: 3081: 3077: 3074: 3073: 3068: 3065: 3063: 3059: 3054: 3047: 3042: 3040: 3035: 3033: 3028: 3027: 3024: 3017: 3014: 3011: 3009: 3005: 3002: 2991: 2987: 2983: 2981: 2977: 2974: 2973: 2969: 2963: 2962:The DEC PDP-8 2959: 2955: 2951: 2947: 2946: 2939: 2933: 2930: 2925: 2919: 2916: 2908: 2907: 2900: 2897: 2886: 2885: 2877: 2875: 2871: 2860:on 2017-07-03 2859: 2855: 2849: 2846: 2842:. p. 17. 2838: 2837: 2829: 2826: 2821: 2815: 2812: 2808:. p. 17. 2804: 2803: 2795: 2792: 2788:. p. 17. 2784: 2783: 2775: 2772: 2764: 2763: 2755: 2752: 2744: 2743: 2735: 2732: 2724: 2723: 2716: 2713: 2705: 2699: 2696: 2691: 2687: 2681: 2678: 2667: 2663: 2657: 2654: 2649: 2642: 2639: 2628:on 2000-10-23 2627: 2623: 2619: 2613: 2610: 2605: 2599: 2596: 2588: 2587: 2579: 2576: 2571: 2567: 2561: 2558: 2552: 2549: 2541: 2535: 2532: 2524: 2523: 2516: 2513: 2508: 2506:0-932376-00-2 2502: 2498: 2494: 2493:Digital Press 2487: 2486: 2481: 2475: 2472: 2468: 2465:. p. 1. 2461: 2460: 2452: 2449: 2441: 2434: 2431: 2427: 2423: 2419: 2413: 2410: 2405: 2401: 2395: 2392: 2387: 2381: 2377: 2376: 2368: 2365: 2352: 2348: 2344: 2338: 2336: 2332: 2320:on 2015-02-17 2319: 2315: 2311: 2310:History Wired 2307: 2301: 2298: 2293: 2286: 2283: 2278: 2272: 2268: 2267: 2259: 2257: 2253: 2241: 2233: 2226: 2225: 2220: 2213: 2206: 2205: 2200: 2193: 2190: 2185: 2181: 2175: 2173: 2169: 2164: 2158: 2156: 2152: 2141: 2137: 2131: 2128: 2122: 2120: 2117: 2115: 2107: 2105: 2103: 2098: 2090: 2088: 2085: 2081: 2075: 2064: 2056: 2050: 2044: 2039: 2033: 2031: 2023: 2021: 2010: 2007: 2004: 2003: 2002: 2000: 1996: 1992: 1988: 1980: 1977: 1974: 1970: 1966: 1962: 1954: 1949: 1947: 1940:String output 1939: 1937: 1930: 1924: 1922: 1920: 1912: 1910: 1906: 1902: 1895: 1894: 1893: 1889: 1887: 1883: 1879: 1873: 1869: 1865: 1861: 1853: 1845: 1837: 1829: 1822: 1817: 1814: 1811: 1808: 1805: 1802: 1799: 1796: 1795: 1794: 1791: 1785: 1782: 1779: 1776: 1773: 1772: 1767: 1760: 1758: 1755: 1753: 1749: 1745: 1737: 1734: 1731: 1728: 1725: 1724: 1716: 1714: 1711: 1704: 1701: 1698:7404 – OSR – 1697: 1694: 1691: 1688: 1685: 1684: 1676: 1674: 1672: 1667: 1663: 1656: 1653: 1650: 1647: 1644: 1641: 1638: 1635: 1632: 1629: 1628: 1620: 1618: 1615: 1612: 1609: 1607: 1601: 1595:OPR (OPeRate) 1594: 1592: 1589: 1583: 1580: 1577: 1576: 1575: 1568: 1567: 1566: 1560: 1557: 1554: 1551: 1548: 1547: 1546: 1540: 1539: 1526: 1522: 1520: 1517: 1514: 1512: 1510: 1508: 1506: 1503: 1500: 1498: 1495: 1494: 1491: 1485: 1480: 1477: 1474: 1471: 1467: 1464: 1461: 1458: 1454: 1451: 1447: 1444: 1440: 1439: 1435: 1433: 1429: 1426: 1424: 1420: 1416: 1408: 1407: 1391: 1387: 1385: 1383: 1381: 1379: 1377: 1374: 1371: 1368: 1365: 1363: 1360: 1359: 1356: 1354: 1350: 1345: 1341: 1333: 1331: 1329: 1324: 1322: 1318: 1314: 1309: 1307: 1303: 1298: 1296: 1292: 1288: 1284: 1281: 1277: 1272: 1270: 1266: 1261: 1259: 1250: 1248: 1244: 1241: 1233: 1229: 1226: 1223: 1220: 1216: 1215: 1214: 1211: 1209: 1205: 1201: 1198: 1194: 1190: 1187:readers, and 1186: 1182: 1179: 1175: 1171: 1170:magnetic tape 1167: 1164:reader and a 1163: 1160:interface, a 1159: 1151: 1149: 1145: 1142: 1137: 1135: 1131: 1123: 1117: 1115: 1113: 1110: 1107: 1103: 1101: 1098: 1095: 1094: 1091: 1089: 1087: 1084: 1081: 1078:(used in the 1077: 1073: 1071: 1070:Intersil 6100 1068: 1067: 1064: 1062: 1059: 1056: 1053: 1050: 1049: 1045: 1043: 1040: 1037: 1034: 1031: 1030: 1026: 1024: 1022: 1019: 1016: 1013: 1012: 1008: 1006: 1003: 1000: 997: 995: 992: 991: 988: 985: 982: 979: 976: 974: 971: 970: 966: 963: 960: 957: 954: 951: 950: 946: 943: 940: 937: 934: 930: 927: 926: 922: 919: 916: 913: 910: 907: 906: 903: 900: 897: 894: 891: 887: 885: 882: 881: 877: 874: 871: 868: 865: 861: 857: 854: 853: 849: 846: 843: 840: 837: 834: 833: 827: 815: 801: 787: 773: 759: 745: 733: 731: 729: 724: 722: 718: 714: 710: 705: 703: 697: 695: 690: 688: 687:Intersil 6100 682: 680: 675: 673: 669: 665: 661: 657: 653: 649: 645: 641: 637: 632: 630: 626: 622: 618: 614: 610: 606: 600: 598: 594: 589: 587: 583: 579: 575: 571: 567: 563: 559: 554: 552: 548: 544: 540: 536: 532: 524: 519: 515: 513: 509: 505: 501: 497: 484:ink register 483: 480: 478: 475: 471: 468: 464: 460: 456: 453: 449: 446: 442: 438: 434: 431: 427: 423: 420: 416: 413: 409: 406: 403: 398: 393: 388: 383: 378: 373: 368: 363: 358: 353: 348: 343: 342: 339: 338: 329: 327: 324: 320: 315: 311: 309: 303: 296: 294: 292: 288: 283: 281: 280:Intersil 6100 277: 273: 269: 265: 261: 256: 254: 251: 247: 243: 239: 232: 227: 220: 215: 208: 206: 204: 201: 197: 193: 189: 185: 181: 177: 176:minicomputers 174: 170: 161: 158: 154: 151: 148: 144: 140: 138: 134: 130: 126: 119: 115: 101: 97: 94: 91: 87: 84: 81: 77: 74: 71: 67: 62: 58: 54: 48: 43: 39: 34: 19: 3427:AlphaStation 3412:DEC 2000 AXP 3397:DEC 4000 AXP 3392:DEC 3000 AXP 3199:DECSYSTEM-20 3142: 2994:. Retrieved 2989: 2961: 2957: 2954:Allen Newell 2932: 2923: 2918: 2905: 2899: 2889:, retrieved 2883: 2862:. Retrieved 2858:the original 2848: 2835: 2828: 2814: 2801: 2794: 2781: 2774: 2761: 2754: 2741: 2734: 2721: 2715: 2698: 2690:www.faqs.org 2689: 2680: 2669:. Retrieved 2665: 2656: 2641: 2630:. Retrieved 2626:the original 2621: 2612: 2603: 2598: 2585: 2578: 2569: 2560: 2551: 2534: 2521: 2515: 2484: 2474: 2466: 2458: 2451: 2433: 2425: 2421: 2412: 2399: 2394: 2374: 2367: 2355:. Retrieved 2346: 2343:"PDP-8/S #1" 2324:February 17, 2322:. Retrieved 2318:the original 2309: 2306:"PDP-8 1965" 2300: 2285: 2265: 2245:February 29, 2243:. Retrieved 2223: 2203: 2192: 2143:. Retrieved 2139: 2130: 2118: 2111: 2096: 2094: 2083: 2079: 2076: 2060: 2048: 2037: 2027: 2018: 1984: 1978: 1958: 1943: 1934: 1928: 1916: 1907: 1903: 1899: 1890: 1874: 1870: 1866: 1862: 1858: 1792: 1789: 1764: 1756: 1751: 1743: 1741: 1712: 1708: 1668: 1666:subtrahend. 1664: 1660: 1616: 1613: 1610: 1602: 1598: 1590: 1587: 1572: 1564: 1544: 1489: 1456: 1448:001 – TAD – 1441:000 – AND – 1430: 1427: 1412: 1409:Memory pages 1337: 1325: 1313:time-sharing 1310: 1299: 1273: 1262: 1254: 1245: 1237: 1212: 1193:floppy disks 1185:punched card 1178:current loop 1155: 1152:Input/output 1146: 1138: 1127: 838:Description 825: 725: 706: 702:wire-wrapped 698: 691: 683: 676: 633: 615:(PC), and a 601: 590: 578:microseconds 555: 528: 508:Seymour Cray 498:designed by 493: 481: 467:Status flags 466: 458: 454: 444: 436: 432: 421: 411: 404: 316: 312: 304: 300: 291:Data General 284: 257: 246:refrigerator 240:packaged on 235: 168: 166: 99:Release date 93:Minicomputer 60: 3422:AlphaServer 3321:Rainbow 100 3008:Smithsonian 2950:Gordon Bell 2422:PC Magazine 2216:1700–1799: 2196:1634–1699: 2102:SSI and MSI 2045:Linked list 1955:Subroutines 1344:instruction 1304:(RTOS) and 1200:disk drives 1158:front panel 717:logic gates 672:disk drives 668:tape drives 629:core memory 609:accumulator 607:: A 12-bit 558:main memory 543:significand 504:C.E. Molnar 330:Description 146:Predecessor 3506:Categories 3369:DECstation 3336:DECstation 3268:VAXstation 2996:2018-12-16 2891:2017-06-19 2864:2017-06-19 2671:2024-03-24 2632:2021-05-13 2618:"PDP -8/S" 2495:. p.  2276:1576753050 2145:2024-07-17 2123:References 2080:skip chain 2057:Interrupts 1991:reentrancy 1969:subroutine 1878:Intel 8086 1393:Operation 1232:system bus 1162:paper-tape 860:hybrid ICs 648:paper tape 617:carry flag 574:cycle time 500:W.A. Clark 435:ultiplier 424:cumulator 141:DEC 12-bit 128:Units sold 121:US$ 18,500 109:1965-03-22 61:Straight 8 3278:VAXserver 3055:computers 2063:interrupt 1995:recursion 1989:prevents 1973:interrupt 1534:Function 1280:line mode 1219:backplane 1197:cartridge 1136:devices. 983:$ 27,900 941:$ 12,800 917:$ 10,000 898:$ 38,500 872:$ 18,000 679:flip-flop 656:light pen 644:teletypes 605:registers 319:compilers 242:flip chip 156:Successor 69:Developer 57:Bletchley 3481:Category 3441:See also 3293:VAX 9000 3288:VAX 4000 3283:VAX 6000 3263:VAX 8000 3258:MicroVAX 2956:, 1971, 2351:Archived 2221:(1992). 2201:(1997). 1913:Examples 1880:, whose 1569:Function 1315:system, 1287:compiler 1166:teletype 1130:emulated 1060:$ 1,835 1051:PDP-8/A 1041:$ 5,000 1032:PDP-8/M 1014:PDP-8/F 1004:$ 6,500 961:$ 8,500 952:PDP-8/L 928:PDP-8/I 908:PDP-8/S 700:complex 640:printers 611:(AC), a 547:IBM 1130 439:uotient 276:Intersil 209:Overview 205:system. 137:Platform 3491:Commons 3326:VAXmate 3273:Firefly 3160:DECmate 3148:PDP-8/e 2940:. 2002. 2406:. 1968. 2114:PDP-8/E 2100:modern 2072:JMP I 0 1967:when a 1965:context 1761:Group 3 1621:Group 1 1531:Device 1402:Offset 1269:FORTRAN 1106:DECmate 994:PDP-8/E 850:Weight 709:fan-out 580:(0.667 576:of 1.5 572:with a 512:CDC 160 473:  461:ounter 457:rogram 219:DECtape 131:50,000+ 107: ( 18:PDP-8/S 3417:Multia 3351:HiNote 3341:Multia 3253:VAX-11 3217:PDP-11 3209:16-bit 3194:PDP-10 3181:36-bit 3165:PDP-14 3155:PDP-12 3131:LINC-8 3118:12-bit 3108:PDP-15 3080:18-bit 2503:  2382:  2357:May 7, 2273:  1882:16-bit 1541:Device 1528:6=IOT 1457:12 bit 1419:page 0 1293:, and 1283:editor 1206:style 1174:RS-232 1097:Harris 973:PDP-12 884:LINC-8 855:PDP-8 844:Price 835:Model 734:Models 670:, and 623:and a 262:(TTL) 200:PDP-14 196:PDP-12 173:12-bit 160:PDP-12 3384:Alpha 3331:DECpc 3298:VAXft 3189:PDP-6 3143:PDP-8 3138:PDP-5 3103:PDP-9 3098:PDP-7 3093:PDP-4 3088:PDP-1 2910:(PDF) 2840:(PDF) 2806:(PDF) 2786:(PDF) 2766:(PDF) 2746:(PDF) 2726:(PDF) 2707:(PDF) 2590:(PDF) 2543:(PDF) 2526:(PDF) 2489:(PDF) 2463:(PDF) 2443:(PDF) 2228:(PDF) 2208:(PDF) 2091:Books 2030:stack 1961:stack 1423:octal 1415:pages 1328:DECUS 1321:ALGOL 1317:TSS-8 1295:DIBOL 1291:BASIC 1265:FOCAL 1111:1976 1085:1975 1057:1974 1038:1972 1020:1972 1001:1970 980:1969 964:3902 958:1968 944:3698 938:1968 920:1024 914:1966 895:1966 875:1450 869:1965 841:Year 308:below 192:PDP-5 169:PDP-8 150:PDP-5 31:PDP-8 3361:MIPS 3126:LINC 2952:and 2501:ISBN 2380:ISBN 2359:2021 2326:2015 2271:ISBN 2247:2024 1993:and 1340:bits 1276:OS/8 1176:and 1134:FPGA 1100:6120 1080:VT78 986:755 935:ICs 901:142 890:LINC 586:MIPS 531:word 502:and 496:LINC 272:CMOS 184:LINC 167:The 89:Type 3313:x86 3245:VAX 3062:PDP 2948:C. 2497:175 2084:any 2067:JMS 1999:ROM 1744:not 1671:NOP 1523:11 1453:ADd 1443:AND 1388:11 1353:JMP 1240:DMA 1217:In- 1208:IDE 933:TTL 864:DTL 862:. 582:MHz 562:KiB 510:'s 451:PC 429:MQ 418:AC 268:I/O 264:MSI 55:in 3508:: 2988:. 2873:^ 2688:. 2664:. 2620:. 2568:. 2499:. 2491:. 2420:. 2402:. 2345:. 2334:^ 2312:. 2308:. 2255:^ 2230:. 2210:. 2182:. 2171:^ 2154:^ 2138:. 1888:. 1752:is 1606:OR 1518:9 1515:8 1504:3 1501:2 1496:0 1399:Z 1396:I 1375:5 1372:4 1369:3 1366:2 1361:0 1311:A 1297:. 1204:PC 1183:, 1172:, 1082:) 866:. 674:. 666:, 662:, 658:, 646:, 642:, 422:AC 293:. 3045:e 3038:t 3031:v 2999:. 2867:. 2822:. 2692:. 2674:. 2650:. 2635:. 2509:. 2445:. 2388:. 2361:. 2328:. 2294:. 2279:. 2249:. 2234:. 2214:. 2186:. 2148:. 525:. 482:L 477:L 459:C 455:P 437:Q 433:M 400:0 395:1 390:2 385:3 380:4 375:5 370:6 365:7 360:8 355:9 350:0 345:1 111:) 63:. 20:)

Index

PDP-8/S


The National Museum of Computing
Bletchley
Digital Equipment Corporation
Programmed Data Processor
Minicomputer
Platform
PDP-5
PDP-12
12-bit
minicomputers
Digital Equipment Corporation (DEC)
LINC
instruction set
PDP-5
PDP-12
PDP-14
industrial controller

DECtape

Stuttgart Computer Museum
diode–transistor logic
flip chip
refrigerator
one-bit serial
arithmetic logic unit
transistor–transistor logic

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.