RunCPM v4.4 Fork fuer ESP32 mit VGA (auch TTGO VGA32 v1.4)

  • Ein wenig Leute haben wohl den Fork/Port von RunCPM v4.4 auf den TTGO VGA32 gesehen.

    Eine Mischung aus RunCPM v4.4 und dem FabGL Terminal in einem .ino Arduino-IDE-File - also ein AIO (all in One) :)


    Leider habe ich keine Info in welchen Dateien alles was zu aendern ist, um auf das aktuelle RunCPM v5.1 zu kommen :(


    Zusaetzlich gibt es laut der GitHub-Page von coopzone-dc beim TTGO VGA32 noch "leichte Probleme", da die Herstellerfirma den IO12 fuer den SDCard-Slot nutzt (war ein Problem auch fuer FabGL vor der v1.4 des TTGO VGA32, da dort weniger Header-Pins drauf sind. Bei v1.4 nutzt FabGL dann IO34):


    My version of the hardware that used the SD card GPIO's that where suggested on the generic circuit and works perfectly.

    However, the settings for the VGA32 ESP seem to have a conflict on the GPIO settings for the SD card. It does work but to upload you have to remove the SD card and after a soft reset you have to remove the SD card and then replace it followed by another reset. It works ok from a power on or hard reset. If you can help fix this please let me know. UPDATE 11Oct2020: The VGA32 ESP v1.4 uses GPIO12 (MTDI, read on pwerup/reset). This pin determines the voltage for the RAM, Voltage of Internal LDO (VDD_SDIO). When the SD card is present it pulls this pin high and the ESP32 thinks that the RAM voltage should be 1.8V, without the SD card this pin has internal pull-down to set the RAM voltage to 3.3V. This is actually mentioned in the notes from examples provided on the FABGL project




    Bei einer Custom-Version eines ESp32/VGA-Boards hatte der Autor das Problem nicht, da er dort eine andere (empfohlende Standard-Belegung genutzt hat):



    Ich selbst habe das .ino nocht nicht ausprobiert, da ich mir wegen dem IO12-Problem nicht mein TTGO VGA32 bricken will, auch wenn der Autor durch override es erfolgreich nutzen kann.

  • OK :dsc:

    Ich hab mich doch getraut UND habe mir die v4.4 vorgenommen und mit der aktuellen v5.1 verglichen.

    Nachdem ich "nur" Unterschiede in der RunCPM.ino und der abstraction_arduino.h finden konnte,

    habe ich per Editor-Compare die RunCPM.ino angepasst und die Functions fuer die Ausgabe in der abstraction_arduino.h ersetzt (serielle Ausgabe gegen FabGL).


    Zusaetzlich zur normalen v5.1 kam aus dem Fork die Datei confdialog.h (hiermit laesst sich dann beim Aufruf durch F12-Taste dann Emulation und Tastaturbelegung & Farben einstellen)


    Dann nur noch ein wenig Print-Optik fuer den Boot und tatsaechlich :herzen:

    eine v5.1 auf dem TTGO VGA32 (hier v1.4) - Arduino IDE Source-Code im Anhang.

    Diese braucht dann auf der MicroSD-Card dann die selben Dateien wie das RunCPM-Starterpack fuer Windows

    (also CCPs und die Laufwerksverzeichnisse)

    Ich wuensche Euch so viel Spass damit wie ich ihn hatte, als die Erstellung geklappt hatte :stompa:


  • Der FabGL VGA16Controller der hier im RunCPM genutzt wird ist der selbe wie der im Beispiel Sourcecode von FabGL mit dem Namen Simple Terminal Out.


    D.h. alle Demos die im Youtube-Video "Simple Terminal Out with ESP32 (FabGL-libraray)"

    zu sehen sind, koennten auch genutzt werden. Leider sind die graphischen Funktionen nicht per

    Escape-Sequence erreichbar :( - siehe Sourcecode (part demo4)

  • Naechste Optimierung der v5.1 in 2 "Geschmacksrichtungen" :)


    1.) Die "normale" v5.1 80x25 Zeichen, aber nun mit von v5.1 konvertierter configdialog.h (vorher v4.4 in der v5.1)
    d.h. nun auch mit Nutzung der uistyle.h und Unterstuetzung der Boot-Info Option - ein-/ausschaltbar im
    Config-Dialog, der ansonsten nur die selben Moeglichkeiten enthaelt.




    2.) die v5.1 mit Nutzung des VGATextController anstatt des VGA16Controller

    d.h. anstatt 80x25 kann man nun 80x24 Zeichen nutzen (z.B. gut zum Text editieren in Wordstar, wenn man per wschange.com die Zeilenanzahl in de Nutzung auf 34 erhoeht)

    Nachteil: im Textmode gibt es KEINE Config-Dialog-Moeglichkeit

    d.h. man muss Text-Farb und Tastaturkonfiguration im .INO vornehmen.
    Gruen auf schwarzem Text und deutsche Tastatur habe ich schon im .INO drin :)


    Beide Versionen sind im angehaengten .ZIP-File ;)

  • Hallo,


    ist es eigentlich möglich, die Ausführungsgeschwindigkeit zu konfigurieren?


    RunCPM gefällt mir auf dem PC recht gut, weil man nicht extra Diskettenimages erstellen muß. Aber leider läuft es nur mit maximaler Geschwindigkeit, wodurch nahezu alle CP/M Spiele unspielbar werden. Ist das hier besser gelöst?


    Gruß, Rene

  • aktualisierte Version !nur! des .ino File - die beinhaltet nun eine Reset/Reboot Funktion (ohne Reset der Einstellungen)

    ueber die "Taste" BREAK (da ist Ctrl+PAUSE = rechts oben bei Druck/Print und Rollen/ScrollLock)


    Wenn also mal ein Programm haengt, muss man nicht immer die Stromversorgung "ziehen" ;)


    Demnaechst (Pull-Reuqest stehen noch aus) im GitHub-RunCPM-Part von coopzone-dc

  • Hallo,


    ist es eigentlich möglich, die Ausführungsgeschwindigkeit zu konfigurieren?


    RunCPM gefällt mir auf dem PC recht gut, weil man nicht extra Diskettenimages erstellen muß. Aber leider läuft es nur mit maximaler Geschwindigkeit, wodurch nahezu alle CP/M Spiele unspielbar werden. Ist das hier besser gelöst?

    Bei YAZE-AG kann man die Prozessorgeschwindigkeit einstellen.

  • Franky 2 kleine Goodies - die ich mir als Funktionen in FabGL per Featuire-Request gewuenscht habe
    (wurden nun netterweise vom FabGL Autor umgesetzt)

    und nun nutzen konnte (Erstellung im Konfigdialog und Nutzung im RunCPM-Programmcode)
    in "meiner" Version von RunCPM auf dem TTGO VGA32:


    1.) konfigurierbare BOLD-Text-Color (schoen bei der Anzeige von Menues wie Wordstar und Turbo-Pascal)

    2.) Key-Click wie beim ATARI XL oder Oric Atmos


    Code
    // ############################ !! A T T E N T I O N !! ####################################
    // To compile this version of the .ino you need the the FabGL-master from github
    // which includes the Commits from Mar 15, 2021 in your FabGL-library path of the
    // ARDUINO-IDE


  • guidol : Super! Danke! Ich hab's noch gar nicht ausprobiert - hat das RunCPM eigentlich auch eine Ordnerstruktur wie die Multitasking Variante?

    Soweit ich weiss - NICHT, aber auch fuer die Laufwerke A: bis P: gibts es moegliche Verzeichnisse und dann noch unter denen Verzeichnisse fuer den User (also 0 bis ?)


    Zwar nicht ganz so sprechend, aber man kann sich das auch voll nach Herzenlust belegen wie beim Beispiel des RunCPM Autors ;)

  • irgendwie habe ich etwas Probleme mit der Tastatur...wenn man "wie ein Kleinkind" wild auf der Tastatur einhaemmert, dann bleibt diese haengen und kann auch nicht durch reconnect behoben werden :(


    Ich habe 5 PS/2 Tastaturen und die "neueste" von vor 2-3 Jahren bleibt eigentlich garnicht haengen, die anderen jeweils nach 5-120 Zeichen "wilden tippens" :(


    Die 5 Tastaturen sind (gelistet von alt nach neu):


    - IBM Model M (55-07113261F) von1992

    - CHERRY ML-4100 DE-LayOut 5V 10mA (so stehts drauf!)
    - MS-TECH LT-300 DE-LayOut 5V 170mA (von ca. 2003)
    - KYE Systems Corp - Genius GK-04006 UK-LayOut
    - frisby FK-88QP TR-LayOut 5V 300mA (0.3A)


    Das Test-Programm "KeyboardStudio" vom FabGL-Autor hat das Problem nicht :(#

    Ich werde es mit ihm zusammen nochmal durchtesten...

  • Franky Tastatur-Problem scheint geloest mit einem neuen Commit (vom 17.03.2021) des FabGL Autors ;)

    PS2Controller: workaround for interrupt stall


    Bringt man den (neue Version der src/comdrivers/ps2controller.cpp) in den Library-Path fuer FabGL der ARDUINO-IDE

    und compiliert neu - klappt es bei mir mit der CHERRY Tastatur, die sonst sehr schnell das System aufhaengte.