Tools :Werkzeuge zum Arbeiten an und mit den PDP8en


Wenn man wie ich in dieses Themengebiet der alten DEC Rechner hineingerät ohne selbst frühe Berührungspunkte damit zu habe, oder die Geschichte und Szene zu kennen, dann stolpert man manchmal ganz schön ungeschickt herum und geht viele Umwege. Hat man dann sein Problem erkannt und verstanden, ist die Lösung oft gar nicht so schwer. Mir ging es bei einigen Themen so, und daher versuche ich diese Dinge hier mal aufzulisten, in der Hoffnung anderen eine Abkürzung anzubieten.


1. Papertapes mit GTTY von Lyle Bickley

Fangen wir mal mit dem sehr elementaren Thema „papertapes“ an. Nach allem Gebastel an Netzteil und Backplane, einigen Fingerversuchen an den Frontschaltern, ist es soweit: Software soll auf die PDP8 kommen. Bei mir hatte ich als Schnittstelle zur Welt eine serielle Schnittstelle. Die hatte ich mit einem Nullmodemkabel mit einem Rechner verbunden, und ein Terminal Programm gestartet.

Zeichen konnten von Hand generiert werden durch einige Befehle an den Frontschaltern und Zeichen vom Terminal kamen im AC der lab8/e an. Die Hardware stand also bereit.

Um nun Dateien zur PDP zu bringen und in deren Speicher, muss zunächst ein Programm auf der PDP laufen, was in der Lage ist Daten einzulesen. Da kommen dann die Begriffe RIM-Loader und BIN-Loader. Diese beiden Ladeprogramme könne verschiedene Dateiformate einlesen. Dazu empfehle ich die Lektüre vom PDP-8 FAMILY PAPER TAPE SYSTEM USERS’S GUIDE.

Hier wird etwas zu den verschiedenen Darstellungsformaten und deren Ladeprogrammen erklärt.


Dann versteht man auch leicht, dass es einige Programme gibt, deren Papierstreifen im BIN Format mehrere Abschnitte beinhaltet. Erst einen menschenlesbaren Vorspann, dann mehrere Programmabschnitte. Mit den damals üblichen Werkzeugen, einer ASR-33 oder einem angeschlossenen Fast Paper Tape Reader wurde dann so vorgegangen, dass man das Papier hinter dem Vorspann eingelegt hat. Wenn der BIN Loader lief startete man den Papierleser. Wurde ein Abschnittsende erreicht hielt der BIN-Loader an und hatte hoffentlich eine 0 im AC, das Zeichen dafür richtig gelesen zu haben. An der PDP wurde CONT gedrückt und der nächste Abschnitt eingelesen, usw. Das sind zum Beispiel Programme wie FOCAL oder BASIC, deren BIN Tapes so aussehen. 


Hat man aber nur eine serielle Schnittstelle an einen modernen Rechner per RS232 angeschlossen fehlt eine entscheidende Kleinigkeit bei dem Szenario oben. Es gibt keine Rückkopplung von dem Ladeprogramm zum Rechner. Sende ich also vom Rechner aus ein Programm an die PDP, bekommt mein Rechner nicht mit, wenn der BIN-Loader stoppt. Die weiteren Programmabschnitte gehen dann verloren.

Ohne diese Rückkopplung kann ich also problemlos nur einen Programmabschnitt senden. Das sollte man im Hinterkopf haben. Auch macht der Vorspann manchmal Probleme, aber nicht immer. 

Viele im Netzt gefundenen Programme bestehen aus nur einem Abschnitt, die können problemlos verarbeitet werden.


Um diese Rückkopplung zu bekommen gibt es hier einen Vorschlag für eine Hardware Anpassung der seriellen Karten M8655 und M8650.  Dazu passend und aufbauend gibt es die Software gtty (Glass TTY von Lyle Bickley). Diese famose kleine Software stellt in der Funktionsweise eine ASR-33 dar, nur eben als Bildschirmterminal. Man kann Files an die PDP senden, oder von der PDP empfangen. Dadurch, dass das READER RUN Signal auf die serielle RS232 auf RTS gelegt wurde, kann Zeichengenau das lesen gesteuert werden. Dadurch ist es auch bei langsamen Programmen wie FOCAL oder BASIC möglich Dateien zu senden oder zu laden.

Gtty ist auch ohne den Hardwarepatch hilfreich, aber in Kombination besonders! Hätte ich das vorher gekannt….

Vince Slyngstad hat einige Änderungen vorgenommen, so das gtty auch unter Linux läuft!


2. Kermit

Kermit ist das vielseitige Datei Übertragungsprogramm der Columbia Universität in New York. Es ist  für die verschiedensten Plattformen erhältlich, und seit 2011 Open Source. So gibt es mit cKermit eine aktuelle Plattform für Linux, und es gibt auch die von Charles Lasner geschriebenen K12MIT Version für die PDP8 Plattform. Beides zusammen ermöglicht es, Dateien von modernen Rechnern per serieller Übertragung auf eine PDP8 unter OS/8 zu transferieren. 


