RunCPM v5.1 TTGO VGA32 USB SerCtl & Mirror Edition

  • PeterSieg Franky
    Nachdem ich in die RunCPM-Version die Option fuer eine "bold"-Farbe und den KeyClick eingebaut habe, wurde ich gestern und heute inspiriert von dem Tastatur-Test Tool KeyboardStudio von Fabrizio Di Vittorio.

    Im den Testtool kann man die PS/2-Tastatur testen mit Ausgabe auf dem VGA-Screen - aber auch Debug Ein-/Ausgabe auf dem seriellen USB-Port (Power-Eingang in Form eines MicroUSB-Ports)


    Erst dachte ich - nacht im Bett liegend - an eine parallele Ein-/Ausgabe wie bei dem transparenten USB-serial Port des UExt-Terminals.


    Allerdings macht mir die Funktion fuer die Rueckgabe des Eingabepuffers einen Strich durch die Rechnung und ich kann immer nur einen Port fuer den Return-Wert sauber aktivieren :( ABER die Ausgabe geht parallel :)


    D.h. meine USB SerCtl & Mirror Edition kann auf dem Onboard-VGA-Port und der USB-seriellen puTTY-Session den ScreenOutput gleichzeitig ausgeben.
    Man tippt also aus PS/2-Tastaur oder ueber die serielle Session (putty oder anderes Terminalprogramm) und sieht die Ausgabe doppelt :)

    Die Konfiguration/Aktivierung ueber das F12-Konfigmenue muss allerdings ueber VGA/PS/2-Tastur erfolgen und nachdem man die Eingabe umgestellt hat muss man auch mit der PS/2 Tastatur (nach dem speichern der Konfig) per BREAK-Taste (also Ctrl+PAUSE) rebooten um es zu aktivieren.


    Keine schlechte Sache - find ich persoenlich - fuer 3 schlaflose Stunden und etwas Bastelei am Tag ;)


    Mit dieser Funtionalitaet kann man entweder per cut&paste Daten auf das CP/M-System bringen oder

    per serieller Applikation das CP/M-System steuern :)

    Ich hoffe Ihr habt auch Spass an der Option!


    BTW: Wie im .ino-Sourcecode steht braucht Ihr zur Fehlerbereinigung der haengenden PS/2-Tastatur die gibhub-FabGL-Commits bis incl. 17.03.2021





  • Franky Einen weiteren Vorteil "meiner" Mirror-Edition habe ich nun gefunden ;)
    Durch die volle Konrolle des Device CON: wenn die Steuerung auf USB-SerCtl gestellt ist,
    kann man mit TeraTerm per XMODEM Daten zu und vom TTGO VGA32 RunCPM transferieren :)

    Das XMODEM-Binary und das - von mir erstellte - XMODEM.CFG-File haenge ich hier an ;)

  • Das "Problem" hat sich schon wieder verfluechtigt ;)

    Es liegt daran, dass die RunCPM-Console - wie es normal sein soll in CP/M - als 7Bit laeuft.


    Fuer XMODEM ueber CON: braucht es allerdings (zumindest beim senden) 8Bit in der Console.


    Deshalb hat der Autor von RunCPM damals(tm) schon in weisser Voraussicht 2 kleine CPM-CLI-Programme erstellt und diese in seine Disk A: (BootDisk) "Distribution" inkludiert:


    Code
    CONSOLE8.COM - umschalten zur 8Bit Console
    COMSOLE7.COM - umschalten zur 7Bit Console
    
    Die Tools werden (sehr kurz) erwaehnt unter
    https://github.com/Moc.../RunCPM/blob/master/DISK/1STREAD.ME
    und oben in der console.h innerhalb des RunCPM-Arduino-Sketches


    Am besten startet man CONSOLE8 immer vor XMODEM ( v2.7 von M. Eberhard ;) )

    PS: Frisches RunCPM von heute


    Einmal editiert, zuletzt von guidol ()

  • Da jetzt doch vereinzelt das Problem aufkam, dass einige nicht mit dem installieren der "Requirements" zurecht kamen - kam die Idee auf - einfach ein Binary zum flashen bereit zu stellen.


    Dazu wurde aus dem Flashvorgang der Arduino-IDE im verbose Mode der Command-String "extrahiert" und die 4 Dateien einzeln gespeichert.


    D.h. rein theroreistch braucht man nur das esptool 2.6 (oder groesser - geht wohl aktuell bis auf 3.0 rauf)

    und die 4 Dateien.

    2 sind "Standarddateien":
    0xe000 boot_app0.bin

    0x1000 bootloader_qio_80m.bin


    und 2 fuers RunCPM auf dem TTGO VGA32 v1.5:

    0x10000 RunCPM_VGA32_v5_2_SerCtl_vkItem.ino.bin

    0x8000 RunCPM_VGA32_v5_2_SerCtl_vkItem.ino.partitions.bin


    Hier der verbose-Output des Flashvorganges, ohne und mit Pfadverkuerzung:

  • Kannst Du mir eine Quelle für das esptool nennen? ...ich habe hier nur das flash_download_tools_v3.6.5...

    DANKE!


    :)Franky

    fuer Linux (python) sollte es ueber https://github.com/espressif/esptool ladbar sein

    und fuer Windows unter https://github.com/igrr/esptool-ck/releases (alte version?) bzw. Anleitung unter
    http://www.dietrich-kindermann.de/esp_flashtool.html
    und dann mit Python und PIP

    Fuer die Arduino-IDE kann man als package unter Preferences
    https://dl.espressif.com/dl/package_esp32_index.json
    angeben


    Ich tippe aber auch mal dass es mit dem ESP32 Download-Tool geht
    ( https://www.espressif.com/site…_download_tool_v3.8.5.zip )


    3 Mal editiert, zuletzt von guidol ()

  • Version vom 04.04.2021 ;)

    - REBOOT Command hinzugefuegt (aufrufbar wie DIR oder CLS vom z.B. A0> Prompt)
    (macht den selben Reset wie die BREAK-Taste (=Ctrl+PAUSE)

    - Boot-Sound (haette ihn gern mehr wie beim CBM PET, aber ist mal ein Anfang)

    - Eingefaerbter Bootscreen (via FabGL ANSI-Terminal Color-Escape-Sequenzen genutzt)


    Neben der normalen Version auch eine Testversion bereinigt um den ungenutzen LUA-Code.

    Leider hat dies beim Compile keinen nennenswerten Programmgroessencode-Vorteil.

  • Hallo Guido,

    ich versuche die neueste Version 040421 auf mein TTGO VGA32 V 1.4 hochzuladen. Ich verwende FabGL 1.0.2.

    Dabei erhalte ich folgende Fehlermeldung:


    42021/RunCPM-master/RunCPM_VGA32_v5_2_04042021/RunCPM_VGA32_v5_2_04042021.ino:46:0:

    sketch/confdialog.h: In static member function 'static void ConfDialogApp::loadConfiguration()':

    confdialog.h:242:14: error: 'class fabgl::Terminal' has no member named 'setColorForAttribute'

    Terminal.setColorForAttribute(CharStyle::Bold, getBDColor(), true);

    ^

    In file included from /home/hajo/aaa-Local-Development/CPM-Emu/TTGO-VGA/210408-RunCPM_v5_2_master_TTGO_VGA32_04042021/RunCPM-master/RunCPM_VGA32_v5_2_04042021/RunCPM_VGA32_v5_2_04042021.ino:79:0:

    sketch/ccp.h: In function 'void _reboot()':

    ccp.h:382:18: error: 'class fabgl::Terminal' has no member named 'soundGenerator'

    Terminal.soundGenerator()->playSound(SquareWaveformGenerator(), 500, 10);

    ^

    ccp.h:385:18: error: 'class fabgl::Terminal' has no member named 'soundGenerator'

    Terminal.soundGenerator()->playSound(SquareWaveformGenerator(), 500, 10);

    ^

    ccp.h:388:18: error: 'class fabgl::Terminal' has no member named 'soundGenerator'

    Terminal.soundGenerator()->playSound(SquareWaveformGenerator(), 500, 10);

    ^

    ccp.h:391:18: error: 'class fabgl::Terminal' has no member named 'soundGenerator'

    Terminal.soundGenerator()->playSound(SquareWaveformGenerator(), 500, 10);

    ^

    ccp.h:394:18: error: 'class fabgl::Terminal' has no member named 'soundGenerator'

    Terminal.soundGenerator()->playSound(SquareWaveformGenerator(), 500, 10);

    ^

    ccp.h:397:18: error: 'class fabgl::Terminal' has no member named 'soundGenerator'

    Terminal.soundGenerator()->playSound(SquareWaveformGenerator(), 1000, 20);


    Ich hab's auch schon mit ältern FabGL Versionen probiert. Ohne Erfolg.


    Für Tipps bin ich sehr dankbar.

  • hjk das ist recht eindeutig. Deine v1.0.2 der ist zu alt ;)

    Wie hier im Thread am 19.03. oder in meinem gestern genannten Beitrag Wordpresseintrag (jetzt hier der richtige Link) findest Du eine Info, wie Du die FabGL v1.0.2 mit dem aktuellem master.ZIP (und dem Inhalt des Verzeichnises FabGL-master) Deine FabGL Library der Arduino IDE updaten musst.

    Denn auch oben im .ino habe ich vermerkt, dass Du min. den Stand vom 01.04.2021 brauchst, da dort erst die neuen Befehle vom FabGL-Autor eingeführt wurden :)


    Viel Erfolg beim compilieren & dann viel Spass mit der Emulation


    PS: im Wordpress Eintrag ist auch ein Link zur Version vom 06.04.2021 ;)

  • Zum besseren Info weitergeben (auch international) habe ich doch mal wieder einen
    Wordpress-Eintrag verfasst ;)


    SORRY - Sicherheitshalber hier noch ein Einzel-Eintrag mit dem richtigen Wordpress-Link

    Evtll. kann ein Moderator/Admin den Link in meiner Nachricht von gestern anpassen oder loeschen?

  • Ich habe die neueste FabGL runtergeladen. Der Fehler ist nach wie vor vorhanden. :(


    Das ist die Antwort von Fabrizio


    This is a problem of current release of FabGL embedded in Arduino. The version you can download we should fix it.

    Soon will be released a new release available from inside the Arduino IDE.


    Du hast scheinbar die "passende" Lib erwischt. :thumbup:

    Dann werd ich wohl noch warten müssen.


  • Wenn Du schreibst, Du hast die neueste FabGL runtergeladen, dann als master.zip und nicht ueber den Library-Manager in der Arduino-IDE (denn da gibt es nur die "alte" v1.02)


    Fabrizio schreibt auch nur eben dies, dass die in der Arduino-IDE embedded Version (also die v1.0.2 ueber den Library Manager) nicht reicht.


    Wie geschrieben, hol Dir das FabGL-master.zip von der github page und aktualisiere ein FabGL-library Verzeichnis dem dem Inhalt des Verzeichnisses FabGL-master aus dem FabGL-master.zip, solange Du kein guido-Benutzerverzeichnis anlegst :)
    Es muss Dein libraries/FabGL-Verzeichnis sein.


    Wenn Du das master.zip nimmt gibt es IMMER die passende Librarry, da ich auch mein Verzeichnis der FabGL-Library komplett geloescht hatte, als ich den Inhalt des FabGL-master Verzeichnisses des master.zip in das Verzeichnis der /library/FabGL eingefuegt habe.

    Somit fehlt Dir DANN keine Datei und es gibt (nach dem 01.04.2021) auch keine falsche Version.


    2 Mal editiert, zuletzt von guidol ()

  • Genau so habe ich es gemacht. Nicht aus der Arduino IDE eine FabGL update gemacht.

    FabGL unter Arduino/libraries gelöscht. Von github die aktuelleste Version runterladen und dort entzipped. Kompiliert trotzdem nicht :(

    Allerdings nutze ich Linux, keine WIndows. Das sollte aber keinen Unterschied machen.

  • Von github die aktuelleste Version runterladen und dort entzipped.

    Du hast aber dann durchs unzippen nicht nur das Verzeichnis FabGL-master im Verzeichnis /libraries/FabGL?

    Mit Linux habe ich es noch nicht probiert, aber ich denke das sollte keinen Unterschied machen, da ja auch unter Windows die Arduino-IDE eine Java Anwendung ist.


    Es sei denn es liegt an Linux-Fileberechtigungen....schau Dir doch mal die Rechte fuer /libraries an und "vererbe" die mit chmod -R bzw. chown -R nach unten?

    Einmal editiert, zuletzt von guidol ()

  • hjk Extra fuer Dich habe ich die komplette Arduino-IDE 1.8.13 + SDFat + FAbGL + Update installiert auf meiner Chromebox unter Linux Lite 64bit.


    Die oben genannten Fehler hatte ich nicht, ABER :) die genannten Fehler vom ps2controller.cpp , die Du als Issue im Gibthub von FabGL aufgemacht hast.


    Es muss aber da wohl echt an Linux liegen, denn ich habe die gleiche FabGL und den gleichen RunCPM-Source genutzt und bekommen diesen Fehler beim kompilieren NUR unter Linux.

    In Windows 10 64bit laeuft der Compile sauber durch :)


    Ich habe einen Kommentar zur Issue geschrieben (auch wenn Fabrizio diese schon zu gemacht hatte).

    Evtl. nimmt er es sich nochmal etwas mehr zu Herzen, wenn er sieht dass ich das Problem unter Linux nachstellen kann?


    [EDIT] Fabrizio schreibt:

    Zitat

    Thank you, I'll check it.

    fdivitto added the bug label 18 minutes ago

    Einmal editiert, zuletzt von guidol ()

  • Hallo Guido

    danke für deine Mühe alles unter Linux nachzustellen :thumbup:

    Ich habe schon an mir gezweifelt. jetzt steh ich zumindest nicht blöd da.

    Dann muss ich jetzt wohl wieder einen Windows PC installieren, aber ich glaube das will ich nicht wirklich.

    Wäre es möglich mir die Binaries deiner Installation zu schicken so das ich versuchen kann es mit esptools zu installieren ?


    Danke nochmal


    Hajo

  • hjk
    Das "Problem" fuer Linux habe ich nun erkannt und geloest.
    Beschrieben habe ich die Loesung in der von Dir aufgemachten Gthub-Issue.

    Hauptsaechlich liegt es daran, dass bei der Neuinstallation der Arduino-IDE mit dem BoardManager der ESP32 Board-Support in der
    "zu neuen" v1.0.6 installiert wurde.
    FabGL ist im Moment (Fabrizio wird es sicher anpassen) nur zur v1.0.5 kompatibel.


    D.h. Du deinstallierst ueber den Board-Manager die v1.0.6 und installierst (erstmal) die v1.0.5

    Danach am Besten die Arduino-IDE einmal schliessen und neu aufmachen und das Board wieder konfigurieren/auswaehlen, weil es sich auf den Arduino Yun zurueckstellt.

    Wenn Du sonst schon mal was zu einem ESP32 oder anderen USB angeschlossenen Board uebertragen hast, sollte es nun gehen, ansonsten gibt es noch3 kleine Befehle und ein LogOut/Login bzw. Reboot bis es klappt:

  • hjk Fabrizio hat ein neues FabGL-master.zip bereit gestellt, dass nun auch mit der ESP32 Board-Library v1.0.6 zusammen arbeitet.
    Also einmal noch updaten, dann sollte es auch bei Dir unter Linux compilieren.

    Ich habe es fuer die v1.0.6 unter Windows schon erfolgreich getestet.

  • Danke nochmals für all den Aufwand den du betrieben hast :thumbup:

    Es lässt sich jetzt komipilieren aber die Keyboard-EIngabe funktioniert nicht.

    Ich habe soviel getestet (z.B KeyboardScanCode, GraphicalUserInterface, verschieden RunCPM Versionen), habe aber nicht wirklich Fortschritte erzielt.

    Ich gebe auf und denke drüber nach einen weitern TTGO zu kaufen.

  • hjk wie auf GitHub gewuenscht hier noch mal eine "binary" Version, wobei ich denke dass Dein System es genauso compiliert.

    Ist die Version vom 09.04.2021


    PS: Wie ich auf Github schrieb, wird das pure ANSI-terminal nicht laufen, wenn eine MicroSD-Karte im Slot ist, da die GPIO Pins geshared sind mit dem TTL-serial-Port.


    Dein TTGO VGA32 ist doch auch eine v1.4?

    Evtl. kannst Du woanders doch mal eine andere PS/2-Tastatur leihen? Auch wenn die an sonstigen Systemen geht, bei dem UTerm (o.ae. fuer den Z80-MBC2 gab es auch einige PS/2-Tastaturen, die sich nicht richtig initialisierten.'

    Wenn bei einigen Sketches die Tastatur laeuft, muesste man in denen mal schauen, ob die alle schon die neuen Tastatur-Routinen nutzen.

    Im .ZIP ist auch eine Text-Datei mit dem esptool command

    (hier esptool_py\3.0.0/esptool.exe fuer Windows anstatt esptool-py bei Linux und
    COM11 anstatt /dev/ttyUSB0)
    aber ansonsten sollten die ersten 6 Zeilen hintereinander in einer Commandline Zeile zum flashen einer Binary Version)

  • [Info]

    mit dem "internal" CCP wurde bemerkt, dass UNARC.COM v1.6 keine Dateien extrahieren "moechte".

    Es wird "nur" die Liste des Inhaltes vom Archiv angezeigt.
    Siehe diese Github-Issue dazu...


    Nutzt (hat man es comoiliert) mit dem CCP-DR oder CCP-Z80, dann extrahiert UNARC.COM auch Dateien, scheint sich allerdings mit dem Platz auf dem Destination-Directory zu verschaetzen :(

  • OK - richtig erkannt hatte ich, dass das internal CCP Probleme hat, so muessen wir entweder zum CCP-Z80 oder CCP-DR wechseln.

    Zur Zeit bevorzuge ich das CCP-Z80, weil dieses am Prompt auch die User-Nummer mit anzeigt, was das CCP-DR nicht tut :(


    Warum das CCP-Z80 vorher beim extrahieren abbrach, lag einfach daran, dass die Filenamen im Archiv ein "/" enthalten, womit das FA-Filesystem von RunCPM nicht zufrieden ist ;)

    Also ich habe jetzt ein neues Archive zusammengestellt, dass das CCP-Z80 nutzt.

    Damit dieses geladen werden kann, muss dazu die Datei CCP-Z80.60K im Root der SD-Karte sein (findet Ihr im CCP-Ordner auch)


    Zusaetzlich habe ich das .ARK Archive zum testen per Hex-Editor gepatcht (von "/" auf "-" in den Filenames) und damit laesst es sich dann auch komplett entpacken :)

  • Als der Autor von RunCPM (Marcelo Dantas) schrieb, dass das interne CCP broken/defekt ist rechnete ich nicht mit seinem Enthusiasmus, denn hat er es ganz fix repariert/gepatcht ;)


    Er hat eine neue Version v2.1 erstellt, die den Fehler mit UNARC.COm behebt UND

    wenn Dateien mit einem "/" im Namen erstellt werden sollen, wird das "/" gegen ein "_" ausgetauscht on-th-fly


    Also happy UNARCing :)


  • hjk
    Da jetzt aus verschiedenen Richtungen der Wunsch kam das RunCPM fuers TTGO VGA32 - auch ohne Arduino IDE und der Compilierung - einfacher aufs TTGO VGA32 zu bekommen
    (viele haben Probleme alle Software-Bestandteile zusammen zu stellen und zu konfigurieren)
    gibt es jetzt eine neue v5.3 als precompiled Binary.

    Zusaetzlich habe ich mit dem Espressif Flash Download Tool das flashen des Binarys getestet und es klappt ;)
    Eine Anleitung dazu - in english - findet man hier