User Tools

Site Tools


asl-kompilacia-do-stranok

This is an old revision of the document!


V ASe je kompilacia do stranok mozna, aj ked to nedosiahnes jednym prikazom… Ako vieme, vystup ASu je bytecode subor typu [b]*.p[/b], ktory moze obsahovat iba 65536 vystupnych bajtov a z ktoreho si nasledne vieme nasekat vystup do binariek pomocou [b]p2bin[/b]. Cize, ak si svoj zdrojak pripravime napr. takto:

[code]

	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

[/code]

Nasledne si nasekame vystup do binariek jednotlivych bank pomocou parametra [b]-r[/b] ako range, parameter [b]-l[/b] urcuje, cim vyplnit prazdne miesto a [b]-k[/b] na konci zmaze za sebou samotne [b]*.p[/b]. Takze bude to vyzerat nejak takto… v kompilacnom makefile: [code] %.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

[/code]

…alebo v kompilacnom batch skripte: [code] 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 [/code]

Na zaver musim iba pripomenut, ze v ASe prikaz PAGE sluzi na ovladanie strankovania vo vystupnom listingu. Preto vsetky moje kody obsahuju [b]PAGE 0[/b], aby sa mi v [b]*.lst[/b] neobjavovali rusive deliace ciary. Tj. nema to nic spolocne so strankami Speccy 128k ;)

asl-kompilacia-do-stranok.1390901212.txt.gz · Last modified: 2014/01/28 10:26 by darkbyte