Hallo Besucher, der Thread wurde 18k mal aufgerufen und enthält 30 Antworten

letzter Beitrag von ThomBraxton am

C-Kurs, Abend 6 - Lösungen und Fragen

  • ausser natürlich wir reden von beispielcode für anfänger.


    und für die soll dieser kleine c-excurs doch sein oder?


    anfänger sollten wirklich wesentlich mehr schreiben! auch WAS sie da gemacht haben.
    diese sachen können dann für weiteren code als beispiel dienen.
    nachher natürlich kein gesabbel mehr rein, soviel sollte klar sein...

  • Vor allem bei Zugriff auf Hardwareregister kann es nicht schaden, Sinn und Zweck zu kommentieren. Ok, d020 kann ich mir noch merken, aber bei diversen anderen Registern, die man eher selten braucht, müsste ich ansonsten öfters mal in der Memory Map nachgucken - das kann dann schon etwas lästig werden.


    Deswegen gibt man den Dingern ja auch am besten sprechende Namen und haut nicht so eine Registeradresse direkt in den Quellcode. Oben hab ich das nur gemacht, um direkt den Übergang von für "jedermann" verständlichen Assembler-Code zur Klammer-Philosophie überzuleiten. Der cc65 kommt auch mit einer schönen Struktur daher, die über den VIC-Adressen liegt (wer diesen Satz nicht versteht, sollte sich keine Gedanken machen, im Kurs kommt das bald)

  • Zitat

    Deswegen gibt man den Dingern ja auch am besten sprechende Namen und haut nicht so eine Registeradresse direkt in den Quellcode.


    ich muss zugeben das ich das - was den c64 angeht - persönlich einfacher finde wenn da direkt die adressen stehen =) grad wenn man code von andren lesen will kann das ziemlich nerven wenn da jeder seine eigenen konstanten benutzt =P aber generell hast du natürlich recht, absolute adressen haben im eigentlichen code nichts verloren.

  • hm, bei C64 und ASM ziehe ich echte Adressen TOTAL vor!
    Allein schon um klarzumachen was zeropage etc ist...
    Aber das nur nebenbei...


    Hab selbst von mir einen 5 Jahre alten *ironischen* Kommentar in C code von mir gefunden vorgestern.
    Das hat genervt dahinterzusteigen :)

  • Das wohl liegt daran, dass es leider keine genormten Namen für die Hardware-Register im C64 gibt. Und wenn sich jeder seinen eigenen Namen für Register wie $d016 ausdenkt, kann das tatsächlich kein Fremder mehr lesen, da stimme ich Enthusi zu. Anders sieht es da schon bei (von mir) seltener benutzten Kernal-Routinen aus: CHKIN sagt mir was, $FFC6 hätte ich nicht gekannt.


    Wahrscheinlich stimmt ihr mir zu, dass das auf dem C64 eher historisch gewachsen ist. Auf neueren Controllern/Systemen stehen die Namen meistens schon so in der Spec, dass sie dannach schreien, in defines oder was auch immer übernommen zu werden. Wenn man das Headerfile nicht sowieso schon mit dem BSP bekommt. Kann auch daran liegen, dass sich keiner Registeradressen wie 0xffec0024 merken möchte.


    Wahrscheinlich stehen in der VIC-II Spec auch Namen drin, aber wer liest die schon :-)

  • Es geht weiter, nur einen Plan dafür habe ich noch nicht :-) Momentan ist tatsächlich das schöne Wetter mit schuld. Dazu kommt noch, dass ich immer mindestens drei Projekte gleichzeitig zu laufen habe und dann alle paar Wochen mal wechsle, wenn mich ein Thema nervt.


    Schau ab und zu mal vorbei...

  • Vor genau 28 Jahren...


    hielt ich meinen ersten eigenen C64 in den Händen.
    Das erste, was ich darauf tat, war folgende Zeilen einzugeben:


    10 PRINT HALLO
    20 GOTO 10


    Und auch die folgenden Jahre waren geprägt davon, Listings aus der 64'er abzutippen. Meine letzte - leider prägende - Erinnerung an diese Zeit ist, dass ich mehrere Wochen meiner Sommerferien investiert hatte, um den Code von Amica Paint aus einer Sonderausgabe der 64'er abzutippen und kurz vorm Ende in einer Diskettenbox eines Freundes eben jenes Malprogramm entdeckte.


    Über Jahre hinweg hat mich dieses Thema verfolgt, bis ich Anfang der 2000'er nach Ausflügen in Richtung Assembler, Pascal und C auf Basis von C++ mit der Spieleentwicklung begann. Das war aufregend, aber trotz kommerziellem Ergebnis nicht langfristig von Erfolg gekrönt. Heute leite ich einen kleinen Geschäftsbereich in einer Unternehmensberatung und fokussiere mich auf Softwarearchitektur und -Entwicklung. Ich bin 36, schwärme von alten Zeiten und lade mir Retro-Games aus dem Windows Phone Store im 8bit Style herunter.


    Und gestern habe ich das erste Mal in meinem Leben _eigenes_ Geld für einen Commodore 64 ausgegeben! :) Ebay sei dank. Sogar ein paar Originalspiele konnte ich ersteigern. Eins davon originalverpackt und noch eingeschweißt. Und seit 30 Minuten weiß ich endlich, wie man mit C für den Commodore entwickelt. Und vor 10 Minuten bin ich auf diesen Kurs gestoßen. Und seit 5 Minuten frage ich mich, ob es mit Abend 7 weitergeht.


    skoe.... geht es doch noch mal weiter? büdde büdde :)


    VG,
    mephisztoe

  • Ich habe hier auch schon mehrfach gepostet, wann der Kurs wieder aufgenommen wird, aber da ist wohl leider Schicht-im-Schacht! Eigentlich schade, weil jetzt ab Abend 7 die Grafik- und Soundfunktionen bearbeitet werden müssten. Das wäre es jetzt gewesen, um mit C am C64 richtig durchstarten zu können. Aber wie gerade geschrieben, scheint das Interesse an der Fortführung dieses Kurses zu gering zu sein.
    Aber auch ich schreibe gerne wieder:


    "BITTE, BITTE, führt diesen Kurs weiter!!!!"


    Liebe Grüße!
    ThomBraxton

  • Keine Ahnung! Aber vielleicht ist Skoe ja hier noch aktiv und kann uns die Frage und viele weitere beantworten. Vielleicht findet sich ja auch noch jemand anderes, der uns bei dem C-Kurs weiter hilft. Wenn genügend Leute hier nachfragen, könnte man vielleicht noch etwas bewegen...


    Liebe Grüße!
    ThomBraxton