‍Reparatur EAE (extended arithmetic element)


‍Diese Option für die pdp8/e dient der Unterstützung und Erweiterung der CPU für Rechenaufgaben. Die Option (KE8E) besteht aus zwei Karten M8340 und M8341. Diese werden zwischen die Karten M8330 und M8310 gesetzt und untereinander und mit den CPU Karten mit den Brücken (H851) an Platinensteckern an der oberen Kante der Platinen verbunden. Über diese Verbindungen greifen die Platinen bei der Abarbeitung von Befehlen asynchron in das geschehen ein und veranlassen Operationen in den Registern der CPU. Durch diese Unterstützung gewinnen Rechenaufgaben, sofern der Code die Option benutzt, deutlich an Geschwindigkeit. Das an anderer Stelle in Fortran geschriebene Apfelmännchen wird vom Compiler so übersetzt, dass bei Vorhandensein der EAE Option, diese unterstützt wird. Die Rechendauer halbiert sich dabei in etwa!

‍Zuerst hatte ich das an der PiDP8 getestet, da kann man auf einfache weise die Option de/aktivieren. Wegen ihrer großen Wirkung wollte ich diese Option unbedingt in der lab8/e haben! Bei der lab8/e war die EAE Option dabei, allerdings funktionierte sie nicht. Durch Zukauf zweier weiterer Platinen stellte sich heraus, auch diese waren anscheinend defekt, zumindest bekam ich sie nicht zum Funktionieren. Mehr noch, bei genauer Betrachtung erkannte ich Unterschiede in den Anschlüssen, offensichtlich gibt es verschiedene Versionen dieser Option!

‍In den Bildern oben sind die Anschlüsse der oberen Platinenkante zu sehen, auf zwei Bild die passenden EAE Karten zusammen. Ein Bild zeigt beide Versionen übereinander mit Pfeilverweis auf die deutlich sichtbaren Unterschiede der Pins. Nach einiger Recherche bleiben die Informationen dazu wage. Es gibt eine alte layout Version der oberen Verbinder und eine neuere. Die genauen Versionsdaten des Wechsels kenne ich (noch) nicht. Zu den Verbindern gehören dann auch die passenden Versionen der CPUs, insbesondere der M8330, mit entsprechen passendem Layout!

‍Da wird es seltsam. Die lab8/e kam mit einer alten und einer neuen Karte! Der Zukauf durch Zufall auch, und so liessen sich tatsächlich eine alte EAE und eine neuere EAE kombinieren.

‍Allerdings funktionierten auch die Kombinationen nicht in der lab8/e.


‍Als ich im Herbst eine große Menge Hardware bekommen habe, war darunter auch eine pdp8/e mit EAE (neueres Layout).

‍Leider funktionierte auch die nicht, und keine Kombination der neueren Karten untereinander! Getestet in der lab8/e und in der pdp8/m mit der passenden CPU aus der pdp8/e (noch im Keller). Anscheinend waren zu viele Defekte vorhanden. Eine M8341 brauchte nur im Rechner zu stecken und eine Adressleuchte war dauerhaft an.

‍Andere Karten waren zunächst unauffällig. Laut Maintenance soll man vor dem Testen der EAE Karten noch einmal die normalen CPU Instruction Tests durchführen, diese liefen mit eingebauten EAE Karten dann auf Fehler.

‍Also habe ich nun eine Haufen Karten, aber keine funktionierende EAE Option!


‍An Dokumentation zu dem Thema gibt es das Small Computer Handbook“ und die Processor Maintenance Manual Vol.1 und 2. Hier wird im text immer wieder empfohlen die Dokumentation zu studieren. An Schaltplänen findet man im Web die Schematics der vermutlich letzten Version der Platinen:  M8340F und M8341E. Die tatsächlich vorhandenen Versionen sind etwas andere. Neben dem auf der Platine angegeben Buchstaben, sind weitere Bestückungsversionen, oder Modifizierungen am Griff (Handle) eingestanzt oder geritzt.

‍Somit sind vorhanden:

‍Aus der pdp8/e

‍M8340 E (427F) (neues Layout Verbinderstrecker H und J)

‍M8341 D (422E) (neues Layout Verbinderstrecker H und J)


‍Für lab8/e 

‍M8340 E (341F) (neues Layout Verbinderstrecker H und J)

