Ellerine saglik Ref. Ben de sayende z80 assembly bilgilerimi bi tazeledim. HL'yi 8 ile carpmak icin yaptigin 3 toplama enteresan. ben niye 3 kere shift etmiyor diye dusunurken add hl, hl ile sla hl arasindaki hiz farkini farkettim:)
Bu sebepten z80.info'ya 4 tab açmıştım

orda üç tane tablo var kolay referans için, sanırım en faydalısı şu:
http://www.z80.info/z80code.txt- halt diye komutunuz mu var vblank beklemek icin yoksa oda pasmo macrosu mu?
"Halt" bir Z80 komutu. cpu'yu interrupt gelene kadar durduruyor. Zx spectrumda interrupt vblank'ın sonunda tetikleniyor, yaklaşık 14400 tstate sonra üst border alanı tamamen çizilmiş oluyor ve bitmap'in çizimine başlanıyor. Eğer ekranla işinizi border'ın çizildiği o ilk 14k tstate içinde bitirebilirseniz ULA geciktirmesine yakalanmıyorsunuz, yani komutlarınız ula tarafından kesilmeden iş görebiliyorsunuz.
Halt'ı sadece interrupt bozabilir, eğer interruptlar kapalı ilken halt işletirseniz programınız çakmış olur.
Burada ben ROM servis rutinini IM1 bozmuyorum. Bu sebepten halt'tan sonra sinclair basic servis rutini çalışıyor, klavyeyi falan kontrol ediyor, sistem değişkenlerini tazeliyor, bu da yaklaşık 1000ts harcıyor. Normalde bana o işlemler lazım değil, IM2 kurup bu süreyi 30-40 ts'ye çekebiliyoruz.
iki interrupt arasında (1 kare görüntüde) 69888 ts var. 69888 x 50hz = 3494400ts = 3.49mhz işlemci. 128k biraz daha hızlı, 1 kare 70908ts, yani 3.54mhz
ld b,10
LOOP halt
djnz LOOP
Gaza geldim. Hemen bir scroll rutini yazayım. Bakalım hız ve uzunluk olarak fark olacak mı?
Titan zinciri gibi gaza geliyoruz hades. 7Dx mart ayında yapılacakmış

Minik bir intro yapalım bari, zx olayı şenlensin.
bu arada o yazdığın loop 10 kare bekletir.
Ayrıca, ben yine fazla çene yaptığım, hades de olaya karıştığına göre, bu konuyu bölme zamanı geldi. Genel moderatör olaraktan bölüyorum konuyu.