PDP-8
| Hersteller | Digital Equipment Corporation | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Typ | Minirechner | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Veröffentlichung | 22. März 1965 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Produktionsende | 1979 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Neupreis | 18.500 US-Dollar, entsprach 2019 etwa 135.000 Euro | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Prozessor | diskrete Schaltung | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Arbeitsspeicher | 4.096 × 12 Bit | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Grafik | keine | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Sound | keiner | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Datenträger | Lochstreifen | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Betriebssystem | diverse, meist OS/8 oder RTS-8 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Vorgänger | LINC, PDP-5 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Nachfolger | PDP-11 als Prozessrechner, PDP-12 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Register der PDP-8 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Technisch handelte es sich bei der PDP-8 um einen 12-Bit-Rechner. Der Hauptspeicher bestand aus 4.096 12-Bit-Wörtern in Form eines Core Stack aus einzelnen Miniatur-Ringmagneten (Kernspeicher), wobei ein Ring genau ein Bit aufnahm.[11] Ein Wort konnte zwei 6-Bit-Zeichen speichern. Waren die ersten PDP-8 noch in DTL-Logik verwirklicht, wurde bei späteren Versionen die Architektur in der schnelleren TTL-Logik implementiert. Mangels Bootloader wurde der Rechner zunächst über eine Maschinenkonsole mit Schaltern und LEDs («Blinkenlights») bedient. Lief die Anwendungssoftware ursprünglich direkt auf der Hardware, wurde später hauptsächlich das Betriebssystem OS/8, seltener RTS-8, verwendet. Programmiert wurde in Assembler, BASIC, Fortran, Focal und Dibol. Abgespeichert wurde die Software anfangs vornehmlich auf Lochstreifen, später auch auf Kleinmagnetbändern, 8-Zoll-Disketten und Festplatten.
Versionen der PDP-8
[Bearbeiten | Quelltext bearbeiten]

