Hallo Besucher, der Thread wurde 8,5k mal aufgerufen und enthält 77 Antworten

letzter Beitrag von Mr Crayfish am

Basic Compiler Skript auf einer HTML- / Internet Seite

  • Ich komme nicht drauf, läuft dein Raspi?

    (habe es mehrfach versucht)

    Ja, läuft. Komme auch drauf, auch von draußen. Keine Ahnung, warum das bei dir nicht geht. Die Meldung erzählt ja irgendwas von "Proxy"!? Evtl. hat der ein Problem und mag Port 8192 nicht?

  • Das ist für ein RT-Code nicht wirklich viel. Multiplikationen oder die Sqr-Funktion sind richtige Taktzyklen Fresser.

    Die Bilder unten sind Ausschnitte aus meinem Decompiler. Da kannst du sehen, wie viele Versionen es gibt. Die Runtime hat immer eine unterschiedliche Größe. Da reicht schon ein TAX weiniger in dem ML-Code,

    und schon hat du andere Messwerte. :)


    Nutze den Austrospeed 5E. Das ist die Final-Version der Austro Serie. :)

    Jetzt weiß ich btw. endlich auch, was du mit 1E, 5E usw. meintest. Das sind also die Bezeichnungen aus den Einzelfiles aus deinen .d64 uploads zum Austeo-Comp + Austrospeed hier im Thread. Dachte es wäre 'was komplizierteres.. :) .

    Den Austrospeed 5E, also die letzte und neuseste Version des Austrospeed, habe ich gestern auch einmal getestet. Es lief aber nichts merkbar und auch nicht messbar schneller damit. Eher langsamer, ich war zumindest mit dem

    Stoppuhrergebnis bei der längeren Messstrecke "b)" nicht überragend zufrieden.* Den Wert hatte ich auch schonmal ein paar Hunderstel bis hin zu einem Zenhntel besser hingekriegt. Daher bleibe ich aus Tradition beim

    Blitz! v1 von skyles (der mit blauem C64 Originaleinschaltfarben Hintergrund).


    * Die Werte bei der kürzeren Messstrecke "a)" waren aber ganz ok bis gut. (Bei flinkem Stopp-Finger zumindest.) Soll aber nicht heissen, dass es dabei einen neuen Rekord gab.


    --- ---

    wenn du das mit weniger Text und quasi tabellarisch nochmal für Doofe aufschreibst.


    die sich eigentlich auf den Halbsatz davor beziehen müssten, die sich aber, glaube ich, auf irgendwas davor beziehen.

    Für "Doofe" ist schon richtig ausgedrückt, denn bei mir wurde tatsächlich 'mal Tendenz zur Hochbegabung festgestellt. Das resultiert dann u.a. auch in solchen "zu schlau" oder kompliziert gestrickten Sätzen ;) .

    Will mich da aber nicht aus dem Fenster lehnen mit, denn das ist wenn dann nur so knapp dran (an der Anfangsgrenze zu selbiger..), als nun jetzt so wirklich ständig im Zustand einer Hochbagabung drin/drinne :).



  • Dass es keine Geschwindigkeitssteigerung gab, hatte ich auch festgestellt. Dann waren meine Messergebnisse richtig.:)


    Beim 5E sind es mit Sicherheit Verbesserungen, sonst hätte Peter Ostermann für seine Schulungssoftware von Heureka Teachware, diesen nicht genutzt. Ursprünglich hat er Austrospeed 1E genutzt.

    Vom Blitz Compiler gab es nur eine Version. Alles andere sind gecrackte Ausgaben.:)


    Übrigens, beim P-Code Compilat kannst du mitten in eine Zeile springen, was beim Basic-Code unmöglich ist.

  • Jetzt versuche ich nur noch einen Onefiler mittels exomizer von einer angepassten Version, die dann natürlich nichts nachlädt, zu erstellen. (Eingabeaufforderung: 'exomizer sfx 2049 main.prg sounds.prg sprites.prg zs.prg -o output.prg')

    Das packen klappt auch alles samt den Zusatzdateien an nicht übeschneidenen höheren Speicherstrellen [ab $c000 (sounds), $c800 (sprites), $e000 (zs = Zeichensatz)], nur geht nach dem Entpackvorgang am C64 nichts weiter.

    Ist ja auch kein reiner Maschinencode, sondern will mit RUN gestartet werden, das Compilat "main.prg". Also nach dem Entpacken nochmal ein RUN (Baisczeile), sowas erwartet ecomizer ja nicht gerade als mainfile.prg (startadr. 2049).


    Zufällig eine Ahnung wie ich es als nächstes 'mal probieren sollte ? Vorgeben es sei ein Basicprogramm (siehe wiki zu exomizer) ? Andere Startadresse bzw. Loadadresse der gepackten Datei ?


    [Mache ich ggf. nochmal einen extra Thread zu auf. Aber wenn jmd. eine Idee hat, wie man ein Blitz! Compilat am besten mit exomizer zu packen bzw. danach zum Laufen oder Ausführen bekommt, kann er seine Ideen gerne schonmal

    hier äußern.]

  • Lade die Files mal hier hoch, was du zu einer zusammengelinkter Datei haben möchtest.:)


    PS: Beim Blitz/Austro Compiler gebe mal als Startadresse $081C ein.


    Achja, um ein Basicprogramm zu starten, muss du als Startadresse JSR $A68E, JMP $A7AE eingeben.

  • Meinetwegen... :) . Ist als .zip im Anhang, inkl. der leatest version of exomizer.


    P.S. Ja, als Startadresse des Entpackers sollte man vlt. nicht gerade 2049 ($0801), sondern 2080 ($0820) eingeben wie auch im wiki. Oder noch eher deine o.g. Idee, k.A. .

  • Ja, danke ! :) Das wäre bereits so wie gewünscht. Eben im neuesten VICE getestet.

    (Der Micro64 gibt für den 2. Spieler Dauergas nach links-oben. Hat aber mit dem Emu zu tun, ganz sicher.)


    Ist $081c die direkte Startadresse zum Ausführen eines jeden Blitz! Compilats ? Bin ich da richtig mit dieser Annahme ?


    Morgen versuche ich die exomizer-outputdatei von dir zu reproduzieren. Erstmal Feierabend für heute.. .



    P.S.: Im .d64 zum Spiel, welches ich später noch hier oder woanders veröffentliche, steht dann noch mehr drin: Und zwar zwei Bildschirme eines kleinen one screen noters (4 Blocks je Bildschirm und Datei)

    miit mehr "techn." und "future plans" Info'gesülz' zum Spielchen. (Der längere Infotext im Spiel selbst ist ja schliesslich noch nicht genug.. . ;))

  • Also nach dem Entpacken nochmal ein RUN (Baisczeile), sowas erwartet ecomizer ja nicht gerade als mainfile.prg (startadr. 2049).

    Du wirfst Ladeadresse mit Einsprungadresse durcheinander.


    Exomizer kann auch ohne Tricks nach dem Entpacken ein "RUN" ausführen: https://www.c64-wiki.de/wiki/E…IC-Programme_komprimieren (kurz: exomizer sfx basic).

  • Ja, danke ! :) Das wäre bereits so wie gewünscht. Eben im neuestgen VICE getestet.

    (Der Micro64 gibt für den 2. Spieler Dauergas nach links-oben. Hat aber mit dem Emu zu tun, ganz sicher.)


    Ist $081c die direkte Startadresse zum Ausführen eines jeden Blitz! Compilats ? Bin ich da richtig mit dieser Annahe ?

    Ja, das ist immer $081c. Das ist dass gleiche wie SYS2076.

  • Du wirfst Ladeadresse mit Einsprungadresse durcheinander.

    Ja, war mir indirekt auch annähernd klar. Das davor, von mir, war nur so allgemein erstmal sich umgangsprachlich und grob ans Problem herangetastet. Später wurd's ja, auch von meiner Seite, noch präziser und korrekter.

    Plus: Hab' den exomizer heute auch zum allerersten Mal verwendet und bedient.

  • Falls du Exobasic nutzen solltest, bereitet dieses Programm das Crunchen mit Exomizer vor.

    Der Basicstart wird etwas, nach $081b verschoben. Also, nur bei Basic-Programme nutzen. Nicht, wenn nur eine SYS-Line vorhanden ist.


  • Ok, danke für den Tipp, werde ich dann und wann 'mal ausprobieren / mich mit beschäftigen.

    Die jetztige Rate von 74,64% ;) , die exomizer erreicht, so dass gar en Programm knapp unter 15KB herausspringt, ist aber auch schon erstaunlich u. mir gut genug.

    Da erinnere ich mich an einen Satz von einem RGCD-ler, sinngemäß: "Man wundert sich / würde nicht unterschätzen, was eoxomizer alles so klein bekommt."


    Wenn ich ein paar mehr KB einsparen hätte wollen, dann würde ich a) all die ungenutzten Sprites weglassen. Die waren 'mal für eine Abbaler "2Pl-Duel" Version des Spiels + einen 1-Player Mode gedacht. So gibt's für den Anwender mehr

    zu gucken und erforschen, wer er 'mal den Spriteeditor einer Freezercartridge ala NordicPower, etc., bemüht, um sich die Sprites anzusehen. Deshalb habe ich die drin gelassen (und vorgestern nur noch in die exakte Mitte des

    jeweiligen Spriteausschnitts verschoben).

    Und b) würde es ein halber statt ein gesamter Zeichensatz mit Groß- UND Kleinschrift bis auf ein Gimmick-Detail am Ende des infotexts rein theoretisch auch tun. Bzw. andere Methode: Ein echter Bytehunter/-saver-Mensch würde den

    Zeichensatz vom Programmcode vom Rom ins Ram nach in meinem Fall $E000 kopieren, und würde sich dann damit die gesamten 17 Blocks eines kompletten Zeichensatzes einsparen.

    Gut, seine Daten für die ganzen Zeichen-Neudefinitionen müsste man davon noch abziehen, welche er ja dann natürlich immernoch irgendwo in seinem Code unterbringen muss.



    Habe jetzt noch im Titlescreen das "utilies" in "utilities" korrigiert, hatte ich zuletzt vergessen aber sets vorgehabt.

    Die Vokabel vor mehr als 20 Jahren 'mal als "utilies" im Kopf abgespeichert, aber das Wort tut's ja so nicht geben (wie ich vor ein paar Jahren feststellte).

    Ausserdem 2x ein "/" Zeichen mit einem "," Zeichen ersetzt. Ich musste vorher das "/" als Kommazeichenersatz nehmen, weil ich das Komma im Zeichensatz mit meinem Eigenzeichen eines nach unten zeigenden Pfeils überschrieben habe.

    Vorhin habe ich aber das originale Komma nachgezeichnet und im Zeichensatz unter dem Kleeblattzeichen (das unter Shift + X), also jenes überschreibend, wieder hergestellt. Habe es somit endlich wieder zur Verfügung.. . :)


    Das macht Spaß, "all" diese selbstgeschriebenen* Basic ZS-Änderungsprogramme von vor 20 Jahren wiederzubenutzen. Oldskool Do-It-Yourself-Method wie in '82/'83, anstatt jetzt irgendeinen ZS Editor Tool aus dem Net zu bemühen.

    Zeichnen tue ich die einfach immer im Spriteeditor eines Nordic Power Moduls in einem umrahmten 8x8 Feld, um sie mir optisch in Originalgröße u. ggf. Passgenauigkeit zueinander genauer anzusehen.

    Die Data Werte je Zeile (8 Werte pro Zeichen) errechne ich dann selbst und schreibe sie mir auf, um sie danach iin die Datazeile des o.g. Vierzeiler ZS-Änderungsprogramms, mit dem man jeden hereingeladenen ZS abändern kann

    (Änderung der darin per Poke bemühten Anfangsadresse des jeweligen ZS vorrausgesetzt), einzufügen / zu übertragen. Dann kann man immer so schön live zugucken, wie ein Zeichen geändert/überschrieben wird, wenn man es

    vorher im Bild eingegeben hat :). *Ok, das könnte genaugenommen noch auf dem Grafikkbuch von Data Becker herrühren, die kl. Grundformel dazu.

  • Ja, mit geänderten Zeichensatz, kann man ene ganze Menge anstellen. Hier mal einige Bilder diverser Basic-Spiele und -Programme.

    Bei den Trainer in meinen EasyFlash Anpassengen, habe ich auch immer eine geänderten Zeichesatz genutzt. Dieser liegt ab $3100 im RAM. Wenn du möchtest, kannt du im Thread stöbern.:)


    Easyflash Games - Echte Anpassungen



    Beim Kopierprogramm Quickcopy v2.0 habe ich so ziemlich alles geändert, was möglich ist. Ist noch in Arbeit.:)

    Gegen den PAQ8PX V207 ist der Exomizer eine Lusche.^^ Lese mal ab Post #5 den Crunchervergleich..:umfall:8\|


    Level-Squeezer v2.2 SCPU

  • Kennst du, oder auch jmd. anderes, einen guten und simplen music tracker für C64, den man auch wieder beliebig per Sys Aufruf im Spiel abschalten könnte, so dass er bei Nichtwiedergabe gar keine Rasterzeit mehr klauen würde ?

    Nur für den Titelbildschirm und dann wieder abschalten, alles wieder in den Ursprungszusatand, damit es (die Playroutine) das Spiel selbst nicht verlangsamt.


    Bisher habe ich da noch fast gar nichts getestet, bis auf den sogenannten "Musikprofessor" vor 20 Jahren ;).

    Weiß also nur, dass es da eine init und eine play adresse gibt oder bestenfalls geben sollte, u. was das bedeutet weiß ich auch.


    Eigentlich soll das Spiel ruhig bewusst so "basic" bleiben, aber ein wenig experimentieren kann man ja 'mal. Der Track würde dann genauso basic sein, er soll das Spiel ja nicht vom Intellekt her überlagern, sondern soll dazu passen / nur das

    Spielethema an sich im Titel untermalen.

  • Habe' 'mal mit dem "1-Raster-Tracker" herumprobiert. Die Tunes kann man dort ja einfach relocaten, wie man es braucht, und auch selbst über einen Basic Vieerzeiler wiedergeben.

    Da aber schon nach der Intitialisierung per "z.B." Sys 4096 sich nichts mehr normal verhält (Cursor springt hin und her, kein Ausfüjren von Programmen mehr möglich, etc.) ist dass dann dennoch

    nicht sehr geeingnet, um das in seine Programme einzubauen. Denn die sollen danach ja schliesslich auch noch laufen.. . :).


    Der o.g. "Musikprofessor" ist btw. eine Public Domain (PD) Software. Kennt daher sicherlich keiner. Wenn man sie einmal braucht, findet man sie nicht wieder. Auch auf csdb nicht, da gibt's scheinbar prinzipiell gar nichts an PD Disks.

    Aber damit konnte man jedes Tune einfach per Sys 49152, wie beim Hülsbeck Musiceditor aus der 64er in '86 samt seinen tunes, aufrufen und danach beliebig weitermachen / es einfach im Hintwergrund im IRQ spielen lassen.

    So etwas bräuchte man doch, aber zusätzlich mit einer Routine zum Abschalten des tunes und des IRQ Inhalts - so dass wieder alles gesäubert wäre. Das heisst, das eigentliche Programm danach wieder im Originalspeed läuft.


    Egal, mein Programm bleibt jetzt eh erstmal so wie es ist (unverbastelt).

  • Da aber schon nach der Intitialisierung per "z.B." Sys 4096 sich nichts mehr normal verhält (Cursor springt hin und her, kein Ausfüjren von Programmen mehr möglich, etc.) ist dass dann dennoch

    nicht sehr geeingnet, um das in seine Programme einzubauen. Denn die sollen danach ja schliesslich auch noch laufen.. . :) .

    Korrektur: Wenn man es im Programm selbst ausführt, z.B. (für einen "1-Raster-Tracker" Tune, relocated ab $c200)...


    10 sys $c200 : rem player initzialisieren

    20 for t=1to4000

    20 sys $c203 : rem abspielen

    30 for i=1to7 : next i : rem Warteschleife, da sonst mehrere Ausrufe von Zeile 20 pro Frame = Absturz / muss mindestens 7 betragen ; höhere Werte machen den tune langsamer

    40 next t : print"Nun ist Ende" : end


    ...geht das wohl doch (weiter). Nachdem der Zähler mit Variable t durch ist, wird nämlich normal das "Nun ist Ende" samt dem end dargestellt und ausgeführt.


    Sich mit diesen Trackern vertraut zu machen, um einen eigenen Tune zu schreiben, steht dann aber wieder auf einem eigenen Blatt... .

    Ganz so simpel wie mit dem Fasttracker 2 am PC (Dos) ist das dann nämlich doch nicht. Bei dem ganzen abstrakt wirkenden Zahlenwerten für Instrumenterstellung und weiteres... .

    Müsste man halt das jeweilige Manual vorher und währenddessen gut studieren. :)