VSCode Extension VS64

Es gibt 130 Antworten in diesem Thema, welches 16.670 mal aufgerufen wurde. Der letzte Beitrag (26. Oktober 2025 um 10:21) ist von mimi64.

  • Hi. Danke für das nette Feedback.

    (Ich bleibe natürlich dran, habe nur wegen wenig Zeit eine kleine Pause eingelegt. Und ich glaube, man muss ab und zu etwas Feedback abwarten, sonst bastelt man nur neue Feature, die niemand braucht).

    Die Bugs schaue ich mir an, aber das ist schon verflixt mit den BASIC-Tokens, denn die Grammatik dafür lässt sich nicht leicht abbilden.

    Das Problem beim Debuggen kenne ich noch nicht, ich kann mich aber noch erinnern, dass 3.7 (entweder SDL oder GTK auf Linux ein Problem/Bug hatte...).

    Kannst du denn überhaupt debuggen (steppen, breakpoints setzen, variablen anschauen, etc.) oder kommt überhaupt keine Verbindung zu stande?

    Grüße,

    Roland

    PS. Ich habe mir kurz dein Programm angeschaut. ... Wenn du in der Konfiguration nicht auf "Debug" umstellst, dann kannst du "kostenlos" Leerzeichen und Zeilenumbrüche verwenden... Das Programm wird dann sehr viel lesbarer.

  • Ach ja, und GOSUB kann man mit Labels verwenden - du kannst alle Zeilennummern eigentlich eliminieren (und der "Cruncher" wird das nachher zusammenstauchen).

  • Hi Roland,

    das mit der Meldung "VICE antwortet nicht..." beim Debuggen ist nicht wirklich ein Problem. Debuggen geht, BASIC-Variablen usw. werden angezeigt, Steppen geht, weitere Breakpoints setzen auch.

    Die Meldung kommt nach einigen Sekunden. Und wie's scheint auch nur dann wenn man (nachdem er im Breakpoint steht und VSCode in den Vordergrund kommt) VICE bewusst in den Vordergrund holt.

    Stört nicht unbedingt beim Debuggen, denn man kann es einfach ignorieren, denn lässt man weiter laufen, dann verschwindet sie auch wieder.

    Ich vermute, das Desktop-Environment (hier Cinnamon 5.8.4) versucht mit der Anwendung zu sprechen und bekommt keine Antwort.

    Ist also eher ein Schönheitsfehler...

    Danke für den Tipp mit dem release build und den Leerzeichen. Das mit den Labels statt Zeilennummern hab ich gesehen und (inkonsequenterweise) auch teilweise genutzt.

    Da bin ich tatsächlich hin- und hergerissen, weil Laufzeifehler sich auf die Zeilennummern im finalen Programm beziehen und ich die im Quelltext so nicht sehen kann. Ok, ich könnte wohl dann die Zeilennummern der Quelldatei nehmen, dürfte dann aber keine Leer- oder Kommentarzeilen haben.

    Als release gebaut bricht leider mein Programm ab wegen geänderten Zeilennummern.

    Das hier funktioniert

    100 PRINT"hello"

    110 IF 1=1 THEN GOTO 100

    Das hier

    100 PRINT"hello"

    110 IF 1=1 THEN 100

    führt zu ?undef'd statement error in 2

    Im PRG Disassembly steht dann

    1 PRINT"HELLO"

    2 IF1=1THEN100

    Offenbar wird hier ein goto erwartet damit die Zeilennummer zugeordnet werden kann. Anders betrachtet könnte ein release-build auch grundsätzlich thengoto zu then verkürzen um Platz zu sparen.

    Habe mal spasshalber das release Disassembly ins bas zurück kopiert und neu übersetzt. Weiss nicht, ob der Anspruch ist, dass so etwas klappt, aber jedenfalls sind einige Dinge funktional anders.

    Z.B. PRINT"A     B" wird zu PRINT"A B" oder PRINT"{$5f}" zu PRINT"_".

    Ich schätze mal, da gibt's noch so den ein oder andren BASIC-Hack, den der Interpreter frisst, aber den man auch erst mal kennen muss um es zu implementieren. Gibt ja vermutlich auch keine allumfassende Doku dazu...

    Aber klar, kein Stress. Soll ja immer auch Spass machen und unser Hobby soll nicht in Arbeit ausarten :)

    Danke und Gruß

  • Bzgl. Kommentar: Alle Zeilen, die mit # beginnen, werden komplett ignoriert - also landen gar nicht im PRG... hilft auch, um weiter zu reduzieren.

    Danke für die Fehlermeldungen... obwohl es verteilt Informationen gibt, ist vieles einfach Reverse-Engineering.

    Grüße,

    Roland

  • Hi.

    Nachdem ich sehr nett gefragt wurde, gibt es mit der Version 2.5.4 nun Unterstützung für den Commander X16 Emulator. ASM/C/C++ sind unverändert, denn die Maschine konnte man auch vorher schon in der Projektkonfiguration festlegen. Jetzt kann man aber auch noch den x16emu in der Launch-Konfiguration nutzen.

    Leider bietet der x16emu (noch) kein externes Debugging-Interface (so wie VICE das mit dem Binary Monitor Protocol macht) - aber Start/Restart/Stop hilft schon mal...

    Alle Details finden sich im README: Bitte melde dich an, um diesen Link zu sehen.

    Download hier: Bitte melde dich an, um diesen Link zu sehen.

    Wie immer bin ich für gutmütige Tester dankbar!

    Grüße,

    Roland

    PS. Die Version ist noch nicht auch dem VSCode-Marketplace, weil die Integration wahrscheinlich noch etwas reifen muss, also bitte manuell von gitlab herunterladen und installieren.

  • Hi.

    Neben einigen anderen Verbesserungen, Bug-Fixes, etc. bringt die v2.5.10 von VS64 nun Support für das Einbinden von D64-Disks in Visual Studio Code workspaces. ...ich wollte mehr über die Floppy-Formate, Funktion, etc. lernen und hab das Ganze dann in ein neues Feature gepackt. Vielleicht findet es der ein oder andere ganz nützlich, oder zumindest interessant :smile:

    GitHub: Bitte melde dich an, um diesen Link zu sehen.

    Alle Details finden sich im README: Bitte melde dich an, um diesen Link zu sehen.

    Wie immer bin ich für gutmütige Tester dankbar!

    Grüße,

    Roland

    PS. Die Version ist nicht auch dem VSCode-Marketplace, also bitte manuell von gitlab herunterladen und installieren.

  • VS64 sieht nach einer tollen Erweiterung aus und VSCode habe ich sowieso immer offen, ist mittlerweile auch mein Standard Notepad.

  • Hallo,

    ich würd gern mal Assembly programmieren und debuggen damit ausprobieren, aber ich bekomm das nicht zum Laufen.

    Kann mir da jemand helfen?

    ich hab die VS64 Extension installiert und die Pfade für ACME und VICE eingegeben.

    Dann hab ich von hier Bitte melde dich an, um diesen Link zu sehen. die launch.json befüllt.

    Wenn ich nun ein ganz einfaches .asm ausführen will, kommt Could not launch debugger: Program file not specifiec.

    Bitte melde dich an, um diesen Anhang zu sehen.

    das kommt bei Launch 6502, Attach Vice, Launch Vice.

    Das Output Fenster zeigt auch nur genau die Meldung

    Aber keine Info zur Kommandline, die es ausführen möchte, wo das Program File nicht gefunden wird, etc.

    Ich weiß nichtmal, ob er ACME nicht findet, oder VICE.


    UPDATE: die project-config.json lag im falschen Ordner. Die darf nicht in den .vscode Ordner, sondern muss ins Projekt-Root.

    Somit funktioniert der Build mal.

    Launch Vice und Attach Vice hab ich noch nicht ganz verstanden, aber das kommt bestimmt auch noch.


    Wäre dankbar für jeden Input

    Danke!

    YouTube Kanäle über Basic, den C128 und den VDC-Chip
    Bitte melde dich an, um diesen Link zu sehen. --- Bitte melde dich an, um diesen Link zu sehen.
    Commodore 8-Bit Projekte
    auf Bitte melde dich an, um diesen Link zu sehen.
    Bitte melde dich an, um diesen Link zu sehen. zu Commodore 8-bit Hardware
    auf printables.com

    Einmal editiert, zuletzt von Goodwell (23. November 2024 um 17:27)

  • Ich dokumentiere hier einfach meine Stolpersteine und Fortschritte, hoffentlich ist Anderen damit geholfen.

    Es geht schon besser :smile:

    Ich habe nun nochmal ein neues Projekt gestartet und ich hatte da gestern einiges Ignoriert, was das Projekt ja automatisch erledigt.

    Davon abgesehen:

    Die Source-Dateien MÜSSEN mit .asm enden.

    ACME-üblich wäre ja eher .a, dann baut das aber nicht, auch nicht wenn man den Dateinamen mit .a explizit als "main" reinschreibt.

    Hätte auch nicht rausgefunden, ob man selber noch andere Datei-Erweiterungen angeben kann.

    Das Step-By-Step Debuggen funktioniert soweit mal, das Projekt ist aber noch sehr klein.

    Schade ist, dass im .asm File nach dem Kompilieren links nicht angezeigt wird, welche Instruktion dann an welcher Stelle im Speicher liegt.

    Das kann man sich aber im .report File ansehen.

    Was mir sehr gut gefällt, ist, dass man Codeänderungen sofort wieder durchdebuggen kann, ohne den Vice neu zu starten.

    Einfach den Code ändern, in der Console schauen, wann der Build fertig ist, und dann im schon offenen Vice-Fenster direkt wieder SYS bla machen.

    YouTube Kanäle über Basic, den C128 und den VDC-Chip
    Bitte melde dich an, um diesen Link zu sehen. --- Bitte melde dich an, um diesen Link zu sehen.
    Commodore 8-Bit Projekte
    auf Bitte melde dich an, um diesen Link zu sehen.
    Bitte melde dich an, um diesen Link zu sehen. zu Commodore 8-bit Hardware
    auf printables.com
  • Hallo,

    schön dass du dein Projekt zum Laufen gebracht hast.

    Kurz zu deinen Punkten:

    - Extensions: stimmt, nur ".asm" ist möglich. Das Build-System und andere Automatismen wären sonst nochmal sehr viel komplexer

    - Adress-Anzeige neben ASM source: schöne Idee für die Zukunft (evtl. Alternative: einfach auf ein erzeugtes ".prg" klicken - dann wird das Disassembly angezeigt, natürlich mit Adressen).

    - Eins der VS64-Konzepte ist: wenn man sich an eine gewisse Struktur hält, dann kann man vieles automatisieren, das erfordert aber an manchen Stellen einen Kompromiss in Sachen Flexibilität.

    Vielleicht hilft dir dieses Repository ein bisschen weiter: Bitte melde dich an, um diesen Link zu sehen.

    Ansonsten gerne hier Fragen und Feedback geben - auch wenn ich in letzter Zeit wirklich kaum Zeit finde, mich um vs64 zu kümmern.

    Grüße,

    Roland

  • Hallo Alle, hat jemand Erfahrung mit Visual Studio Code, VS64 und VICE?

    Ich habe gestern VICE (flatpak) auf Linux Mint installiert, und schaffe es nicht, den von Visual Studio Code und VS64 aus zu starten. Heute bin ich draufgekommen, dass ich VICE unabhängig von VS nicht einmal als default-Applikation einstellen kann. Ich habe zwei Pfade in PATH eingebaut:

    Code
    /var/lib/flatpak/exports/bin
    /var/lib/flatpak/app/net.sf.VICE/current/active/files/bin

    Ich habe diese Pfade auch direkt in VS64 konfiguriert. Weder x64 noch x64sc werden gefunden, und das weder in VS noch als default-app für Files.
    Falls mir irgendjemand aus meiner Verzweiflung :rauch::drunk: helfen könnte, wäre ich sehr dankbar :dafuer:. :winke:

  • Ich glaub die Frage solltest du besser in diesem Thread stellen:

    Bitte melde dich an, um diesen Link zu sehen.

    YouTube Kanäle über Basic, den C128 und den VDC-Chip
    Bitte melde dich an, um diesen Link zu sehen. --- Bitte melde dich an, um diesen Link zu sehen.
    Commodore 8-Bit Projekte
    auf Bitte melde dich an, um diesen Link zu sehen.
    Bitte melde dich an, um diesen Link zu sehen. zu Commodore 8-bit Hardware
    auf printables.com
  • Ich glaub die Frage solltest du besser in diesem Thread stellen:

    Bitte melde dich an, um diesen Link zu sehen.

    Jo. Hier ist es besser aufgehoben. :thumbup:

  • Ich glaub die Frage solltest du besser in diesem Thread stellen:

    Bitte melde dich an, um diesen Link zu sehen.

    Jo. Hier ist es besser aufgehoben. :thumbup:

    Vielen Dank fürs Verschieben und her zeigen! Ja, eindeutig, und hier könnte vielleicht sogar schon die Antwort stehen. Schaumamal. :thumbsup:

    Update: Oh, ich hab grad bemerkt dass rosc höchstselbst sich hier beteiligt. Feedback: Ich kriegs zwar nicht ganz zum Laufen, aber das wird schon werden, und ich bin begeistertvon der Erweiterung! Wirklich danke vorerst für dein Werk!

    Hier könnte meine Signatur stehen, wenn ich eine hätte.

    Einmal editiert, zuletzt von BlondMammuth (2. Dezember 2024 um 12:48)

  • Ich hab bemerkt, dass das Launchen nicht nur vom VS nicht geht, sondern auch von sonst nirgends. D.h. wenn ich VICE (auf Linux Mint aus flatpak installiert) als Standardprogramm für irgendeine Endung angebe, funktioniert das nicht.

    Ich habe flatpak genommen, weil bei der Standard-Installation im Gegensatz dazu die ROMs nicht dabei sind. Allerdings werde ich mir die jetzt kopieren, flatpak deinstallieren, und die normale installieren, die ROMs dazu, und dann sehen, ob es funktioniert. Ich berichte mehr, wenn ich es weiß.

  • Gute Neuigkeit: Das wars wirklich. Das Flatpak-Dings funktioniert nicht in dem Kontext, man muss den Vice "offiziell" bzw. "klassisch" installieren (gefällt mir eh viel besser), und sich halt wie üblich die legal erworbenen ROMs zu den Maschinen dazu kopieren, damit er funktioniert. Mittlerweile läuft mein erstes BASIC-"Hello, World!" und mein erstes C-"Hello, World".

    Jetzt gehts an die Tiefen der Graphik-Programmierung. Wird sicher toll schnell mit C. :LOL

    Update: Ich habe mir das TGI kurz angesehen, und es ist mir zu wenig. Ich verstehe sehr gut, dass es ein allgemeines Interface sein soll, das auf mehrere Plattformen anwendbar bleibt, aber ich kann z.B. nicht erkennen, wie ich den Modus ändere. Multicolor kann ja z.B. entweder "Zeichenweise" stattfinden oder mit 160x200. In meinem Fall z.B. würde ich 160x200 vorziehen, da im Extremfall wirklich mehrere Farben zugleich auf engstem Raum unterkommen sollten. Sogar die sind mir eigentlich noch zuwenig. :cry:Zudem bräuchte ich auch noch Sprites, denke ich, will ich nicht deren Inhalt jedesmal mit viel Aufwand neu zeichnen müssen. Mein Spiel wäre zwar nicht Echtzeit oder hektisch, aber mehr als 10 Sekunden sollte man ja doch nicht auf ein neues Bild warten.

    Kennt jemand eine andere Graphik-Lib auf CC65 für den C64? Wenn nicht, könnte ich mir eine schreiben müssen, aber bei den gefühlten 10 000 000 Projekten, die ich schon begonnen und nie komplettiert habe, traue ich mir selbst nicht mehr so recht über den Weg. :lol27:

    Hier könnte meine Signatur stehen, wenn ich eine hätte.

    Einmal editiert, zuletzt von BlondMammuth (2. Dezember 2024 um 22:29)

  • Die kleinen Freuden des Cross Compilings. :ChPeace:wand

    Code
    ld65: Warning: /usr/share/cc65/cfg/c64.cfg(54): Segment 'STARTUP' does not exist
    ld65: Warning: /usr/share/cc65/cfg/c64.cfg(54): Segment 'INIT' does not exist
    ld65: Warning: /usr/share/cc65/cfg/c64.cfg(54): Segment 'ONCE' does not exist
    ld65: Error: /usr/share/cc65/cfg/c64.cfg(20): Start address of memory area 'BSS' is not constant
    ninja: build stopped: subcommand failed.

    Ich suche natürlich weiter. Aber falls irgendjemand von euch die Lösung auswendig kann, und sie auf die Schnelle hinschreiben - bitte, tut euch keinen Zwang an. :applaus:

  • Die kleinen Freuden des Cross Compilings. :ChPeace:wand

    Code
    ld65: Warning: /usr/share/cc65/cfg/c64.cfg(54): Segment 'STARTUP' does not exist
    ld65: Warning: /usr/share/cc65/cfg/c64.cfg(54): Segment 'INIT' does not exist
    ld65: Warning: /usr/share/cc65/cfg/c64.cfg(54): Segment 'ONCE' does not exist
    ld65: Error: /usr/share/cc65/cfg/c64.cfg(20): Start address of memory area 'BSS' is not constant
    ninja: build stopped: subcommand failed.

    Ich suche natürlich weiter. Aber falls irgendjemand von euch die Lösung auswendig kann, und sie auf die Schnelle hinschreiben - bitte, tut euch keinen Zwang an. :applaus:

    Ich hab nach einigem Startpagen (was ich statt Googeln tue) rausgefunden, dass das Problem öfters auftritt, und der CC65 angeblich dafür bekannt ist.

    So bin ich erst einmal auf VVLM umgestiegen, und der funktioniert. Mein erstes Sprite geht schon über den Bildschirm, die Farbe ändert es aber noch nicht, also hab ich irgendwo den :heul_doch:Wurm drin. Schaumamal. ^^

  • So, ich habe wirklich begonnen, die C64-Chips in C abzubilden. Bevor ich mich da aber verausgabe: Gibts das vielleicht schon irgendwo? Hat jemand von euch die schon einmal in C beschrieben oder kennt eine Implementierung in C?

    Wenn nicht, mache ich einfach weiter (das ist eine gefährliche Drohung!). :picard:

  • Hat jemand von euch die schon einmal in C beschrieben oder kennt eine Implementierung in C?

    Naja, VICE ist in C geschrieben:

    Bitte melde dich an, um diesen Link zu sehen.

    YouTube Kanäle über Basic, den C128 und den VDC-Chip
    Bitte melde dich an, um diesen Link zu sehen. --- Bitte melde dich an, um diesen Link zu sehen.
    Commodore 8-Bit Projekte
    auf Bitte melde dich an, um diesen Link zu sehen.
    Bitte melde dich an, um diesen Link zu sehen. zu Commodore 8-bit Hardware
    auf printables.com