Epson HX-20 - Display Controller Emulator

  • Da mein Vater im letzten Jahrhundert mal so ein Gerät besessen hatte, habe ich mir wieder einen Epson HX-20 zugelegt.

    Wie es beim bieten auf eBay dann manchmal so kommt, wurden es dann 3 Stück.

    Dazu noch ein paar Farbbänder, Kassetten und Papier und die Ausrüstung war erst mal komplett.


    Allerdings waren bei allen dreien, wie vermutlich bei allen HX-20 die man so ein eBay findet, die Original-Akkus defekt und ebenso alle Elektrolytkondensatoren. Außerdem fehlten bei zwei Geräten die Netzteile.

    Nach Austausch von Akkus und Kondensatoren funktionierten alle drei wieder einwandfrei.

    Zusätzlich habe ich mir 9V Netzteile besorgt und mit einem Vorwiderstand den Ladestrom eingestellt.


    Der Rechner ist eigentlich gut durchdacht, was mich aber gestört hat, war der kleine LCD Bildschirm. Wenn man wirklich etwas programmieren möchte, ist das damit sehr mühsam. Glücklicherweise kann man BASIC Programme einfach per serieller Schnittstelle in ASCII Form austauschen, sodass man auch auf dem PC schreiben und dann übertragen kann. Das geht, ist aber immer noch mühsam.


    Dann bin ich im Internet auf diverse Display-Converter gestossen - ein Gerät zum Anschluss eines externen Bildschirms.

    Damit konnte man seinerzeit sicher ganz gut arbeiten, sie sind aber, wie die Diskettenstationen, nicht leicht zu finden und auch (den damaligen RAM-Kosten geschuldet) in der Auflösung arg limitiert.

    Weitere Suche förderte dann ein paar technische Dokumente zum Kommunikationsprotokoll und sogar eine Floppy Emulator Software für den PX-8 zutage.


    Das weckte meinen Ehrgeiz und ich überlegte, mir einen Arduino-basierten Übersetzer der HX-20 Bildschirmkommandos auf VT-100 Terminalsequenzen zu bauen.

    Um die Firmware schnell entwickln zu können, habe ich mir erst mal eine Experimentier-Software in Java gechrieben.

    Die Beschreibung des Protokolls ist teilweise etwas unklar und vereinzelt auch falsch, sodass es etwas zu experimentiern galt.

    Schließlich lief das Ganze recht brauchbr für die Text Aus- und Eingabe.

    Nachdem ich noch die Handvoll Grafikbefehle ergänzt hatte, wurde die Idee der VT-100 Ausgabe obsolet und ich habe die Java-Lösung "fertig" entwickelt.


    Mit einem simplen 3-adrigen Kabel kann man den HX-20 an einen PC anschließen und den "MH-20 Display-Emulator" verwenden um Programme zu bearbeiten oder Grafiken auszugeben.


    Falls es noch weitere HX-20 Anwender gibt, die das mal ausprobieren möchten:

    ZIP Archiv: MH-20-Display-Controller


    Zusätzlich benötigt man noch eine halbwegs aktuelle Java Laufzeitumgebung (JDK 8 oder neuer).

    Als Hardware braucht man eine serielle Schnittstelle am PC, z.B. ein USB auf RS-232C Kabel und natürlich das serielle Kabel mit 5-poligem DIN Stecker und 9-poliger SUB-D Buchse.

    Theoretisch sollte das Programm unter Windows, OS-X, Linux und Solaris laufen - mangels Masse habe ich es nur unter Windows entwickelt und getestet.

    Ein Dokument im Archiv erläutert den Rest.


    Feedback und Fehlermeldungen sind willkommen.

    Es wäre auch mal interessant zu hören, ob das auch mit einem Epson PX-8 funktioniert.

    Leider habe ich keinen und es fehlen vermutlich dafür noch ein paar Funktionen.


    Schließlich habe ich noch zwei Fragen:

    1. Hat jemand die Disketteneinheit TF-20 und vor allem auch die Boot Diskette dazu?
      Ich wäre an einer Kopie der Diskette als image oder zumindest an den beiden Dateien BOOT80.SYS (128 bytes) und DBASIC.SYS (größer) interessiert. Damit könnte ich versuchen, auch die Disketteneinheit nachzubilden.
      Der HX-20 lädt beim starten mit der TF-20 diese beiden Dateien zur Erweiterung des BASICs um Diskettenbefehle. Bislang habe ich nur TF-20 images für die PX-4 und PX-8 Rechner gefunden und die nützen nichts, da die unter CP/M laufen.
    2. Kennt jemand einen "guten" Cross-Assembler für den 6301, der unter Windows läuft oder als ""C Quellcode vorliegt?
  • Hallo Martin.


    mit dem TF-20 und einem PX-8 kann ich schon mal helfen, wir müssten ggf. nur den Versand/Transport organisieren, die Disk müsste ich finden ... da geh ich mal auf Suche.

    An der BS Ausgabe-Lösung wäre/bin ich interessiert, das letzte derartige Angebot auf Kleinanzeigen sprengte leider mein Budget, obwohl es mit dem Video-Konverterund passendem Monitor schon sehr interessant war.

    Mit freundlichen Grüßen

    Matthias

    Mein Schwerpunkt sind Taschenrechner und Pockets. Aktuell suche ich zB. nach: Casio FX-5500, Privileg PR55NC, Commodore N-60, NSC 4640, Casio pro fx-1, HP-10C, HP-16C, HP-34C, HP-27, HP-38C,, HP-55, HP-70, HP-71, HP-75, HP-80 :fp:... gern im Tausch gegen "Kollegen" oder andere Oldies (HCs, Laptops, ...)

    Abzugeben wären: Thomson TO7, CPC 6128, Schneider PC 1512/1640, div.TR (HP, TI, ...), Pockets (Sharp, Casio, ...) und Zubehör

  • Oh ja, schau erst mal, ob Du die Bootdiskette findest.

    Falls Du sie findest: kannst Du von davon eine Imagedatei machen? Zum Beispiel mit Teledisk oder ähnlichem? Wenn es ein Handbuch mit mehr Details zur TF-20 gibt, wäre das auch interessant einmal einzuscannen (kann ich auch machen).

    Es existiert vermutlich eine Boot-Diskette für den HX-20 (eigenes System) und eine für den PX-8 (CP/M) - sicher bin ich da aber nicht.

  • Ein interessantes Thema. Leider habe ich momentan noch zu viele andere Projekte auf den Tisch, aber das werde ich mir merken und bei Gelegenheit ausprobieren. Die Portabilität des HX-20 leidet zwar drunter, aber ich bin immer daran interessiert, Rechner mit ihrer Umgebung zu verbinden.

    Den Floppy-Emulator für den PX-8 habe ich auch schon probiert und bin schwer begeistert. Ein entsprechendes Tool für den HX-20 fände ich auch toll.

    Leider kann ich nichts beisteuern, weder Doku noch Software. Aber da vertraue ich ganz auf Matthias :)

  • HX-20 Benchmark

    Spaßeshalber habe ich mal den klassischen BYTE Benchmark "Eratosthenes Sieb" (BYTE Magazine, January 1983) zur Primzahlenbestimmung auf den HX-20 Übertragen.

    Nachdem die BASIC Variante schnarch-langsam war, und ich mich mal mit der 6800 CPU Familie beschäftigen wollte, habe ich eine Assembler-Version für die 6301 CPU geschrieben. Zum Glück habe ich noch einen Assembler in "C" für diese CPUs gefunden, den ich unter Windows verwendet habe, um den code zu entwickeln. Dann nur noch die HEX codes im Monitor eintippen und ein paar Resets später... die Ergebnisse:


    HX-20 (1983, dual 6301 @ 0.614 MHz)

    Assembler: 20 seconds

    BASIC: 4050 seconds


    Apple II (1977, 6502 @ 1.02 MHz)

    Applesoft BASIC: 2806 seconds


    HP 85 (1980, Capricorn @ 0.625 MHz)

    Assembler: 21 seconds

    BASIC: 3084 seconds


    IBM PC (1981, 8088, 4.77 MHz)

    Microsoft BASICA: 1990 seconds


    Wenn man die 7-fache Taktfrequenz berücksichtigt, ist das BASICA auf dem IBM PC doch erstaunlich langsam.

  • Hallo Martin,

    die Suche am WE hat leider keinen Treffer bezüglich der TF-20 Disk ergeben ...

    Bis später einmal.

    Mit freundlichen Grüßen

    Matthias

    Mein Schwerpunkt sind Taschenrechner und Pockets. Aktuell suche ich zB. nach: Casio FX-5500, Privileg PR55NC, Commodore N-60, NSC 4640, Casio pro fx-1, HP-10C, HP-16C, HP-34C, HP-27, HP-38C,, HP-55, HP-70, HP-71, HP-75, HP-80 :fp:... gern im Tausch gegen "Kollegen" oder andere Oldies (HCs, Laptops, ...)

    Abzugeben wären: Thomson TO7, CPC 6128, Schneider PC 1512/1640, div.TR (HP, TI, ...), Pockets (Sharp, Casio, ...) und Zubehör

  • rechnerfreak: schade...


    Nachtrag:

    Inzwischen habe ich mir noch ein zweites serielles Kabel für die "Hochgeschwindigkeits-Schnittstelle" des HX-20 nach meiner Anleitung gebaut.

    Dabei habe ich festgestellt, dass ich im Dokument die Kabelbelegung falsch angegeben hatte. Es stand dort zwar "Null-Modem-Kabel", die Belegung war aber als direktes 1:1 Kabel angegeben.

    Das habe ich jetzt korrigiert, sodass das PDF-Dokument im Archiv jetzt die richtige Kabelbelegung zeigt.

    Mit dem falschen Kabel kann nichts passieren, aber es passiert eben nichts.

    Man muss dann nur die Anschlüsse 2 und 3 an der SUB-D Buchse tauschen.

    'tschuldigung, falls das bei jemandem zu Frustration geführt haben sollte...


    Nach Weihnachten habe ich noch 2 passende Kabel (DIN Stecker/DSUB-9 Buchse) für 5 EURO inklusive Versand zu vergeben (aus einer Sammelbestellung von Steckern/Buchsen/Kabeln). Dazu braucht man dann nur noch ein USB-Seriell Kabel mit D-SUB-9 Stecker.

  • Nach längerer Forschung und Entwicklung funktioniert nun auch meine Diskettenemulation TF-20. Damit kann man Programme und Daten auf dem PC speichern und lesen.

    Der schwierige Teil dabei war, dass eine Erweiterung des BASIC-Betriebssystems von der Diskettenstation in den HX-20 geladen wird. Dabei muss es an eine gegebene Endadresse verschoben werden, wozu absolute Adressen im Code angepasst werden (reloziert) müssen.

    Diese Verschiebung erledigt die TF-20 mit ihrem CP/M Betriebssystem bevor sie den Code zum HX-20 schickt.

    Leider ist nirgendwo dokumentiert wie die Relokation gesteuert wird (z.B. durch eine Tabelle?).

    Ich habe das dann schließlich durch illegales Mithören des TF-20 -> HX-20 RS-232 Verkehrs mit einem T-Kabel und Disassemblieren des Codes herausgefummelt (wozu ich noch schnell einen Disassembler für den HC-6301 geschrieben habe).


    Getestet habe ich mit zwei HX-20, einem mit 16 KB Speicher und einem mit 32 KB.


    Hat jemand einen HX-20 mit einer anderen Speicherkonfiguration (es gab mal von "mc" ein Bauprojekt mit einer 8 KB Platine, dann hätte der Rechner 24 KB). Es wäre interessant meine Software mal mit so einem Rechner auszuprobieren. Ich könnte so eine Platine auch in mein 16 KB Modell einbauen - wenn ich eine hätte.

  • Hmmm ... ist das normal? Oder soll ich mich mal ein einen Verein wenden, in dem sich jemand mit Computern auskennt?


    redaktion@loadmagazin.de
    Fehler bei der Zustellung der Nachricht an diese E-Mail-Adresse. Versuchen Sie, die Nachricht erneut zu senden.


    Diagnoseinformationen für Administratoren:

    redaktion@loadmagazin.de

    #< #5.0.0 smtp; 5.1.2 - Bad destination host 'DNS Hard Error looking up loadmagazin.de (MX): NXDomain' (delivery attempts: 0)> #SMTP

    • Offizieller Beitrag

    Die Domain heisst load-magazin.de, also mit Bindestrich!

    Denn Feindschaft wird durch Feindschaft nimmermehr gestillt; Versöhnlichkeit schafft Ruh’ – ein Satz, der immer gilt. Man denkt oft nicht daran, sich selbst zurückzuhalten; Wer aber daran denkt, der lässt den Zorn erkalten. Sprüche von Buddha, aus dem ‹Dhammapada›.


    Mein Netz: Acorn | Atari | Milan | Amiga | Apple //e und IIGS | Macintosh | SUN Sparc | NeXT |SGI | IBM RS/6000 | DEC Vaxstation und Decstation| Raspberry Pi | PCs mit OS/2, BeOS, Linux, AROS, Windows, BSD | Stand-alone: Apple //c und III | Commodore 128D | Sinclair QL | Amstrad | PDAs

    • Offizieller Beitrag

    Hmm, das ist ja interessant... trotzdem ist die richtige Adresse redaktion@load-magazin.de.


    Ich schaue mir das im PDF nochmal an; vielleicht habe ich da einen Tippfehler drin oder so?

    Denn Feindschaft wird durch Feindschaft nimmermehr gestillt; Versöhnlichkeit schafft Ruh’ – ein Satz, der immer gilt. Man denkt oft nicht daran, sich selbst zurückzuhalten; Wer aber daran denkt, der lässt den Zorn erkalten. Sprüche von Buddha, aus dem ‹Dhammapada›.


    Mein Netz: Acorn | Atari | Milan | Amiga | Apple //e und IIGS | Macintosh | SUN Sparc | NeXT |SGI | IBM RS/6000 | DEC Vaxstation und Decstation| Raspberry Pi | PCs mit OS/2, BeOS, Linux, AROS, Windows, BSD | Stand-alone: Apple //c und III | Commodore 128D | Sinclair QL | Amstrad | PDAs

  • Kein Tippfehler - der Strich ist visuell im Heft vorhanden.

    Ist nicht so wichtig, aber vielleicht ist der Bindestrich ein spezieller typografisch korrekter und kein normales Computer Minuszeichen wie wir Typografie-Laien das so verwenden.

    Es gibt da ja so diverse, z.B. unter Windows:

    ALT+0045: - = Bindestrich/Minuszeichen

    ALT+0150: – 1/2 Geviertstrich

    ALT+0151: — Geviertstrich

    Damals gab es Schriftsetzer, die wussten das.

  • Hi,


    ich bin seit heute auch wieder Besitzer eines funktionierenden HX-20 und würde mich auch für das Interface interessieren.


    Viele Grüße,


    Jens

  • Martin Hepperle : Hallo, falls das noch etwas hilft, eine HX-20 BootDiskette wäre jetzt vorhanden ... ;)

    Mit freundlichen Grüßen

    Matthias

    Mein Schwerpunkt sind Taschenrechner und Pockets. Aktuell suche ich zB. nach: Casio FX-5500, Privileg PR55NC, Commodore N-60, NSC 4640, Casio pro fx-1, HP-10C, HP-16C, HP-34C, HP-27, HP-38C,, HP-55, HP-70, HP-71, HP-75, HP-80 :fp:... gern im Tausch gegen "Kollegen" oder andere Oldies (HCs, Laptops, ...)

    Abzugeben wären: Thomson TO7, CPC 6128, Schneider PC 1512/1640, div.TR (HP, TI, ...), Pockets (Sharp, Casio, ...) und Zubehör

  • Hallo Martin,


    die Diskettenemulation wäre für mich auch interessant - ich habe hier noch ein 3.5" Industrie PC-Board mit ATOM Prozessor und 1GB RAM was ich dafür verwenden könnte. In ein schönes externes Gehäuse verpackt könnte der als 'Server' dienen.


    Viele Grüße,


    Jens

  • Vielen Dank für den Hinweis. Tja die Disketten waren jetzt erst bei der anderen TF-20 dabei. Besteht uU. Interesse an Software, die da zu finden sein könnte? Ich versuche am WE die TFs mal zum „Lesen“ zu bringen.

    Mit freundlichen Grüßen

    Matthias

    Mein Schwerpunkt sind Taschenrechner und Pockets. Aktuell suche ich zB. nach: Casio FX-5500, Privileg PR55NC, Commodore N-60, NSC 4640, Casio pro fx-1, HP-10C, HP-16C, HP-34C, HP-27, HP-38C,, HP-55, HP-70, HP-71, HP-75, HP-80 :fp:... gern im Tausch gegen "Kollegen" oder andere Oldies (HCs, Laptops, ...)

    Abzugeben wären: Thomson TO7, CPC 6128, Schneider PC 1512/1640, div.TR (HP, TI, ...), Pockets (Sharp, Casio, ...) und Zubehör

  • Die TF-20 Boot-Disketten gibt es schon als TD0 im Internet (web site von F. Kraan / NL) - mir fehlte damals nur die Information was da wo auf der Diskette liegt, was da wie hin- und her geschickt und was da adressmäßig umgerechnet wird. Die TF-20 sind eigene CP/M Rechner, die beim einschalten von der Systemdiskette booten und dann erst mit dem HX-20 oder PX-8 kommunizieren. Recht kompliziert, aber damals nicht unüblich.

  • Danke für den Hinweis - ich hab das Schätzchen gerade wieder gerichtet ::solder:::) und es funktioniert (leider hab ich auch keine zusätzliche Speicherkarte)

  • Möchtest Du mal einen geliehen bekommen ...?

    Mein Schwerpunkt sind Taschenrechner und Pockets. Aktuell suche ich zB. nach: Casio FX-5500, Privileg PR55NC, Commodore N-60, NSC 4640, Casio pro fx-1, HP-10C, HP-16C, HP-34C, HP-27, HP-38C,, HP-55, HP-70, HP-71, HP-75, HP-80 :fp:... gern im Tausch gegen "Kollegen" oder andere Oldies (HCs, Laptops, ...)

    Abzugeben wären: Thomson TO7, CPC 6128, Schneider PC 1512/1640, div.TR (HP, TI, ...), Pockets (Sharp, Casio, ...) und Zubehör

  • ... muss erst mal das Handbuch zum PX-4 besorgen und mal nachlesen, was der so anbietet.

    Wenn er die gleichen Serial Mini-DIN Buchse und CP/M hat, könnte es passen.


    Eigentlich bin ich vom PX-8 etwas enttäuscht, was die serielle Schnittstelle anbietet, da hat der HX-20 mehr zu bieten (Text- und Grafik-Ausgabe auf externem Display). CP/M dagegen ist natürlich schöner als nur das HX-20 BASIC.

  • Handbücher und einige Dokus hätte ich auch ;)

    Der PX-4 ist auch fortschrittlicher als der PX-8, was die Erweiterung uä. betrifft, auch das Display an sich ist besser. Der PX-8 punktet lediglich mit der 80 Zeichen Breite ... wenn man die nicht braucht ist der PX-4 eigentlich "schöner"

    Mein Schwerpunkt sind Taschenrechner und Pockets. Aktuell suche ich zB. nach: Casio FX-5500, Privileg PR55NC, Commodore N-60, NSC 4640, Casio pro fx-1, HP-10C, HP-16C, HP-34C, HP-27, HP-38C,, HP-55, HP-70, HP-71, HP-75, HP-80 :fp:... gern im Tausch gegen "Kollegen" oder andere Oldies (HCs, Laptops, ...)

    Abzugeben wären: Thomson TO7, CPC 6128, Schneider PC 1512/1640, div.TR (HP, TI, ...), Pockets (Sharp, Casio, ...) und Zubehör

    Einmal editiert, zuletzt von rechnerfreak ()

  • Hat eigentlich jemand den PX-8 Simulator von Takeda Toshiya mit einer deutschen Tastaturbelegung ausgestattet? Der Simulator funktioniert recht gut, aber man muss z. B. "ü" tippen um ein ":" zu bekommen oder "+" für ein ";". Das führt auf längere Sicht zu Knoten im Hirn. Ich habe den Eindruck, dass die Software für japanische Tastaturen ausgelegt ist. Oder gibt es da eine Konfigurationsmöglichkeit?


    Ich experimentiere damit, den PX-8 mit einer User-BIOS Erweiterung auszustatten, damit man Grafik und Text auf dem externen Display ausgeben kann. Das funktioniert prinzipiell schon, aber noch nicht stabil. Und die Dokumentation ist da auch nicht gerade detailliert...

    Was auch schön wäre: ein paar Beispiele in Assembler aus anderen Programmen, die die 6301 Co-CPU ansprechen - bislang habe ich da nur ein Overlay für das MEX Kommunikationsprogramm gefunden (MXO-PX8.ASM), das aber widersprüchlich zur Epson EPSP Dokumentation ist. Gibt es da noch andere Programme, die mit der seriellen "Hochgeschwindigkeits-Schnittstelle" (nicht der RS232C) arbeiten?