dostalem pytanie o uzywanie skompresowanych plikow z xB... okazalo sie ze tego nie opisalem.
to opisuje:
najprostrzy sposob zbudowania pliku ze skompresowanymi blokami albo nawet calego skompresowanego pliku wykonywalnego to dodanie skompresowanych blokow z naglowkiem....
opt h+l+o+
run START
org $0C00
Display_list .byte $70,$70,$70
.byte $40+$0E,a($4150)
:93 .byte $0E
.byte $40+$0E,a($5000)
:97 .byte $0E
.byte $41,a(Display_list)
START
jsr wait
lda #<Display_list
sta $230
lda #>Display_list
sta $231
_flip ldy #5
@ jsr wait
dey
bpl @-
lda $D301
eor #%00001100
sta $D301
jmp _flip
wait
lda $14
@ cmp $14
beq @-
rts
opt h+
org $D301
.byte %11001111
opt h-
.HE 50 41 00 00 02
ins 'CONAN.ZX0'
opt h+
org $D301
.byte %11000011
opt h-
.HE 50 41 00 00 02
ins 'GOONIES.ZX0'
w zalaczniku do uruchomienia.
najwazniejsza informacja to naglowek przed skompresowanymi danymi - jesli chcemy aby podczas ladowania nastapiła dekompresja ale nie na zasadzie ladujemy do pamieci i dekompresujemy tylko w czasie ladowania nastepuje dekompresja. nalezy zauwazyc ze w ladowanym pliku nie ma kodu dekompresora.
naglowek: dwa bajty adres ladowania, dwa bajty 00 i bajt ID dekompresora - dla zx0 to bajt 02
przykładowo jesli chcemy zaladowac skompresowany plik od adresu $2000 to naglowek wyglada tak: 00 20 00 00 02
oczywiscie to jedna z mozliwosci - tak samo mozna ladowac spakowane dane lub uruchamiac spakowane pliki albo nawet bloki bedace czescia plikow
-- przyklad wymaga a130 bo laduje do bankow pamieci