PDP-8

from Wikipedia, the free encyclopedia

PDP-8
PDP-8

Digital Equipment Corporation logo
 
Manufacturer Digital Equipment Corporation
Type Mini computer
publication March 22, 1965
End of production 1979
Factory price $ 18,500.00, approximately € 135,000.00 in 2019
processor discrete circuit
random access memory 4,096 × 12 bits
graphic no
Sound none
Disk ticker tape
operating system various, mostly OS / 8 or RTS-8
predecessor LINC , PDP-5
successor PDP-12

The PDP-8 (mostly 'the PDP-8' among users) was a 12-bit mini computer from the Programmed Data Processor series from Digital Equipment Corporation (DEC). It was the first commercially successful minicomputer with well over 50,000 copies sold, estimates even go up to 300,000 copies when taking compatible replicas into account.

The underlying design follows that of the LINC , but with a reduced command set , which in turn is an extension of the command set of the PDP-5 . Later, similar machines from DEC were the PDP-12 , the modernized successor to the PDP-8, and the PDP-14 Industrial Control System .

The original model of the PDP-8, later informally called “Straight-8”, was presented on March 22, 1965 with a retail price of $ 18,000.00, which was a value of around € 135,000.00 in mid-2019. There was no microprocessor at the core of the machine, instead the central unit was implemented discreetly in diode-transistor logic on plug - in cards ("flip-chip" in the name of DEC), which in turn were built into a housing the size of an oversized household refrigerator ( 69⅛ ″ × 22¼ ″ × 27⅛ ″, about 176cm × 57cm × 69cm). It was the first computer to sell for under $ 20,000.00, which quickly made it a top seller.

As early as 1966, the Straight-8 was accompanied by the PDP-8 / S, which was available in versions for installation in a rack as well as for the desk. The use of a 1-bit arithmetic unit (ALU) in the PDP-8 / S made it possible for DEC to manufacture the device in a simpler, smaller and cheaper way and thus to be the first computer to ever go below the price mark of $ 10,000. Although the PDP-8 / S was significantly slower than the Straight-8 due to the simpler ALU, its sales figures were still good.

Later devices in the series, the PDP-8 / I and / L, the PDP-8 / E, / F and / M as well as the PDP-8 / A, then again used fully-fledged parallel 12-bit arithmetic units, but switched to cheaper transistors -Transistor logic (TTL) in integrated circuits (medium scale integration, MSI). Most of the PDP-8s still operable today date from this period. Among them, in turn, the PDP-8 / E is the most popular device because there were the largest number of storage and input / output devices for this device type.

The last commercially introduced devices of the PDP-8 family came on the market as VT78 or DECmate from 1979 and then used CMOS microprocessors. Since the offer could not exist in terms of price, the devices flop. The company Intersil sold the processors under the name Intersil 6100 until 1982, due to the very low power consumption of CMOS technology, they were used in some military embedded systems .

The chief developer and designer of the first generation of the PDP-8 was Edson de Castro , who later founded Data General.

Still functional copies of the PDP-8 can be seen in the museum "technikum29" near Frankfurt am Main and in the computer museums of the Faculty of Computer Science at the University of Stuttgart and the University of Erlangen-Nuremberg .

Significance for the development of computer architectures

The design goals behind the PDP-8 were low price, simple construction, expandability, and solid construction. From today's perspective, the low price and high sales figures are significant here - the PDP-8 was therefore attractive for new customer groups and new fields of application for the first time.

The low complexity of the structure, however, also led to technical debts: The programming of the PDP-8 was cumbersome and time-consuming, which results mainly from the small instruction set. With no built-in operating system or libraries, even for simple tasks, a significant amount of code had to be used to control the machine itself, and the implementation of business logic often took a backseat.

For example, there was no built-in command to subtract two numbers. Instead, the programmer himself had to first determine the two's complement of the subtrahend and then add it to the minuend.

Many ambitious software projects failed because the available memory of 4,096 words was not sufficient due to these circumstances, or because the restricted instruction set led to software design restrictions that could not be resolved programmatically. For example, the lack of a stack meant that accidental recursion would lead to bugs that were difficult to find and fix.

