Hello, Guest the thread was viewed13k times and contains 170 replies

last post from -trb- at the

Wenn ihr heute erst mit Assembler anfangen würdet...

  • ... womit würdet ihr es lernen und programmieren?


    Wohl jeder hat so angefangen: Man hat das Handbuch gelesen und ausprobiert, dann sich in Basic versucht und irgendwann mittels Buch Assembler gelernt.

    Mich hat allerdings die ewige, trockene Theorie ohne ein Ergebnis immer wieder abgeschreckt. Ich bin einfach nicht weiter gekommen. Vielleicht war es auch kein gutes Buch.

  • Ich hab tatsächlich so angefangen : Welche Systemroutinen gibt es und welche Register sind dabei involviert :)


    Dann erstmal simple Sachen wie Addition und Subtraktion umgesetzt ...


    Und dann hab ich festgestellt : das dauert mir zu lange und brauchen tu ich das auch nicht mehr :whistling:

  • C64 BASIC V2 war auch meine erste Programmiersprache. Die habe ich anfangs "trocken" gelernt, denn anfangs hatte ich nur das C64-Handbuch und erst Wochen später den dazu gehörigen Computer. :) Das hat Spaß gemacht. Mir war dann aber auch recht schnell bewusst, dass ich mehr möchte.


    Angefangen Assembler zu lernen habe ich wahrscheinlich mit "Das große Commodore 64-Buch" von Data Becker (das seinerseits teilweise Abschnitte aus anderen Data Becker-Publikationen übernommen hat). Das fand ich auch sehr zäh und für mich nicht zielführend, aber wahrscheinlich hat es eine gute Grundlage gelegt. Dabei geholfen hat womöglich, dass die Beschreibungen von zwei Assemblerbefehlen vertauscht war und ein Befehl gleich komplett vergessen wurde.


    Zur Zähigkeit hat sicher auch beigetragen, dass Assemblerprogramme im genannten Buch hauptsächlich als BASIC-Lader veröffentlicht wurden, wimre. Einen Assembler hatte ich anfangs sowieso nicht. Nur ein paar Monitorprogramme. Später kam dann sowas wie HypraAss zu mir. Das ging dann schon besser, damit habe ich aber auch noch keine für mich großen Erfolge erzielen können. Um ein paar einfache Sachen cracken zu können, haben mein Halbwissen und ein paar Softwaretools aber schon gereicht. ^^


    So richtig los ging's für mich, als ich mir mein Action Replay VI gekauft hatte. Endlich konnte ich sehr leicht Programme analysieren und lernen. Hab dann auch im Monitor vom AR6 kleine Introeffekte programmiert, denn das war das, worauf ich hinauswollte. Der nächste Schritt war dann, als ich Turbo Assembler in die Hände bekam. Das war für mich Luxus. So konnte ich bequem Programme schreiben. Außerdem gab's in der 64'er zwei Artikelserien: "Assembler Corner" und "Profi Corner". Die haben mich auch weiter gebracht.

  • Denk dir ein eigenes, kleines Projekt aus (z.B. Spiel) und versuch das dann umzusetzen. Das bringt dich dazu, die Sachen irgendwo nachzulesen, auf die du als Problem nach und nach stoßen wirst ... Dank Internet heute einfacher als damals.

    Learning by doing ist immer der beste Ansatz, wenn es ums Programmieren an sich oder die X-te neumodische Programmiersprache geht. :)

  • ... hängt ja auch ein bisschen davon ab, ob Du jemand bist, der eher autodidaktisch lernt und sich das Wissen nach und nach aus dem Internet kostenfrei zusammenstellt (was problemlos möglich ist), oder jemand, dem es leichter fällt, Neues zu lernen, indem er didaktisch sinnvoll aufbereitetes Wissen nutzt (wie bspw. Kurse, Bücher, etc.).


    Und dann kannst Du noch unterscheiden zwischen: Bin ich jemand, der ein konkretes Ziel hat (z.B. Spiel XY entwickeln), oder jemand, der (erst einmal) Themen erlernt (z.B. Soundausgabe, Rasterbars, Joystickroutinen,...), um dann daraus irgendwann vielleicht mal etwas "Ganzes" zu machen.


    Für (kostenpflichtiges) fertiges, aufbereitetes Wissen zu praktisch allen relevanten Themen in gut verdaulichen Häppchen empfehle ich immer 64bites.com.


    Entsprechend der Arbeit, die in den Materialien steckt, ist es das Geld wert, auch wenn es nicht wenig ist + Michal baut derzeit eine aktive Community auf, in der sich alle gegenseitig helfen.


    Und für jeden, dem es nun wieder in den Fingern juckt, dagegen anzudiskutieren: Wie gesagt: Es gibt nicht wirklich viel Neues über den C64 zu lernen und alles, was es zu lernen gibt, liegt irgendwo in irgendeiner Art bereits kostenlos herum. Bist Du der Typ dafür, kannst Du praktisch alles lernen ohne dediziert dafür Geld ausgeben zu müssen. ;-)

  • Vermutlich mit so einem Simulator im Browser:


    https://schweigi.github.io/assembler-simulator/

    Wobei das gezeigte Beispiel kein C64-Assembler ist.
    Ich hatte damals angefangen, als der VissAss, glaube im 64'er erschien. Dann habe ich fast ausschließlich für Geos programmiert. Da gibt es Einsprungtabellen der Geosroutinen. Damit stellte sich ein Erfolg sehr schnell ein. Man brauchte, einfach ausgedrückt, nur ein paar Parameter angeben und dann die Routine auszuführen.

  • Die Bücher von Data Becker sind jetzt nicht unbedingt ein Geheimtipp. Trotzdem muss ich sagen, dass das Maschinensprachebuch von Lother Englisch mir am Anfang sehr geholfen hat.


    Dann hat auch und gerade die Beschäftigung mit trockenen Themen wie Multiplikation und Division mir sehr viel gebracht.


    Wenn der Einstieg erst einmal geschafft ist, ergeben sich sinnvolle weitere Schritte meist von alleine.

  • trocken zu lernen kann ich auch nicht empfehlen. Jeder lernt aber anders und bei mir geht das Wissen erst in den Kopf, wenn ich es benutze. Ich habe damals trocken auf dem 68K gerlernt, hatte aber mangels Geld keinen Assembler verfügbar. Ich fands total spannend, aber habs nie wirklich in echt gelernt.


    Es gab mal einen wirklich guten Onlinekurs, den ich akt. nicht mehr finde. Die Einstiegstutorials aus der 64er Spezials sind OK, nicht wirklich super, aber wenn nichts anderes da ist, schon brauchbar.

  • Nein, ich kann noch kein Assembler - aber:


    - HTML & CSS hab ich mir beigebracht, weil ich mir damals eine eigene Homepage basteln wollte (über SelfHTML)
    - Datenbank & Co. hab ich mir damals (wenn auch nur Bruchstücke) selbst beigebracht, weil ich mir ne Art Geocaching-App programmieren wollte (Pflanzen sammeln, bestimmen etc.) und einige Jahre davor eine Art Internetportal

    Wenn man das ganze mit einem Projekt verbindet, hat man IMO mehr davon.

  • Ich kann nur Assembler ist keine Alchemie empfehlen, schwirrt im Forum/Wolke rum und in einem C64 Sonderheft.

    Damit hat man die Basics die man braucht. Dann das Forum Wiki für die Hardware und zuletzt die Seite http://www.retro-programming.de welche leider aktuell offline ist.


    Damit kann man sich das sehr schön selbst bei bingen.

  • Ich würde mit einem Sample-Player anfangen. Ist weit weniger kompliziert, als es cool ist.


    Auch würde ich:

    - Adressen nur in Hex benutzen!!!

    - den ganzen Dezimalmodus-Kram skippen

    - nicht altbacken mit der Programmierung mathematischen Formeln oder gar Basic-Erweiterung anfangen

    - keine Kernal-Funktionen nutzen, sondern gleich abschalten

    - Erstmal ohne Interupt programmieren

    - Cross-Dev per C64 Studio benutzen

    - jedes Programm gleich mit (stur kopierter) Sys-Basiczeile anfangen lassen, kein Sys49152 o.ä.


    :angel

  • trocken zu lernen kann ich auch nicht empfehlen. Jeder lernt aber anders und bei mir geht das Wissen erst in den Kopf, wenn ich es benutze. Ich habe damals trocken auf dem 68K gerlernt, hatte aber mangels Geld keinen Assembler verfügbar. Ich fands total spannend, aber habs nie wirklich in echt gelernt.

    Es soll Leute geben, die sich sowas trocken und rein theoretisch aneignen können. Wenn man nicht zu diesen Leute gehört, würde ich das nicht versuchen.

    Am besten ist ausprobieren und rumspielen. Sich kleine Programme als Ziel setzen und versuchen, diese umzusetzen.

    Was mir damals auch sehr geholfen hat, ist fremde Programme anzuschauen. Die sollten dann aber überschaubar sein.


    Dabei darauf achten, das man sich nicht irgendwelche Unarten eignet (ich sach nur "selbstmodifizierender Code" :D). Und nicht von Anfang an ständig optimieren wollen. Das kommt alles später, falls man das braucht.


    Das ROM würde ich erst mal komplett außen vor lassen. Sonst lernt man nur C64-Programmierung und nicht Assembler-Programmierung. Da ruft man nur irgendwelche Routinen auf, und versteht gar nicht, wie die funktionieren. Das ist für's Lernen nicht hilfreich.

  • Ich hab damit angefangen fehlende Befehle per SYS Befehl selbst zu basteln.

    Mit einer Cursor Setzroutine gings los. Die man mit SYS 49152,x,y

    aufrufen konnte und so gings dann immer weiter. Verbesserten Input Befehl, Fensterroutinen usw.

  • Da gibt es Einsprungtabellen der Geosroutinen. Damit stellte sich ein Erfolg sehr schnell ein. Man brauchte, einfach ausgedrückt, nur ein paar Parameter angeben und dann die Routine auszuführen.

    Und was hat das Aufrufen von fertigen Routinen mit Assemblerprogrammierung zu tun?