Wenn Du eine eigene Kopierroutine einbaust, wird das Binary natürlich entsprechend kleiner. Die übergroßen Binaries mit riesigen Null-Blöcken gefallen mir auch nicht sonderlich (
enthusi), aber dafür gibt es ja Exomizer und Co.
Beiträge von Mac Bacon im Thema „Assemblierproblem mit ACME“
-
-
Das "clc" und das Label "copyouter" können noch raus.

Und beim "ldx #$22" würde ich noch als Kommentar anmerken: "Kopiert 34 Pages" -
Falls ein Decruncher oder schiefgegangene eigene Maschinenspracheversuche Grütze in Speicherstelle 2048 zurückgelassen haben (nämlich irgendwas ungleich Null), so ergibt RUN immer nur SYNTAX ERROR. Das kann nervig sein, da STOP+RESTORE das Problem nicht beseitigt. Ein Programm mit Ladeadresse 2048 zu laden behebt das Problem, aber das tut eben auch ein POKE2048,0 oder, am einfachsten, ein Reset.
-
Nur das C64 Wiki Beispiel wollte nicht.
Ich hab's im Wiki korrigiert. Das Problem ist das Dateiformat: Ganz früher hat ACME standardmäßig Dateien im Commodore-Format erzeugt, also mit einer Ladeadresse vor dem Binary. Da die 6502-Familie deutlich mehr Plattformen umfasst, habe ich das irgendwann geändert, und seitdem muss das Format explizit gewählt werden, sonst bekommt man eine Datei ohne Ladeadresse. Man braucht also entweder den Switch "-f cbm" (oder lang "--format cbm") oder das "cbm"-Anhängsel wenn man "!to" benutzt.
-
Bitte bring fragenden Anfängern nicht diesen Mist bei. Programme mit Basic-Header beginnen bei $0801.
Ja, ich kann mir denken, welchen Vorteil Du Dir davon versprichst, aber das wiegt die Verwirrung bei Anfängern nicht auf. -
Mit der Anweisung acme -o programm.prg source.a kommt aber kein lauffähiges Programm raus obwohl ACME keine Fehler wirft.
Wenn da kein Fehler kommt, wurde die Datei erstellt. Hast Du die Anweisung selbst im Command-Fenster eingegeben oder über irgend ein Klickibunti-Tool gestartet?
EDIT: Ach so, die Datei wird zwar erstellt, aber läuft nicht. Bitte noch den Schalter "-f cbm" benutzen, damit auch eine Ladeadresse davorhängt.