Hello, Guest the thread was viewed5.8k times and contains 59 replies

last post from Mike at the

Kann man mit VICE ein BASIC Listing als TXT-Datei exportieren?

  • Ich möchte komplette C64 BASIC Programm aus dem VICE Emulator in einen Texteditor auf dem PC übernehmen.


    Wenn ich kurze Programmschnipsel habe, dann benutze ich in VICE einfach EDIT => COPY um die aktuelle Bildschirmseite zu kopieren und in eine beliebige PC-Anwendung (Editor/Word etc.) einzufügen.


    Wenn ich ein Programm habe, dass sich über mehrere C64 Bildschirmseiten erstreckt, dann ist diese Methode aber leider mühsam, da man beim LISTen immer genau eine Bildschirmseite abpassen- und dann schnell RUN/STOP drücken muss. Das erfordert die blitzschnellen Reaktionen eines japanischen Samurais. :ninja:


    Und auf dem PC müssen diese einzelnen Bildschirmseiten dann auch erst wieder zusammengefügt und "bereinigt" werden.


    Geht das in VICE besser bzw. komfortabler? Kann man das ganze BASIC Listing irgendwie komplett als TXT ausgeben? (Möglichst ohne irgendwelche andere Software zu installieren.)

    PETSCII-Zeichen sind mir übrigens egal. Die verwende ich sowieso nicht oder nur als CHR$-Codes.

  • Du kannst die *.prg-Datei mit petcat.exe in eine Textdatei umwandeln. petcat kommt mit VICE mit.

    Ich benutze Ubuntu 18.04 als Betriebssystem. Da habe ich mir VICE über die Paketverwaltung (Ubtuntu-Software) installiert.

    So wie ich es sehe, ist in diesem Paket nur ein C64 und ein C128 Emulator enthalten. Ich wüßte jedenfalls nicht, wo sich noch andere Sachen verstecken könnten.



    Das Paket heißt übrigens "vice-jz".


    Ich bin eigentlich ganz zufrieden mit dem Emulator. Es scheinen aber gewisse Sachen zu fehlen, so wie der VC20 Emulator, den Du kürzlich erwähnt hast.

  • Du kannst die *.prg-Datei mit petcat.exe in eine Textdatei umwandeln. petcat kommt mit VICE mit.

    Stimmt... und wenn man dann noch ein IEC-Device mit IEC-Device-Type=Host Filesystem verwendet, dann kann man aus dem BASIC heraus mit SAVE"name",xy das Programm direkt auf dem PC speichern. Auf der Konsole dann petcat anwenden und erledigt. Auf die gleiche Art kann man auch TXT-Dateien wieder als PRG in den Vice/C64 laden.


    So wie ich es sehe, ist in diesem Paket nur ein C64 und ein C128 Emulator enthalten. Ich wüßte jedenfalls nicht, wo sich noch andere Sachen verstecken könnten.

    Auf der Konsole mal xvic eingegeben? Das startet hier den VC20, xplus4 startet den Plus/4. xpet oder xscpu64 gibt es auch noch... evtl. hat Dein Paket nicht für alle Emulatoren eine Verknüpfung.

  • Stimmt... und wenn man dann noch ein IEC-Device mit IEC-Device-Type=Host Filesystem verwendet, dann kann man aus dem BASIC heraus mit SAVE"name",xy das Programm direkt auf dem PC speichern. Auf der Konsole dann petcat anwenden und erledigt. Auf die gleiche Art kann man auch TXT-Dateien wieder als PRG in den Vice/C64 laden.

    Es wäre halt "um Welten einfacher", wenn man dafür einen Menüpunkt "BASIC als Text exportieren" in VICE (oder anderen Emulator) anklicken könnte. Im Gegensatz zu manch anderen Funktionen, sollte sich das doch relativ einfach umsetzen lassen.

  • Stimmt... und wenn man dann noch ein IEC-Device mit IEC-Device-Type=Host Filesystem verwendet, dann kann man aus dem BASIC heraus mit SAVE"name",xy das Programm direkt auf dem PC speichern. Auf der Konsole dann petcat anwenden und erledigt. Auf die gleiche Art kann man auch TXT-Dateien wieder als PRG in den Vice/C64 laden.

    Es wäre halt "um Welten einfacher", wenn man dafür einen Menüpunkt "BASIC als Text exportieren" in VICE (oder anderen Emulator) anklicken könnte. Im Gegensatz zu manch anderen Funktionen, sollte sich das doch relativ einfach umsetzen lassen.

    Diese Funktion hätte ich auch gerne.

    :thumbsup:

  • Es wäre halt "um Welten einfacher"...

    Das bezweifele ich... IEC-Laufwerk+PetCat sind keine Raketenwissenschaften ;)

    Aber mach doch mal einen "BUG"-Report wegen der fehlenden Funktion auf (eine Wishlist hab ich nicht gefunden). Mehr als den Report als "INVALID" zu schließen können die nicht machen.

  • Schonmal in Petcat nachgesehen, wieviele BASIC-Varianten es gibt? Und es gibt noch dutzende weitere Varianten, die Petcat erst gar nicht unterstützt. Woher soll der Emulator wissen, welche Basic-Variante gerade aktiv ist? Klar kann man einfach von Basic V2 ausgehen, aber ratet mal, wie dann der nächste Bug Report lautet.² Ganz davon zu schweigen, dass es eben nicht "das eine" Textformat für Basic gibt, z.H. kodieren Petcat und C64 Studio schon das CLR+HOME unterschiedlich.


    So im Detail ist das leider nicht so einfach, und wenn man nur an "irgendwie im Zweifelsfall auch gerne fehlerbehaftet" interessiert ist, tut doch die "in Datei drucken"-Variante.


    ² falls es nicht klar ist: das Problem an der Stelle ist, dass der Emulator nur das tokenisierte Programm im Speicher sieht. Was das heißt: https://www.c64-wiki.de/wiki/Token

  • Es wäre halt "um Welten einfacher", wenn man dafür einen Menüpunkt "BASIC als Text exportieren" in VICE (oder anderen Emulator) anklicken könnte. Im Gegensatz zu manch anderen Funktionen, sollte sich das doch relativ einfach umsetzen lassen.

    So eine Funktion wäre aber doch auch reichlich sinnlos? BASIC->Text-Konvertierung ist erst mal keine Aufgabe eines Emulators.

    1. Will ich ein vorhandenes BASIC-Programm konvertieren, geht das mit petcat oder anderen externen Tools schneller als wenn ich erst den Emulator starte und das Programm lade. Im Zweifelsfall - bspw. wenn ich nicht genau weiß, welche Datei - auch mit ganzen Verzeichnissen
    2. Das BASIC-Programm im Emulator zu bearbeiten und dann erst nach Text zu konvertieren dürfte ein ziemlich seltener Anwendungsfall sein

    Mehr Bedarf dürfte es für eine Funktion "Text als BASIC importieren" geben - so könnte man in einem modernen Texteditor sein Programm schreiben und im Emulator testen. Aber auch hier sind externe Tools sinnvoller, weil man den Prozess (Text->BASIC, Emulator starten, BASIC-PRG laden) dann automatisieren kann.

  • Der klassische Anwendungsfall wäre wohl, dass man etwas im Emulator programmiert und dann im Forum posten will. Kommt ja durchaus öfter vor ^^

  • So eine Funktion wäre aber doch auch reichlich sinnlos?

    Andere Emulatoren, wie hier beschrieben, zum Beispiel einer für Acorn Atom, bieten das von Haus aus an. Nur eben keiner für den C64.


    Und wieso sollte das "sinnlos" sein, wenn sogar schon zwei Leute hier aus dem Forum nach genau dieser Funktion fragen? :)


    "Ich habe ein BASIC-Programm im Emulator und möchte das als ganzes Listing bequem auf dem PC in Textform haben."

    und dafür soll ein Menüpunkt dafür im Emulator drin sein, damit man nicht Umwege über andere Tools gehen muss. Nochmal: Im Vergleich zu den sonstigen komplexen und komplizierten Funktionen, die im Emulator drin sind, ist eine Textausgabe eines BASIC-Programms maximal eine "Fingerübung".


    Umso "absurder", dass man den Wunsch danach sogar noch "rechtfertigen soll". Her damit und gut ist! :D

  • Du kannst die *.prg-Datei mit petcat.exe in eine Textdatei umwandeln.

    Bevor ich danach suche: Kann man mit PETCAT auch TSB/Simons Basic in eine Textdatei umwandeln? Sonst nützt es mir nichts, da ich hauptsächlich TSB benutze.

    Das scheint mir ein guter Ansatz zu sein, der auch mit anderen BASIC Varianten funktionieren sollte.

    Tut er aber nicht. Wenn ich eingebe OPEN1,4,7:PRINT#1:CMD1:LIST dann kommt ?DEVICE NOT PRESENT ERROR.

    Und wo würde das eigentlich hingespeichert werden wenn es funktioniert?


    Folgendes ist bei meinem VICE bei "Settings => Settings... => Periphal Devices => Printer Settings" eingestellt:

  • Das bei VICE mitgelieferte petcat ist auf jeden Fall sinvoll, um eine Textversion mit kodierten Steuerzeichen zu erhalten.

    https://www.c64-wiki.de/wiki/Petcat

    prg -> txt:

    petcat -2 -o TEXTDATEINAME.TXT -- NAME.PRG


    Ansonsten z.B. über Endurions C64 Studio das prg importieren und dann dort aus dem Editor rauskopieren, wenn Steuerzeichen nicht wichtig sind.