Hello, Guest the thread was viewed49k times and contains 524 replies

last post from 64erGrufti at the

Meine Einführung in C64 Maschinensprache / Assembler

  • Vielleicht fallen mir ja noch weitere nützliche Programme ein, die man in einem Anfängerkurs entwickeln könnte.


    Das Entwickeln von konkreten Programmen ist mir ehrlich gesagt wichtiger, als krampfhaft soviele Themen wie möglich in den Anfängerkurs zu packen.

    Falls Du noch andere Ideen als einen Sprite-Editor suchst: Ein konkretes Projekt wäre vielleicht die Entwicklung eines kleinen Disassemblers in Assembler. Das hat für mich Bezug zu einem Anfängerkurs und ist meiner Meinung nach überschaubar und nicht allzu schwierig. Ich habe das mal gemacht und finde, es deckt eine ganze Menge Anfängerthemen ab.

    Klingt interessant, danke!


    lg, Markus

  • Meine Assemblerzeiten liegen lange zurück, aber der Wille zur Auffrischung ist definitiv da, deshalb finde ich Deinen Kurs auch super. Ich hatte mir mal vorgenommen, aber bisher noch nicht mal angefangen, eine einfache Pong-Variante in Assembler für den C64 zu programmieren. Gibt es natürlich schon Zigfach, aber würde hoffen, dass das nicht zu schwierig ist, aber vielleicht täusche ich mich auch. Spiel würde dann mit einem Hires Startbildschirm losgehen, dann drückt man Taste und das sehr einfache Schwarzweiss-Feld erscheint, die beiden Schläger und der Ball sind Sprites und es gibt große Zahlen für den Spielstand. Ggfs. kann man noch zwischen Ein- und Zweispielermodus wählen.

  • Meine Assemblerzeiten liegen lange zurück, aber der Wille zur Auffrischung ist definitiv da, deshalb finde ich Deinen Kurs auch super. Ich hatte mir mal vorgenommen, aber bisher noch nicht mal angefangen, eine einfache Pong-Variante in Assembler für den C64 zu programmieren. Gibt es natürlich schon Zigfach, aber würde hoffen, dass das nicht zu schwierig ist, aber vielleicht täusche ich mich auch. Spiel würde dann mit einem Hires Startbildschirm losgehen, dann drückt man Taste und das sehr einfache Schwarzweiss-Feld erscheint, die beiden Schläger und der Ball sind Sprites und es gibt große Zahlen für den Spielstand. Ggfs. kann man noch zwischen Ein- und Zweispielermodus wählen.

    Wäre definitiv ein interessantes Projekt, rein vom Gefühl her würde ich die Komplexität jedoch zu hoch für einen Anfängerkurs einschätzen.


    Im Kurs für Fortgeschrittene jedoch auf alle Fälle gut platziert!


    Lg, Markus

  • Sprite-Editoren gibt es ja schon so einige. :rolleyes:


    Andere Idee: Wie wäre es denn mit einem einfachen (!) Text-Editor? Ich glaube, da herrscht noch eher echter Bedarf.


    Ich habe zum Beispiel diesen (älteren) Thread dazu gefunden:

    Texteditor


    Zitat:

    "mich nervt das auch schon lange, dass es keine einfache kompakte Editor-Lösung für den C64 gibt"

  • Hallo!


    Müsst ich mir mal anschauen wie hier der Aufwand und die Komplexität ist. Die Frage ist halt was man unter "einfach" versteht, da hat glaub ich jeder so seine eigenen Vorstellungen. Ein Editor hat ja mitunter Funktionen, die auf den ersten Blick vielleicht einfach aussehen, aber oft nicht ganz so trivial zu programmieren sind.


    Folgende Fragen fallen mir da beispielsweise spontan ein:

    • Beschränkt man sich auf eine Bildschirmseite oder soll sich der Text auch über mehrere Seiten erstrecken können, sodass vertikales Scrolling programmiert werden muss?
    • Soll der Editor einen Einfüge- / Löschmodus bieten?

    Mir kommt es halt darauf an, einen Assembler-Anfänger mit den Programmierbeispielen zwar zu fordern, aber nicht zu überfordern. Es soll schon ein wenig Denkarbeit und Auseinandersetzung mit dem Assembler-Code erforderlich sein, um die Funktionsweise des Programms zu verstehen, aber das Wichtigste bei einem Anfängerkurs ist meiner Meinung nach, dass man die gelernten Assembler-Befehle in der Anwendung sieht und vor allem wie sie zusammenspielen und sich gegenseitig beeinflussen.


    lg, Markus

  • Hi

    wie wäre es mit folgender Idee.

    Als ich schon eine weile mit Basic handiert habe, kam eines Tages mein Cousins mit folgender Idee um die Ecke.

    In der Hand hielt er ein paar Blätter mit verschiedene geometrischen Figuren darauf.

    Er schlug folgendes für ein kleinen Wettbewerb vor.

    Jeder von uns soll in Basic einer diese Figuren nachbauen mit Inputeingabe für Länge und Breite.

    Und am Ende gewinnt dann der, der am schnellsten war.


    Nun gute ich war zwar nicht der schnellste aber mein Programmcode war dafür der kürzstet.

    Aber das tut jetzt hier nichts zur Sache.

    Aber man könnte es doch auch mit Assembler machen.

    So erlernt man Schleifen, Parametereingabe und Bildschirmausgabe.

    Was meinst du zur solch einer Idee.

  • Folgende Fragen fallen mir da beispielsweise spontan ein:
    • Beschränkt man sich auf eine Bildschirmseite oder soll sich der Text auch über mehrere Seiten erstrecken können, sodass vertikales Scrolling programmiert werden muss?
    • Soll der Editor einen Einfüge- / Löschmodus bieten?

    Das kannst du ja alles entscheiden, wie du es für richtig bzw. machbar hältst.

  • Hallo!


    Wollte mich mal zum aktuellen Stand der Dinge melden. Ich hab nun den Sprite-Editor, den ich als Abschluss-Programm für den Anfängerkurs angedacht hatte, fertiggestellt :)



    Da ist so ziemlich alles drin, was bisher im Kurs gebracht wurde und noch vieles mehr:

    • 16bit Addition, 16bit Subtraktion, 16bit ASL
    • Die Befehle ROL und ROR - ich habe nie verstanden wofür die gut sind, nun weiß ich es
    • Verwendung von KERNAL-Routinen (unter anderem File IO)
    • Aufgliederung eines größeren Programms in Unterprogramme
    • Dokumentation des Assembler-Codes
    • Hin- und Herkopieren von Speicherbereichen
    • Indirekte Y-nachindizierte Zeropage-Adressierung

    Ist glaub ich ein guter Abschluss für den Kurs und ich habe an der einen und anderen Stelle absichtlich Raum für Verbesserungen gelassen, damit sich der Leser damit auseinandersetzen und eigene Ideen umsetzen kann.


    Stand aktuell umfasst das Programm 1551 Bytes und es funktioniert soweit echt gut. Ich kann z.B. im BASIC-Editor programmieren, den Sprite-Editor jederzeit mit SYS aufrufen, ein Sprite erstellen / ändern, dieses dann in ein File speichern und dadurch in ein Programm (egal ob BASIC oder Assembler) einbinden.


    Der Editor ist aktuell auf einfarbige Sprites ausgerichtet, aber mit dem Wissen, das in dem Kurs vermittelt wird, lässt sich der Editor auf alle Fälle eigenständig auf mehrfarbige Sprites erweitern würde ich jetzt mal behaupten.

    Nun muss ich mich nur noch daran machen, das entsprechende Kapitel mit sämltichen Erklärungen usw. zu schreiben und das wird glaub ich aufwändiger als die Programmierung selbst.


    Die anderen Programm-Vorschläge habe ich jedoch nicht vergessen und ich denke, die werde ich dann im Fortgeschrittenen-Kurs bringen.


    lg, Markus

  • Hallo zusammen!


    Also ich hätte mir nicht gedacht, was da nun im letzten Kapitel bei der schrittweisen Erklärung des Sprite-Editors an Arbeit auf mich zukommt! Aber der Anfang ist zumindest mal gemacht, ich hab bis jetzt die 16 Bit Versionen der Befehle ASL und ADC sowie ein Unterprogramm zur Umrechnung einer Position (Zeile / Spalte) in eine Adresse im Bildschirmspeicher erklärt.


    Aber da liegt noch ein weiter Weg vor mir. Trotzdem würde es mich interessieren, was ihr von den aktuellen Beschreibungen haltet. Auf Github liegt ein File namens spriteeditor.pdf, welches den aktuellen Stand des Kapitels beinhaltet. Wie gesagt, es ist noch nicht viel, aber zumindest ein Anfang :)


    Auf dem Image ASSEMBLERKURS ist der fertige Sprite-Editor schon mal zum Ausprobieren enthalten. Geladen wird er mit LOAD"SPRITEEDITOR",8,1 und gestartet mit SYS 12288.

    Er ist zwar schon recht brauchbar, aber mit Absicht noch nicht perfekt gestaltet, weil ich Raum für Verbesserungen lassen und den Leser dazu motivieren wollte, diese auch selbständig umzusetzen.


    lg, Markus

  • Auf Github liegt ein File namens spriteeditor.pdf, welches den aktuellen Stand des Kapitels beinhaltet.

    Ich würde mich freuen, wenn du in deine Signatur einen Link auf dein Github-Repo legen könntest. Irgendwie weiß ich nie, wo ich hinsoll...


    Arndt

  • Auf Github liegt ein File namens spriteeditor.pdf, welches den aktuellen Stand des Kapitels beinhaltet.

    Ich würde mich freuen, wenn du in deine Signatur einen Link auf dein Github-Repo legen könntest. Irgendwie weiß ich nie, wo ich hinsoll...


    Arndt

    Hallo Arndt!


    Danke für den Hinweis, hab den Link nun in der Signatur hinterlegt :)


    lg, Markus

  • Hallo!


    Wollte nur mal mitteilen, dass das Kapitel zur Erstellung des Sprite-Editors bald fertig sein wird.

    In dem Kapitel steckt wirklich eine Menge Arbeit, aber es hat sich gelohnt und ich bin schon gespannt auf euer Feedback.


    Melde mich, wenn das Kapitel fertig ist :)


    lg, Markus

  • Das du bei der Hitze noch weitermachen kannst, Hut ab.

    Oder ist es weil du vor Wärme nicht schlafen kannst? :D


    Also nur kein Stress und Danke für das bisher geleistete.

    Guten Morgen!


    Du hast natürlich recht, die Hitze macht einem ganz schön zu schaffen, aber wenigstens kann ich jederzeit zur Abkühlung in den Pool :)

    Aber das Schreiben macht trotzdem Spaß, ich mache alle paar Tage ein wenig weiter wenn's gerade passt, irgendwann kommt man auch mit kleinen Schritten ans Ziel :)


    lg, Markus