Altair 8800 auf dem TTGO VGA32 V1.2

  • kaum laeuft mein Duinomite mit CP/M, juckt auch schon das naechste CP/M Platinchen ;)


    Aufmerksam wurde ich durch folgendes YT-Video:

    Emulating Altair 8800 with FabGL (ESP32) - CP/M Text Games

    https://www.youtube.com/watch?v=y0opVifEyS8


    FabGL ist eine Library von Fabrizio Di Vittorio unter https://github.com/fdivitto/FabGL


    Mit FabGL emuliert er auch einen PC20 oder ein Terminal oder SpaceInvaders siehe Examples:
    http://www.fabglib.org/examples.html

    bzw. die Beispielvideos auf https://github.com/fdivitto/FabGL bzw seinen YT-Kanal

    https://www.youtube.com/user/fdivitto/videos



    Es geht um die Platine

    LILYGO® TTGO VGA32 V1.2 Controller PS/2 Mouse And Keyboard Graphics Library Game Engine And ANSI/VT Terminal For The ESP32

    (auf eBay habe ich nur v1.1 gefunden, die er wohl fruehr auch mal genutzt hat - man muesste mal fragen war keine v1.1 mehr...)


    Die v1.2 auf aliexpress: https://www.aliexpress.com/item/33014937190.html

    Die v1.2 evtl. auf eBay (liefern nicht zu mir) https://www.ebay.com/itm/TTGO-…hics-Library/153543062906


    Der reine Preis er Platine sollte unter 20EUR liegen ohne Porto etc

    Altair 8800 Review:

    http://retrobbs.novabbs.com/index.php?t=msg&goto=1962902&

  • Mein TTGO ist heute angekommen.

    Musste noch CP210x Treiber installieren.

    Sonst alles wie im Video auf github beschrieben.

    VC20 - siehe Bilder.

    Die Maus als Joystick hagt etwas..?

    Kann auch an der Maus liegen.

    Cursortasten ist gut spielbar.

    Macht Spaß!

    Ein VC20 mit Ramerweiterung und Spielen für 20€.


    Peter

  • Ich blicke bei der Doku von dem Teil nicht durch.

    Ich habe mir das hier angeschaut: https://github.com/fdivitto/FabGL


    Im Schaltplan gibt es einen J5 auf dem RX/TX herausgeführt sind. Den sehe ich nicht auf den Fotos des Moduls.

    Dafür fehlen im Schaltplan die Taster und der USB-Anschluß.


    Im Softwarebeispiel für das ANSI-Terminal werden die Anschlüsse GPIO2 und 12 verwendet. Das sind aber nicht die Leitungen, die laut Schaltplan als RX/TX herausgeführt sein sollten.


    Auf der der Version 1.2 tauchen dann plötzlich noch die Anschluß-Pins IO2 und IO4 auf. Bei der Version 1.1 waren die noch mit D+ und D- bezeichnet (also USB).


    Alles sehr, sehr konfus irgendwie und nichts passt zusammen. :(

  • Und dann gibt's auf AliExpress dieses Bild



    Im zugehörigen Foto wurde dann der IO4 in IO12 umretuschiert. Das würde dann wieder zum Soucecode des Terminals passen.



    Warum ich mich jetzt darüber so aufregen?

    Wie kann eine so schöne Hardware, in der bestimmt viele Monate arbeit stecken so bescheiden dokumentieren. :fp:

  • Inzwischen habe ich auch zwei dieser V1.2 Boards bekommen.


    Ich habe mir auf eines der Boards das ANSI Terminal aufgespielt und noch einen TTL-RS232 DB-9 Konverter angeflanscht (GPIO12 und GPIO 2 sind mit VCC und GND auf dem 4-poligen 2 mm Header schon zusammengefasst).

    Das Ganze funktioniert erstaunlich gut - die Bildqualität ist in "normal" Darstellung gut, bei "Bold" verschmiert mein TFT Bildschirm die Zeichen etwas - lesbar, aber unschön. Das ist aber das übliche Skalierungsproblem. Die ausgegebene Auflösung ist 640 x 350, also EGA und damit gut ausreichend.


    Ich habe dazu noch das Tastaturlayout auf Deutsch umgestellt, das braucht nur eine Zeile Code. Die länderspezifischen Zeichen wie äöü§ß° gibt es zwar nicht im Zeichensatz (Bitmap), aber die zum Programmieren wichtigen Klammern und Backslash etc. sind damit direkt verfügbar. D.h. für CP/M Systeme ganz gut geeignet.


    Weiterhin versuche ich gerade noch, als Gimmick eine ^G BELL Audioausgabe zu ergänzen, das habe ich aber noch nicht hinbekommen. Ton kommt schon, aber nicht bei ^G.

    Die FabGL Bibliothek ist schon sehr mächtig, damit auch etwas unübersichtlich und die Dokumentation knapp.

    Aber Leistung/Preis ist schon sehr gut, da möchte ich nicht meckern.

  • Inzwischen habe ich mich mal etwas mit der TTGO-VGA32 Platine und der FabGL Bibliothek beschäftigt. Besonders das ANSI-Terminal-Beispiel hat mich interessiert.

    Hier ein paar Ergänzungen und Probleme die ich hatte.


    1) Deutsche Tastatur

    Für meine Tastaturen musste ich noch das deutsche Tastaturlayout im Code ergänzen - kein wirkliches Problem.


    2) Grafikterminal

    Außerdem habe ich mir noch in die ANSI-Terminal-Emulation einen Tektronix-Emulations-Modus implantiert, damit ich auch etwas mit Grafik spielen kann. Die Auflösung ist 640 x 350 (EGA), zwar nicht ganz Tektronix, aber ganz brauchbar.

    Damit kann ich zum Beispiel mit CP/M-80 mit oder ohne GSX meine Grafiken ausgeben oder wenn der AVR-CP/M-Stick zu unhandlich ist, auch mit einem HP Taschenrechner. Für diese Tests habe ich mal den HP-49G hervorgeholt, der zu Unrecht oft ein Mauerblümchen-Dasein fristet.


    3) Sounds of Silence

    Außerdem war das Terminal stumm – deshalb habe ich eine ^G Erkennung und einen Lautsprecher zugefügt. Gibt es eigentlich Terminals, die mit Escape-Sequenzen genau definierte Töne spielen können?


    4) Startschwierigkeiten

    Mit dem TTGO-VGA32 Board und der seriellen Schnittstelle hatte ich allerdings ein größeres Problem. Für die serielle Schnittstelle werden in den Beispielen GPIO2 und GPIO12 verwendet, die sind auch schön auf Header-Pads herausgeführt. Dort kann man direkt einen TTL-RS232C Konverter anschließen. Wenn man den RX Pin erst nach dem Booten an GPIO 12 anschließt, funktioniert alles auch wie gedacht. Allerdings bootet das System nicht, wenn man den RX vorher an GPIO12 anschließt – nicht sehr schön.

    Nach etwas herumsuchen und Datenblattlesen habe ich herausgefunden, dass dieser Pin beim Booten die Spannung des Flash-Speichers definiert und wenn man dort ein leerlaufendes RS232 anschließt. meint der ESP32 sein Flash liefe mit 1.8V. Es müssen aber für diese Board 3.3 V sein und somit startet der ESP32 erst gar nicht oder zerschießt womöglich seinen Speicher.

    Deshalb habe ich meinen RX nun an der ESP-Platine an den GPIO 14 angelötet. Damit funktioniert dann alles wie gewünscht. TX kann an GPIO 2 bleiben.

    Mit der Tektronix Emulation liegen natürlich die Farbfähigkeiten der FabGL Bibliothek brach (immerhin habe ich 256 Grünstufen). Das muss gelegentlich noch durch eine alternative Farbgrafik-Terminalemulation geändert werden (z.B. HP 2627 oder wenn es sein muss, etwas DEC Regis/Sixel kompatibles).

    Nach etwas fräsen, feilen, schnitzen und schwitzen passt das alles auch in ein nettes kleines Gehäuse - bislang mein kleinstes und preiswertestes Grafikterminal – könnte auch gut an ein kleines Pollin oder Kassen-TFT gehängt werden (gibt es eigentlich VESA kompatible Gehäuse die man wie einen Thin-Client hinten an einen TFT zwischen Fuß und Bildschirm anschrauben kann?)

    Die Fähigkeiten des ESP32 werden natürlich nur zu einem kleinen Teil genutzt – die ganzen WiFi und Bluetooth Möglichkeiten liegen brach.


    Meine Notizen finden sich unter

    https://www.mh-aerotools.de/hp/cpm/TTGO-VGA32.pdf


  • ... geht auch mit einem 50€ Pollin 10,1" Display-Set PT80M03/HB101-24B, wenn man dort den VGA-Anschluss bestückt und noch einen Eingangs-Auswahl-Taster auf das Bedienpanel lötet.

    Das Display skaliert (zum Glück) nicht sondern stellt das 640x350 Bild pixelgenau und scharf dar, wobei der rechte Teil des 1024 x 768 Panels ungenutzt bleibt. Da wäre ein 4:3 Display schöner, war mir aber zu teuer.




  • Geht der VGA Port auf der Platine wieder zu reaktivieren?

    Ich hatte schon ein Didäsplay der neuen Serie, bei dem der VGA Anschluss nicht auswählbar war.


    Gruß Jörg

  • ... meine Platin hatte unbestückte Anschlusspads links neben den anderen Stckern.

    Dort habe ich einen passende Stecker aufgelötet - die Belegung ist im Pollin Datenblatt:

    VSync - HSync - GND - B - G - R

    Dann noch ein Kabel mit VGA Stecker gelötet - eine Buchse wäre vielleicht schöner, je nach Einbausituation.


    Außerdem habe ich noch zwei kleine Taster auf der Bedienplatine nachgerüstet, davon ist aber nur einer für das Umschalten des Eingangs (AV - VGA) notwendig.


    Damit funktioniert das Display einwandfrei.

  • Genau so ging's ja bei der ersten Serie auch, dort könnte auch die Displayerkennung über die I2C Pins nachgerüstet werden. Bei der späteren Serie ging mit den Taster für die Quellenauswahl gar nichts mehr.


    Gruß Jörg