xxl napisał/a:numer zestawu w zaleznosci od numeru wiersza czytany jest z tablicy pewnie, ale mi chodzilo o wpolrzedna x, czy jest ona dzielona, dodawany adres linii i na tej podstawie obliczany adres znaku tla?
nie ma tablic bo wszystko jest w kodzie programu, procedura odczytu znakow dla kazdego wiersza jest rozpisana, rozpisanie programu realizuje BCALC.ASM, a zaczyna sie tak:
; BCALC
; zadaniem procedury BCALC jest odczytanie 4*COLS znakow i obliczenie ich adresow
; dodatkowo po odczytaniu znakow zastepowane sa one nowymi znakami: FREE, FREE+1 ... FREE+COLS
bcalc
lda posx
:2 lsr @
tax
lda posy
:3 lsr @
tay
lda ladr,y
sta _jmp+1
lda hadr,y
sta _jmp+2
_jmp jmp $ffff
pozycja X przeliczana jest na pozycje znaku w wierszu (x/4), na podstawie pozycji Y dokonywany jest skok do odpowiedniego programu obslugujacego wiersz
BCALC wywolywane jest z poziomu BAT-cha z roznymi parametrami, co powoduje wygenerowanie kodu dla 2-och buforow i 2-och roznych szerokosci ducha (cols=4 czyli 12 pixli, cols=3 czyli 8 pixli)
mads.exe bcalc.asm -d:bufor=2 -d:cols=4 -o:b2calc_12.obx -i:global
mads.exe bcalc.asm -d:bufor=3 -d:cols=4 -o:b3calc_12.obx -i:global
mads.exe bcalc.asm -d:bufor=2 -d:cols=3 -o:b2calc_8.obx -i:global
mads.exe bcalc.asm -d:bufor=3 -d:cols=3 -o:b3calc_8.obx -i:global