Meine Einführung in C64 Maschinensprache / Assembler

Es gibt 719 Antworten in diesem Thema, welches 94.547 mal aufgerufen wurde. Der letzte Beitrag (19. November 2025 um 17:56) ist von 64erGrufti.

  • Spasm ist ein lustiger Name für einen Assembler

    :D :D:D

    erst jetzt wo du es schreibst aufgefallen, beim speichern dachte ich nur an SPrite ASM für die Assembler-Version von dem BASIC-Programm

    Hier der Link zum Github - Repo des Assembler-Kurses: Bitte melde dich an, um diesen Link zu sehen.

  • Ach was, Spasm ist doch eh super

    Gibt's anscheinend schon was für Z80

    Da kann man sich wahrscheinlich gar nichts Neues einfallen lassen.

    Fantasm oder Phantasm gibt es sicher auch schon.

  • Aber mal eine andere Frage zu dem Thema:

    Gibt es irgendwo eine Offline-Doku zu den ganzen Kernel- und Basic-Routinen? So mit allen Infos, wie und was als Parameter übergeben werden muss, was wo zurück kommt und was evtl. vorher noch ausgeführt werden muss.

    Ich habe zwar schon in manchen Büchern Auflistungen gesehen, da stehen aber meistens keine Parameter dabei, oder es sind nur ausgewählte Funktionen beschrieben.

  • Die All About Your C64 docs sind zwar (verteiltes) HTML, aber das kann man sich auch komplett herunterladen. Hier zur Seite: Bitte melde dich an, um diesen Link zu sehen.

    Edit: Grade gesehen, die Routinen-Aufrufe sind da nicht mit dabei, die gibt es hier: Bitte melde dich an, um diesen Link zu sehen.

    C64Studio: Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen. --- C64Studio WIP: 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.

  • Edit: Grade gesehen, die Routinen-Aufrufe sind da nicht mit dabei, die gibt es hier: Bitte melde dich an, um diesen Link zu sehen.

    Das sieht doch schon mal gut aus. Gibt es sowas auch für die Basic-Routinen?

    Edit: Und gibt es dazu noch eine Beschreibung, wie die zusammen benutzt werden müssen? Z.B. wenn man an die Floppy etwas senden will, muss man doch glaube 3 Funktionen aufrufen. Sowas meine ich.

  • Und gibt es dazu noch eine Beschreibung, wie die zusammen benutzt werden müssen? Z.B. wenn man an die Floppy etwas senden will, muss man doch glaube 3 Funktionen aufrufen.

    Aus dem Buch "Alles über den C64":

    Bitte melde dich an, um diesen Anhang zu sehen.

  • Wenn ich mich nicht komplett irre ist sowas auch im Assemblerbuch von Said Baloui

    Genau das ist so ein Beispiel, was ich meine. Da stehen gerade mal 7 Kernel-Befehle drin. In der Liste von Endurion sind es 39.

    Aus dem Buch "Alles über den C64":

    Da sind auch 39 drin. Das sieht auf den ersten Blick schon mal vielversprechend aus:thumbsup:

    Schade, die Basic-Funktionen scheinen nicht enthalten zu sein.

  • Wenn ich mich nicht komplett irre ist sowas auch im Assemblerbuch von Said Baloui

    Genau das ist so ein Beispiel, was ich meine. Da stehen gerade mal 7 Kernel-Befehle drin. In der Liste von Endurion sind es 39.

    Aus dem Buch "Alles über den C64":

    Da sind auch 39 drin. Das sieht auf den ersten Blick schon mal vielversprechend aus:thumbsup:

    Schade, die Basic-Funktionen scheinen nicht enthalten zu sein.

    Es gibt nur 39

  • Ich glaube es war Mac Bacon , der mal meinte, dass dafür ein ROM-Listing sinniger wäre, weil sich die Routinen oft ganz unerwartet verhalten würden.

    Ein ROM-Listing finde ich zu kompliziert. Wenn ich eine Funktion suche, dann will ich doch nicht das ganze Listing durchstöbern, sondern eine Funktion, die die vpn mir gewünschte Aufgabe erledigt. Man kann ja in so einem Fall darauf hin weisen, dass das nur unter bestimmten Vorruassetzungen geht. Das ist aber als Listing finde ich das viel zu kompliziert.

  • Man kann ja in so einem Fall darauf hin weisen, dass das nur unter bestimmten Vorruassetzungen geht.

    Diese Fleißarbeit hat sich meines Wissens nach noch niemand so richtig aufgebürdet.

    Aber schau dir auch das Buch "Das Betriebssystem des Commodore 64" von Data Becker an, ob das vollständig ist. Ist auch in der Wolke zu finden.

  • Aber das aus "Alles über den C64" sieht doch gut aus. Genau sowas für die Basic-Befehle fehlt nur noch.

    Für die Float-Routinen siehe Bitte melde dich an, um diesen Link zu sehen..

    Ich glaube es war Mac Bacon , der mal meinte, dass dafür ein ROM-Listing sinniger wäre, weil sich die Routinen oft ganz unerwartet verhalten würden.

    Kann sein - ich erinnere mich nicht daran, aber es klingt plausibel. :D

    Der Großteil des Codes im BASIC-ROM dient eben dazu, ein BASIC-Programm zu interpretieren und kann daher nicht sinnvoll von eigenen Maschinenspracheprogrammen verwendet werden. Ausnahmen sind z.B. die oben erwähnten Float-Routinen und die bekannte String-Ausgabefunktion bei $ab1e. Letztere hat aber auch ein paar fiese BASIC-Macken, z.B. kann sie nur maximal 255 Zeichen ausgeben und hört bei einem Doublequote einfach auf.

    Und wann und wie man die Block-Verschiebe-Funktion benutzen kann bzw. darf, wird hier irgendwo in einem anderen Thread abgehandelt.

    Yes, I'm the guy responsible for the Bitte melde dich an, um diesen Link zu sehen. cross assembler. And some Bitte melde dich an, um diesen Link zu sehen..

  • Diese Fleißarbeit hat sich meines Wissens nach noch niemand so richtig aufgebürdet.

    Schade, aber kann man dann halt nicht ändern wenn es da noch nix gibt.

    Aber schau dir auch das Buch "Das Betriebssystem des Commodore 64" von Data Becker an, ob das vollständig ist. Ist auch in der Wolke zu finden.

    Jo, schaue ich auch mal rein.

  • Der Großteil des Codes im BASIC-ROM dient eben dazu, ein BASIC-Programm zu interpretieren und kann daher nicht sinnvoll von eigenen Maschinenspracheprogrammen verwendet werden

    Vielleicht sollte man mal eine Sammlung (Wiki, etc.) machen, wo man die Routinen mit den nötigen Informatinen sammelt, die nutzbar sind.

  • Der Großteil des Codes im BASIC-ROM dient eben dazu, ein BASIC-Programm zu interpretieren und kann daher nicht sinnvoll von eigenen Maschinenspracheprogrammen verwendet werden

    Vielleicht sollte man mal eine Sammlung (Wiki, etc.) machen, wo man die Routinen mit den nötigen Informatinen sammelt, die nutzbar sind.

    Diese Seite im C64-Wiki drängt sich hier für entsprechende Erweiterungen geradezu auf: ;)

    Bitte melde dich an, um diesen Link zu sehen.

  • Vielleicht sollte man mal eine Sammlung (Wiki, etc.) machen, wo man die Routinen mit den nötigen Informatinen sammelt, die nutzbar sind.

    Ja, leg los.

    Yes, I'm the guy responsible for the Bitte melde dich an, um diesen Link zu sehen. cross assembler. And some Bitte melde dich an, um diesen Link zu sehen..

  • Diese Seite im C64-Wiki drängt sich hier für entsprechende Erweiterungen geradezu auf: ;)


    Bitte melde dich an, um diesen Link zu sehen.

    Tja, dann würde ich sagen, fehlt es nur noch an denen, die sich damit auskennen und was eintragen. Allerdings weiß ich nicht, ob diese Seite da wirklich so passend ist. Das was dort eingetragen ist, sind ja alles Basic-Beispiele. Das ist ja auch der urprüngliche Zweck dieser Funktionen. Hier geht es aber um die Nutzung unter Assembler. Ich weiß nicht, ob man das wirklich dort auch noch hinzufügen sollte.