Wie ist der bbcompiler einzustufen?

Es gibt 36 Antworten in diesem Thema, welches 5.501 mal aufgerufen wurde. Der letzte Beitrag (23. Oktober 2011 um 20:01) ist von BlackJack.

  • Hallo, ich habe den bbcompiler gefunden und bin erstaunt über die Gerschwindigkeit.
    Wie wird der hier beurteilt hinsichtlich als Kompromiss für andere Crosscompiler (cc65)?

    Ist es ein ernstzunehmender Compiler mit dem man sich anfreunden kann?

    danke.

    gruss

  • Bitte melde dich an, um diesen Link zu sehen.

    Basic Boss sollte man das Kind nennen. Und jetzt willst du Basic mit C vergleichen? Oder eher nur das Resultat?

  • Es geht um Resultate der Grösse des Codes, der Geschwindigkeit und was die Experten dazu meinem diesen Compiler statt cc65 einzusetzen.
    Ich bin mir noch nicht so schlüssig und habe mit dem Basc-Compiler keine Erfahrung.
    Mit dem cc 65 habe ich ja jetzt schon eine Experiemente gemacht, die positiv verliefen.

    danke.

    gruss

  • Damit ich das richtig verstehe: Du möchtest dir deinem Compiler nach Qualität des erzeugten Codes aussuchen und nicht in der nativen Sprache in der du dein Programm zu tippen hast?

    Der cc65 sollte weniger albern aussehenden Maschinencode zustandebringen als der Basic-Boss.

    Mein ignorierter Beitrag zur Netzteildiskusion:

    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.

  • Also Basic Compiler sollte man mit anderen Basic-Compilern vergleichen, sonst kommt der Äpfel- und Birnen-Spruch.

    Ich habe hier
    Bitte melde dich an, um diesen Link zu sehen.

    und vor allem hier
    Bitte melde dich an, um diesen Link zu sehen.

    mal meine Erfahrungen wiedergegeben.

    Kurzfassung: Nicht generell kürzeste Kompilate und beim Debugging nicht erste Wahl, ansonsten aber der flexibelste Basic-Compiler, den ich kenne, ideal für die Einbindung in Assembler.

  • Der cc65 sollte weniger albern aussehenden Maschinencode zustandebringen als der Basic-Boss

    Wie muss ich das deuten: Macht der cc65 mehr albernde ASM-Code als der BasicBoss?

    danke.

    gruss

  • Frage zur Speicherverwaltung mit dem BasicBoss.

    Man könnte ja den Speicher bis $cfff nutzen, wenn man nicht den Basicbereich ansprechen braucht, richtig ?

    Wenn ich jetzt in BasicBoss "a=sin(3.5)" eingebe, wird das Compilat dann unabhängig erstellt, ohne das das Basic beim Ablaufen des Programms eingeschaltete wird?

    Oder kann ich trotzdem den Bereich bis $cfff nutzen und BasicBoss schaltet selbständig in das Basicrom holt sich die Routine und macht dann mit dem Compilat weiter ?

    danke.
    gruss

  • Der cc65 sollte weniger albern aussehenden Maschinencode zustandebringen als der Basic-Boss

    Wie muss ich das deuten: Macht der cc65 mehr albernde ASM-Code als der BasicBoss?

    danke.

    gruss


    Hä? Die Aussage oben ist doch klar! Du deutest sie aber genau anders herum? *wunder* Lies das doch noch mal genau durch :wink:

    Generell: Du hast schon verstanden, dass der cc65 ein Assembler ist und der Basic Boss - wie der Name schon suggeriert - Basic als Eingabesprache nutzt?

  • Nach Cross Development verschoben

    hexagon

    Was hat Basic Boss mit cross development zu tun?


    Generell: Du hast schon verstanden, dass der cc65 ein Assembler ist und der Basic Boss - wie der Name schon suggeriert - Basic als Eingabesprache nutzt?

    War cc65 nicht gestern noch ein C-Compiler? Immerhin spuckt er Assembler-Code aus, den man auf Größe trimmen kann, Stichwort Laufzeitbibliothek. Basic Boss wird da von Haus aus etliche K mitbringen, selbst wenn das kein P-Code-Compiler a la Austrocomp sein sollte.

    KI-Verwendung in diesem Posting: Rechtschreibkontrolle des Browsers.
    Abweichungen aufgrund des technischen Fortschritts oder individueller Vorlieben vorbehalten.

  • Jau, cc65 ist ein C-Compiler, bzw. eine komplettes CrossDev Paket, das unter anderem auch den Assembler ca65 enthält.

    EDIT: mc71: hier ist die Rede von dem PC Tool mit ähnlichem Namen wie der bekannte C64 Basic Boss.

  • Der cc65 sollte weniger albern aussehenden Maschinencode zustandebringen als der Basic-Boss... dann wäre der CC65 dem Boss-Compiler überlegen... :zustimm:

    So also nicht. ;)

    gruss

  • ...Was hat Basic Boss mit cross development zu tun?.....

    Ganz einfach:
    Ich erzeuge den Basiccode mit einem Texteditor und dem TOK64 auf dem Pc.
    Dann compilier ich es mit dem Basiccompiler auf dem PC (der Basiccompiler ist auch als EXE verfügbar für den PC ), es wird eine prg erstellt, die ich dann mit dem Vice starten kann. :zustimm:
    Der Basiccompiler kommt mit dem C64 gar nicht in Berührung genauso wenig wie der cc65 ;)
    Es läuft so ab wie beim cc65, hast du das nicht gewusst..... :?:

    gruss

  • Basic Boss wird da von Haus aus etliche K mitbringen....

    Hmmm..., der Code vom Boss ist nicht wesentlich grösser, er bringt nichts mit

    For a=.. to ..
    next a

    for (x=..; x<xx; x++) {
    };

    Die schleife vom cc65 hat ca 400 Byte und die Schleife vom Boss ca 700 Byte, also so gross ist der unterschied nicht.
    Die grössenunterschied vom Code wird nach oben hin wesenlich geringer.
    Wenn der cc65-Code ca 8000 Byte hat bringt es der Boss auf ca 10500 Byte beim gleichen Programmablauf.
    Wenn der cc65-Code ca 26000 Byte hat bringt es der Boss auf ca 28000 Byte beim gleichen Programmablauf.
    Wenn ich dann noch Winkwelfunktionstabellen einlade im cc65, weil der zur zeit nicht solche Routinen hat,
    beim Boss kann ich die Winkelfunktionenen aufrufen, dann ist bei mir der Code beim cc65 noch etwas grösser.

    Auch wenn ich den cc65 mit den Einstellungen optimiere für die Schleife, ist der Boss trotz grösserem Code ca 15% schneller.
    Das versteh ich auch nicht.

    gruss

  • Man könnte ja den Speicher bis $cfff nutzen, wenn man nicht den Basicbereich ansprechen braucht, richtig ?


    Basic-Boss-Kompilate laufen auch ohne Basic-ROM, man kann also über $9FFF hinaus kommen mit dem Code. Der Compilerbefehl lautet ₤ALLRAM (übers ROM rüber reichender Code) bzw. ₤BASICRAM (wenn nur Code von Basicstart bis $9FFF gewünscht).

    Zum Einbinden vor allem in Assembler-Code würde ich immer ₤ROUTSTART ₤HEAPEND zur Eingrenzung des RAMs verwenden und keine SYS-Zeile erzeugen lassen. Hinterher das Kompilat bequem als Binary einbinden über Assembler.

  • Zum Einbinden vor allem in Assembler-Code würde ich immer ₤ROUTSTART
    ₤HEAPEND zur Eingrenzung des RAMs verwenden und keine SYS-Zeile erzeugen
    lassen. Hinterher das Kompilat bequem als Binary einbinden über
    Assembler.

    Jup, das hört sich ja gut an. Kannst du mir das bitte mal erklären, mit einem kleinem Beispiel. Danke.

    Basic-Boss-Kompilate laufen auch ohne Basic-ROM, man kann also über $9FFF hinaus kommen mit dem Code.
    Frage: Wenn ich jetzt über $9fff hinaus möchte bis $c000 zb und habe im Boss-Programm folgende Zeile:
    x=sin(4.3)
    Sin ist ja eine Basicroutine !
    Kann ich da trotzdem bis $c000 mit dem Speicher gehen?
    Wenn ja, dann wird ja x=sin(4.3) fertigcompiliert mit im Compilat und beim starten des Programmes wird das Basic nicht mehr angesprochen?

    danke.

    gruss

  • Ist eigentlich trivial, Beispiele stehen auch in der Anleitung.

    Aber gern hier die Syntax für den Programmstart, wenn das Kompilat von $2000 bis $AFFF gehen soll.

    Code
    0 rem@ ₤allram:₤routstart$2000:₤heapend$afff

    Soll es dagegen z.B. nur von $1000 bis $7fff gehen, weil ab $8000 BITMAP oder sonstwas liegt, nimmt man:

    Code
    0 rem@ ₤basicram:₤routstart$1000:₤heapend$7fff

    Wegen Basic-V2-Befehl-SIN: Der funktioniert auch in Kompilaten mit ₤ALLRAM. Ich habe kA, ob dafür heimlich das ROM eingeschaltet wird, wahrscheinlicher ist, dass der Befehl ziemlich (vor allem speicher-)aufwändig kompiliert wird.

  • Hallo Bitte melde dich an, um diesen Link zu sehen., warum werden hier nur 1 Byte abgespeichert in "test" ?

    danke.

    gruss

  • Warum werden hier nur 1 Byte abgespeichrt in "test"?

    Hmm..., doppelt.