Da wirds etwas eng auf der Kommandozeile.
nö, wieso eng ?
unter Linux kannst Du einfach Zeilenumbrüche "escapen", z.B. so:
exomizer sfx basic -t64 -s "\
lda#\$00 \
sta\$D015 \
sta\$D020 \
sta\$D021 \
sta\$DBE7 \
lda#\$0B \
sta\$D011 \
... \
... \
... \
... \
" -X "inc\$D020 dec\$D020" sourcefile.prg -o outputfile.prg
Alles anzeigen
Wichtig dabei ist: der Backslash (der ja in der Linux-shell die "Sonderfunktion" des direkt nachfolgenden Zeichens aufhebt), muss direkt vor dem Zeilenumbruch stehen (weil der Zeilenumbruch das nachfolgende "Zeichen" ist und ignoriert werden soll). Wichtig ist hier das abschließende " in Zeile 13, da das Ende des Stings ja oben noch nicht definiert wurde.
Noch schöner/komfortabler macht sich sowas, wenn man mit seinem Lieblings-Assembler ein ganz normales Programm mit BASIC-Line schreibt und dann in den gepackten Code dahinter springt. dazu muß der restliche Code natürlich anders gepackt werden, z.B. so:
exomizer sfx basic -t64 -Di_load_addr=$08E0 -s 'lda#$00 sta$D015 sta$D020 sta$D021 sta$DBE7' -X 'inc$D020 dec$D020' sourcefile.prg -o outputfile.prg
Der daraus resultierende gepackte Code hat in diesem Beispiel die Ladeadresse $08E0 und das Entpacken wird mit JMP$08E0 gestartet. Der gepackte Code hat in diesem Beispiel also keine Basic-Zeile mehr, einfach reinjumpen und gut is.
So kannst Du z.B. ganz gemütlich von $0801 - $08E0 ein kleines Progrämmchen davor bauen, in dem Du am Ende an der Stelle $08E0 nur das gepackte Files einfügen mußt (ohne die beiden Bytes der Ladeadresse - siehe Zeile 11 und 49) und und wenn´s an´s Entpacken des fetten Fisches gehen soll, machste einfach einen JMP$08E0 und gut is (siehe Zeile 11 und 42).
EDIT:
$08E0 war jetzt nur ein Beispiel, Du kannst, wenn Dein Mini-Programm vorweg fertig ist, auch viel näher "ranrücken" mit deinem Wert - Du muß dann halt nochmal Dein Hauptprogramm mit exomizer neu packen mit einem anderen Wert für -Di_load_addr=$XXXX, der dann optimalerweise direkt hinter dem Code Deines "vorweg-Mini-Programms" liegen sollte 
; ACME - Quellcode
!initmem $00
!cpu 6510
;
basicstart = $0801
screenram = $0400
colorram = $D800
bordercolor = 0
backgroundcolor = 0
textcolor = $0F
exomizer_Di_load_addr=$08E0
;
; generate BASIC header
* = basicstart
!byte $0B, $08
!byte $DF ; BASIC-Zeilennummer: $DF=2015, $E0=2016 u.s.w.
!byte $07, $9E
!byte '0' + entry % 10000 / 1000
!byte '0' + entry % 1000 / 100
!byte '0' + entry % 100 / 10
!byte '0' + entry % 10
!text " CODED BY GI-JOE"
!byte $00, $00, $00 ; end of basic
;
entry: ; entry point
cld
jsr $e518 ; Video-Reset
LDA #bordercolor
STA $D020
LDA #backgroundcolor
STA $D021
lda #textcolor
sta $0286 ; Textfarbe
ldx #infotextend-infotext-1
- lda infotext,x
sta screenram,x
lda #textcolor
sta colorram,x
dex
bpl -
;
jmp exomizer_Di_load_addr ; Sprung zum Entpacken
;
infotext:
!convtab scr
!text "hello world"
infotextend:
;
* = exomizer_Di_load_addr
!bin "outputfile.prg", , 2 ; die ersten beiden Bytes der Ladeadresse weg lassen
Alles anzeigen