‍M8341 D (E) (neues Layout Verbinderstrecker H und J)


‍Reserve:

‍M8340 D (142D) (altes Layout Verbinderstrecker H und J)

‍M8341 B (14BC) (altes Layout Verbinderstrecker H und J)


‍Keine der Kartenpaare funktionierten in der lab8/e. Auch kreuzweise getauscht ergab sich keine Funktion. Daher vermutete ich etliche Defekte auf den Karten.


‍Mit der Hardware kamen auch sehr wertvolle Arbeitshilfsmittel, die bei der Reparatur sehr hilfreich zum Einsatz kommen.

‍Dadurch, dass ich nun zwei PDP8en nebeneinander zur Verfügung habe, wollte ich die Platinen mit neuerem Layout nebeneinander auf Unterschiede hin untersuchen, um so die Fehler zu finden. Links die lab8, rechts die pdp8/m. Zuerst wurden die M8341 mit einer Distanzplatine so eingesetzt, daß man im Betrieb darauf zugreifen kann. Wie im Bild zu sehen. Mit den Verbindungskabeln können dann die Verbindungen hergestellt werden, die sonst mit einer Steckbrücke gemacht werden. DEC buchstabiert die Verbinder alphabetisch. Die unteren Boardsteckplätze von rechts nach links A B C und D. Die Oberen Positionen auch von rechts nach links E F H und J. Einige Buchstaben wurden der Lesbarkeit halber im DEC Alphabet ausgelassen. Im Bild geht der H Stecker nach vorne zur M8340 und der F Stecker nach hinten zur M8310. Die Probleme wurden bei der Platine deutlich, sobald der F Stecker steckte, dann war dauerhaft eine Adressleitung angezeigt. Die Platine störte also den normalen Betrieb. Ohne den F-Stecker wurde der Rechner nicht erkennbar gestört. Daher wurde für das erste Reparaturset in beiden Rechnern die M8341auf der Distanzplatine installiert und nur der J Stecker angeschlossen. Alle Signale am offenen F-Stecker werden auf Ihre Spannung untersucht und miteinander verglichen. Dazu nehme ich ein einfaches Oszilloskop, weil man daran schnell sieht, welche Spannung anliegt, oder ob ein Signal anliegt. Dabei gab es an drei Pins Abweichungen. Mit ständigem Blick auf die Schaltpläne, manchmal auch verschiedene, wegen einer teilweise problematischen Lesbarkeit, wurde diesen Unterschieden nachgegangen.

‍So wurden Stellen gefunden, bei denen ICs unterschiedliche Spannungen an Ein und Ausgängen hatte. Dabei musste geprüft werden, ob das gemäß der Logiktabelle der ICs ein korrekter oder fehlerhafter Zustand ist. Bei Abweichungen von der Logiktabelle besteht die Wahrscheinlichkeit ein fehlerhaftes IC zu haben. Auf diese Weise wurde das defekte DEC8235 festgestellt, weil alle Eingänge gleich waren, aber der Ausgang unterschiedlich. Nach Tausch des ICs blockierte die Karte auch nicht mehr den Rechner bei gestecktem F-Stecker! Nachdem alle Unterschiede am F-Stecker beseitigt waren, war die erste Karte repariert.

‍Versuchsweises Testen mit getauschten M8340 zeigte eine funktionierende EAE Einheit. Also waren nun 2 Karten bekanntermaßen in Ordnung.

‍Bei den M8340 Karten wurde ähnlich vorgegangen, nur waren hier die J Stecker mit der M8330 nach vorne verbunden. In die pdp8/m kam die schon bekannte heile Karte, in die lab die zu reparierende. Durch die statische Suche wurden einige defekte ICs gefunden, aber das reichte noch nicht. Um zu sehen ob ein Schieberegister mit Daten geladen oder verändert wird, wurde mit einem Frequenzgenerator ein entsprechendes Signal angelegt (Rechteck 0-2V auf Bein 5 von SN74193) und so gesehen, das das IC etwas tut. Allerdings liess sich durch einen Ladebefehl (SCL) nicht erkennen, dass dort eine Veränderung eintritt, egal ob ich 0000 oder 11111 lade. Hier wurde noch eine Weile an der Signalisierung gesucht und ein defekter Inverter ersetzt. Danach halfen einige kleine funktionelle Code Sequenzen den stepcounter zu testen. Als das OK schien, wurden die Stecker komplettiert und die Maindec Tests liefen erfolgreich durch. 2. Karte repariert, fehlt noch die letzte M8241 in der 8m. Hier wurde ein verdächtiges  M8881 ausgebaut und solo getestet. Es war defekt. Allerdings konnte ich durch ansprechen einiger Code Sequenzen Seltsamkeiten feststellen. Ich vermutete daher weitere Fehler der Karte.