Since the ongoing development led to falling costs for processors and memory, the effort that a programmer had to make became an increasingly relevant cost factor. This is one of the reasons why later computer systems took this into account with larger and functionally more powerful instruction sets in order to make the programming of the systems simpler and less time-consuming.

Over time, most programs were created using compilers or report generators.

technical description

Register of the PDP-8
0 1 2 3 4th 5 6th 7th 8th 9 1 0 1 1 (bit position)
Main register
AC AC cumulator
  DF   D ata F ield
Program counter
Pc P rogram C ounter
  IF   I nstruction F ield
Status flags
L.   L ink register
Internal register (not programmable)
MBR Memory-buffer registered
MAR Memory-address register

Technically, the PDP-8 was a 12- bit computer. The main memory consisted of 4,096 12-bit words in the form of a core stack of individual miniature ring magnets ( core memory ), with one ring holding exactly one bit. A word could store two 6-bit characters. While the first PDP-8 were still implemented in DTL logic , later versions implemented the architecture in the faster TTL logic . In the absence of a bootloader , the computer was initially operated via a machine console with switches and LEDs (“blink lights”). If the application software originally ran directly on the hardware, later mainly the OS / 8 operating system , more rarely RTS-8, was used later . Programming was done in assembler , BASIC , Fortran , Focal and Dibol. The software was initially stored primarily on punched tape , later also on small magnetic tapes , 8-inch disks and hard drives.

Versions of the PDP-8

PDP-8 / E
PDP-8 / E control panel

The total number of devices from the PDP-8 family sold is estimated at over 300,000 units. Around 3,000 were sold by 1970 and 30,000 by 1976.

During the production period, the PDP-8 was sold in different versions and configurations, whereby the PDP-8 / E can be regarded as the defining model.

These devices were built by DEC in the extended PDP-8 family:

Models from the PDP-8 family
model Period number price technology Weight Remarks
PDP-5 1963-1965 116 ? DTL Forerunner with a subset of instructions
PDP-8 1965-1969 1,450 $ 15,000.00 DTL 113 kg
LINC-8 1966-1969 142 $ 38,000.00 DTL Combination of a LINC and a PDP-8 in one housing.
PDP-8 / S 1966-1970 1,024 $ 10,000.00 DTL 38 kg Very slowly
PDP-8 / I 1968-1971 3,698 $ 12,800.00 TTL 110 kg
PDP-8 / L 1968-1971 3,902 $ 8,500.00 TTL 36 kg Downsized version of the PDP-8 / I
PDP-12 1969–1973 (?) 755 $ 27,900.00 TTL Successor to the LINC-8
PDP-8 / E 1970-1988 > 10,000 (?) $ 6,500.00 TTL MSI omnibus 41 kg
PDP-8 / F 1972–1978 (?) > 10,000 (?) <$ 5,000.00 TTL MSI omnibus 26 kg Based on the PDP-8 / E CPU
PDP-8 / M 1972–1978 (?) > 10,000 (?) <$ 5,000.00 TTL MSI omnibus 26 kg OEM version of the PDP-8 / F
PDP-8 / A 1975–1984 (?) > 10,000 (?) $ 1,317.00 TTL LSI omnibus
VT78 1978-1980 $ 7,995.00 Intersil 6100 compatible workplace workstation
DECmate 1980-1984 ? Harris 6120 compatible workplace workstation
DECmate II 1982-1986 $ 1,435.00 Harris 6120 compatible workplace workstation
DECmate III 1984-1990 $ 2,695.00 Harris 6120 compatible workplace workstation
DECmate III + 1985-1990 ? Harris 6120 compatible workplace workstation

Clones and replicas

In the Eastern Bloc , replicas of the PDP series of computers quickly emerged, the Hungarian TPA1001, TPA1001 / i, TPA / l, TPA1 / 128H, TPA / s and TPA Quadro were initially based on transistors, later also based on the Intersil-6100 Processors developed clones.

Soviet replicas were the Electronica-100, Electronica-100I and Saratov-2 devices. There was also the CID-201 in Cuba , of which more than 200 copies were built, and in what was then Yugoslavia the Electrotechnica-100I (which was possibly technically identical to the Soviet Electronica-100I).

