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. :(

    • i-Telex 7822222 dege d

    • technikum29 in Kelkheim bei Frankfurt

    • Marburger Stammtisch

    Douglas Adams: "Everything, that is invented and exists at the time of your birth, is natural. Everything that is invented until you´re 35 is interesting, exciting and you can possibly make a career in it. Everything that is invented after you´re 35 is against the law of nature. Apply this list to movies, rock music, word processors and mobile phones to work out how old you are."

  • 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:

    • i-Telex 7822222 dege d

    • technikum29 in Kelkheim bei Frankfurt

    • Marburger Stammtisch

    Douglas Adams: "Everything, that is invented and exists at the time of your birth, is natural. Everything that is invented until you´re 35 is interesting, exciting and you can possibly make a career in it. Everything that is invented after you´re 35 is against the law of nature. Apply this list to movies, rock music, word processors and mobile phones to work out how old you are."

    Einmal editiert, zuletzt von detlef ()

  • 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.

  • Inwzischen liegt das Modul hier auch schon ein paar Wochen in der Schublade. Bin aber noch nicht dazu gekommen, mich damit zu beschäftigen.

    • i-Telex 7822222 dege d

    • technikum29 in Kelkheim bei Frankfurt

    • Marburger Stammtisch

    Douglas Adams: "Everything, that is invented and exists at the time of your birth, is natural. Everything that is invented until you´re 35 is interesting, exciting and you can possibly make a career in it. Everything that is invented after you´re 35 is against the law of nature. Apply this list to movies, rock music, word processors and mobile phones to work out how old you are."

  • 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


  • Ja, das wäre super!

    • i-Telex 7822222 dege d

    • technikum29 in Kelkheim bei Frankfurt

    • Marburger Stammtisch

    Douglas Adams: "Everything, that is invented and exists at the time of your birth, is natural. Everything that is invented until you´re 35 is interesting, exciting and you can possibly make a career in it. Everything that is invented after you´re 35 is against the law of nature. Apply this list to movies, rock music, word processors and mobile phones to work out how old you are."

  • ... 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.




  • ... 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.

  • Zur Info:

    ESP32 ALTAIR EMULATOR GETS SPLIT PERSONALITY

    https://hackaday.com/2020/08/2…r-gets-split-personality/


    BTW: auf eBay gibt die v1.4 der Platine nun inkl. Versand auch schon unter 10GBP.

    Die ganze Zeit war das Porto immer extrem hoch.

    eBay No. 193598055176 / 254667748768 / 164308774924

  • FabGL in Version 1.0.0 erschienen.

    Neue Beispiele:

    Classic Racer

    Multitasking CP/M


    https://www.youtube.com/watch?v=3UevsxMQZ5w


    Mit dem TTGO hat man für 10-15€ ein prima Retrocomputer, das man sehr einfach über Arduino IDE aufspielen kann.


    LG Peter

  • Quick & Dirty hack für deutsches Tastaturlayout im neuen Multitasking und Multisession CP/M:


    Im Beispiel ino:


    // Set German layout

    PS2Controller.keyboard()->setLayout(&fabgl::GermanLayout);


    (Ansonsten ist mir diese Objektorientierung (noch) ein komplettes Rätsel!)


    LG Peter

    github.com/petersieg

  • Quick & Dirty hack für deutsches Tastaturlayout im neuen Multitasking und Multisession CP/M:

    PeterSieg hast Du irgendwo eine Dokumentation zur Steuerung der Multitaskingfunktion gesehen (Keyboard-shortcut-liste) und evtl. eine kleine Doku zum Verzeichnisaufbau der FAT32-SD-Karte?

    Geht auf der SD-Karte noch mehr an Verzeichnissen als A: & B: ?

    Ich habe es jetzt mal bei den Preisen "gewagt" und 2x dir v1.4 der Platine aus China bestellt...mal sehen, was an Zoll dazu kommt . der Versand ist ja gegenueber aus DE ueberschaubar :)


    PS: Die Multitasking-Emulation sollte weiter sein als die Altair 8800 Emulation? (wg CP/M3 z.B.)
    Eine Single-Session Altair 8800 Version mit SD-Karten-Support koennte mir aber auch gefallen ;)

  • Hallo guidol

    Diese Multisession CP/M Version prüft zuerst ob eine SD Karte da ist.

    Falls nein, werden die Laufwerke im internen Flash angelegt.

    Falls sie schon da sind, wird dann natürlich nichts mehr angelegt.

    Diese Version unterstützt Unterverzeichnisse!!

    Ich habe einfach z.B TP für Turbo Pascal im driveB angelegt usw.

    Genauso für C und Basic.


    Die Verwaltung kostet auch Speicher.

    Evtl. sind weitere Laufwerke -nur auf der SD Karte möglich?


    Und Karte sollte mit Fat32 formatiert sein.


    Die F-Tasten F1-F10? Schalten zwischen den Sessions um - dabei wird auch der Bildschirm jeweils wieder aufgebaut, bzw. da auch Multitasking laufen die Programme in den Sessions sogar weiter!


    Also das hat wirklich Potential eine der besten CP/M Emulation auf modernen uC zu werden.


    LG Peter

    Und alles Gute für 2021!

    github.com/petersieg

  • Meine Notizen finden sich unter

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

    Da Martin Hepperle die Datei wohl jetzt in einem anderen Pfad hat auf seiner Domain hat (bekomme heute einen 404er Fehler) haenge ich mal eine Version der PDF-Datei hier an - evtl. hat Martin eine neuere Revision davon? ;)

    Irgendwie freue/warte ich (mich) schon auf meine beiden v1.4 der Platine fuer Multitasking-CP/M, Terminal oder evtl. demnaechst PC/DOS-Emulation :)

  • Ah, ich hatte das inzwischen um den Quellcode ergänzt und nun unter https://www.mh-aerotools.de/hp/cpm/TekTerm.zip abgelegt. Das PDF Dokument ist dort nun enthalten.


    PS: manchmal hilft es in solchen Fällen, einfach mal ein Stockwerk höher zu gehen (https://www.mh-aerotools.de/hp) und dann von dort aus die Lage zu sondieren.

  • Müsste mal in der Quellcode schauen. Ich denke die Altair

    8800 Version unterstützt schon Sd Karte - wenn vorhanden, werden dort die sonst internen LW angelegt.

    PeterSieg Die 8800-Version unterstuetzt zwar die SD-Karte, aber im Gegensatz zur Multitasking-Version NUR .dsk-images (diskA bis diskD) - wobei C & D unter CP/M selbst formatiert werden muessen.

    Bei der Multitasking-Version kommt man in den Komfort - wie bei RunCPM - echtes Filesystem zum direkten kopieren der Programmdateien (entgegen dem Umweg ueber .dsk-Image-Files und deren Groessenbegrenzung).


    Aber immerhin hat man bei der 8800-Version die .dsk-Files direkt im SDCard-Filesystem und kann die per

    cpmtools sicherlich bearbeiten (muss ich noch mal mit diesen .dsk-Files testen - cpmtools hatte ich mal fuer einen anderen Emulator erfolgreich genutzt). Hier ein paar - fuer mich wichtige Befehle und deren Syntax:

    Einmal editiert, zuletzt von guidol ()

  • Die F-Tasten F1-F10? Schalten zwischen den Sessions um - dabei wird auch der Bildschirm jeweils wieder aufgebaut, bzw. da auch Multitasking laufen die Programme in den Sessions sogar weiter!

    PeterSieg bei der Multitasking-Version hat man Terminal von F1 bis F12 - wohingegen die Altair-8800 Version auf F12 oder "Pause"-Taste das Konfigurationsmenu fuer das Terminal hat.


    Dieses Konfigurationsmenu scheint es in der Multitasking-Version nicht zu geben :( (aber der Speicher fuer den Sktech ist da auch schon sehr voll beim compilieren).

  • FabGL in Version 1.0.0 erschienen.

    PeterSieg Heute neu FabGL v1.0.1:

    zusaetzlich ist durch die v1.0.1 ein Bug behoben, den ich gemeldet hatte:
    Bei der Installation der FabGL-Library v1.0.0 in der Arduino IDE fehlte das Verzeichnis /src/emudevs

    Dies ist nun in der v1.0.1 wieder mit drin - ohne dies kann man die Sketche nicht compilieren und

    musste /src/emudevs aus dem github-master rauskopieren und im Verzeichnis der FabGL-Library einfuegen.