HP 9000 Model 2xx/3xx Workstation Restauration mit allerlei Zubehör

  • Hallo :)

    anscheinend ist es ja hier in der HP Ecke gerade sehr aktiv, daher möchte ich auch gleich die Gelegenheit zu meinem ersten Post nutzen. Mir ist gegen Ende letzten Jahres einiges an HP Equipment zugelaufen (oder besser: es lag auf dem Schrott und musste gerettet werden) und ich versuche mich gerade, mit den Systemen vertraut zu machen. HP war vorher nicht mein Jagdgebiet, aber das Schicksal will es nun so ;)

    Alles in allem bestand der Fund aus insgesamt vier HP 9000 2xx/332/310/3xx Workstations samt zugehöriger Monitore und Tatstaturen, zwei HP 9153A und zwei HP 9133H Combo-Laufwerken sowie vier ThinkJet Printern und zwei Stiftplottern (1x HP 7475A und ein HP 7440A ColorPro). Nachdem erstmal alles im Keller eingelagert wurde, bin ich nun dran die Komponenten zu identifizieren, zu reinigen und zu testen. Meine Hoffnung ist, mindestens zwei Systeme wieder voll zum Leben zu erwecken und in Kombination mit den Plottern dann etwas cooles daraus zu machen. Leider besitze ich keinerlei Dokumentation oder Software dafür, so dass bisher nur das HP Museum mein treuer Begleiter wurde.


    Der aktuelle Zwischenstand ist bisher folgender: Zumindest die beiden 332 und 310 Workstations und zwei der Monitore scheinen zu funktionieren. Der HP 7475A plottet brav seine Demo-Grafik, aber die drei noch enthaltenen Stifte sind ausgetrocknet und benötigen Ersatz (das wird dann wohl ein eigenes kleines Mini-Projekt). Von den Laufwerken konnte ich nur von einem der HP 9153A in ein Basic 5.1 booten, die anderen scheinen leider tot/reparaturbedürftig. Vermutlich wurden die Geräte recht unsanft auf den Elektroschrott geworfen ohne Rücksicht auf ggf. ungeparkte Lese-/Schreibköpfe X/ Aber immerhin, ein Laufwerk scheint es überlebt zu haben! :) Dank "HPDir" und einem alten Pentium PC mit GPIB-Interfacekarte konnte ich ein Image der Platte sichern, bevor sie vielleicht auch bald das zeitliche segnet. Die Festplattenarchäologie ergab, dass die Workstations früher wohl zur Messwertaufzeichnung genutzt wurden und dafür viele eigene BASIC Programme geschrieben wurden.


    Zumindest muss es in den Labors wohl sehr staubig zugegangen sein, dem Verdreckungsgrad und dem Totalversagen sämtlicher Lüfter nach zu urteilen.


    Die 332 Workstation und das funktionierende Laufwerk durften sich aber dann über eine Komplettreinigung und neue Lüfter freuen und erstrahlen nun in neuem Glanz.


    Nachdem nun zumindest ein Satz an Geräten wieder einsatzfähig ist, ist nun der nächste Schritt (neben der Reparatur der anderen), etwas Sinnvolles damit anzustellen. Ich würde gerne am liebsten mit BASIC experimentieren und versuchen, die Drucker und den Plotter damit anzusteuern und eigene HPGL Grafiken zu erzeugen. Leider fehlt es mir an dieser Ecke an Erfahrung und ich scheitere schon daran, die aus dem Image extrahierten BASIC Programme auf einem modernen PC überhaupt lesbar darzustellen.



    Hat jemand von euch Erfahrung im korrekten Datenaustausch zwischen Host-PC und HP, um zum Beispiel mit den Vorzügen einer modernen IDE Programme zu schreiben und diese dann auf dem HP laufen zu lassen? Welche Programme lohnt es sich, auf den 300er Modellen auszuprobieren und habt ihr ggf. selbst schonmal Software dafür geschrieben?


    Ich freue mich auf eure Nachrichten und ich versuche, hier über den aktuellen Fortschritt des Projektes weiter zu berichten :)

    VG, Sayjionix

  • Super schön ! und v.a. das Bild mit der spiegelnden Innenansicht zeigt doch, was ein ordentlich gebauter Computer alles abkann. Sieht aus wie NEU !


    Such mal hier nach HPGL Plotterfiles (gab es neulich mal einen schönen Sammelthread). Dann hat der Plotter was zu tun. Die Fasermaler bekommt man wohl manchmal einfach mit Alkohol wieder malfähig. Für kurz Plotterstifte gab es auch mal eine Selbstbauanleitung, wo man kaufbare normale Stifte kürzt.


    edit: Das da


    https://www.youtube.com/watch?v=h-oj4HrTH14


    Ansosnten: das BASIC kann ja schonmal den Apfelmännchen Ausscheid mitmachen. RunCPM Speed-Vergleich auf verschiedenen Plattformen


    Dankbar ist sicherlich auch der Torus von neulich ( donut.c ). Vielleicht ist es recht langsam, aber nett und sollte direkt übersetzbar sein in BASIC.


    Datenaustausch vielleicht am einfachsten seriell vom PC ?? Die Diskette wird ja ein eigenes Format haben.

    -- 1982 gab es keinen Raspberry Pi , aber Pi und Raspberries

  • Von HT Basic gibt es eine auf 30 Minuten begrenzte und nicht speichernde Demo Version für Windows mindestens bis Version 7.


    Das ist weitgehend kompatibel zu RMB (auch mit Grafik) und man kann mit copy und paste auch BASIC code transferieren.

    Für kleinere Experimente kann man das gut verwenden, ansonsten müsste man es kaufen.


    Ansonsten gibt es den HP 90x6 Emulator von Olivier de Smet mit dem man Original RMB betreiben kann.

    Damit kann man auch die gleichen linearen disk images verwenden wie mit HPDRIVE.

  • Vielen Dank schonmal für eure ganzen Antworten! :)


    ThoralfAsmussen Das Video von CuriousMarc hatte ich auch schonmal gefunden und das werde ich definitiv ausprobieren! Zusätzlich würde ich gerne ein paar 3D-Druck Adapter bauen, um gekürzte Stabilo Fineliner einzuspannen. Da gibt es so schön viele Farben zur Auswahl. Mit langsamerer Verfahrgeschwindigkeit sollte die feinere Spitze hoffentlich auch trotzdem genug Tinte abgeben.


    Den Torus finde ich sehr spannend! Das sollte in der Tat möglich sein, den C Code nach BASIC zu portieren.

    Grundsätzlich klingt eine serielle Verbindung nach einer guten Möglichkeit und ich meine ich habe dazu hier im Forum (oder wars woanders :/ ) schonmal was gelesen. Aus dem Stehgreif wüsste ich aber gerade nicht, wie ich das HP seitig bewerkstelligen würde.


    Holger Das finde ich eine super Idee! :) Bist du auch direkt aus München? Vielleicht finden wir noch mehr Interessierte hier für ein HP Treffen in oder um München.


    Martin Hepperle Danke für den Tipp! Das mit dem HTBasic werde ich heute gleich mal ausprobieren! Ich bin zumindest beim Lesen der RMB Doku auf den SAVE Befehl gestoßen, um die PROG Listings als ASCII abzuspeichern. Mal sehen ob ich die alten Programme damit auf den Windows PC bekomme und dann mit HTBasic oder dem Emulator gestartet bekomme.



    Jetzt geht es parallel erstmal ein bisschen mit Putzen und Entstauben weiter ;)

  • Hi, cooles Projekt! Die Stifte tauchen immer wieder mal als NOS noch originalverschweißt auf ebay auf, da muss man Geduld aufbringen. Zumindest für meinen HP 7550A konnte ich da einiges mal besorgen.

  • Hi,

    hier kommt mal ein kleines Update zum Projekt verbunden mit einer weiteren Frage an euch.

    Der Datenaustausch klappt mittlerweile zwischen HP und Host-PC wunderbar und dank HTBasic und den alten BASIC Reference Manuals habe ich mich auch schon etwas in die Sprache einlesen können und einige kleinere Progrämmchen geschrieben :) Der 7475A funktioniert mit einem notdürftig reaktivierten Stift angesteuert auch wunderbar,...


    ... ABER (und nun zur Frage bzw. dem Problem, das mich nun fast schon wahnsinnig macht):

    Der Plotter hat ein RS232-C Interface (kein HPIB), das ich momentan zum Testen von einem Windows Rechner mit serieller Schnittstelle und Terminal-Programm ansteuere. Das funktioniert bidirektional wunderbar und der Plotter gibt zum Beispiel auf den HPGL-Befehl "OI;" auch brav seine Identität im Terminal-Programm aus. Auch über HTBasic lässt er sich problemlos via PLOTTER IS 9,"HPGL" nutzen und zum Plotten ansteuern.

    Über BASIC 5.1 auf der 300er Workstation bekomme ich den Plotter allerdings vergeblich nicht zum laufen. Ich habe ihn dort an die interne RS232-C Schnittstelle (HP 98644) angebunden (Select Code 9) und ein entsprechendes DB-25 Male-Male Kabel gemäß des "Operation and Interconnection Manual" des Plotters selbst gebaut. Um die Verbindung zu testen habe ich folgendes kleines offizielles Test-Programm aus dem Manual abgetippt:

    10 OUTPUT 9;"IN;OI;" ! Initialize and output identity

    20 ENTER 9;Id$

    30 OUTPUT 9;"SP1;PA500,500;"

    40 OUTPUT 9;"LB"&Id$&" COMMUNICATION OK"&CHR$(3)

    50 OUTPUT 9;"PA0,0;SP0;"


    Das schmeißt mir jedoch dann immer einen Error 167 "I/O interface status error" in Zeile 20. Auch das PLOTTER IS 9,"HPGL" Kommando schlägt mit gleichem Fehler fehl. Lasse ich die Zeile 20 weg, plottet der Plotter jedoch erfolgreich seinen Text. Das heißt die Tx-Richtung scheint zu funktionieren, nur stimmt etwas mit dem Empfangen von Daten nicht. Baudrate und Parity sind auf beiden seiten korrekt auf 9600,8N1 eingestellt. Ein Auslesen des RS232-C Status 10 Registers schlüsselt den Fehler weiter auf und zeigt, dass das "Rx Buffer Overrun" Flag gesetzt wird.


    Da der Plotter unter Windows perfekt funktioniert, schließe ich den Plotter aus. Ich habe das gleiche Programm auch auf der anderen funktionierenden Workstation an zwei verschiedenen RS232 Schnittstellen ausgeführt mit exakt gleichem Ergebnis. Daher schließe ich einen Hardware-Defekt des HP 300 Interfaces auch aus.
    Es gibt jetzt wohl zwei Möglichkeiten:

    1. Mein gebautes Kabel ist falsch (unter Windows nutze ich nämlich ein anderes DB9-DB25 Kabel)

    2. Es gibt einen "geheimen" Trick, wie man die Control Register der RS232 Schnittstelle vorab konfigurieren muss oder sonst ein BASIC-Kommando, das ich übersehen habe


    Für beides habe ich nun schon viel probiert, angefangen von aller möglichen Steuerleitungs-Kombinatorik bis hin zu verschiedenen Register-Konfigurationen. Alles vergeblich! Aber vielleicht bin ich auch einfach zu blöd ;)

    Habt ihr vielleicht den entscheidenden Hinweis? Sonst muss ich morgen mit Oszi und Logikanalyzer anrücken... ;)

  • Hier noch ein kleiner Nachtrag zu den Kabelbelegungen. Laut Plotter Manual sieht das original HP-Kabel so aus:


    Dabei ist der Plotter DTE. So hatte ich es ursprünglich also gebaut, aber es hat wie oben beschrieben nicht funktioniert. Eine Analyse meines unter Windows verwendeten Kabels ergab folgendes (anderes) Pinout, das aber ebenfalls auf der Workstation nicht funktioniert:


    1 <---> 1 (Protective GND)

    2 <---> 3 (Tx auf Rx)

    3 <---> 2 (Rx auf Tx)

    4 <---> 5 (Request to Send auf Clear to Send)

    5 <---> 4 (Clear to Send auf Request to Send)

    6 <---> 20 (Data Set Ready auf Data Terminal Ready)

    7 <---> 7 (Signal GND)

    8 <---> 8 (Data Carrier Detect)

    20 <---> 6 (Data Terminal Ready auf Data Set Ready)

  • Moin,

    haeng Dich nicht zu fokussiert an die Regeln 2->3 und 3->2.

    Deine Kommunikation mit dem Plotter hat ja schon geklappt (hatte ich den Eindruck aus Deinen Beitrag weiter oben), von daher sollte es nicht um die Frage "gedreht" oder "ungedreht" gehen, hier ist eher der Handshake (siehe Martins Beitrag) gefragt.

    Manche PCs (?) benoetigen einen gewisse "Grundbeschaltung" an den Pins 4, 6, 8, 20 damit sie ueberhaupt senden bzw. empfangen.

    Da wuerde ich im naechsten Schritt mal tiefer eintauchen.

    MfG & viel Erfolg.

    Bernhard

  • Ich möchte hier kurz ein Update geben, denn es ist endlich vollbracht: Der HP 300 spricht nun endlich mit dem 7475A Plotter via RS232! 8)

    Da es mich nun über 2 Wochen und unzählige Stunden gekostet hat die "Zauberformel" zu finden, möchte ich sie hier gerne der Nachwelt dokumentieren, damit es vielleicht in Zukunft jemandem nutzt. Wäre es doch bloß HPIB gewesen.. es hätte so einfach sein können! :P


    Zunächst einmal ein spätes Danke für eure Tipps, es war letztendlich eine Kombination aus Steuerleitungschaos, benötigten Plotter-Kommunikationseinstellungen und RS232 Schnittstellen-Registerkonfiguration... aber hier der Reihe nach:


    1. Kabel:

    Nach sehr viel Trial&Error und Zweifeln am Kabel war das im Plotter-Manual beschriebene Kabel (HP 17255M) am Ende tatsächlich doch das Richtige:

    Die Besonderheit des Kabels liegt dabei an der Verschaltung von Pin 20 (DTR) auf Pin 5 (CTS) und Pin 6 (DSR). Dies dient zum Hardware-Handshake des Plotters an den Computer. Der 7475A Plotter startet nach dem Einschalten standardmäßig in den Hardware-Handshake Modus und teilt dem Rechner mit, wenn sein interner Empfangsbuffer voll ist und erst abgearbeitet ("abgeplottet") werden muss. Auch der HP 300 startet per Default mit Hardware-Handshake.

    Eine weitere Besonderheit des Kabels ist, dass es ein Male-Male Kabel ist, da sowohl Plotter als auch HP 300 weibliche Buchsen haben.


    Empfohlene Lektüre: 7475A-OperationAndInterconnectionManual-07475-90002, Seite 90


    2. HP 300 RS232 Register:

    Damit die Kommunikation seitens des HP 300 funktioniert, muss im RS232 Control Register 12 das Carrier Detect ausgeschaltet werden. Dies führt dazu, dass der Rechner bei "ENTER" oder "PLOTTER IS" Operationen nicht auf das Carrier Detect Signal wartet. Wird dies nicht gemacht, kommt immer ein Error 167 "I/O interface status error". Carrier Detect Disable ist Bit Nr. 7 im Register und daher dezimal eine 128. Gesetzt wird es mittels:

    CONTROL 9,12;128

    Es empfiehlt sich außerdem, zu Beginn das RS232 Interface zurückzusetzen mittels:

    CONTROL 9,0;1


    Empfohlene Lektüre: 98613-90052_Basic_5.0_Language_Reference_Vol_2_Aug88, Seite 407pp.


    3. Plotter Konfiguration:

    Aus welchem Grund auch immer, passt die String-Terminierung des Plotters nicht zu der erwarteten Terminierung des HP 300. Soviel zur Kompatibilität von HP zueinander. Sowohl der ENTER Befehl in Basic als auch die Festlegung des Plotters mittels PLOTTER IS 9,"HPGL" erfordert eine Terminierung mit LF (Dezimal 10). Stattdessen terminiert der Plotter aber standardmäßig mit CR (Dezimal 13). Dies kann glücklicherweise im Plotter konfiguriert werden und zwar mit:

    OUTPUT 9;CHR$(27)&".M;;;10;:"


    Diese kryptische Zeichenfolge konfiguriert den Plotter zur Terminierung mittels LF anstelle von CR.
    Zur Erklärung: Zur Konfiguration des Plotters gibt es sogenannte "RS232 Device Control Instructions", von denen wir die sogenannte "Set Output Mode Instruction" brauchen. Diese hat folgende Syntax: "ESC.M<Param1>;<Param2>;<Param3>;<Param4>;<Param5>:" Dabei müssen wir nur Parameter 4 setzen, da dieser die Terminierung einstellt. Die 10 steht also Dezimal für LF. Alle anderen Parameter werden auf Default belassen, daher nur die Semikolons ohne Wert dazwischen. Am Ende steht ein ":". Der Plotter merkt sich das nicht, das muss also nach jedem Neustart des Plotters neu gesendet werden.


    Empfohlene Lektüre: 7475A-InterfacingAndProgrammingManual-07475-90001, Seite 209pp.


    4. Zusammenfassendes Programmbeispiel in Basic 5.13:

    Code
    CONTROL 9,0;1                   ! RS232 Interface resetten
    CONTROL 9,12;128                ! Carrier Detect Disable bit 7 in Register 12 setzen
    OUTPUT 9;CHR$(27)&".M;;;10;:"   ! Plotter Terminator LF anstelle CR
    PLOTTER IS 9,"HPGL"


    Und als Schmankerl, wer sich schon immer mal gefragt hat was bei "PLOTTER IS 9,"HPGL" eigentlich so besprochen wird: ;)

    Oder auf Deutsch:

    Computer: ";IM36;OP;\r\n"

    Plotter: "603,521,10603,7721\n"