Speicherkombo für HP 9000 Serien 200/300

  • Hallo Zusammen!


    Vor zwei Jahren hat Scott Baker eine modernisierte Version des HP 98603A ROM-Drawers vorgestellt. Diese enthält nicht nur Flash-Speicher für das Betriebssystem Basic 5.1, sondern auch 3 MB Ram.


    Dieses Karte habe ich 2x nachgebaut und finde sie klasse (hinsichtlich Idee, Umsetzung und Funktion). Ohne irgendwelche externen Festplatten ist das Betriebssystem sofort nach Speichertest da. Wir haben die Karte bis jetzt an 9000 Model 320, 9000 Model 216 (aka 9816) erfolgreich ausprobiert.


    Doku findet man in den drei Links unten. BOM und Dokumentation der DIP-Switches/Jumper habe ich angefertigt. Mittelmäßig unscharfe Fotos vom Startbildschirm und von der gebauten Platine findet ihr weiter unten.


    Hat jemand Interesse an einem weiteren Nachbau? Mich würde interessieren, ob das Design tatsächlich auf allen 200/300-Rechnern läuft. Kriegt man noch etwas anderes Spannendes in die Flash-Ram?


    Gegen Erfahrungsaustausch plus 5€ Versand verschicke ich gerne ein Exemplar der drei verbliebenen PCB.


    Schönes Wochenende!


    https://www.hackster.io/news/d…icrocomputer-ec7d751c9e5e


    https://www.smbaker.com/a-basi…-hp-9000-series-computers


    https://github.com/sbelectronics/hp9000




  • Hi,

    ein sehr cooles Projekt!

    Wenn noch ein PCB übrig wäre, hätte ich definitv Interesse daran! :) Testen könnte ich es dann in meinen 310/332 Workstations (zwei weitere 2xx und 3xx Workstations warten noch auf ihre Restaurierung - die sind noch nicht im Detail identifiziert - da könnte ich später aber dann auch mal testen).


    Wird denn der Flash komplett vom Basic 5.1 belegt oder ist es möglich, dort auch Daten abzulegen?


    Viele Grüße!

  • Hallo tardis!


    Hört/liest sich interessant.

    Habe sowohl ein 200 als auch ein 300 Model von HP.

    Beide habe ich aber nach dem Erwerb noch nicht getestet.

    Grundsätzlich habe ich Interesse an einer Platine.

    Ziel ist bei mir in erster Linie das "original" Bootmedium zu nutzen, aber allein für eine Fehlerdiagnose ist

    moderere Hardware (wie z.B. der HXC) oft von Nutzen, wenn nicht die einzige Möglichkeit der Rest-Hardware

    etwas zu entlocken.


    Gruß

    Axel

  • Hi Sayjionix und Alex,


    sendet gerne eine PN mit eurer Adresse, dann schicke ich die Platinen Anfang der Woche gerne zu!


    Wird denn der Flash komplett vom Basic 5.1 belegt oder ist es möglich, dort auch Daten abzulegen?

    Das ist eine sehr gute Frage--auf die ich keine ebenso gute Antwort weiß...
    Schau aber mal in https://github.com/sbelectroni…00/tree/master/roms/build. Dort sind die Rom-Dateien. Beim "Brennen" schienen mir die letzten ~5% leer zu sein. Meinst Du, dass man dadurch sinnvoll Platz hat? Das Basic hat auch sehr viele Treiber eingebaut. Eventuell könnte man das etwas verschlanken.


    Rein vom Platinendesign könnte es auch so sein, dass man mit dem HP selbst das Flash-Rom ändert. Da weiß ich aber nicht im Ansatz, wie das aus dem Betriebssystem des HP heraus gehen könnte...


    Viele Grüße!
    Jürgen

  • Hi c900,

    sehr gerne! Schick bitte eine PN mit deiner Adresse!


    Damit sind meine PCB dann weg. :) Falls weiteres Interesse besteht, bin ich gerne bei einer JLCPCB-Sammelbestellung behilflich.


    Ich würde mich freuen, wenn die Platine für Alle von Nutzen wäre und etwas weitere Kreise ziehen würde. Ich finde diese Entwicklungsarbeit von Scott Baker ist deutlich unterbewertet und die guten 200'er/300'er verdienen ein paar neue Impulse.


    Schönes Wochenende!

  • Evtl. gibt es noch einige Tools oder Maintenance-Software, die sich in einem Romdrawer speichern lassen.

    Kenne die 9000er Systeme noch nicht so gut, aber vieles von HP lässt sich später auch bei Acorn finden.

    Axel

  • Nachdem nun vorgestern endlich der fehlende ATF Chip eingetroffen ist, schnell noch programmiert und das Board funktioniert auf Anhieb.

    Sehr schön, man hat sozusagen ein komplettes "instant BASIC 5.1" (bisher hatte ich das nur für BASIC2.1).


    Die LEDs habe ich erstmal weggelassen, um Strom zu sparen. Das Mäuseklavier kann eigentlich auch entfallen.


    Es wäre eigentlich schön, das Board nochmal zu überarbeiten, die unnötigen Footprints für die Verzögerungsleitungen und zugehörige Jumper zu entfernen und die DIP Schalter zum Einstellen einer Startadresse für das RAM zu verwenden.

    Dann könnte man auch zwei oder mehr dieser Boards in einem Rechner betreiben. Eine "All-RAM" Konfiguration ist ja schon vorgesehen.


    Aber ich möchte nicht meckern - ein sehr nützliches Teil.



  • Freut mich, dass Dein Board läuft und nützlich ist! Wo hast Du die GAL erworben? Bei europäische Quellen habe ich nichts gefunden. Ich habe die dann direkt in China gekauft. (https://de.aliexpress.com/item/1000006278340.html, https://de.aliexpress.com/item/32902851234.html)


    Auf welchem Rechner hast Du das Board ausprobiert? Ich würde, glaube ich, das Mäuseklavier (und eventuell den Hex-Inverter als simpler 90 ns Verzögerungsleitung) nicht vorschnell rauswerfen. Wenn Du mit der DIP-Switch-Stellung aus dem Foto getestet hast, dürfte das eigentlich nur mit Basic 5.1 auf einem HP 200 funktionieren. Meiner Erinnerung nach, unterscheidet sich die Behandlung des DTACK-Signals schon deutlich zwischen den Rechnern der 200/300 Familie. Hier müsste man die Erfahrung mit verschiedenen Rechnern zusammentragen und gemeinsam dokumentieren...


    Hier mein derzeitiger Kenntnisstand zu den DIP-Switches. Korrekturen willkommen!


    PS: Brauchst Du eine Druckvorlage für die "Extraction Lever"?

  • Im Augenblick habe ich das Board in einem 9836A stecken. Da waren vorher 3,5 MB Spiecher drin, die habe ich erstmal entfernt.

    Ich möchte nochmal einen Vergleich machen, mir erscheint das Board etwas schneller beim RAM Test zu sein, als die klassischen RAM Boards. Hat vielleicht etwas mit der DELAY Behandlung zu tun.


    Die beiden Hebel habe ich mir schon konstruiert und gedruckt und nachgerüstet. Ich habe als Achse kurze Messingdrähte verwendet und nach dem einpressen mit Sekundenkleber gesichert. Zuerst war ich skeptisch, ob die Hebelchen stabil genug sind, weil das Board aber recht leicht ein- und aussteckbar ist, hat es bislang gut funktioniert. Spaßeshalber habe ich noch die LEDs eingelötet, ist aber nicht so spannend (eine 20 bit Adressanzeige wäre nett).


    Danke für die Auflistung de DIP Funktionen, die beiden ersten Positionen hatte ich bislang nicht verstanden.

    Einen Ersatzschaltplan der PLDs gibt es wohl nicht - nur die Gleichungen.


    Die größeren 22V10 PLDs habe ich tatsächlich auch aus chinesischer Quelle beziehen müssen, weil ich für eine Mouser Bestellung nicht genügend zusammenbekam und bei den deutschen Händlern keine gefunden habe.


    Vielleicht brenne ich mir noch die BASIC 4.0 Variante - da scheint auch ein HPL 2.0 mit drin zu sein, wenn ich das Python Skript richtig interpretiere.

  • Ich habe gestern leider festgestellt, dass das System nicht mehr bootet, wenn ich ein Datacomm Interface 98682 in den Rechner stecke. Mit einem GPIO Interface 98622 funktioniert er noch. Das Datacomm ist ja wesentlich komplizierter und braucht eventuell mehr Zeit beim booten.

    Vielleicht ist das mit dem Timing des DTACK Signals doch nicht so ganz regelkonform.


    Mit Original HP Speicherboards und 3.5 MB funktioniert das System mit allen Interfaces.

  • Das ist interessant! Die DI 98682-Karte kenne ich nicht, aber Irgendwas war da mit Karten, die DMA können. Ich habe in dem Video von Scott Baker nur so am Rande reingehört, weil ich so komplexe Karten garnicht habe. Vielleicht ist in dem Video etwas relevantes?

    Ich stelle mir vor, dass es in dieser Konstellation drei Quellen für DTACK gibt: Einerseits die DI 98682, dann das Flash-Rom-Board und (im Falle der HP 200) auch noch die CPU selbst. Da kann einer mal einen Tacken zu flott mit "Data Acknowledge" sein und das Timing ist im Eimer.

    Vier einigermaßen flotte Experimente:

    1) Hast du mal die Original HP Speicherboards plus die Datacomm Interface 98682 Karte plus das Flash-Rom-Board in den Rechner gesteckt (dabei dann am DIP 4 des Flash-Rom-Boards das Ram ausknipsen)?

    2) Eventuell dieses Experiment in einem HP300 wiederholen. Dort generiert die CPU kein DTACK, meines Wissens. Eine "Störquelle" weniger...

    3) Auf dem Flash-ROM-Board den Hex-Inverter (IC8) bestücken und schrittweise an JP12 die Verzögerung hochsetzen. In Jumperposition 4 hast du so 90 ns Verzögerung.



    4) Jumper 5 auf Position 2 stellen. Dann würde das vom Bus bereitgestellte Enable DTACK-Signal (ENDT) nach ~5 Prozessorzyklen als DTACK wieder herauskommen.


    Kommt da was interessantes raus?

  • ... eine DMA 98620 Karte, allerdings ohne die Disk Interface 98625 Karte hatte ich auch mal testweise eingesteckt, die macht da aber keinen Unterschied.


    Ich werde am WE mal sehen, ob ich einen74LS14 da habe und mal die verschiedenen Delays ausprobieren.


    Vorher werde ich aber nochmal das BASIC stilllegen und von Diskette booten um zu sehen ob es vielleicht an der Adressdekodierung liegt.

    Ich könnte auch mal den Select Code der Datacomm Karte ändern.


    Die Original-RAM Karten wollte ich auch noch zusammen mit der Karte testen, hatte aber erstmal keine Lust, die DIP Schalter wieder alle umzustellen.


    Schaun' mer mal...

  • Meine Hebelchen für die DIO-I Boards habe ich übrigens zu meinen anderen 3D-Druck HP-Teilen zugefügt:


    GitHub - MartinHepperle/HP-ReproParts: 3D-Printable Parts for Obsolete HP Computers
    3D-Printable Parts for Obsolete HP Computers. Contribute to MartinHepperle/HP-ReproParts development by creating an account on GitHub.
    github.com

  • Endlich habe ich den "fehlenden" 74LS14 hier von einem lokalen HP-Freund ausgeliehen und nachgerüstet und nochmal etwas mit dem Board herumgespielt.


    Ein Punkt der mich vielleicht etwas in die Irre geführt hat, ist der, das das BASIC mit der Datacomm Karte wesentlich länger bootet als ohne.

    Ohne diese Karte erscheint die Menuleiste und das Copyright nach dem RAM Test nach weiteren etwa 3 Sekunden.

    Mit der Karte braucht das System ca. 10 Sekunden bis das Menu erscheint und dann nochmal so lange bis die Copyright Meldung ausgegeben wird.


    Meine am besten funktionierenden Einstellungen sind nun


    DIP SW1

    6 0/up (closed) FLASH ROM aktiv

    5 0/up (closed) BASIC 5.1 Adressbereich

    4 0/up (closed) RAM aktiv

    3 1/down (open), LEDs aktiv (oder 0: LEDs deaktiviert)

    2 0/up (closed) Auto-DTACK/ for ROM deaktiviert)

    1 1/down (open) DELAY/ aktiviert, [mit up=0 hängt das System ("not enough memory" bein Booten)

    (mein Schalter: von links nach rechts numeriert wenn man von hinten auf den Rechner schaut)


    Jumper:

    JP1,2,3,4

    1-2 = Flash in FLASH H/L socket (A14 to 29, WRL/ to 31)


    JP5

    3 = use DELAY/ set by JP12

    JP5 auf 1 und 2 funktioniert auch, aber RAM Zugriff ist um ca. 20% langsamer, in allen Fällen scheint JP12 keinen Effekt zu haben.


    JP6,7

    nicht notwendig, offen


    JP12

    1 = keine Verzögerung CARDSEL/ -> DELAY/ -> DTACK/

    2 = 30 ns delay DEL1/ (via IC8 je ein Inverter-Paar

    3 = 60 ns delay DEL2/ ...

    4 = 90 ns delay DEL3/ ...)

    5 = 45 ns delay DEL1A (inverted, for DS1000

    6 = 75 ns delay DEL2A inverted, not used)

    Position 1, andere Stellungen 2...4 haben keinen messbarer Effekt?


    Ich bin mal gespannt ob das alles noch so läuft, wenn ich weitere memory mapped Karten zufüge.


    Aber so ist das erstmal ein schönes System.



    Martin

  • Hallo Martin, gut, dass Du nicht das Mäuseklavier ausgebaut hast ;)

    Ich habe Deine Konfiguration mal mit meiner Doku abgeglichen. Was hier evt. passiert ist, dass die 98682-Karte zwar korrekt im Speicher schaufelt, aber hinterher kein ENDT/ sendet. Daher muss mit DIP1 das Delay-Feature aktiviert werden (meine Tabelle von DIP1 war dahingehend falsch--ich habe Sie korrigiert. Danke!). Damit generiert die Flash-ROM-Karte jetzt aus ENDT/ nach Ablauf von DELAY/ das notwendige DTACK/-Signal.

    Zunächst verwirrend: JP12 ist auf "keine Verzögerung" eingestellt und schließt den 74LS14 quasi logisch kurz. Die Verzögerung der anderen Schaltkreise reicht also bereits aus. Den geliehenen 74LS14 könntest Du also zurückgeben bei dieser Stellung von JP12. :)

    Aber vielleicht wird JP12 ja relevant, wenn Du mehr DMA-Karten hinzufügst? Das generierte DTACK/-Signal sollte auf der Zeitachse ja immer so weit "hinten" sein, dass auch der letzte DMA-Zugriff fertig ist.

    Sag bitte Bescheid, wenn Du irgendwelche Fehler in meinen Tabellen siehst, oder eine weitere interessante Installation getestet hast!

    Viele Grüße

    Jürgen

  • .. hats Du Deine Notizen denn als Dokument irgendwo allgemein zugänglich abgelegt? Die abgebildeten Tabellen sollten so jetzt stimmen.


    Leider hat S. Baker zwar in seinem Blog eine gute Beschreibung der Entwicklung und der Details, aber eine Zusammenfassung der finalen Konfiguration wäre ganz nett.

    Beispielsweise hat er nicht angeben, auf welchen Adressbereich die beiden BASIC Varianten tatsächlich konfiguriert sind.

    Das wäre nützlich, wenn man mal andere Software in die ROMs packen möchte.

    Da muss ich gelegentlich mal den Speicher nach dem Anfang des ROMs absuchen, sollte mit READIO kein großer aufwand sein.


    Was ich auch noch nicht ausprobiert habe ist die ROMs durch RAM zu ersetzen, das sollte ja gehen.


    Der 74LS14 bleibt als Geldanlage natürlich drin - ist auch fest eingelötet. Der Kreditgebe bekommt den aber mit Zinsen zurück.


    Ich habe das Board auch noch in einem 9816 ausprobiert, auch da funktioniert es.


    Interessant wäre noch die zweite ROM Variante mit HPL 2.0 und BASIC 4.0 - habe ich auch noch nicht ausprobiert.


    Martin

  • [...] Leider hat S. Baker zwar in seinem Blog eine gute Beschreibung der Entwicklung und der Details, aber eine Zusammenfassung der finalen Konfiguration wäre ganz nett. [...]

    Ich teile Deine Einschätzung sehr, dass eine Doku als abschließende Klammer für diese eigentlich sehr schöne Entwicklungsarbeit fehlt. So sind die Nachbauhürden unnötig und eigentlich auch ungerechtfertigt hoch.


    Meine Notizen kann ich Dir gerne die Tage senden (auch jedem anderen, der sie haben möchte). Aber um sie irgendwo auf einen unschuldigen Server zu packen, dafür sind noch zu viele Fehler drin...


    HPL 2.0 und BASIC 4.0 wäre tatsächlich spannend und dass es auf 9816 läuft, freut mich. Das dürfte auch Cartouce interessieren.


    e2k ich sage Dir gerne Bescheid, wenn jemand bestellt. Ich persönlich brauche aktuell keine weiteren Boards. Die Platinen waren aber auch nicht so wirklich teuer. Ich meine, ich hätte für 10 Stück bei JLCPCB 38 € inklusive 3-Tage-Fedex, Zoll und Einfuhrumsatzsteuer bezahlt. Da kann man nichts von sagen.


    :) Jürgen

  • ...und ich hatte den HP 9816 mit dem HP 9826 verwechselt! Mein Kopf hat wohl Übertemperatur!:sunny:

    Genießt den Abend!

  • Eine weitere Platine würde ich mir auch noch aufbauen - dann wären wir ja schon fast bei der 5 Minimum-Bestellmenge. Eventuell auch 10, dann wird es noch etwas günstiger.


    Ich überlege aber, die mit vergoldeten Oberflächen machen zu lassen, weil das insbesondere für die "Kontakfinger" langfristig besser wäre, als die verzinnten Oberflächen. Ist zwar etwas teurer, aber ob eine Platine nun10€ oder 15€ kostet macht den Kohl auch nicht viel fetter.

    Ob sich die vergoldeten Oberflächen schlechter löten lassen, weiß ich aber nicht sicher. Bei Gerätereparaturen habe ich das nicht als Problem erfahren.

  • Mit einem kleinen BASIC Programm habe ich nochmal nachgeforscht, welche Speicherbereich des RAM/ROM Board eigentlich belegt.


    Das BASIC 5.1 ROM beginnt an der Adresse 0x100000 (DIP switch EXTRA2 = closed = BASIC 5.1) und deckt damit den Bereich 0x100000 bis 0x200000 ab.


    Weil der Speicher ja immer von oben nach unten belegt wird, gehen die 3 MB RAM logischerweise von 0xD00000 bis 0xFFFFFF (leider hart verdrahtet). Weitere RAM Boards müssen also unter 0xD00000 platziert werden.

  • Das Projekt von Scott Baker habe ich schon länger im Auge :) Schön das du die PCBs bestellt hast. Ich könnte 1-2 Stück für meinen HP9000/310 gebrauchen. Hast du noch welche? :)


    Wie ist das eigentlich mit der "nur RAM" Version? Das HP BASIC 5.11 kann ich über HPDisk laden...

  • Ich könnte 1-2 Stück für meinen HP9000/310 gebrauchen. Hast du noch welche? :)

    Meine sind leider schon alle verteilt...

    e2k ?


    Wenn Du nur RAM brauchst, kannst Du das ROM über die DIP-Switches wegknipsen und brauchst es auch nicht zu bestücken. Allokation des RAM im Adressraum ist aber nicht variabel.