Die Gesamtzahl verkaufter Geräte aus der PDP-8 Familie wird auf über 300.000 Exemplare geschätzt.[12] Dabei wurden etwa 3.000 bis 1970, 30.000 bis 1976 verkauft.
Über den Produktionszeitraum wurde die PDP-8 in verschiedenen Fassungen und Konfigurationen verkauft, wobei die PDP-8/E als das prägende Modell betrachtet werden kann.
Von DEC wurden in der erweiterten PDP-8-Familie diese Geräte gebaut:
| Modell | Zeitraum | Anzahl | Preis | Technologie | Gewicht | Anmerkungen |
|---|---|---|---|---|---|---|
| PDP-5 | 1963–1965 | 116 | ? | DTL | Vorläufer mit einem Subset an Instruktionen | |
| PDP-8 | 1965–1969 | 1.450 | $ 15.000,00 | DTL | 113 kg[3] | |
| LINC-8 | 1966–1969 | 142 | $ 38.000,00 | DTL | Kombination einer LINC und einer PDP-8 in einem Gehäuse. | |
| PDP-8/S | 1966–1970 | 1.024 | $ 10.000,00 | DTL | 38 kg[13] | Serielle Implementation, daher vergleichsweise langsam. |
| PDP-8/I | 1968–1971 | 3.698 | $ 12.800,00 | TTL | 110 kg[14] | 55 ⨉ 76 ⨉ 181 cm. 32 kB RAM. |
| PDP-8/L | 1968–1971 | 3.902 | $ 8.500,00 | TTL | 36 kg[15] | Verkleinerte Version der PDP-8/I |
| PDP-12 | 1969–1973 (?) | 755 | $ 27.900,00 | TTL | Nachfolger der LINC-8 | |
| PDP-8/E | 1970–1978 | > 10.000 (?) | $ 6.500,00 | TTL MSI Omnibus | 41 kg[16] | |
| PDP-8/F | 1972–1978 (?) | > 10.000 (?) | < $ 5.000,00 | TTL MSI Omnibus | 26 kg[16] | Basiert auf der PDP-8/E CPU |
| PDP-8/M | 1972–1978 (?) | > 10.000 (?) | < $ 5.000,00 | TTL MSI Omnibus | 26 kg[16] | OEM-Version der PDP-8/F |
| PDP-8/A | 1975–1984 (?) | > 10.000 (?) | $ 1.317,00 | TTL LSI Omnibus | ||
| VT78 | 1978–1980 | $ 7.995,00 | Intersil 6100 | kompatible Arbeitsplatz-Workstation | ||
| DECmate | 1980–1984 | ? | Harris 6120 | kompatible Arbeitsplatz-Workstation | ||
| DECmate II | 1982–1986 | $ 1.435,00 | Harris 6120 | kompatible Arbeitsplatz-Workstation | ||
| DECmate III | 1984–1990 | $ 2.695,00 | Harris 6120 | kompatible Arbeitsplatz-Workstation | ||
| DECmate III+ | 1985–1990 | ? | Harris 6120 | kompatible Arbeitsplatz-Workstation |
Klone und Nachbauten
[Bearbeiten | Quelltext bearbeiten]Im Ostblock entstanden schnell Nachbauten der PDP-Serie von Computern, die ungarischen TPA1001, TPA1001/i, TPA/l, TPA1/128H, TPA/s und TPA Quadro waren dort anfänglich auf Basis von Transistoren, später auch auf Basis der Intersil-6100-Prozessoren entwickelte Klone.[17][12]
Sowjetische Nachbauten waren die Electronica-100, Electronica-100I und Saratov-2-Geräte.[12] Ferner gab es auf Kuba die CID-201, von der mehr als 200 Exemplare gebaut wurden, sowie im damaligen Jugoslawien die Electrotechnica-100I (die eventuell technisch identisch zur sowjetischen Electronica-100I war).
Teilweise kompatible Geräte im Westen waren die SPEAR u-LINC 100 und SPEAR u-LINC 300, die DCC-112 und DCC-112H, sowie die von Intersil gebauten Intercept I und Intercept Jr.[12]
Emulationen
[Bearbeiten | Quelltext bearbeiten]Basierend darauf, dass heutzutage selbst kleinste Rechner eine größere Leistungsfähigkeit haben als die originalen PDP-8-Modelle, gibt es eine Vielzahl von Emulatoren. Ein JAVA-Emulator in Form eines einzelnen JAR-Paketes visualisiert das gesamte Bediensystem (inkl. Frontpanel) sowie die Hardware[18]. Bei dem am weitesten verbreiteten Emulator dürfte es sich um SIMH[19] handeln; dieser Emulator ist in der Lage, eine Vielzahl historischer CPUs zu emulieren. Ein verkleinertes, jedoch authentisches Frontpanel der PDP-8 mit entsprechender Logik in Kombination mit einem Emulator, der auf einem Raspberry Pi läuft, lässt das ursprüngliche System wieder auferstehen.[20]
Befehlssatz
[Bearbeiten | Quelltext bearbeiten]| Befehlscodierung der PDP-8 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Der Befehlssatz der PDP-8 codiert Befehl und Operand in stets genau ein 12-Bit Wort, dabei ist es für einige Operationen sogar möglich, bei identischem Operanden mehrere Befehle in ein einziges 12-Bit Wort zu kodieren.
Die drei höchsten Bits des 12-Bit Worts (mit den Bits 0 bis 2 bezeichnet) sind der Befehlscode. Bei den sechs Operationen, die sich auf den Speicher beziehen, geben die Bits 5 bis 11 eine 7-Bit-Adresse an. Wenn Bit 4 gesetzt ist, bedeutet dies, dass die Adresse mit den 5 höchsten Bits des Programmzählerregisters (PC) vervollständigt werden soll, was bedeutet, dass sich die adressierte Stelle innerhalb der gleichen 128 Wörter wie der Befehl befindet. Wenn Bit 4 nicht gesetzt ist, werden Nullen verwendet, so dass die adressierte Stelle innerhalb der ersten 128 Wörter des Speichers liegt. Bit 3 spezifiziert "indirection"; wenn es gesetzt ist, verweist die so erhaltene Adresse auf einen 12-Bit-Wert im Speicher, der die tatsächliche effektive Adresse für die Anweisung angibt. Dadurch können die Operanden an einer beliebigen Stelle im Speicher liegen, was jedoch dann ein zusätzliches 12-Bit Wort kostet. Der JMP-Befehl operiert nicht mit einem Speicherwort, es sei denn, es ist "indirection" angegeben, nutzt aber die gleichen Bitfelder.
Programmbeispiele
[Bearbeiten | Quelltext bearbeiten]Die folgenden Beispiele zeigen Code in PDP-8 Assemblersprache, wie er mit dem PAL-III Assembler übersetzt werden könnte.
Vergleich zweier Zahlen
[Bearbeiten | Quelltext bearbeiten]Wie im oben stehenden Abschnitt zur Bedeutung der PDP-8 erwähnt, war ein Programmierer für die PDP-8 sehr viel damit beschäftigt, einfache Dinge aufwändig selbst zu programmieren. Diese 6 Instruktionen sind notwendig, um zwei Zahlen in den Speicherstellen ORD1 und ORD2 zu vergleichen:
/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 …
Zeichenausgabe
[Bearbeiten | Quelltext bearbeiten]Eine mögliche Fassung von „Hello, world!“ mit Ausgabe auf dem Drucker, wobei hier zur Illustration der Befehlskodierung die Ausgabe des PAL Assemblers gezeigt wird, also Speicherstelle (Spalte 1) und Speicherinhalt (Spalte 2), der eigentliche Programmcode steht ab Spalte 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
Die Ausgabe von Speicheradresse und -inhalt ist oktal dargestellt, sodass diese leicht über die Schalter am Bedienfeld direkt in die Speicherstellen eingegeben werden können. Für oben stehendes Programm würde zunächst den Wert 0010 einstellen (oktal, also 000-000-00I-000 mit 0 bzw. I als Aus bzw. Ein) und dann mittels Load Add als aktive Adresse setzen. Anschließend würde der Wert 0207 (000-0I0-000-III) eingestellt und mittels Dep im Speicher deponiert. Der Addresszähler springt dabei automatisch eine Stelle weiter (und zeigt dann auf 0011). Als nächstes wird 0200 (000-0I0-000-000) eingestellt und mit Load Add geladen, dann 7300 (III-0II-000-000) mit Dep deponiert, anschließend ist der Adresszeiger korrekt und die nächste Instruktion kann sofort mit 1410 (00I-I00-001-000) deponiert werden usf.
Am Ende wird erneut Adresse 0200 eingestellt und mit Start gestartet. Das Programm gibt „Hello, world!“ auf dem Drucker aus und die Maschine geht in den Haltezustand.
Weblinks
[Bearbeiten | Quelltext bearbeiten]Einzelnachweise
[Bearbeiten | Quelltext bearbeiten]- ↑ heise online: Der Tag als der Mini kam: 50 Jahre PDP-8. Abgerufen am 4. Oktober 2019.
- ↑ PDP-8 Summary of Models and Options – Section: What is a PDP-5? Abgerufen am 4. Oktober 2019 (englisch).
- 1 2 Digital Equipment Corporation (Hrsg.): PDP-8 – A High Speed Digital Computer. 1967, S. 1–2 (bitsavers.org [PDF]).
- ↑ 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, S. 271.
- ↑ George Harrar: The ultimate entrepreneur: the story of Ken Olsen and Digital Equipment Corporation. Contemporary Books, Chicago 1988, ISBN 0-8092-4559-0.
- ↑ Frühe Computer im technikum29
- ↑ Exponate des Computermusems der Fakultät Informatik an der Universität Stuttgart
- ↑ Katalog der Informatik-Sammlung Erlangen
- ↑ Ziff Davis Inc: PC Mag. Ziff Davis, Inc., 29. Oktober 1985 (books.google.de [abgerufen am 4. Oktober 2019]).
- ↑ sinngemäß so in Abschnitt 1.1 von „Introduction to the Central Processing Unit (CPU)“, einem Handbuch zu einem Texas Instruments Mikrocomputer: TMS320C28x CPU and Instruction Set (Rev. F). (ti.com.cn [PDF]).
- ↑ Erfahrungsbericht Projektleiter PDP-8/E-Entwicklung
- 1 2 3 4 5 Doug Jones's DEC PDP-8 FAQs. Abgerufen am 4. Oktober 2019.
- ↑ Digital Equipment Corporation (Hrsg.): PDP-8/S – Maintenance Manual. 1965, S. 18 (bitsavers.org [PDF]).
- ↑ Digital Equipment Corporation (Hrsg.): PDP-8 – Small Computer Handbook. 1968, S. 290 (bitsavers.org [PDF]).
- ↑ Digital Equipment Corporation (Hrsg.): PDP-8 – Small Computer Handbook. 1970, S. 277 (bitsavers.org [PDF]).
- 1 2 3 Digital Equipment Corporation (Hrsg.): PDP-8/E/F/M – Sales Brochure. 1970, S. 17 (pdp8online.com [PDF]).
- ↑ Borbély Éva: The early history of computers in the Hungarian economy. Hrsg.: BME Department for the History and Philosophy of Science. ISSN 1418-7108 (heja.szif.hu [PDF]).
- ↑ PDP-8-JAVA-Emulation
- ↑ SIMH-CPU-Emulator
- ↑ PDP-8I-Bausatz basierend auf Raspberry Pi