Hallol Leute!
Frage mich ob es möglich ist, einen kleinen Basicteil beim Exomizer mit einzubinden.
Habe Ihr vielleicht ne Ahnung ob's geht???
Hallo Besucher, der Thread wurde 3,2k mal aufgerufen und enthält 33 Antworten
letzter Beitrag von gh23 am
-
-
Wenn du das Basic-Prg vorher als Binary mit dem restlichen Assemblercode zusammenbackst, sollte das eigentlich möglich sein, ja.
-
@Colt Seavers
Ok, ist schon mal gut.
Wenn ich Dich jetzt richtig verstanden habe, reicht es die Ladeadresse zu entfrenen und das Prg enzubinden.
Oder bin ich jetzt auf dem sogenannten Holzweg *g* -
Eigentlich solltest Du nichtmal die Startadresse entfernen brauchen. Der Exomizer wertet doch die ersten 2 Bytes eines PRG-Files aus. Also brauchst Du nur Dein Basic-Programm als PRG abspeichern (exportieren, extrahieren...) und das dann in den Exomizer schubsen. Zusätzlich noch Deine ASM-Routinen und evtl. Daten.
-
-
Kommt drauf an, wie du vorgehst, Gerald. Wenn du Basic-Prg und ML-Code, Daten etc. erst in den Speicher lädst und dann den ganzen Summs z.B. mit nem Monitor ab $801 abspeicherst, kannst du einfach alles lassen, wie Skoe schon schrieb.
Wenn du das Basic-Prg als Binary mitassemblierst, braucht der Assembler die passende Startadresse, sonst setzt er $0000 davor. Dann also
*=$801
.binary basicproggy.xyz ;(oder was immer dein Assembler fürn Schlüsselwort für Binaries hat)
... ;der Rest
Dann muss bei basicproggy.xyz die Stardadresse entfernt oder sonstwie "rausgerechnet" werden.
Edit: Es sei denn, der Exomizer selbst kann mehrere Dateien vor dem Komprimieren verlinken (hab ich jetzt nicht im Kopf ob das geht), dann funktioniert auch wieder Skoes Methode.
-
@Colt Seavers
Dank Dir, ich versuch es einfach mal!
Mehr as das sich der Vice verabschiedet kann ja nicht passieren *gg* -
Ja, das ist einer der Hauptvorteile bei der Kreuzentwicklung, da schmiert nicht gleich der komplette PC ab. Toi toi toi, wird schon schiefgehen
-
@all
Falls es jemanden noch interessiert, habe ein kleines Test-Prg angehängt.Der Exomizer wollte mich noch nicht, aber mit Acme ist es kein Problem. Die beiden Zeichen A und B sind der ASM Code, die obere Zeile ist das Basic Prg
Einfach mit folgendem Code einbinden und assemblieren. -
Was auch gehen sollte das Basic Prg mit einem Packer behandeln.
Dadurch bekommt es ja dann eine Sys zeile und sollte weiter verwendet werden können. -
Der Exomizer ist nicht nur ein klassischer Cruncher, sondern kann auch das, was "früher" ein typischer Packer gemacht hat.
Das heißt:
Man muss/braucht ihn nicht mit *einer* Input-Datei füttern. Hat man z.B.
Basic ab $0801 (basic.prg)
Musik am $9000 (tune.prg)
Assembler ab $c000 (code.prg)Kann man die Dateien einfach alle auf der Kommandozeile in einem Rutsch angeben. Beim Entpacken legt er das ganze Geraffel wieder an die Stellen, wo es hin soll.
Code- When given multiple input files The sfx and mem commands loads all files to
- where they are located and then crunch the covered memory area. Any unused
- space between files will be zero-filled. The level command loads each input
- file separately, crunches it and then appends the crunched data to the output
- file.
Als input kann man normale prg files (2 bytes start-addresse), plain binary files (mit zusätzlich angegebener Adresse), oder prg mit angabe einer geänderten Startadresse (z.B. wenn das Lieblingstool immer eine doofe Startadresse einsetzt, dann kann man sich das mit dem Hex-Editor sparen).Code- The syntax for loading a prg or xex file is simply the filename:
- $ exomizer mem <prg file> <xex file> -o <output prg file name>
- If you want to load a prg file to a different address than it contains you can
- simply append a comma and the new load address:
- $ exomizer mem <prg file>,<new address> -o <output prg file name>
- Relocation does not work for xex files. An relocated xex file will simply be
- treated as if it was a relocated prg file.
- Plain located files are given using a similar syntax:
- $ exomizer mem <plain file>@<address> -o <output prg file name>
Oder anders gesagt: Das Einbinden über den Assembler kann man sich eigentlich sparen, wenn man sowieso packt. Aber falsch ist es natürlich auch nicht.
Gerald, weiter so. Hast ein tolles Hobby Hab nur immer Geduld, wenn's mal nicht gleich klappt.
P.S. Das ist vielleicht das, was Baracuda auch meinte.
-
Gerald, weiter so. Hast ein tolles Hobby Hab nur immer Geduld, wenn's mal nicht gleich klappt.
P.S. Das ist vielleicht das, was Baracuda auch meinte.
Ja.
-
Hallo
Sach mal Gerald, kann es sein daß Dein Basic-Prg den Asm-Code starten soll ?
Wenn ja, das geht auch direkt mit acme -
Hallo Leute!
@feuertonne
Das war nur zum Testen ob es sich auch einbinden läßt!@all
Mal ne Frage?
Ist meine Screenlöschroutine so in Ordnung oder muß ich was ändern
Sta 2023 löscht das letzte Zeichen auf dem Screen, ich hoffe das geht so wie ich es mir vorstelle -
@all
Bin ja mächtig am Coden, wollte aber deswegen nicht einen neuen Thred aufmachen. -
warum das sta 2023 extra??
warum nicht in der schleife?
lda#20
ldx#00
loop sta 0400,x
sta 0500,x
sta 0600,x
sta 06e8,x
inx
bne loop...oder wenn es der standard screen ist mit ner rom routine: jsr e544
-
Warum sta 2023? Wenn Du statt .... oh, Roland war schneller.
Viel Spaß heute abend noch!
-
-
solange du kein:
lda#20
ldx#00
loop sta 0400,x
sta 0500,x
sta 0600,x
sta 0700,x
inx
bne loopmachst, passiert deinen sprite vectoren nix (die liegen ja erst ab $07f8-07ff)
-