WiC64 Application Entwicklung mit XC-Basic

There are 18 replies in this Thread which has previously been viewed 2,215 times. The latest Post (August 20, 2025 at 10:15 AM) was by LazyJones.

  • Da ich seit einiger Zeit meine C64 Programme welche mit Hilfe des WiC64 Moduls (oder Emulation in Vice) in XC=Basic schreibe, hatte ich mal angefangen Funktionen zu erstellen, die dann die eingenen Programme eingebunden werden.

    Die Highscore Liste im WiC64 Portal ist z.B. auch mit XC-Basic programmiert

    Diese Libary habe ich jetzt etwas überarbeitet. Hier ist in sachen Geschwinigkeit im Vergleich zu den reinen Assembler Routinen noch Luft nach oben. Also sind Verbesserungen auf jeden Fall willkommen.

    Mit der in der Library enthaltenen Funktionen kann der Datenverkehr zwischen dem C64 und einem Sever gestuert werden.

    Die neueste Version der Fuktionen (libary) mit Beispielen Quelltext, PRG Files und Serverprogramme (PHP) zum Ausprobieren könnt ihr hier runterladen:

    Please login to see this link.

    Ein Video (DEngsich :smile: ) welches die einzelnen Beispiele erläutert, findet ihr auf Youtube:

    Please login to see this media element.

    Bei Fragen gerne melden :smile:

  • Wenn ich mir "wic64X.bas" anschaue, ist die Initialisierung in asm geschrieben. Der Loop (und somit eher der zeitintesive Teil) in XC=Basic. Wenns um Geschwindigkeit geht, wäre es anders herum sinnvoller.

    Zudem ist folgender Abschnitt doppelt:

    Muss das so sein? Lässt sich das nicht als Unterroutine einbauen und wiederholt aufrufen? Da könnte man imho etwas Platz sparen.

  • Hi, danke für dien Input. Ich werde mir das die nächsten Tage mit dem loop ansehen und versuchen den doppelten Teil in eine Unterroutine auszulagern.

    Bei der wenigen Resonanz ist allerdings fraglich ob sich eine Weiterentwicklung überhaupt lohnt und ich die Lib nicht einfach nur für meine Anwendungen verwenden werde.

  • Bei der wenigen Resonanz ist allerdings fraglich ob sich eine Weiterentwicklung überhaupt lohnt und ich die Lib nicht einfach nur für meine Anwendungen verwenden werde.

    Ich hab das Video angeschaut und fand den Inhalt sehr gut präsentiert.

    Mit XC-Basic hab ich bisher nix gemacht, möchte ich aber mal.

    Und dann wär ich schon froh deine Lib verwenden zu können.

    Ich versteh aber, das der Aufwand nicht gerechtfertigt scheint.

    Man hat oft das Gefühl, dass die Community sehr aktiv ist.

    Und auf der anderen Seite scheint es, als ob es so viele Tools gäbe, dass auf jedes davon nur ein Entwickler kommen kann, der's verwendet.

    Vielleicht funktioniert's ja, wenn du immer wieder mal einen "Snapshot" davon als neue Version veröffentlichst, wenn du denkst, dass was relevantes dazugekommen ist.

    Also nicht die Lib als Selbstzweck entwickeln, sondern die Lib durch deine eigenen Projekte wachsen lassen.

    So hab ich VDC-Basic (das garnicht von mir ist) auch schon ein bisschen weiterentwickelt, ohne das Gefühl zu haben, Aufwand für Niemanden betrieben zu haben.

    Wer seinen Benutzernamen in Gelb geschrieben haben möchte, kann entweder das Forum finanziell unterstützen, oder hinter das Iglu gehn und seinen Namen in den Schnee schreiben

  • Ich wuerde das Projekt einfach auf Github stellen und dort pflegen, dann ist es maximal zugaenglich. Auch wenn Du anfangs vielleicht nur der einzige User bist. In einem Forum64-Thread kommt es halt nur alle Jubeljahre mal an die Oberflaeche, ich habe den Thread z.B. gerade erst gesehen. Zudem gibts ja inzwischen auch WiC64-User ausserhalb des Forums.

    - neue Spiele für den C64 -
    Please login to see this link.Please login to see this link.Please login to see this link.Please login to see this link.

  • Bei der wenigen Resonanz ist allerdings fraglich ob sich eine Weiterentwicklung überhaupt lohnt und ich die Lib nicht einfach nur für meine Anwendungen verwenden werde.

    Wie ZeHa schon meinte: Stell den Kram auf Github. Nicht nur, damit andere da maximal einfach drankommen, sondern einfach auch für dich selbst. Es ist ein so viel angenehmerer Workflow, am Ende einer Änderung diese einfach einchecken zu können und dann zu wissen, dass man noch auf alte Versionen zugreifen kann anstatt da irgendwie mit lokalen Kopien oder Ordnern und Backups rumzuwürgen.

    Zu viel Resonanz würde ich aber dennoch nicht erwarten. C64 ist ein Nische, das WiC64 ist ein sehr kleiner Teil davon, Leute die sowohl auf dem C64 also auch auf dem Server programmieren sind dann nochmal weniger und dann auch noch in einem BASIC-Dialekt, den niemand und Niemand sein Vater benutzen ... da dürfte nicht viel rüberkommen. Aber ich finde das nicht schlimm.

    Please login to see this link.

    Please login to see this link.

    Please login to see this link.

  • einem BASIC-Dialekt, den niemand und Niemand sein Vater benutzen

    Eigentlich sehr schade. Die Programme können übersichtlich und Modular aufgebaut werden. Und der erstellte code ist jetzt nicht das langsamste. Und der Entwickler ist greifbar so das immer wieder Verbesserungen und neue Befehle dazukommen, die einem das Leben erleichtern.

    Ob es Sinn machen würde, mal eine kleine Einführung in XC-Basic zu machen als Youtube Video?

    Wie ZeHa schon meinte: Stell den Kram auf Github. Nicht nur, damit andere da maximal einfach drankommen, sondern einfach auch für dich selbst. Es ist ein so viel angenehmerer Workflow, am Ende einer Änderung diese einfach einchecken zu können und dann zu wissen, dass man noch auf alte Versionen zugreifen kann anstatt da irgendwie mit lokalen Kopien oder Ordnern und Backups rumzuwürgen.

    Ich werde mich mal mit dem Thema auseinandersetzten.

  • Ob es Sinn machen würde, mal eine kleine Einführung in XC-Basic zu machen als Youtube Video?

    Wär toll, gibt so gut wie nix dazu.
    Schon garnicht auf deutsch

    Wer seinen Benutzernamen in Gelb geschrieben haben möchte, kann entweder das Forum finanziell unterstützen, oder hinter das Iglu gehn und seinen Namen in den Schnee schreiben

  • Ich werde das mal machen. Stimmt auf Deutsch ist eigentlich nix zu finden.

    Könnte man gut in 15-20 Minuten mal überfliegen die Befehle mit ein zwei Beispielen.

  • Ich werde mich mal mit dem Thema auseinandersetzten.

    Kleiner Tipp: Mach dir einen Account, lade GIT runter und fang einfach an (wenn du sowas wie Visual Studio nutzt, da ist die GIT-Integration ganz gut ... ansonsten über die Console). Mach nicht den Fehler und studiere die gesamte GIT-Doku mit allen Optionen. Die versteht kein Mensch, da wird man bekloppt von.

    Please login to see this link.

    Please login to see this link.

    Please login to see this link.

  • Ich habe mich da immer ein wenig vor gescheut, aber die Reichweite ist da schon besser und ich muss mich nicht mehr mit Ordnern in denen die verschiedenen Versionen liegen rumärgern...

  • Dank der kurz Erklärung von LazyJones auf der DoReCo hab ich mir das ganze jetzt mal auf meinem MacBook eingerichtet und ein wenig rum getestet. Ist schon sehr nett, was damit alles geht auch in Bezug auf das WiC64.

    An Grenzen stosse ich dabei, bereits vorhandene BasicV2 Programme an XC=Basic anzupassen, das ist doch teilweise echt anstrengend da einige Befehle halt einfach eine andere Syntax habe (z.B. INPUT) und auch an das Variablen Handling muss man sich wirklich gewöhnen. Ist für erfahrene Programmierer sicherlich weniger ein Thema aber ich struggle da doch arg ;)

    Aber hey, es macht Spass und ich bleibe am Ball, mal gucken was so geht :thumbsup:

    Die erzeugten PRGs sind jedenfalls echt flott :)

    "Werter Pöbel, wertes Gesocks ... aus dem Arsche zieht euch den Stock ..."

  • Super, das es bei dir jetzt eingerichtet ist und du die ersten Versuche positiv bewertest. Wenn du Hilfe an der einen oder anderen Ecke brauchst, dann sach kurz bescheid.

    Am besten dann hier im Thread, dann können alle mitlesen und ggf. auch Infos aus den Problemen bei der Übersetzung von V2 auf XC Basic bekommen und diese dann bei Ihren Programmen direkt mit der Lösung umschiffen :smile:

  • Hallo,

    ich hab XC-Basic mit dem Wic64 jetzt mal ausprobiert :smile:

    Folgendes Problemchen hab ich identifiziert und gelöst:

    Wenn ich die URL https://de.wikipedia.org/w/api.php?action=parse&page=Pirates!&format=json&prop=sections aufrufe, dann macht die PETSCII-to-ASCII Übersetzung nur die halbe Arbeit:

    Please login to see this attachment.

    Das große 'P' ist 0xD0 (dezimal 208), sollte aber eigentlich 0x50 (dezimal 80) sein.

    Das liegt daran, dass nur die Kleinbuchstaben in der XC-Basic Lib geprüft werden.

    Gelöst hab ichs dadurch, dass ich nach der Zeile mit der PETSCII to ASCII Umwandlung noch diese eingefügt habe:

    if sign >= 193 and sign <= 218 then sign = sign - 128

    Nun sieht's so aus :smile:

    Please login to see this attachment.

    Schöne Lib, vielen Dank dafür!

    (bloß mit XC-Basic selber will ich noch nicht so recht warm werden.)

    Wer seinen Benutzernamen in Gelb geschrieben haben möchte, kann entweder das Forum finanziell unterstützen, oder hinter das Iglu gehn und seinen Namen in den Schnee schreiben

  • So, hier nun das ganze im Github:

    Please login to see this link.

    LazyJones : Danke für die Library! Das ist genau das, was ich heute gesucht habe! :thumbup:


    Nur zur Sicherheit mal nachgefragt, weil ich keine Lizenzinfos o.ä. gefunden habe, die Seite bei Github

    Please login to see this link.

    ist die aktuellste Version der Library und ich kann die für meine Programme verwenden?

    Ich will erstmal bisschen damit rumprobieren, aber falls dann am Ende mal was "Vernünftiges" rauskommt, darf ich das mit deiner Library auch hier veröffentlichen?

  • Hallo Snoopy,

    du kannst die Lib gerne verwenden. Ich habe aber witziger weise eben erst gesehen, das Goodwell da wohl noch eine Verbesserung bei der URL Übergabe gemacht hat.

    Die sollte man noch mit einbauen, denke ich - kannst du das bei deinen Tests mit einbauen?

    Dann würde ich die auch auf Github aktualisieren.

  • Danke! Klappt soweit auch ganz gut! :thumbup:

    Ich habe mit deiner Library so einfach mal angefangen und damit bisschen rumgespielt. Ich muss erstmal schauen, wo ich dann hin will. :D

  • Das liegt daran, dass nur die Kleinbuchstaben in der XC-Basic Lib geprüft werden.


    Gelöst hab ichs dadurch, dass ich nach der Zeile mit der PETSCII to ASCII Umwandlung noch diese eingefügt habe:

    if sign >= 193 and sign <= 218 then sign = sign - 128

    Hi, noch mal vielen Dank für den Tipp und sorry für die späte Rückmelung. Hatte das nicht mehr auf dem Schirm und mich jetzt aufgrund eines Fehlers der bei mir auch aufgetreteten war daran erinnert.