‍Bei genauer Betrachtung einiger Steuersignale die gegen Masse lagen, sah ich,  dass die CPU aus der pdp8/m das alte Layout am J Stecker oben an der M8330 (Timing) Karte hatte! Das hatte ich nicht erwartet und auch nicht kontrolliert, war doch bei dieser CPU eine neuere Version der EAE verbaut gewesen. Daher habe ich die EAE Karte dann in der lab8/e gesteckt und festgestellt, dass sie schon repariert war! (Maindecs OK). In der alten CPU lief sie aber nicht, sondern führte beim Ausführen mancher Befehle zum sofortigen Stillstand des Rechners. Das hatte ich bisher der Karte als Fehler zugeschrieben.  Seltsamerweise war das aber genau die Kombination, wie die Karten zusammengebaut zu mir kamen! Eine Kombination, die gar nicht funktionieren kann? Normalerweise stört die Karte die normale CPU nicht, auch manche EAE speziellen Befehle funktionieren, aber manche Befehle bringen die Kiste zum Stehen. Zum Beispiel NMI (7411). Startet man den, wird nicht mal die nächste Speicheradresse angezeigt, keine Reaktion mehr auf die Eingabetasten! Der Rechner musste dann erst einmal aus und eingeschaltet werden. Das brachte mich im weiteren auf die Idee, hier mal die Reserve Karten mit altem Layout zu testen, die in der lab8 nicht funktionierten.

‍Das „Opfer IC“ wurde also wieder zurück gesteckt (Sockel sei dank) und die Karten eingebaut. Hier funktionierte alles spot on! Stepcounter laden und anzeigen klappt genauso wie links shiften (SHL). Die ältesten Karten hatten also gar keine Fehler, funktionieren aber aufgrund ihres Layout nicht mit einer CPU mit späterem Layout.


‍Das hätte ich nicht erwartet! Nunmehr habe ich also drei Paar EAE Platinen die ich einsetzen kann! Denn ich habe auch die passenden CPU’s dazu! Ich muss nur ein IC noch besorgt bekommen, aber das wird schon…..


‍Wie oben beschrieben wurden nach und nach einige defekte ICs gefunden und deren Stelle gegen Sockel getauscht. Sofern die IC’s vorhanden waren kein Problem, einzig ein DEC8235 (Ersatz Signetics 8235) musste erst einmal der Reserveplatine entliehen werden. Weiter defekt waren 3x SN7402, 2xDEC8881 (Ersatz SN7439), DEC8093 (Ersatz SN74LS125AN), SN7474, SN74H11 und SN74H04. Da einige IC’s beim Ausbau zerbrachen, kann ich nicht eindeutig sagen ob sie defekt waren, das betraf aber keine seltenen DEC IC’s. 


‍Nach der Prozedur liefen beide EAE Paare ohne Fehler für einige Minuten durch die EAE Inst. Test 1 und 2. Auch unter OS8 kompilierte das APFEL0.FT (.EXE APFEL0.FT) und lief! Das Zeichnen der Männchens dauerte 3:45 Minuten anstelle von 7:30 Minuten ohne EAE. Soweit ein toller Erfolg!

‍Ich habe festgestellt, dass man für die Zusammenstellung von CPU und EAE auf die Version des Layouts achten muss, sonst klappt es nicht und man vermutet Schäden wo keine sind.


‍Im Überblick habe ich folgende  drei funktionierende Kombinationen an CPU und EAE Platinen:


‍Platine         Platinenversion/Bestückungsversion . .

‍M8330        B/209A        -/750P        C/353D 

‍M8340        D/142D        E/341F      E/427F      EAE

‍M8341        B/140B        D/E            D/422E      EAE

‍M8310        F/337F        B/148C      F/350F

‍M8300        B/244C        B/23B        B/351D

‍M837          B                 D/320D      D/348E