Übersetzung eines anderen PDP-11/04-Wiederherstellungsartikels. Die letzte Trilogie können Sie hier lesen - Teil 1 (PDP-11/04 selbst), Teil 2 (TU60-Bandstation), Teil 3 (Terminal LA30). Kursiv sind meine Kommentare.PDP-11/04, gesendet von Gunnar
Wir haben dieses Gerät von Gunnar Barbro bekommen und mit ihm kamen eine Reihe verschiedener Extras für den PDP-11. Aber der Zustand des Computers selbst war alles andere als perfekt. Es gab nicht genügend Prozessor- und Speicherkarten, der Netzschalter wurde durch ein Remake ersetzt, und außerdem war alles furchtbar staubig. Die Programmierkonsolenplatine KY11-LB, XY11 (ein Modul zur Steuerung des Plotters, z. B. IBM 1627, das mit DEC-Maschinen geliefert wurde und kanonisch CalComp 565 war ), KW11-P ( programmierbares RTC-Modul, ja, wurden an die Rückwandplatine angeschlossen ) Ja, es gab eine ganze Karte unter RTC! ), Die Hauptkarte RK11-D mit einer Reihe von Modulen (eine Steuerung für Magnetplattenlaufwerke, es war eine Reihe von Karten (3 oder 4 Teile), kombiniert mit einer gemeinsamen Karte) und DR11-B (DMA-Controller, der wiederum aus mehreren Karten bestand: M7194, M971, M5916, M7820, ... ), ebenfalls mit allen Modulen.
Reinigung
Wir zerlegten den Computer in Teile, wuschen sie vorsichtig mit Wasser und Seife und bliesen sie dann mit einem Kompressor trocken. Nach dem Trocknen wurden sie zu einem Ganzen gesammelt. Während dieser Vorgänge wurden hier und da Rostflecken gefunden.Montage und Inspektion
Natürlich hat nichts funktioniert, auch wenn wir den Prozessor und die Speicherplatinen aus unseren Lagerbeständen angeschlossen haben! Die Konsole war tot. Wenn wir zuerst digitale Codes wählen konnten und diese auf der Konsole angezeigt wurden ( siebenstellige sechsstellige Anzeige ), verschlechterte sich die Situation nach einiger Zeit und diese Gelegenheit verschwand.KY11-LB
KY11-LB ist eine sehr interessante Option für PDP-11/04 und PDP-11/34. Sie können nicht nur die CPU ein- und ausschalten, den Code debuggen, den Speicher anzeigen und ändern und so Programme und Daten in die Maschine eingeben, sondern auch den Servicemodus verwenden, in dem das schrittweise Debuggen des Prozessor-Mikrocodes möglich ist! Diese Funktion wird durch Verbinden eines Schleifenpaars mit dem Prozessormodul bereitgestellt. Wenn der Prozessor fehlt oder einfriert, können Sie mit dem KY11-LB mit Unibus arbeiten (einem Bus, der Module in vielen DEC-Computern verbindet) ohne Beteiligung der CPU. Dies wird durch das Vorhandensein eines eigenen Mikroprozessors i8008 realisiert. Auf dem Foto unten habe ich es rot eingekreist. Dies ist eine gute Nachricht, wenn Sie den Betrieb des Busses selbst überprüfen oder einfache Tests von Speicher- und E / A-Karten durchführen müssen. Wenn ein nicht vorhandenes Ziel angefordert wird, leuchtet die Lampe BUS ERR auf. Jörg Hoppe hat ein hervorragendes Dokument über die Verwendung der KY11-LB geschrieben.
Nachdem ich den Logikanalysator angeschlossen hatte, überprüfte ich, ob der 8008 auf der Karte M7859 (KY11-LB) normal funktioniert und das aufgezeichnete Programm korrekt ausführt. Aber der Code glaubte, dass niemand eine Taste drückt ... Es stellte sich heraus, dass alle CLR-Signale ( Löschen, ein Signal zum Löschen des Registers ) für die Ausgangsregister in einem aktiven Zustand waren. Der Unibus-Bus-Controller, der das DCLO-Signal verarbeitet hat (Ein Signal am Unibus-Bus, das anzeigt, dass die Gleichspannung zu niedrig ist, war fehlerhaft. Mehrere Open-Collector-Puffertreiber und Registerchips waren fehlerhaft. Sobald ich sie ersetzte, erwachte die Konsole zum Leben! Aber auch hier gab es einen Fehler, nachdem der Prozessor gestartet und mit einer Diagnose seiner Funktionalität getestet wurde. Und zweimal. Der erste ist ein Fehler im M9301, dem Bootboard. Das 8. Bit auf dem Datenbus war das letzte für den Busfahrer verfügbare. Er konnte nicht genug Daten aus dem Bus lesen. Beim zweiten Mal friert der Prozessor einfach ein. Auf dem Adressbus wurde nichts eingestellt, und die Untersuchung des Mikrocodes ergab, dass der Stecker beim Versuch, den Bus zu erfassen, aufgetreten ist. Der Prozessor startete erst, nachdem ich den M7859 ( KY11-LB) herausgenommen hatte) Es stellte sich heraus, dass der M7859 ein 9-MHz-BBSY-Signal auf dem Unibus-Bus erzeugte ( Bus Busy signalisiert im aktiven Zustand, dass D0-D15-Signale (die angeforderten Daten kamen von ihnen) von jemandem verwendet werden ). Warum? Ein Abzug 7474 brach und oszillierte wie verrückt. Nach dem Austausch war die Prozessor- und Speicherdiagnose erfolgreich!M9301-YB
Der PDP-11/04 M9301-YB ist ein Bootstrap-Modul und Terminator. Das PROM der Karte speichert den Konsolenemulator und den Startcode für mehrere gängige Geräte. Damit der Prozessor die Ausführung unmittelbar nach dem Start aus dem Startbereich im PROM starten kann, generiert das Modul eine spezielle Adresse 0173000 auf dem Bus ( 300-ms-Impuls mit dem Multivibrator 9602 ) ( häufig wird ein Oktalzahlensystem für pdp verwendet, daher werden Nullen am Anfang von Zahlen nicht aufgefüllt, nämlich eine Referenz auf CC ), und der Prozessor fordert die Wiederaufnahmeadresse nach einem Stromausfall an und setzt die Adresse 024/026 auf dem Unibus-Bus ( die erste Adresse ist das MMIO-Register, in dem sich der PC befindet, die zweite Adresse ist PSW, Prozessorstatuswort, verschiedene Flags und Prozessorstatus) Infolgedessen wird eine Datenanforderung an den Bus unter den Adressen 0173024 und 0173026 gesendet. Für die Zelle 0173024 findet M9301 eine Entsprechung zwischen dem Satz von Mikroschalterwerten ( auf dem Foto rechts in der Mitte, 10 Stück ) und den Daten im PROM. Diese Schalter bestimmen tatsächlich, von welcher Adresse im 0173xxx-Raum der Prozessor mit der Ausführung beginnt. Ich habe vier PROM-Chips ausgegeben - 23-038A9 , 23-039A9 , 23-040A9 und 23-041A9 . Da der M9301-YB einige Bits invertiert, um die Möglichkeit der Disjunktion der Kartenschalter mit externen Signalen zu unterstützen ( in den Fotokontakten sind TP1 / TP2 / TP3, ihre ODER-Werte sind mit den Werten der Mikroschalter auf der Karte, zum Beispiel ist TP1 mit S1 und S2 verbunden ), schrieb ich ein kleinerEin Programm , das diese vier Dateien zu einer einzigen Binärdatei kombiniert . Nachdem ich nur die erste Analyse der Disassembler-Liste durchgeführt hatte, bemerkte ich jedoch bereits, dass der Code dem PROM des M9301-YA sehr ähnlich ist, außer dass die Codeblöcke an verschiedenen Adressen verstreut sind.
Starten Sie RT11SJ und XXDP V2.2
Um jedes dieser Programme auszuführen, benötigen Sie das entsprechende Verfahren im Bootloader-Code. Typischerweise werden solche Prozeduren in einem separaten PROM-Chip ausgeführt, dessen Ausführung beim Eingeben bestimmter Zeichen in einen Konsolenemulator erfolgt. Auf diesem Computer befindet sich jedoch eine M9201-YB-Karte, die keinen primären DU-Bootloader enthält ( DEC hat sehr informative Namen, DU ist ein Bootloader von den Medien über MSCP (MSCP ist ein Protokoll für die Kommunikation mit Laufwerken wie ATAPI) ). Also musste ich diesen Bootloader manuell hämmern (Der Konsolenemulator, der Teil dieses Moduls ist, unterstützt 4 Funktionen: Laden der Adresse L, Lesen des Speichers an Adresse E, Schreiben in Adresse D, Starten der Ausführung von S. Auf diese Weise können Sie den Code manuell eingeben. Die Befehlsfolge vom Typ L 016000, D XXXXXX, D XXXXXX, ..., S 16002 ). Es war nicht einfach, einen geeigneten funktionierenden Bootloader zu finden, aber ich fand immer noch einen in der Quelle SimH ( Emulator verschiedener alter Systeme ). Mit Hilfe von PDP11GUI habe ich eine kleine Datei in den Speicher des Geräts hochgeladen . Und es funktioniert (zumindest in den meisten Fällen).Speichern Sie diesen MSCP-Bootloader:0016000 042125 012706 016000 012700 000000 012701 172150 012704
0016020 016162 012705 004000 010102 005022 005712 100001 000000
0016040 030512 001773 012412 006305 100370 105714 001434 012702
0016060 007000 005022 020227 007204 103774 112437 007100 110037
0016100 007110 112437 007114 112437 007121 012722 007004 010522
0016020 012722 007104 010512 024242 005711 005712 100776 005737
0016040 007016 001743 000000 005011 005003 012704 016020 005005
0016060 005007 100000 007204 000000 000001 004420 020000 001041
0016200 000000
Füllen Sie den Speicher mit 016000 und führen Sie ihn mit 016002 ( 0x4455 - Zauberwort ) aus.
Danach habe ich versucht, das Disk-Image mit XXDP v2.2 zu starten. Aber leider gab es keinen Erfolg. Die XXDP-Befehlszeile wurde angezeigt, aber alle Befehle, die mit der Festplatte funktionierten, wie z. B. "D" ( Liste der Dateien auf dem geladenen Medium abrufen ), endeten mit einem Fehler in der Konsole "? RD ERR". Es sieht so aus, als ob das Programm nicht auf die Festplatte zugreifen kann. Also habe ich das kleine Distributionskit RT11 ( Echtzeitbetriebssystem für PDP-11 ) überprüft . Erstellt ein Disk-Image mit Version 5.3 und versucht zu starten. Und alles lief super! Sie können Adventure spielen oder auf BASIC'e programmieren!