Retrojen Forum

Dijital Sanat => Kodlama => Konuyu başlatan: hades - 01 Eylül 2022, 00:48:32

Başlık: Split veya Multicolor deneme
Gönderen: 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.
Kod: [Seç]
;=========================================
; 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
;-----------------------------------------
Başlık: Ynt: Split veya Multicolor deneme
Gönderen: Ref - 01 Eylül 2022, 15:44:46
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.