Hello, Guest the thread was viewed13k times and contains 47 replies

last post from BlondMammuth at the

6502 Port des vbcc C Compilers

  • Eine Frage insgesamt zum VBCC, und bitte nicht als Kritik gemeint, rein damit ich mich auskenne: Sehe ich das richtig, dass x64 nicht unterstützt wird (da x86 und i386 32-bitter sind)? Bzw. gibt es auch keine 8086, 80186, 80286 Unterstützung?


    Zusatz: Hintergrund der Frage ist, dass ich unter Linux (auch auf Windows portierbar angestrebt) einen kleinen Interpreter schreiben will, der gleichermassen auf modernen Plattformen wie auch auf dem C64 funktioniert. Da würde sich natürlich ein Compiler, der beides kann, idealerweise anbieten. Aber da auch GCC denselben Standard unterstützt, kann ich auch für die eine Seite gcc und für die andere vbcc verwenden.

    Es gibt aktuell kein vbcc-Backend für x64 und <=80286, hat allerdings nichts mit der Bitbreite zu tun, da kann vbcc alles unterstützen. Es gibt da einfach nicht wirklich Bedarf. Für x64 gibt es genug gute Compiler. Für i386 gibt es ein vbcc-Backend, aber das war hauptsächlich für mich zum Testen gedacht, würde ich jetzt auch nicht unbedingt empfehlen.


    Aber wie Du schon schreibst, spricht m.A.n. nichts dagegen, vbcc für 6502 und gcc für x64 zu benutzen. Sind ja beides C-Compiler und 6502-Spezifika müsste man bei einem vbccx64 oder vbcci386 ja auch anpassen.

  • Es gibt aktuell kein vbcc-Backend für x64 und <=80286, hat allerdings nichts mit der Bitbreite zu tun, da kann vbcc alles unterstützen. Es gibt da einfach nicht wirklich Bedarf. Für x64 gibt es genug gute Compiler. Für i386 gibt es ein vbcc-Backend, aber das war hauptsächlich für mich zum Testen gedacht, würde ich jetzt auch nicht unbedingt empfehlen.

    Klingt sehr logisch, danke!


    Aber wie Du schon schreibst, spricht m.A.n. nichts dagegen, vbcc für 6502 und gcc für x64 zu benutzen. Sind ja beides C-Compiler und 6502-Spezifika müsste man bei einem vbccx64 oder vbcci386 ja auch anpassen.

    Stimmt. Tu ich gerade, unter Einsatz der diversen Architektur-Macros. Was vielleicht noch interessant wird, ist, ob ich es schaffe, den VBCC unter Eclipse zum Einsatz zu bekommen. Falls nicht compiliere ich ausserhalb, falls ja, veröffentlich ich vielleicht noch hier, wie ich es gemacht habe. Aber das kann noch dauern.

  • I habe Version 3 der vbcc Distribution für 6502 hochgeladen: http://www.compilers.de/vbcc.html


    Major changes since last update:

    • - several bug fixes
    • - improved code generation
    • - linker mask optimizations to reduce overhead of some library functions (still much room for improvement)
    • - improved attribute checks for banking
    • - C64 new features:
      • - stdio functions allow file access on 1541 compatible drives
    • - MEGA65 new features:
      • - free license for commercial usage
      • - code generator uses 32bit extensions
      • - code generator uses HW multiplier
      • - full automated banking support
      • - ROM-less library enabling full use of the entire RAM
      • - stdio functions allow reading of files on SD card
    • - BBC new features:
      • - stdio functions allow file access
      • - full automated banking support for systems with sideways RAM
      • - support for command line arguments
      • - configuration for clean return after exit
    • - CBM PET new features:
      • - added as new target


    We are happy to announce that the Museum of Electronic Games & Art e.V. (http://www.m-e-g-a.org) has decided to sponsor the MEGA65 version of vbcc.

    This does not only help us to continue supporting and improving this port but it also allows us to relax the terms of use for the MEGA65 community. Everyone may now freely use vbcc to develop MEGA65 code for commercial as well as non-commercial usage (for details please refer to the license in the documentation).


    We thank MEGA e.V. for the confidence in vbcc and hope that this step will help in the creation of new software for the MEGA65.

  • - stdio functions allow file access on 1541 compatible drives

    Frage dazu: Wird die Datasette auch unterstützt? Bzw. ist sowas geplant, falls nicht?

    Ja, Default für __fname ist "__fnamedev=8", dafür müsstest du eine 1 übergeben.

  • - stdio functions allow file access on 1541 compatible drives

    Frage dazu: Wird die Datasette auch unterstützt? Bzw. ist sowas geplant, falls nicht?

    Ja, Default für __fname ist "__fnamedev=8", dafür müsstest du eine 1 übergeben.

    Vielen Dank für die Antwort! :thumbsup:

    Das Witzige daran ist, dass ich zufällig heute zum ersten Mal seit Monaten wieder eingeloggt habe, und das gleich zum richtigen Zeitpunkt. Das machts noch einmal netter hier. :D