====AS - kompilácia priamo do stránok====
----
//autor textu mborik128//
V ASe je kompilácia do stránok možná, aj keď sa to nedá spraviť jedným príkazom...
Ako vieme, výstup ASu je bytecode súbor typu ***.p**, ktorý môže obsahovať iba 65536 výstupných bajtov a z ktorého si následne vieme nasekať výstup do bináriek pomocou **p2bin**. Čize, ak si svoj zdroják pripravíme napr. takto:
cpu z80undoc
relaxed on
page 0
org 0
; priestor od 49152 v pomalej banke 1 (17)
;------------------------------------------------------------------------------
phase $C000 ; to, co by bolo povodne ako org, kde sa bude kod vykonavat
; kod
ds $4000-($-$C000) ; kvoli vyplneniu zostatkoveho miesta az do konca banky
dephase
; priestor od 49152 v pomalej banke 3 (19)
;------------------------------------------------------------------------------
phase $C000
; kod
ds $4000-($-$C000) ; bytecode musi byt totiz presne na bajt vyplneny na 16k bloky
dephase
; priestor od 49152 v rychlej banke 4 (20)
;------------------------------------------------------------------------------
phase $C000
; kod
ds $4000-($-$C000)
dephase
; priestor od 49152 v rychlej banke 6 (22)
;------------------------------------------------------------------------------
phase $C000
; napriklad binclude "hudba.bin"
ds $4000-($-$C000)
dephase
Následne si nasekáme výstup do bináriek jednotlivých bánk pomocou parametra **-r** ako range, parameter **-l** určuje, čím vyplniť prázdne miesto a **-k** na konci zmaže po sebe samotné ***.p**.
Takže bude to vyzerať nejak takto...
v kompilačnom makefile:
%.bin: priklad128pages.p
p2bin priklad128pages.p page1.bin -l 0 -r \$$0000-\$$3fff > /dev/null
p2bin priklad128pages.p page3.bin -l 0 -r \$$4000-\$$7fff > /dev/null
p2bin priklad128pages.p page4.bin -l 0 -r \$$8000-\$$bfff > /dev/null
p2bin priklad128pages.p page6.bin -l 0 -r \$$c000-\$$ffff -k > /dev/null
...alebo v kompilačnom batch skripte:
p2bin priklad128pages.p page1.bin -l 0 -r $0000-$3fff > /dev/null
p2bin priklad128pages.p page1.bin -l 0 -r $4000-$7fff > /dev/null
p2bin priklad128pages.p page1.bin -l 0 -r $8000-$bfff > /dev/null
p2bin priklad128pages.p page1.bin -l 0 -r $c000-$ffff -k > /dev/null
Na záver musím iba pripomenúť, že v ASe príkaz PAGE slúži na ovladánie stránkovania vo výstupnom listingu. Preto všetky moje kódy obsahujú **PAGE 0**, aby sa mi v ***.lst** neobjavovali rušivé deliace ciary. Tj. nemá to nič spoločné so stránkami Speccy 128k ;)
----
**Navigation: [[asm]] . [[compilation]] . [[linux]] . [[windows]] . [[mac]] . back to [[start]]**