Gönderen Konu: Split veya Multicolor deneme  (Okunma sayısı 100 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı hades

  • RAAT
  • Retro Meraklısı
  • *
  • İleti: 184
Split veya Multicolor deneme
« : 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
;-----------------------------------------

Çevrimdışı Ref

  • Yönetici
  • Özgür Retrocu
  • *
  • İleti: 2958
  • Advanced User Simulator
    • ae unutmadan
Ynt: Split veya Multicolor deneme
« Yanıtla #1 : 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.