C64 Assembler Beispielquellcode für neue, eigene Basic Befehle (Token)

  • Hallo,

    gibt es hier noch Programmierer die mit Assembler "spielen"? Hin und wider setzte ich mich an meine alten C64 und programmiere ein wenig mit/über den TMP. Ich habe mir kleine Basic Erweiterungen programmiert, allerdings über den Aufruf von Sonderzeichen wie "@" oder "!". @c lösch dann beispielsweise den Screen oder @f,5,3 setzt die Bildschirm- und Rahmenfarbe. Allerdings finde ich keine wirklich guten (für mich verständliche) Beispiel um eigene Tokens zu nutzen (bspw. CLS als Befehl für Clear Screen oder Farben 5,2 für das setzten der Farben), die dann über die Vektoren $0308/$0309 interpretiert werden können.

    Falls hier also Profis lesen....gebt mir ein Zeichen! 😊

    Beste Grüße

    Marco

    Ich suche: Atari 800, MPF-IP

  • Hallo.


    Basic um einen Befehl, beginnend mit einem Sonderzeichen (zB @) zu erweitern, also eine sogenannte wedge, ist ja nur eine Möglichkeit, platzsparend aus der Kommandozeilen-Abfrage-Routine in ein eigenes Unterprogramm zu springen.

    Ich gehe mal davon aus, du hast dir den Source vom Betriebssystem mal komplett durchgelesen ?! Um vollständige/richtige Kommandos zu erstellen bzw. Tokens zu erstellen, musst du denke ich mal, den originalen Source abändern und ein Eprom damit brennen. Ich denke nicht, dass du das "von außen" machen kannst..


    Gruß Jan

  • Hi Jan,


    wenn einmal geladen und ausgeführt, setzte ich ein Interrupt auf die Vektoren $308, $309. Danach prüfe ich die Eingaben der Basic Zeile auf mein Zeichen. Das funktioniert alles ganz gut. Nun kann man auch eigene Tokens definieren und nach den Standard Tokens im Speicher platzieren. Mir fehlt nur ein "plastisches" Beispiel.


    Beste Grüße

    Marco

    Ich suche: Atari 800, MPF-IP

  • Letztes Jahr habe ich das C64 SPS Projekt gemacht.

    Da ist auch eine BASIC Befehle Erweiterung mit dabei.


    Das kann man gut als Basis verwenden für eigene Projekte.

    Da kann ich auch gerne behilflich sein.


    Es funktioniert in mehreren Schritten:

    • Token/Befehle Tabelle
    • Befehl zu Token Routine (bei Eingabe einer BASIC Zeile)
    • Token zu Befehl Routine (für den LIST Befehl)
    • Code für jeden einzelnen neuen Befehl


    Dazu habe ich die BASIC Formel Auswertung erweitert.

    Jetzt kann man zB. Hexadezimal Zahlen verwenden indem man ein $ Zeichen voran stellt.

    Und man hat eine Funktion die den Wert eines IO Punkt abfragt.



    Die Erweiterung kann auch Befehle die nicht in Token verwandelt werden.

    Weil sie nur im direkt Modus funktionieren, wie zB. RENUM und UNNEW.

  • Hallo Diddl,


    das klingt nach der richtigen Richtung. Wo erfahre ich mehr darüber, bzw. gibt es Quellcode in den ich reinschauen kann?


    Beste Grüße

    Marco

    Ich suche: Atari 800, MPF-IP

  • Wo erfahre ich mehr darüber

    C64 SPS –




    gibt es Quellcode in den ich reinschauen kann?

    Ja klar gibts den Quellcode.

    Wenn es nicht auf der Seite ist, dann kann ich es dir morgen raus suchen.

  • Hi Diddl,


    auf der Seite habe ich nix gefunden. Gerne kannst Du, wenn die Zeit dafür da ist, mir etwas per PN senden. Muss nicht das komplette Programm sein, sondern nur der Part der relevant ist. Das mit den Sonderzeichen realisiere ich in etwa wie hier beschrieben: https://www.c64-wiki.de/wiki/BASIC-Erweiterung

    Ich habe im Netz auch ein paar Hinweise zur Tokenisierung gelesen aber nicht so richtig verstanden. Ich brauche irgendwas, was den Knoten in meinem Kopf platzen lässt 😊


    Danke und Beste Grüße

    Marco Rey y Sander

    Ich suche: Atari 800, MPF-IP

    Einmal editiert, zuletzt von discmix ()

  • Token -> Tokenisierung


    Das mit dem "wedge" , also Anfangsbuchstabe testen und wenn eigener dann verzweigen, war mal ausführlich in einer 64er oder HomeComputer beschrieben. Für alles andere - Token vergeben und darauf testen - müßte man doch eigentlich das ROM erweitern; wäre zumindest mein Verständnis davon.



    edit: HC gefunden , aber funktioniert völlig anders https://archive.org/details/hc…1985-09/page/n43/mode/2up

    -- 1982 gab es keinen Raspberry Pi , aber Pi und Raspberries

    Einmal editiert, zuletzt von ThoralfAsmussen ()

  • Token -> Tokenisierung


    Das mit dem "wedge" , also Anfangsbuchstabe testen und wenn eigener dann verzweigen, war mal ausführlich in einer 64er oder HomeComputer beschrieben. Für alles andere - Token vergeben und darauf testen - müßte man doch eigentlich das ROM erweitern; wäre zumindest mein Verständnis davon.

    Ich bin mir jetzt nicht sicher, was du mit ROM-Erweiterung meinst. Aber es gab natürlich auch schon für den PET/CBM Basic-Erweiterungen mit eigenen Tokens, wie zum Beispiel Exbasic Level II. Das ROM muss dafür weder beim PET noch beim C64 modifiziert werden. Beim PET läuft das alles über die CHRGET-Routine.

    • i-Telex 7822222 dege d

    • technikum29 in Kelkheim bei Frankfurt

    • Marburger Stammtisch

    Douglas Adams: "Everything, that is invented and exists at the time of your birth, is natural. Everything that is invented until you´re 35 is interesting, exciting and you can possibly make a career in it. Everything that is invented after you´re 35 is against the law of nature. Apply this list to movies, rock music, word processors and mobile phones to work out how old you are."

  • Interessant. Das wäre dann ja genau das, was discmix sucht. Muß man nurmal noch ein Assemblerlisting davon finden. Auf die Schnelle habe ich nur bei archive ein ausführbares Programm mit torrent Link gesehen.


    Sind keine ganz uninteressanten Befehle dabei.


    https://www.c64-wiki.de/wiki/Exbasic_Level_II , https://archive.org/details/d64_Exbasic_Level_II_1983_Nobody

    -- 1982 gab es keinen Raspberry Pi , aber Pi und Raspberries