Retrojen Forum
Dijital Sanat => Kodlama => Konuyu başlatan: hades - 01 Eylül 2022, 00:48:32
-
Z80'in dinamik stack özelliğini ve R (refresh) registerini kullanarak bir kaç gündür uğraştığım kodu paylaşıyorum. Yığın göstergecini renk belleğinin ilk satırının sonunu gösterecek şekilde değiştiriyoruz. R registerinin değerini HL'ye aktararak peşpeşe PUSH ve POP ile döngü yapıyoruz. Emülatör üzerinde 48K modelde denenmiştir.
;=========================================
; Split veya Multicolor deneme
; 30-Ağustos-2022 / hades
;=========================================
org $8000
xor a
out (254),a
di
ld sp,$5820
loop ld b,4
wait djnz wait
ld l,a
ld a,r
ld h,a
push hl
push hl
push hl
push hl
push hl
push hl
push hl
push hl
push hl
push hl
push hl
push hl
push hl
push hl
push hl
push hl
ld a,r
ld l,a
pop hl
pop hl
pop hl
pop hl
pop hl
pop hl
pop hl
pop hl
pop hl
pop hl
pop hl
pop hl
pop hl
pop hl
pop hl
pop hl
jr loop
;----------------------------------------
end $8000
;-----------------------------------------
-
hadi hayırlı olsun, raster kovalama macerasına hoş geldin :D
buradaki sorun o PUSH HL'lerin 10 ile 22 arasında geniiş bir varyasyonda zaman harcaması. ikinci olarak SP'nin sondan başa dolması, rasterin ise baştan sona gitmesi, bunları hesaplamaya çalışmak insanın kafasını rendeliyor bir süre sonra.