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

  • 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