Die Dateiübertragung erfolgt dabei entweder durch den Kanal der Terminalkonsole, oder durch einen gesondert aufgebauten zusätzlichen Kanal. Dies ist insofern von praktischer Bedeutung, als dass die Programme 

‍    K12MIT.SV  (Port 04/04)

‍    K12DJG.SV (Port 40/41)

verschiedene Ports auf Seiten der PDP8 ansprechen.


Bei meiner lab8/e funktioniert die Übertragung problemlos zwischen dem Linux Raspie mit cKermit auf der Console (03/04).

Allerdings gelingt selbiges nicht mit einem unter simh laufenden OS/8. (Warum?) Ein Dateitransport über die Konsoleverbindung hat bisher nicht geklappt. Aber beim Aufbau einer zusätzlichen Verbindung über 40/41 ist es möglich mit einem Kermit aus zusätzlicher Shell diese Verbindung zum K12DJG herzustellen und Dateien zu transportieren. 

Anpassung im simh:

‍    set throttle 333k

‍    att ttix 4000

‍    set ttox0 8b


Kermit ruft dann die Verbindung auf mit „telnet /nowait localhost:4000“

Alles weitere wie sonst auch. Eventuell sind auf Linuxseite im Kermit die Optionen 

‍     set streaming off

‍     robust

zu setzen.

Zu beachten sind beim Senden vom Raspie zum OS/8, dass die Filenamen schon in der richtigen Schreibweise in Großbuchstaben vorliegen müssen! Die throtte Einstellung scheint wegen eines timing Problems notwendig zu sein.


3. OS/8 DISK SERVER von Kyle Owen

Der os8diskserver ist ein Serverprogramm, welches in der Lage ist RK05 Medien zu lesen und zu beschreiben. Das Programm lauft auf einem modernen Rechner, zum Beispiel einem Raspberry Pi unter Linux. Der Kontakt mit einem PDP8 Rechner wird über eine zusätzliche serielle Schnittstelle aufgenommen. Diese hat üblicherweise die Adressen 40/41. Die Funktionsweise und Dokumentation ist bestens im Projekt von Kyle Owen beschrieben.

Durch geeignetes Modifizieren der seriellen Karte M8650, ist es möglich eine Übetragungsgeschwindigkeit  von 38400 oder sogar 115200 Baud zu bekommen. Hier ist eine prima Beschreibung zur Modifikation auf 115200 Baud.


4. PUTR von John Wilson

Putr.exe ist ein DOS Programm. Es kennt fast alle Dateisysteme und Formate die im DEC Universum der PDP-8 und PDP-11 genutzt werden. Man kann mit dem Programm Images von Medien mounten und dann auf die Dateien zugreifen, kopieren, anzeigen. So lassen sich Dateien aus Images von Disketten, DEC Tapes oder Festplatten untereinander bewegen. Das Werkzeugtg ist sehr vielseitig und hilfreich!


5. DUMPREST von David Gesswein

Mit diesem Werkzeug kann man die Medien der an eine PDP8 angeschlossenen Geräte als Image auf einen Rechner bewegen (dumpen). Oder umgekehrt, kann man Abbilder von Medien auf diese schreiben (restore). Das funktioniert mit Festplatten, DEC Tapes und Floppys. Das tool ist nicht hilfreich für die Archivierung, man kann damit auch aus dem Netz geladene Images auf eigene Medien bringen und ausprobieren. Eine Sammlung von Images findet sich HIER.


6. socat

Mit diesem tool kann man die EIN und Ausgabe von seriellen Geräten umlenken. Das geschieht entweder lokal untereinander, oder über das Netzwerk. Dadurch brauch man im Netzwerk jedes Gerät nur ein mal physikalisch an einen Rechner anzuschliessen. Verbinden kann man es dann logisch mit Hilfe von socat. Dadurch können an einen Rechner verschiedene Terminals oder an ein Terminal verschiedene Rechner angeschlossen werden. In meinem Netzwerk sind viele serielle Geräte an Raspberrys mit USB seriellen Geräten angeschlossen. Die Verbindung untereinander wird mit socat geregelt. 

Beispiele:

lokale Verbindung zweier serieller Ports auf dem gleichen Rechner:

‍  socat -d -d -d /dev/ttyUSB0,raw,echo=0 /dev/ttyUSB1,raw,echo=0  


Verbindung zweier Geräte im Netzwerk auf verschiedenen Rechnern:

Rechner1:   socat -d -d -d /dev/ttyUSB0,echo=0,raw tcp4-listen:4711

Rechner2:   socat -d -d -d /dev/ttyUSB0,raw,echo=0 tcp4-connect:RECHNER1:4711 

Die Angabe von -d -d -d gibt sehr viele Informationen aus, kann aber weg gelassen werden. Installation unter Raspian mit „apt-get install socat“.