Partially compatible devices in the west were the SPEAR u-LINC 100 and SPEAR u-LINC 300, the DCC-112 and DCC-112H, as well as the Intercept I and Intercept Jr. built by Intersil.

Emulations

Based on the fact that nowadays even the smallest computers have a higher performance than the original PDP-8 models, there are a variety of emulators. A JAVA emulator in the form of a single JAR package visualizes the entire operating system (including front panel) as well as the hardware. The most widely used emulator is likely to be SIMH; this emulator is able to emulate a wide variety of historical CPUs. A reduced but authentic front panel of the PDP-8 with the appropriate logic in combination with an emulator that runs on a Raspberry Pi allows the original system to resurrect.

Instruction set

Command coding of the PDP-8
0 1 2 3 4th 5 6th 7th 8th 9 1 0 1 1 (bit position)
Basic commands
OP   OP eration
  I.   I nstruction-relative
  Z   Z ero-Page
  OFF OFF set
IOT: input / output, transfer
1 1 0   6 : Code for IOT
  Device   Device code
  Func. func tion
OPR1: Operation group 1
1 1 1 0   OP e R ate Group 1
  Instruction Instruction
OPR2O: Operation group 2 / OR
1 1 1 1   1   0 OP e R ate 2 / Or
  Ins   Ins   Ins truction
OPR2A: Operation group 2 / AND
1 1 1 1   1   0 OP e R ate 2 / Am
  Ins   Ins   Ins truction
OPR3: Operation Group 3
1 1 1 1   1 OP e R ate Group 3
  Ins   Ins truction
  code   code

The instruction set of the PDP-8 always encodes the instruction and operand in exactly one 12-bit word. For some operations it is even possible to code several instructions in a single 12-bit word if the operand is identical.

Program examples

The following examples show code in PDP-8 assembly language , as it could be translated with the PAL-III assembler.

Compare two numbers

As mentioned in the above section on the importance of the PDP-8, a programmer for the PDP-8 was very busy programming simple things himself. These 6 instructions are necessary to compare two numbers in memory locations ORD1and ORD2:

    /Vergleich der Zahlen in OPD1 und OPD2
            CLA CLL     / Lösche Accumulator und Überflussbit
            TAD OPD1    / Lade die erste Zahl in den Accumulator.
                        / Es gibt keinen expliziten Ladebefehl,
                        / also wird der Umweg über Addition gegangen.
            CIA         / Bilde das Zweierkomplement und addiere
                        / eins. Damit steht jetzt der Negativwert
                        / von OPD1 im Accumulator
            TAD OPD2    / Addiere OPD2, damit enthält der Accumulator
                        / jetzt OPD2-OPD1.
                        / Wenn OPD2≥OPD1 gibt es einen Überlauf und
                        / das Link-Flag wird gesetzt
            SZL         / Überspringe die nächste Anweisung wenn
                        / kein Überlauf, also wenn OPD2<OPD1 …
            JMP OP2GE   / Springe irgendwohin falls Überlauf,
                        / also falls OPD2≥OPD1
                        / Hier geht dann der Fall OPD2<OPD1 weiter …

Character output

One possible version of “ Hello, world! "With output on the printer, whereby the output of the PALassembler is shown here to illustrate the command coding , i.e. memory location (column 1) and memory content (column 1), the actual program code is from column 3:

       0010     *10                   / Set current assembly origin to address 10,
00010  0207     STPTR,  STRNG-1       / An auto-increment register (one of eight
                                      / at 10-17)

       0200     *200                  / Set current assembly origin to program
                                      / text area
00200  7300     HELLO,  CLA CLL       / Clear AC and Link again (needed when we
                                      / loop back from tls)
00201  1410             TAD I Z STPTR / Get next character, indirect via
                                      / PRE-auto-increment address from the
                                      / zero page
00202  7450             SNA           / Skip if non-zero (not end of string)
00203  7402             HLT           / Else halt on zero (end of string)
00204  6046             TLS           / Output the character in the AC to the
                                      / teleprinter
