VSCode Extension VS64

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

  • Leider ist das ein Bug in VICE, der nur bei VICE-SDL auftritt - komischerweise auch nur unter Windows. VICE stürzt beim Binary-Monitor-Kommando AUTOSTART einfach mit SIGSEGV ab...

    Bitte gerne fixen ... :smile:

    --

    Zur Info...

    file "./src/arch/sdl/uimon.c"

    int uimon_out(const char *buffer)

    {

    ...

    if (using_ui_monitor) { // << using_ui_monitor is '1'

    int y = menu_draw->max_text_y - 1; // << pointer menu_draw is 'NULL' --> CRASH!

    ...

    }


    DEBUG SESSION:

    [New Thread 12440.0x36b0]

    Thread 1 received signal SIGSEGV, Segmentation fault.

    0x00007ff66e84350e in uimon_out (buffer=buffer@entry=0x6fb58b0 "autostarting d:\\Work\\c64\\asmtest\\build\\asmtest.prg #0\n") at uimon.c:127

    127 int y = menu_draw->max_text_y - 1;


    (gdb) frame

    #0 0x00007ff66e84350e in uimon_out (buffer=buffer@entry=0x6fb58b0 "autostarting d:\\Work\\c64\\asmtest\\build\\asmtest.prg #0\n") at uimon.c:127

    127 int y = menu_draw->max_text_y - 1;

    (gdb) backtrace

    #0 0x00007ff66e84350e in uimon_out (buffer=buffer@entry=0x6fb58b0 "autostarting d:\\Work\\c64\\asmtest\\build\\asmtest.prg #0\n") at uimon.c:127

    Bitte melde dich an, um diesen Link zu sehen. 0x00007ff66e7923d5 in mon_out_buffered (buffer=0x6fb58b0 "autostarting d:\\Work\\c64\\asmtest\\build\\asmtest.prg #0\n") at mon_util.c:177

    Bitte melde dich an, um diesen Link zu sehen. mon_out (format=format@entry=0x7ff66e913524 <mon_cmd_array+4900> "auto%s %s #%d\n") at mon_util.c:198

    Bitte melde dich an, um diesen Link zu sehen. 0x00007ff66e7a0f76 in mon_autostart (image_name=image_name@entry=0x6fa91cf "d:\\Work\\c64\\asmtest\\build\\asmtest.prg", file_index=0, run=1)

    at mon_file.c:497

    Bitte melde dich an, um diesen Link zu sehen. 0x00007ff66e799cd5 in monitor_binary_process_autostart (command=<synthetic pointer>) at monitor_binary.c:754

    Bitte melde dich an, um diesen Link zu sehen. monitor_binary_process_command (pbuffer=pbuffer@entry=0x6fa91c0 "\002\002)") at monitor_binary.c:1625

    Bitte melde dich an, um diesen Link zu sehen. 0x00007ff66e79b042 in monitor_binary_get_command_line () at monitor_binary.c:1739

    Bitte melde dich an, um diesen Link zu sehen. 0x00007ff66e792741 in uimon_in (prompt=prompt@entry=0x5ffba0 "(C:$fd81) ") at mon_util.c:319

    Bitte melde dich an, um diesen Link zu sehen. 0x00007ff66e7933fb in monitor_startup (mem=<optimized out>) at monitor.c:3154

    Bitte melde dich an, um diesen Link zu sehen. 0x00007ff66e661f4d in interrupt_do_trap (cs=0x6c4fd0, address=64897) at interrupt.c:354

    Bitte melde dich an, um diesen Link zu sehen. 0x00007ff66e6904dd in maincpu_mainloop () at C:/Tools/msys64/home/Roland/temp/vice-3.7/src/c64/../6510dtvcore.c:1687

    Bitte melde dich an, um diesen Link zu sehen. 0x00007ff66e66ca8b in main_loop_forever () at main.c:401

    Bitte melde dich an, um diesen Link zu sehen. main_program (argc=<optimized out>, argv=<optimized out>) at main.c:389

    Bitte melde dich an, um diesen Link zu sehen. 0x00007ff66e86039e in main_getcmdline ()

    Bitte melde dich an, um diesen Link zu sehen. 0x00007ff66e6512ee in __tmainCRTStartup () at C:/M/B/src/mingw-w64/mingw-w64-crt/crt/crtexe.c:267

    Bitte melde dich an, um diesen Link zu sehen. 0x00007ff66e6513e6 in WinMainCRTStartup () at C:/M/B/src/mingw-w64/mingw-w64-crt/crt/crtexe.c:157

    (gdb)

  • Fehlt nur noch die Z80 und 68k Unterstützung. :D

    Bitte melde dich an, um diesen Anhang zu sehen. :verehr: .: Mit Bitte melde dich an, um dieses Bild zu sehen.wäre das nicht passiert! :. :prof:  Bitte melde dich an, um diesen Anhang zu sehen.

    :syshack: .: Meine 3D-Drucker Teile auf :. Bitte melde dich an, um diesen Link zu sehen. :strom:

  • Ich stehe erst ganz Anfang damit, aber die Erweiterung macht einen großartigen Eindruck @rosk!

    Mein Zielsystem ist ein minimales System mit einem 65C02. Wäre es denn möglich, mit VS64 dafür auch Code zu erzeugen und zu debuggen? Unterstützen denn die Tools und der integrierte Emulator auch die Opcodes für 65C02?

    Ganz lieben Dank schonmal für etwas Erleuchtung :wink:

  • Hmm. Gute Fragen...

    Falls du den ACME benutzt, dann kann man die CPU und das Ausgabeformat einfach im Projektfile vorgeben, in dem du die "args" setzt. Das wäre ein erster Versuch.



    Über welches System und Vorhaben reden wir denn genau? Evtl. kann ich mir das mal anschauen...


    Grüße,

    Roland

  • Hi Roland, danke für Dein Feedback!

    Hier mein minimales Testprogramm

    ; main.asm
    ;
    ; minimal blink for 65c02

    *=$2000

    lda #$00
    ldx #$01
    stx $E002

    loop
    sta $E000
    bra nxt                 ; delay for 50:50 duty cycle
    nxt    
    stx $E000
    bra loop

    jmp loop                ; should not be reached


    Die Syntaxeinfärbung von bra klappt sofort. Mit

        "args": [
            "--cpu", "65c02"
    ],

    klappt dann auch die Übersetzung mit ACME:

    Mit F5 startet der eingebaute Emulator. Der ignoriert allerdings den Befehl bra einfach und läuft bis zum jmp. Ich hab dann gesehen, dass in Bitte melde dich an, um diesen Link zu sehen. der Befehl bra nicht vorhanden ist. Ich glaube VICE unterstützt den 65c02 auch nicht. Dann sieht es wohl damit derzeit schlecht aus ...

    Über welches System und Vorhaben reden wir denn genau? Evtl. kann ich mir das mal anschauen...

    Das ist einfach ein Minimalsystem mit 65C02, 65C22 und SRAM, nichts besonderes. Irgendwann werde ich das sicher mal dokumentieren :wink:

  • Lass mich mal nachdenken. Vielleicht finde ich mal ein bisschen Zeit und schaue, ob ich in den integrierten Emulator einen erweiterten 65c02-Modus einbauen kann.

  • Hi. VS64 hat nun Support für BASIC eingebaut (BASIC V2 und Tuned Simon's BASIC)

    Hier der (noch nicht auf dem Visual Studio Code Marketplace veröffentlichte) Release zum manuellen Installieren: Bitte melde dich an, um diesen Link zu sehen.

    Alles weitere im README: Bitte melde dich an, um diesen Link zu sehen.

    Wie immer wäre ich für Tester und Feedback sehr dankbar!

    Grüße,

    Roland

  • VS64 v2.5 ist nun auf dem Visual Studio Code Marketplace verfügbar.

    Bitte melde dich an, um diesen Link zu sehen.

    Die Unterstützung für Sprachen/Toolkits umfasst nun: ACME, KickAss, CC65, LLVM-MOS und BASIC (V2 und TSB).

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

    Wie immer wäre ich für Tester und Feedback sehr dankbar!

    Grüße,

    Roland

  • Es fehlt ein VS464. :bgdev

    Bitte melde dich an, um diesen Anhang zu sehen. :verehr: .: Mit Bitte melde dich an, um dieses Bild zu sehen.wäre das nicht passiert! :. :prof:  Bitte melde dich an, um diesen Anhang zu sehen.

    :syshack: .: Meine 3D-Drucker Teile auf :. Bitte melde dich an, um diesen Link zu sehen. :strom:

  • Zwei Threads zum gleichen Thema. Nur im Cross Development sollte doch ausreichend sein.

    Das Projekt ist natürluch Klasse, auch wenn man damit nix für den CPC machen kann. :D

    Es fehlt ein VS464. :bgdev

    Dann mach mal. Dann könnte man endlich auch vernünftig Loco BASIC debuggen. :D

    VS Code ist ja an sich recht flexibel konfigurierbar. Wenn Du Deinen Z80 Disassbler/Assembler aus der Excel-Simulation in echtem Executable fertigstellst, wird das schon irgendwie in VS Code einbindbar sein. :thumbsup:

    ___________________________________________________________
    Meine Kreationen: Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen.
    | Bitte melde dich an, um diesen Link zu sehen.
    Avatar: Copyright 2017 by Saiki

  • Wenn Du Deinen Z80 Disassbler/Assembler aus der Excel-Simulation in echtem Executable fertigstellst, wird das schon irgendwie in VS Code einbindbar sein. :thumbsup:

    Wozu, wenn doch Endurion Z80 in sein Studio einbaut. :D

    Bitte melde dich an, um diesen Anhang zu sehen. :verehr: .: Mit Bitte melde dich an, um dieses Bild zu sehen.wäre das nicht passiert! :. :prof:  Bitte melde dich an, um diesen Anhang zu sehen.

    :syshack: .: Meine 3D-Drucker Teile auf :. Bitte melde dich an, um diesen Link zu sehen. :strom:

  • Das macht er doch nur um die Quotenwokies ruhigzustellen.

    Oder um die C64 Enwtickler etwas wegzuschrecken, wenn sie Z80 sehen und voller Abscheu zur Konkurrenz rennen, weil er schon zuviel Support leisten muss hier :D

    ___________________________________________________________
    Meine Kreationen: Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen.
    | Bitte melde dich an, um diesen Link zu sehen.
    Avatar: Copyright 2017 by Saiki

  • Das macht er doch nur um die Quotenwokies ruhigzustellen.

    Oder um die C64 Enwtickler etwas wegzuschrecken, wenn sie Z80 sehen und voller Abscheu zur Konkurrenz rennen, weil er schon zuviel Support leisten muss hier :D

    :lol33:

    Ich hatte eben echte Schwierigkeiten mit der Maus Bitte melde dich an, um diesen Anhang zu sehen. zu treffen. :lol27:

    Bitte melde dich an, um diesen Anhang zu sehen. :verehr: .: Mit Bitte melde dich an, um dieses Bild zu sehen.wäre das nicht passiert! :. :prof:  Bitte melde dich an, um diesen Anhang zu sehen.

    :syshack: .: Meine 3D-Drucker Teile auf :. Bitte melde dich an, um diesen Link zu sehen. :strom:

  • Moin!

    Prinzipiell eine feine Extension! Vielen Dank! :thumbup:

    Da ich aber gerne den ca65 benutze (ganz ohne den cc65), muss ich dem ld65 ein anderes .cfg File übergeben (Data Alignment & Optional Segments).

    Das habe ich bisher nicht hinbekommen. ;(

    Die Args im project-config.json landen ja beim ca65 und der kann mit "-C ${workspaceFolder}/src/aligned-data.cfg" nunmal nichts anfangen. Wird ${workspaceFolder} überhaupt ausgewertet? Im Terminal erscheint "-C /src/aligned-data.cfg".

    Der Linker nimmt immer die Default-Config (/usr/share/cc65/cfg/c64.cfg).

    Hab ich da was übersehen? 8|

  • Hi.

    Ich muss leider zugeben, dass ich bisher den "ca65-only" Use Case nicht im Fokus hatte - für asm waren mir ACME und KickAss wichtiger. Ich muss mir das bei Gelegenheit mal anschauen, im Moment ist leider Zeit etwas knapp... ich werd's aber nicht vergessen.

    Viele Grüße!

  • Moin!

    vielen Dank! Ich habe von TypeScript und VS Code Extensions leider keinen Plan und möchte auch ungern noch eine Baustelle aufmachen.

    Bis meine 64er Projekte so gross sind, dass ich wirklich den Linker brauche, ist sicher auch noch ein bisschen hin und solange komme ich auch bestimmt mit ACME klar.

    Mir war halt auch wichtig: "Nee.. du bist nicht zu dumm, das geht wirklich nicht." 8o

    Cheers,

    l-z-o

  • Beim ACME bist du sicher gut aufgehoben. Der ist schnell, einfach und sehr gut gepflegt - Installation auf allen Plattformen ist leicht, und unter Linux und Mac gibt's auch fertige Packages.

    Viel Grüße!

    PS. Immer gerne fragen! Das macht die Community aus.

  • Beim ACME bist du sicher gut aufgehoben. Der ist schnell, einfach und sehr gut gepflegt - Installation auf allen Plattformen ist leicht, und unter Linux und Mac gibt's auch fertige Packages.

    Ich sag mal vorsichtig +1 für den ca65-Wunsch. Wie lame-zock-opa sagt: bei größeren Projekten (insbesondere welchen, die nachladen) ist ein Linker ein echter Segen, und dann ist man m.W. auf ca65 angewiesen.

    ────────────────────────────────────────────────────────────
    Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen.
    ────────────────────────────────────────────────────────────

  • Moin!

    VS Code ist ja von Haus aus schon recht geschmeidig, daher habe ich es mir jetzt mit tasks- & settings.json erst mal schön schnuckelig gemacht. Die "Task Runner" Extension sorgt dafür, dass ich die Tasks links schnell per Click zur Verfügung habe. Naja.. und Make gibt es ja auch noch.

    Was ich wirklich grossartig an der vs64-Extension finde ist der integrierte Disassembler! :thumbsup:

    Vielen Dank auch für den Hinweis auf SpriteMate! Genau das habe ich gesucht. Reicht mir völlig. Cooler Typ, dieser awsm. Leider gab es schon länger kein Update mehr auf seiner Seite.

  • Hallo rosc,

    habe VS64 gerade zum ersten Mal ausprobiert und bin begeistert! :)

    Gerade mein Projekt darauf portiert. Bitte melde dich an, um diesen Link zu sehen.. Ist ein Helferchen für SD2IEC und in BASIC geschrieben.

    Ich hatte bisher recht umständlich ohne IDE gearbeitet aber mit VS64 geht es deutlich effektiver. Vor allem schön sind die control token. Hatte vorher copy/paste in VICE verwendet, aber darüber bekommt man die nicht eingefügt. Hab mir dann mit chr$() beholfen aber das kostet Speicher und Laufzeit. Frage an der Stelle: kann ich Block-Grafik-Symbole auch mit {} erreichen?

    Einige Kleinigkeiten sind mir noch aufgefallen. Wenn ich ohne Zeilennummern arbeite und die Zeile beginnt mit PRINT:PRINT".... dann färbt er das erste PRINT weiß ein weil es als Label erkannt wird und es fließt dann nicht als Token ins Programm ein. Hier vielleicht bekannte Tokens nicht als Labels zulassen?

    Wenn ich eine BASIC-Zeile mit # am Ende kommentiere wird es zwar grün eingefärbt aber dennoch ins Programm übernommen (womit der Interpreter natürlich nichts anfangen kann).

    Beende ich ein PRINT-Statement ohne " am Ende dann wird das Programm richtig übersetzt aber vom Syntax Highlighting der String als nicht beendet erkannt.

    Sind aber alles keine Showstopper. Das Plugin ist echt sehr nützlich. Sogar BASIC Debugging funktioniert. Wenn ich wo anhalte dann erscheint "VICE antwortet nicht. Beenden erzwingen?" - liegt aber vermutlich an VICE selbst. Mein System hier ist Linux Mint 21.2, VSCode 1.87.1, VS64 V2.5.3. VICE 3.8 GTK.

    Vielen Dank für VS64 und bitte dran bleiben :thumbsup:

    Schöne Grüße!