Hello, Guest the thread was viewed39k times and contains 490 replies

last post from 64erGrufti at the

Meine Einführung in C64 Maschinensprache / Assembler

  • Vielleicht wäre mal eine Umfrage interessant, warum bzw. an welcher Stelle Leute, die schon einmal versucht haben, Maschinensprache zu lernen, dann wieder ausgestiegen sind.

    Das hatte markusk2020 hier ja mal gefragt. Zwar nicht per Umfrage, aber so im Thread. Da kamen ja auch einige Antworten.

  • Vielleicht wäre mal eine Umfrage interessant, warum bzw. an welcher Stelle Leute, die schon einmal versucht haben, Maschinensprache zu lernen, dann wieder ausgestiegen sind.

    Das hatte markusk2020 hier ja mal gefragt. Zwar nicht per Umfrage, aber so im Thread. Da kamen ja auch einige Antworten.

    Ich hatte auch schon mal einen eigenen Thread mit einer ähnlichen Frage erstellt: Was hielt euch bisher davon ab, mit dem Programmieren anzufangen?

  • Ich wollte eine simple Bildschirmlöschroutine schreiben.

    Genau das isses. BASIC-Befehle sind Moleküle und Assemblerbefehle sind Atome.

    Assembler zu lernen ist ansich nicht ganz sooo schwer, aber dann mit den Befehlen sich ein komplexes Programm auszudenken, stellt für viele Anfänger die große Hürde dar.

    Ausserdem ist Assembler mit Hex und Bin sehr mathematisch, garniert mit Bit-Geschubse in allen abenteuerlichen Variationen. DAS ist in meinen Augen die wahre Schwierigkeit und das bekommt auch nicht jeder so einfach in den Kopf, da kann ein Kurs noch so gut sein. Zusätzlich muss man die C64 Interna inhalieren und mit vielen Informationen jonglieren. Klar, wenn einem das alles leichtfällt, dann ist auch Assembler einfach.


    Um auf die simple Bildschirmlöschroutine zurückzukommen - da führen meist ziemlich viele Wege zum Ziel.

    Hier zum Spaß ein Beispielweg für interessierte Kursteilnehmer: :)


    Gerade diese schöne Übersicht, die dein C64 Studio bietet, und die Möglichkeit, sich den eigenen Sourcecode selber exzessiv kommentieren zu können, ist eine erhebliche Verständniserleichterung auf dem Selbstbildungsweg imo.

    Endurion Nochmal einen Riesendank für das C64 Studio und deine Unterstützung, die du der Commodore Community schenkst! Kann man nicht oft genug sagen.


    Diese Vorzüge hat man auf dem C64 einfach nicht in der Form und es ist mühsam wie damals, als man den Einstieg u.a. vielleicht ja aus diesen Gründen nicht geschafft hat.

  • Hallo!


    Ich hab mir mal das erste Programm aus dem Sprite-Kapitel genommen und dieses auf den TMP portiert.

    Es befindet sich auf dem Diskimage unter dem Namen sprite1src.prg


    Falls jemand den TMP installiert hat: Bitte mal ausprobieren ob sich das beigefügte Programm im TMP laden, assemblieren und starten lässt und ob der Programmcode verständlich ist auf Anhieb (habe ihn so gut wie möglich dokumentiert)


    lg, Markus

  • Mein Problem beim Programmieren, und das ist jetzt kein Scherz, ist, dass mir einfach nicht einfällt, was ich programmieren soll.


    Aber ich weiß, dass Programmieren eine sehr erfüllende Tätigkeit sein kann, wo man Stunden und Tage fokussiert am Aufbau schnitzt und feilt.


    Kurse alleine können einem in der Regel eben nur Sprachregeln oder grundsätzliche Algorithmen oder Methoden erläutern.


    Das mit den Atomen und dem Ganzen des Programms ist also eine grundsätzliche Problematik des Programmierens.


    Das ist auch ein Problem beim Schreiben von Büchern. Sätze bilden kann jeder. Aber, dass die Sätze etwas Größeres erzeugen, das ist eine Kunstform.

  • Falls jemand den TMP installiert hat: Bitte mal ausprobieren ob sich das beigefügte Programm im TMP laden, assemblieren und starten lässt und ob der Programmcode verständlich ist auf Anhieb (habe ihn so gut wie möglich dokumentiert)

    :thumbup:

    Schön kommentiert und läuft. Macht nen guten Eindruck.


    Mein Problem beim Programmieren, und das ist jetzt kein Scherz, ist, dass mir einfach nicht einfällt, was ich programmieren soll.

    Da musst Du Dich gar nicht schämen. Ich glaube, das ist ein übliches Problem. Am besten ist es immer, wenn man eh irgendwas machen will oder ein Problem hat und sich dran setzt, genau das zu programmieren. Beispiele suchen ist immer so ne Sache. Ich hatte auch erstmal im Assemlerkurs nicht mit Sprites gerechnet. Aber mam muss sich ja irgendwas als Beispiel ausdenken. Und so trocken nur mit Textausgaben ist ja auch öde und auch nicht praxisgerecht. Von daher fand ich das dann schon als Beispiel gut. Einzig blöd ist jetzt halt daran, dass es doch schon etwas aufwändiger ist, die Spiritedaten erstmal zu generieren. Aber gut, das gehört dazu und so lernt man neben Assembler auch noch gleich was anderes.

  • Falls jemand den TMP installiert hat: Bitte mal ausprobieren ob sich das beigefügte Programm im TMP laden, assemblieren und starten lässt und ob der Programmcode verständlich ist auf Anhieb (habe ihn so gut wie möglich dokumentiert)

    :thumbup:

    Schön kommentiert und läuft. Macht nen guten Eindruck

    Freut mich, ab jetzt werden alle Programme so aussehen :)


    Ich hoffe, dass ich dadurch diejenigen, welche wegen der Verwendung von SMON im Kapitel über Sprites eventuell enttäuscht ausgestiegen sind, wieder ins Boot holen kann.


    Mit dem Turbo Macro Pro macht alles viel mehr Spass, bin echt begeistert! :)


    Lg, Markus

  • Hallo zusammen,


    ich hab mal eine mögliche Auswahl an brauchbaren Programmen zusammengesucht und als Disk/EF3 Modul gepackt.

    Falls was ausgetascht werden soll, oder hinzugefügt ....


    Gruss

    Sammlung01.d64

    Assembler01.crt


  • Unter File->Preferences->Assembler unter "Enable Hacks" gibt es eine Option, damit C64Studio auch bei ACME-Format .byte/.word schluckt.

    Alternativ könnte man auch einen anderen Assembler-Typ einstellen (in den Eigenschaften der .asm-Datei), das geht aber nur wenn man ein Projekt/Solution benutzt.

  • hier die Datein zu den Assemblerkurs - Sprite.pdf


    Code im C64 Studio.


    Assembler lernen Sprite1b.rar



    Und für den Mac ( Acme & Relaunch64)

    Sprite1src2acme.asm

  • Hallo!


    Irgendwas ist da schräg beim Starten eines Programms im TMP über die Taste "S".


    Wenn ich das Programm sprite2src von dem beigefügten Image im TMP lade, assembliere und mit "S" starte, dann passt die Anzeige des Sprites nicht:



    Wenn ich das Programm dann durchlaufen lasse (Taste drücken damit sich das Sprite bewegt), dann lande ich ja im BASIC. Wenn ich das Programm dort dann mit SYS 5376 starte, passt die Anzeige:



    Wenn ich das Programm in ein Binary auf die Diskette assembliere (Name lautet sp2bin) und dieses anschließend lade, dann passt die Anzeige ebenfalls:



    Habt ihr sowas beim Starten über die Taste "S" auch schon gehabt?


    Es scheint jedoch nur beim ersten Start im TMP zu sein, wenn ich vom BASIC nämlich mit SYS 32768 zurück zum TMP wechsle, assembliere und mit "S" starte, funktioniert es wieder seltsamerweise.


    lg, Markus

  • Es scheint jedoch nur beim ersten Start im TMP zu sein, wenn ich vom BASIC nämlich mit SYS 32768 zurück zum TMP wechsle, assembliere und mit "S" starte, funktioniert es wieder seltsamerweise.

    Bei mir nicht. Bei mir tritt der Darstellungsfehler immer beim Start aus dem Kompiler auf. Bei manuellem Start nicht.

  • Seltsam, wär echt mal interessant herauszufinden, was da beim Starten aus dem Assembler heraus abläuft. Ist das Programm eigentlich verständlich geschrieben / dokumentiert? Klar kommt im Dokument noch eine genaue Beschreibung, aber es macht meiner Meinung nach schon viel aus, wenn der dokumentierte Code allein schon fast ausreicht, um nachvollziehen zu können, was das Programm macht und wie es funktioniert.


    Ich überarbeite das Kapitel über Sprites durch den Wechsel auf TMP recht stark, aktuell habe ich die Beschreibung des ersten Programms (welches die drei Sprites anzeigt) fertig, liegt auf GitHub, da sind zumindest schon mal Beschreibungen zu den Unterprogrammen drin. Nur mal so zum Reinschauen, ist wie gesagt noch nicht fertig.


    Eine Einführung in den TMP muss ich auch noch erstellen.

  • Ich hab es mal im Vice und auf Realhardware getestet - beides das selbe Ergebnis.

    Dann hab ich den Spritebereich mal verschoben, der Fehler bleibt der gleiche.



    und hier noch der Source für das C64 Studio:


    Assembler lernen Sprite2.rar

  • Hab gerade eine echt coole Funktion des TMP kennengelernt, arbeite ja erst seit kurzem mit dem TMP und hab nach einer Möglichkeit gesucht, den Assemblercode als Text zu exportieren. Tja, hab sie auch gefunden: Mit Pfeil rechts + w kann man den Assemblercode als Textfile exportieren, dadurch war es mir nun möglich Assemblercode ins Dokument zu kopieren und im C64-Style zu formatieren :)