00205  6041             TSF           / Skip if teleprinter ready for character
00206  5205             JMP .-1       / Else jump back and try again
00207  5200             JMP HELLO     / Jump back for the next character

00210  0310     STRNG,  310           / H
00211  0345             345           / e
00212  0354             354           / l
00213  0354             354           / l
00214  0357             357           / o
00215  0254             254           / ,
00216  0240             240           / (space)
00217  0367             367           / w
00220  0357             357           / o
00221  0362             362           / r
00222  0354             354           / l
00223  0344             344           / d
00224  0241             241           / !
00225  0000             0             / End of string
                $HELLO                /DEFAULT TERMINATOR

The output of the memory address and content is shown in octal so that they can easily be entered directly into the memory locations using the switches on the control panel. For the above program, the value would first be 0010set (octal, i.e. 000-000-00I-000with 0 or I as Off or On) and then set Load Addas the active address using. Then the value 0207( 000-0I0-000-III) would be set and Depdeposited in the memory using . The address counter automatically jumps one digit further (and then shows 0011). Next, 0200( 000-0I0-000-000) is set and Load Addloaded with , then 7300( III-0II-000-000) is Depdeposited with , then the address pointer is correct and the next instruction can be 00I-I00-001-000deposited immediately with 1410 ( ) etc.

At the end the address is 0200set again and Startstarted with . The program says “ Hello, world! “On the printer and the machine goes into hold.

Web links

Commons : PDP-8  - collection of pictures, videos and audio files

Individual evidence

  1. heise online: The day the mini came: 50 years of the PDP-8. Retrieved October 4, 2019 .
  2. PDP-8 Summary of Models and Options - Section: What is a PDP-5? Retrieved October 4, 2019 .
  3. ^ A b Digital Equipment Corporation (Ed.): PDP-8 - A High Speed ​​Digital Computer . 1967, p. 1-2 ( bitsavers.org [PDF]).
  4. ^ Edgar H. Schein: DEC is dead, long live DEC: the lasting legacy of Digital Equipment Corporation . Berrett-Koehler Publishers, San Francisco 2004, ISBN 978-1-60509-302-4 , pp. 271 .
  5. ^ George Harrar: The ultimate entrepreneur: the story of Ken Olsen and Digital Equipment Corporation . Contemporary Books, Chicago 1988, ISBN 0-8092-4559-0 .
  6. Early computers in the technikum29
  7. Exhibits of the computer museum of the Faculty of Computer Science at the University of Stuttgart
  8. ^ Catalog of the computer science collection in Erlangen
  9. ^ Ziff Davis Inc: PC Mag . Ziff Davis, Inc., October 29, 1985 ( books.google.de [accessed October 4, 2019]).
  10. analogously to section 1.1 of “Introduction to the Central Processing Unit (CPU)”, a manual for a Texas Instruments microcomputer: TMS320C28x CPU and Instruction Set (Rev. F) . ( ti.com.cn [PDF]).
  11. ↑ Field report project manager PDP-8 / E development
  12. a b c d e Doug Jones's DEC PDP-8 FAQs. Retrieved October 4, 2019 .
  13. ^ Digital Equipment Corporation (Ed.): PDP-8 / S - Maintenance Manual . 1965, p. 18 ( bitsavers.org [PDF]).
  14. ^ Digital Equipment Corporation (Ed.): PDP-8 - Small Computer Handbook . 1968, p. 290 ( bitsavers.org [PDF]).
  15. ^ Digital Equipment Corporation (Ed.): PDP-8 - Small Computer Handbook . 1970, p. 277 ( bitsavers.org [PDF]).
  16. a b c Digital Equipment Corporation (Ed.): PDP-8 / E / F / M - Sales Brochure . 1970, p. 17 ( pdp8online.com [PDF]).
  17. ^ Borbély Éva: The early history of computers in the Hungarian economy . Ed .: BME Department for the History and Philosophy of Science. ISSN  1418-7108 ( heja.szif.hu [PDF]).
  18. PDP-8 JAVA emulation
  19. SIMH CPU emulator
  20. PDP-8I kit based on Raspberry Pi