Meine Einführung in C64 Maschinensprache / Assembler

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

  • Wenn du das JMP durch ein BNE ersetzt, sparst du ein Byte und vermeidest außerdem eine Endlosschleife, falls an der gegebenen Stelle kein Nullbyte kommt. :)

    Hat beides seinen Sinn.

    Der Vorschlag von Dir ist sicherer. Dafür muss ich da bereits die Länge des Strings kennen. Die Lösung von Markus ist etwas mehr an Basic (und an viele andere Programmiersprachen mit Strings) angelehnt und vielleicht für Anfänger sogar etwas schöner.

  • Gibt es eigentlich in Verbindung mit aktuellen C64-Entwicklungsumgebungen eine ähnliche Lösung, um einen PC mit dem C64 zu verbinden und Code zu starten?

    Hier hat jemand eine eigene Lösung für den C64 beschrieben

    • Bitte melde dich an, um diesen Link zu sehen.

    Für den Bitte melde dich an, um diesen Link zu sehen., der ja auch einen integrierten C64 Modus hat, gibt es M65connect

    • Bitte melde dich an, um diesen Link zu sehen.
    • Bitte melde dich an, um diesen Link zu sehen.

    und auch eine Monitor-Funktion über die serielle Schnittstelle

    • Bitte melde dich an, um diesen Link zu sehen.

    Zu M65Connect gibt es auch ein informatives Video:

    Bitte melde dich an, um dieses Medienelement zu sehen.

  • Dafür muss ich da bereits die Länge des Strings kennen.

    Ähhh.. nein. Wie kommst du denn darauf?

    Bitte melde dich an, um diesen Link zu sehen. - Ratespiel • Bitte melde dich an, um diesen Link zu sehen. - BASIC-Erweiterung • Bitte melde dich an, um diesen Link zu sehen. - Sprite-Editor • Bitte melde dich an, um diesen Link zu sehen. - Zeichensatz-Editor Bitte melde dich an, um diesen Link zu sehen. - 2048 Blöcke

  • Wenn du das JMP durch ein BNE ersetzt, sparst du ein Byte und vermeidest außerdem eine Endlosschleife, falls an der gegebenen Selle kein Nullbyte kommt. :)

    Hat beides seinen Sinn.

    Der Vorschlag von Dir ist sicherer. Dafür muss ich da bereits die Länge des Strings kennen. Die Lösung von Markus ist etwas mehr an Basic (und an viele andere Programmiersprachen mit Strings) angelehnt und vielleicht für Anfänger sogar etwas schöner.

    Genau, aktuell geht's mir eher noch um die Verständlichkeit für Anfänger. Aber trotzdem danke goloMAK , ich kann mir das ja trotzdem mitnehmen um zu zeigen wie man hier und da Speicherplatz sparen kann.

    Hab das abschließende Beispiel für das Kapitel über Unterprogramme fertig. Ich musste hier und da immer wieder kleine Anpassungen vornehmen und da hab ich gemerkt dass das im SMON mit zunehmender Programmlänge ziemlich umständlich wird. Nun bin ich am Überlegen wie ich diesbezüglich weitermache, eine Alternative wäre vielleicht der Turbo Assembler oder eventuell gleich ein Wechsel auf das CBM prg Studio.

    Beim CBM prg Studio hab ich allerdings die Befürchtung dass sich manche Einsteiger vielleicht von der Funktionsfülle erschlagen fühlen. Weniger ist oft mehr.

    Habt ihr da eventuell Vorschläge was hier am sinnvollsten wäre?

    lg, Markus

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

  • Iich nehme gern das hier:

    Bitte melde dich an, um diesen Link zu sehen.

    Amiga 500, Amiga 1200 OVP, Turbo Chameleon 64

    2 x C128 D , einige C64, C16 64K OVP

    1541, 1541II, 1571, 1581, 1084, DTV

    Spectrum 16K , Robotron KC 87, Robotron KC 85/3

  • Die Kombi ACME & Notepad++ (mit nachgerüstetem 6502 Syntax-Hightlighting) ist zum Programmieren am PC vollkommen ausreichend.

  • Habt ihr da eventuell Vorschläge was hier am sinnvollsten wäre?

    Ich finde den Kurs mit C64-Mitteln eigentlich eine schöne Idee. Deshalb würde ich nicht auf C64Studio etc. gehen. Am C64 wäre noch ExAss eine Möglichkeit.

    Sicherlich hat man mit externen Mitteln mehr Komfort. Aber man legt sich auf bestimmte externe Systeme fest. Und im Grunde genommen geht es ja gar nicht um die externen Systeme, sondern um den C64. Deshalb fände ich das eine tolle Sache, wenn man auch nichts anderes dafür bräuchte.

  • Was ist denn jetzt eigentlich die aktuellste Version? Könnte man das irgendwo festmachen?

    Die ganzen Nebendiskussionen und Erklärbärereien lassen das irgendwie untergehen.

  • Ähhh.. nein. Wie kommst du denn darauf?

    Woher willst Du denn wissen, wann der String zuende ist?

    Durch das Nullbyte?

    Bitte melde dich an, um diesen Link zu sehen. - Ratespiel • Bitte melde dich an, um diesen Link zu sehen. - BASIC-Erweiterung • Bitte melde dich an, um diesen Link zu sehen. - Sprite-Editor • Bitte melde dich an, um diesen Link zu sehen. - Zeichensatz-Editor Bitte melde dich an, um diesen Link zu sehen. - 2048 Blöcke

  • Habt ihr da eventuell Vorschläge was hier am sinnvollsten wäre?

    Du kannst einen schicken C64-Assembler verwenden. Dann ist alles "original"! 8o

    Ich habe früher gerne den VisAss aus der 64er genommen. Aber die grundsätzliche Syntax ist ja immer recht ähnlich.

    Oder du nimmst doch eine moderne Suite und betonst, dass du im Rahmen des Kurses nur die Kernfunktionen benutzen wirst.

    Bitte melde dich an, um diesen Link zu sehen. - Ratespiel • Bitte melde dich an, um diesen Link zu sehen. - BASIC-Erweiterung • Bitte melde dich an, um diesen Link zu sehen. - Sprite-Editor • Bitte melde dich an, um diesen Link zu sehen. - Zeichensatz-Editor Bitte melde dich an, um diesen Link zu sehen. - 2048 Blöcke

  • Durch das Nullbyte?

    Wenn du das JMP durch ein BNE ersetzt, sparst du ein Byte und vermeidest außerdem eine Endlosschleife, falls an der gegebenen Stelle kein Nullbyte kommt. :)

    Du hast doch selbst gesagt, dass Du die Nullbyte-Erkennung raus werfen willst. Das Beispiel von Makrus läuft ja gerade genau so weit, biss ein Nullbyte kommt. Wenn es natürlich keines gibt, gibt es eine Endlosschleife. Dann musst Du ja irgendwie anders wissen, wann der String zuende ist.

  • Du hast doch selbst gesagt, dass Du die Nullbyte-Erkennung raus werfen willst.

    Nein. Ich habe gesagt, *falls* das Nullbyte mal fehlt, ist es natürlich grundsätzlich von Vorteil, wenn die Routine sich dann nicht gleich aufhängt.

    Bitte melde dich an, um diesen Link zu sehen. - Ratespiel • Bitte melde dich an, um diesen Link zu sehen. - BASIC-Erweiterung • Bitte melde dich an, um diesen Link zu sehen. - Sprite-Editor • Bitte melde dich an, um diesen Link zu sehen. - Zeichensatz-Editor Bitte melde dich an, um diesen Link zu sehen. - 2048 Blöcke

  • Was ist denn jetzt eigentlich die aktuellste Version? Könnte man das irgendwo festmachen?

    Die ganzen Nebendiskussionen und Erklärbärereien lassen das irgendwie untergehen.

    Ich arbeite noch daran das Kapitel über den Stack und die Unterprogramme fertigzumachen, sobald das fertig ist stell ich die aktuelle Version auf GitHub. Ich denk am Montag sollt's die aktuelle Version dann geben :)

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

  • Nein. Ich habe gesagt, *falls* das Nullbyte mal fehlt, ist es natürlich grundsätzlich von Vorteil, wenn die Routine sich dann nicht gleich aufhängt.

    Ohgott, da muss man sich Deinen Vorschalg ja 10x ansehen, um das erstmal zu verstehen. Nein, für einen Anfänger ist das JMP definitiv das bessere. Nicht gleich überfordern.

  • Ohgott, da muss man sich Deinen Vorschalg ja 10x ansehen, um das erstmal zu verstehen.

    Na, wenn du meinst... :rolleyes:

    Bitte melde dich an, um diesen Link zu sehen. - Ratespiel • Bitte melde dich an, um diesen Link zu sehen. - BASIC-Erweiterung • Bitte melde dich an, um diesen Link zu sehen. - Sprite-Editor • Bitte melde dich an, um diesen Link zu sehen. - Zeichensatz-Editor Bitte melde dich an, um diesen Link zu sehen. - 2048 Blöcke

  • Na, wenn du meinst... :rolleyes:

    Für einen Anfänger muss es einfach sein. Klar, man kann auch gleich mit der Programmierung eines Spiels anfangen. Aber dann steigen alle aus.

    Ich denke, genau das ist der Grund, warum so viele aus anderen Kursen aussteigen. Sie sind überfordert. Gerade das finde ich an der Anleitung von Markus richtig gut. Er geht in kleinen Schritten. Das, was Markus in den 84 Seiten macht, haben andere in 10 gemacht. Ja klar, es gibt auch Leute, die mit der Geschwindigkeit mit halten können. Aber Markus hatte doch gerade die Idee, einen Kurs zu gestalten, der genau das nicht macht, sonder für jeden verständlich sein soll. OK, dass es verschiedene Lerntypen gibt, haben wir ja bereits erläutert. Aber ich gleube, genau für diejenigen, die bei den anderen Kursen nicht mit kommen, fehlt noch eine Lösung. Andere Kurse haben wir ja schon viele.

  • Na, wenn du meinst... :rolleyes:

    Für einen Anfänger muss es einfach sein. Klar, man kann auch gleich mit der Programmierung eines Spiels anfangen.


    Ich hatte extra dazu geschrieben: "Das soll nicht heißen, dass du das in deinem Kurs so machen sollst". Soll ich es noch rot einrahmen?

    Bitte melde dich an, um diesen Link zu sehen. - Ratespiel • Bitte melde dich an, um diesen Link zu sehen. - BASIC-Erweiterung • Bitte melde dich an, um diesen Link zu sehen. - Sprite-Editor • Bitte melde dich an, um diesen Link zu sehen. - Zeichensatz-Editor Bitte melde dich an, um diesen Link zu sehen. - 2048 Blöcke

  • Habt ihr da eventuell Vorschläge was hier am sinnvollsten wäre?

    Ich finde den Kurs mit C64-Mitteln eigentlich eine schöne Idee. Deshalb würde ich nicht auf C64Studio etc. gehen. Am C64 wäre noch ExAss eine Möglichkeit.

    Sicherlich hat man mit externen Mitteln mehr Komfort. Aber man legt sich auf bestimmte externe Systeme fest. Und im Grunde genommen geht es ja gar nicht um die externen Systeme, sondern um den C64. Deshalb fände ich das eine tolle Sache, wenn man auch nichts anderes dafür bräuchte.

    Ja, ich würd auch irgendwie gerne lieber auf dem C64 bleiben und eher nicht auf C64 Studio usw. wechseln. Ich schau mal was es da direkt für den C64 so alles gibt als Alternativen zum SMON, wird sich schon was passendes finden :)

    Danke für den Hinweis, ExAss werd ich mir auch mal anschauen.

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