sdcc oder z88dk

  • hallo, ich möchte gerne ein paar sachen in c ausprobieren. und was ich bisher hier im forum gelesen habe, spricht ja vieles für z88dk.


    worin unterscheiden sich denn sdcc und z88dk? und was eignet sich besser, wenn man hardwarenah programmieren möchte?

  • Naja, wenn man hardwarenah programmieren moechte, dann ist natuerlich Assembler die beste Wahl :D (aber das kann man ja auch ueber das #asm Tag bei den C-Compilern). Ansonsten bevorzuge ich Z88dk als Cross-Compiler, da hier bereits zwei Programmierbibliotheken existieren (CPCRSlib und Crocolib) und man sowohl im Wiki als auch im Forum von Z88dk meist gute und schnelle Hilfe bekommt.
    In Sachen Codegenerierung bin ich mir nicht mehr ganz sicher, welcher Compiler der bessere ist, da ich mittlerweile ein paar Vergleiche gesehen habe, wo SDCC bei der Codegroesse besser wegkommt. Bei Z88dk arbeiten dafuer die Programmierer daran, dass alle Funktionen der mitgelieferten Bibliotheken nach Assembler konvertiert werden, was entsprechend Geschwindigkeit und kleinere Dateien bewirkt.
    Letztendlich wirst du aber mit beiden Compilern alles erledigen koennen, was du moechtest.

  • Wichtiger Nachtrag: Solltest du dich mit Z88dk auseinandersetzen, dann solltest du unbedingt auf die Bibliotheken im Entwicklungsverzeichnis updaten. Die derzeitige Version hat ein Problem beim Interception-Code, der dafuer zustaendig ist bspw. bei Fliesskommanroutinen auch den Zweitregistersatz freizuraeumen. Das funktioniert nicht richtig und fuehrt gerne mal zum Absturz.


    Als Grafik- und Programmiertool kann ich ausserdem TommyGun empfehlen: http://www.users.on.net/~tonyt73/TommyGun/. Ist ein ganz nettes Crossdevelopment Tool. Arbeite da momentan mit dem Entwickler daran, dass TommyGun mit der CPCRSlib einwandfrei zusammenarbeitet.

  • Also ich habe beide getestet und der z88dk ist der jenige, der auch zu den cpc-Eigenarten passt. Ohne die internen Anpassungen, das siehst du an den cpc-lib, läuft der z88dk schlecht und recht. Weil die aber erstellt worden sind speziell für den cpc, laufen die erstellten Programme hervorragend.


    Für den anderen gibt es nur eine Handvoll erstellte spezielle cpc-Eigenschaften. Mit diesen kommt man nicht weit.


    Obwohl wiedrum die Verbesserungen(Updates) bei letzteren fast Täglich kommen, wird an den cpc-Teil wenig zur verfügung gestellt.


    Kommt auch daher, weil es wenige User gibt bzw interesse haben den cpc mit "c" zu proggen. des weiteren sehe ich das der Programmierteil hier sehr rar besucht ist. Es wird mehr gezockt als Programmiert.


    mfg

  • Zum Thema C-Compiler habe ich mal ein kleines Update. So wie es aussieht, haben die Jungs bei SDCC ordentlich reingeklotzt und das Ding ordentlich optimiert. Zur naechsten Version, die wohl im Maerz dieses Jahres kommen soll, werden die Binaerdateien wohl nochmal um ~4% kleiner werden. Einen Vergleich gibt es hier:
    http://sdcc.wiki.sourceforge.net/Philipp's+TODO+list.
    Mal schauen, ob ich die Tage mal dazu komme mir den SDCC Compiler anzuschauen.

  • Mal schauen, ob ich die Tage mal dazu komme mir den SDCC Compiler anzuschauen.


    Der den auf dem CPC nutzen möchte, gibt er fasst garnichts her mit der Unterstützung.

  • Ich habe die FIle in/out noch nicht getestet.



    So sieht beim z88dk die h aus:


    GRuss

  • Zitat


    Naja, wenn man hardwarenah programmieren moechte, dann ist natuerlich Assembler die beste Wahl (aber das kann man ja auch ueber das #asm Tag bei den C-Compilern).


    Hier ein kleines Muster für den z88dk zur Ermunterung, dem sind keine Grenzen gesetzt.
    Die Variablen werden über den Stack eingelesen: