Hello, Guest the thread was viewed5k times and contains 77 replies

last post from Mr Crayfish at the

Basic Compiler Skript auf einer HTML- / Internet Seite

  • Es hatte 'mal jemand sowas (siehe Threadtitel) als Link gepostet. Derjenige hat dort einen aktiven Compiler auf einer seiner Seiten eingebaut gehabt.

    Da konnte man wohl sein Basic V2 Programm File hochladen und direkt auf der Seite compilieren lassen.. .


    Kennt die Seite noch jemand (Link) ? Der basierte auf dem Austro Compiler, so meine ich mich zu erinnern. Und der Macher meinte, seiner wäre so ungefähr der schnellste im Ablauf des dann ausgeführten Compilats.

    Wollte den Compiler nur 'mal ausprobieren und mit anderen Compilern bzgl. der Gesschw. des Endergebnisses/Compilats vergleichen.

  • Ja, das war es. Danke ! [Und ok.., war also doch ein anderer Compiler u. nichts mit Austro. In dem o.g. Thread wurde wohl der Austro angepriesen, deshalb hatte ich den noch im Kopf damit verknüpft gehabt.]


    Bis jetzt und seit je her bin ich Fan vom Blitz! Compiler, drei "Versionen" davon, auf der DoReCo vor ein paar Tagen, durchprobiert: Sind scheinbar alle haargenau gleich gut und gleich schnell.

    Version1 (zumindest optisch, Menüfarben in blau, ist sie das wohl) war mir aber rein von der Intention her gefühlt sypathischer, die die ich eh immer schon verwendet habe (von einer von mir vor 20 Jahren zusammengestellten Tools Disk).

    Der Basic-64 ist ein Mü langsamer. Den Austro versuche ich noch, und auch den hier im Thread. Mal sehen welcher gewinnt.


    Vorausgesetzt sie sind so unzickig und userfreundlich wie der Blitz! Compiler.

  • Wenn es um Compiler-Vergleiche geht, kann ich Dir nur meinen Fred ans Herz legen, da hatte ich fast alle gängigen Native-Compiler gebenchmarkt: Heute so compiliert...


    Die Betonung liegt auf native, das heißt, der MOSpeed war bei mir nicht dabei, genauso wie andere Cross-Compiler auch. Denn es gibt nichts Beruhigerendes als eine knurrende 1541 zu hören :love:


    Blitz = Austrospeed übrigens.

  • Das müsste EgonOlsen71 gewesen sein. Aber der Online-Compiler bedient meines Wissens nach seinen eigenen MOSpeed, nicht den Austro. Die angesprochene Seite müsste http://84.187.180.45:8192/WebCompiler/ sein.

    Die IP ist nicht stabil (weil das nur ein Raspi auf einem Regal bei mir im Wohnzimmer ist). Besser ist, du rufst den über https://jpct.de/mospeed auf. Dann wirst du immer auf die aktuelle IP umgeleitet. Und wenn es Floppyrattern sein soll, gibt es auch noch MOSCloud für das Wic64, welches ein Frontend für dieselbe Webanwendung darstellt, aber direkt auf dem C64 läuft (mit Wic64 natürlich). Ich glaube, der ist mittlerweile auch direkt im Portal des Wic64 aufrufbar.

  • Blitz = Austrospeed übrigens.

    Ja, habe ich auch gerade bemerkt (, dass es dasselbe / derselbe) ist. Denn der Austro compiliert hier gerade in diesem Moment, und sieht bis auf die Farbgebung genau gleich aus.

    So, den Austro Compiler nun auch 'mal getestet.

    Leider aber "schlechte" News: Der Austro (DE) mit hellgrüener Schrift auf weißem Hintergrund bringt merkbar u. nochmehr messbar (per Stoppuhr auf dem Handy) langsamere Ergebnisse.


    Ergebnisse:

    --------------

    a) Mit dem Blitz! Compiler komme ich auf 13,30 Sek., mit dem Austro aber gerade 'mal auf 15,31 Sek. .. .

    b) Mit dem Blitz! Compiler komme ich auf 20,60 Sek., mit dem Austro aber gerade 'mal auf 23,81 Sek. .. .


    Der Blitz! Compiler heisst also nicht umsonst "Blitz!". Da wurde also wohl noch 'was im Vergleich zum Austro Compiler verändert / "verbessert".

    Dafür ist das Compilat meines Programms mit dem Austro aber immerhin um 8 Blocks kleiner (102 Blocks mit dem Austro Vs 110 Blocks mit dem Blitz!).


    --- --


    Erklärungen, was (spielt aber keine Rolle, nur damit man sich das optisch vorstellen kann) / zum obigen " a)" und "b)":


    zu a) Wenn ich ein Sprite (Enterprise), dass sich pro Durchlauf der Kernschleife meines Spiels (mit CIA Uhr und zweitem Spieler und sowas natürllich noch in selbiger Schleife mit drin) um +1 Pixel bewegt,

    von der Startposition bis an den rechten Spielfeldrand bewege.


    zu b) Wenn ich ein Sprite (Enterprise), dass sich pro Durchlauf der Kernschleife meines Spiels (mit CIA Uhr und zweitem Spieler und sowas natürllich noch in selbiger Schleife mit drin) um +1 Pixel bewegt,

    vom rechten Spielfeldrand bis an den linken Spielfeldrand bewege.



    Der MOS Speed folgt gleich.

  • Vom Austro gibt es zwei Versionen. Einmal den Austro-Comp und einmal den Austrospeed. Der Austrospeed und der Blitz sind zu fast 100% identisch.

    Lediglich um einen Sprungbefehl im RT-Code unterscheiden sich beide. Du hast mit Sicherheit den Austro-Comp getestet.

    Beim Austro-Comp sind u.a. die FOR..NEXT Schleifen anders aufgebaut, ud laufen langsamer ab.

  • Vom Austro gibt es zwei Versionen. Einmal den Austro-Comp und einmal den Austrospeed. Der Austrospeed und der Blitz sind zu fast 100% identisch.

    Ja, habe ich in den Testergebnissen von User 'muffi' auch schon gesehen. Dass er da diese zwei Versionen vom Austro getestet hatte. Das in #7 war jetzt nur der ganz normale Austro-Comp.

    Den (Anm.: Austro-Speed) müsste ich nun natürlich auch noch testen. Der hat bei ihm ja die besten Ergebnisse gebracht. Hatte ich bisher nur noch nicht auf meinem ansonsten relativ randvollem U64 USB Stick.

  • Das.. ergibt genug zum Testen. :) Zusammen mit den von mir gerade auf scdb herausgesuchten.


    --


    Zum MOS Speed: Ich bekomme da ganz am Ende immer ein Error. Zwei Einstellungen versucht, mit aber je demselben Error.

    Liegt vlt. aber auch einfach nur daran, dass in dem Spielecode ganz am Anfang erstmal drei Einzelfiles für SFX, SPRITES, und ZEICHENSATZ von Disk nachgeladen werden, die jetzt in dem puren code natürlich nicht mit dabei sind.. .

    Wenn nun also ab dem "Running asselmbler" nach dem fertigen Prozess meines Verständnisses nach das Programm testweise automatisch im Compiler ausgefüht wird, findet dieser natürlich diese ganzen Nachladedateien nicht, und

    gibt dann diesen Error aus.

    Code
    1. (...)
    2. Running assembler...
    3. !!! Error running assembler: Line 20392 .c297 Undefined label (maybe a naming conflict with a BASIC function?): SL
    4. Deleting source files...
    5. Deleting target files...
  • Da konnte man wohl sein Basic V2 Programm File hochladen und direkt auf der Seite compilieren lassen.. .

    Kennt die Seite noch jemand (Link) ? Der basierte auf dem Austro Compiler, so meine ich mich zu erinnern.

    Da wäre dann noch https://c1570.github.io/Reblitz64/reblitz64.html , das auf Austro/Blitz! basiert und direkt im Browser ausgeführt wird.

    Und der Macher meinte, seiner wäre so ungefähr der schnellste im Ablauf des dann ausgeführten Compilats.

    Öh, DAS kann man allerdings von Blitz!/Austro jetzt nicht behaupten, wobei der schon zu den schnelleren gehört und insbesondere ein recht gutes Verhältnis Geschwindigkeit/Codegröße hat.


    Allerdings ist bei Reblitz64 wohl der Compiliervorgang an sich mit sowas wie deutlich unter einer Sekunde ganz gut. :)


    Benchmark-Ergebnisse gibt es übrigens auch schon hier im Forum zuhauf und auch hier: https://www.c64-wiki.de/wiki/Compiler#Benchmarks

  • Redblitz eben probiert. Ja, das compilieren damit geht gefühlt in 1/10 Sekunden und das Ergebnisfile ist alsbald automatisch im Download-Ordner vorzufinden. :)


    Den Sauron Blitz! Compiler hatte ich scheinbar schon als in meinem File dann "Blitz Compiler [v3]", unter meinen drei Blitz Compiler"versionen", getestet.

    Sehe ich nur gerade, als ich nach dem Sauron Compiler suchte. Denn nur der hat dieses Titelbild mit "Blitz" und "by Saron".

    Der bingt / brachte ja bei mir jedoch keinen Vorteil zum Blitz! [v1] mit 72 Blocks von meiner o.g. 20 Jahre alten Tooldisk. Die Datei auf der Disk hat btw. dieselbe checksum wie ein aktueller download einer sogenannten Blitz! [v1]

    mit natürlich ebenfalls 72 Blocks.. . Jetzt weiß ich also, dass das auf meiner Disk wirklich v1 des Blitz! war und ist. U. bei der bleibe ich wohl auch, bringt in meinem Spiele-Programm die besten bzw. identischen Ergebnisse zum

    z.B. Blitz! von Sauron, + in dem Titlescreen von meinem Spiel steht eh schon seit 20 Jahren (= schon immer) "Blitz! Compiler" unter "used utilities:". Das macht sich am besten :).


    Aber den Austrospeed teste ich dennoch nochmal, der der evtl. identsich zum Blitz! sein soll.

  • Den Sauron Blitz! Compiler hatte ich scheinbar schon als in meinem File dann "Blitz Compiler [v3]", unter meinen drei Blitz Compiler"versionen", getestet.

    Sehe ich nur gerade, als ich nach dem Sauron Compiler suchte. Denn nur der hat dieses Titelbild mit "Blitz" und "by Saron".

    Negativ, meine v3 ist doch nicht von Sauron, sondern von Blade-Runner ("broke by blade runner"). Aber auch mit dem ansonsten gleichen Titelbild.

    Also doch noch 'mal den von Sauron testen, der müsste sehr gut sein.

    besten bzw. identischen Ergebnisse zum

    z.B. Blitz! von Sauron

    Das hier ist damit also auch negativ / hinfällig.. :).

    --

    Editieren bzw. löschen konnte ich nun nach nur ein paar Minuten und neuem Einloggen (daher: verlängert das Zeitlimit bitte doch 'mal..) in meinem Vorpost nichts mehr. Daher die Korrektur nun so, per Zitat.

  • Da wäre dann noch https://c1570.github.io/Reblitz64/reblitz64.html , das auf Austro/Blitz! basiert und direkt im Browser ausgeführt wird.


    Redblitz eben probiert. Ja, das compilieren damit geht gefühlt in 1/10 Sekunden und das Ergebnisfile ist alsbald automatisch im Download-Ordner vorzufinden. :)


    Messergebnisse vom Redblitz64 sind nun auch da, die Werte sind immer so +-10ms genau (mit meiner Handy-Stoppuhr) reproduzierbar:


    a) Mit dem RedBlitz Compiler komme ich auf 11,23 Sek .

    b) Mit dem Blitz! Compiler komme ich auf 17,72 Sek. .


    Der ist also schonmal nicht schlecht, der beste bisher. (Siehe Post #7 für Werte anderer Compiler.)

    Jetzt laufen die For..Next Pausenschleifen natürlich auch schneller durch = alle gewollten non-ingame Pausen im Programm sind jetzt kürzer, da ich sie ja auf die Geschwindigkeit des

    standard Blitz! Compilers [y1] feingetuned hatte. :) Müsste also diverse Werte nun um x% verlängern bzw. vergrößern.



    [Was ich da stoppe, steht ja schon in Post #7, nur falls jmd. gerade neu in den Thread einsteigen sollte.]

  • Zum MOS Speed: Ich bekomme da ganz am Ende immer ein Error. Zwei Einstellungen versucht, mit aber je demselben Error.

    Liegt vlt. aber auch einfach nur daran, dass in dem Spielecode ganz am Anfang erstmal drei Einzelfiles für SFX, SPRITES, und ZEICHENSATZ von Disk nachgeladen werden, die jetzt in dem puren code natürlich nicht mit dabei sind.. .

    Nein, das liegt eher daran, dass ich Quatsch gemacht habe. Ich gucke mir das mal an. Könnte hilfreich sein, wenn ich dafür dein Programm zum Testen bekommen könnte...

  • Nein, das liegt eher daran, dass ich Quatsch gemacht habe. Ich gucke mir das mal an. Könnte hilfreich sein, wenn ich dafür dein Programm zum Testen bekommen könnte...

    Ich finde kein Problem und kann das auch nicht nachstellen. Ich habe aktuell keinen Plan, vorher ein Label namens "SL" im Kompilat kommen soll!? Mr Crayfish , ich habe dir eine Nachricht geschickt...die Quellen wären hilfreich, sonst weiß ich nicht, wo ich suchen soll...

  • Jetzt laufen die For..Next Pausenschleifen natürlich auch schneller durch = alle gewollten non-ingame Pausen im Programm sind jetzt kürzer, da ich sie ja auf die Geschwindigkeit des

    standard Blitz! Compilers [y1] feingetuned hatte. :) Müsste also diverse Werte nun um x% verlängern bzw. vergrößern.

    Schleifen zur Verzögerung sind nicht ideal. Besser wäre es, du nutzt einen Timer wie z.B. TI für das Warten. Dann passt das immer und ist nicht von irgendwelchen äußeren Umständen abhängig.

  • a) Mit dem RedBlitz Compiler komme ich auf 11,23 Sek .

    b) Mit dem Blitz! Compiler komme ich auf 17,72 Sek. .

    Eigentlich sind die Kompilate von Reblitz64 und Blitz! exakt gleich schnell und sollten sogar binär (meist) identisch sein.


    Hast Du vielleicht Integer-Variablen im Webinterface von Reblitz64 eingetragen? Das ist nur Komfort: Blitz! wäre ebenso schnell, wenn sie direkt im Code als %-Integer-Variablen angegeben wären.

  • Schleifen zur Verzögerung sind nicht ideal. Besser wäre es, du nutzt einen Timer wie z.B. TI für das Warten. Dann passt das immer und ist nicht von irgendwelchen äußeren Umständen abhängig.

    Ja natürlich, das kam mir jetzt auch schon in den Sinn - für solche Fälle. Sind aber nur Warteschleifen in den Menües, wie schnell der "Cursor" blinktr und wie schnell er auf die nächste Einstelloption umswitcht (so etwas),

    also nicht so wild. Plus eine nach jeder Spielsession / -Ende, wenn "Time Up" is'. Den Wert in letztgenannter Schleife passe ich für schnellere Compiler noch etwas nach oben an, der Rest aber könnte auch so bleiben.

    igentlich sind die Kompilate von Reblitz64 und Blitz! exakt gleich schnell und sollten sogar binär (meist) identisch sein.


    Hast Du vielleicht Integer-Variablen im Webinterface von Reblitz64 eingetragen? Das ist nur Komfort: Blitz! wäre ebenso schnell, wenn sie direkt im Code als %-Integer-Variablen angegeben wären.

    Nein, nichts eingetragen bei Reblitz64.

    Der Astrospeed und der Reblitz64 sind genau identisch schnell (beide, also auch den Austrospeed getestet mittlerweile), dann erst kommt der Blitz [v1] von skyles / von blade-runner / etc. .. .