Commodore sayı 67, sayfa 25

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 25

Her neyse, bu kadar deneme yanılma yeter. Aslında tüm bu işlemleri deneme yanılmayla bulmak yerine komutların Cycle uzunluğundan da hesaplayabilirdik ama deneme yanılma metodu benim daha çok hoşuma gider. Satır sayısı olan X'i bir arttırdıktan sonra, değişken uzunluk olan (satırı yukarı-aşağı oynatacağımıza göre kayma miktarını sabitlememek iyi bir fikir olur sanırım) $FE'de bulunan değerle karşılaştırıyoruz, ve bu değere ulaşamadıysak satır kaydırma işine devam ediyoruz. Pek de zor değilmiş ha? Şimdi işin zor kısmına geldik. Yani kayan yazının arkasına renk koymaya. Burada yazılar olacağı için DMA satırları da olacak, ve zamanlamamızı sapıttırmak için hazır bekleyecekler. Ama saydırma metodunu kullanacağımız için bu zorluklar bize sökmez. Her şeyden önce tam satır başını yakalamamız, ve ilk üç bitini ayarlamamız gerekecek (Yazıları kaydıracaktık hatırlarsanız. Eğer $D016'yı şimdi değiştirmezsek, daha sonra araya onu da sokuşturmak için tüm zamanlamamızı çökertmemiz gerekebilir).

İlk satır DMA olduğu için, hiç bir işe girişmeden önce ekran ve çerçeve rengini değiştirmeliyiz. Zamanlama için Y'yi birden geriye saydırmak gerekiyor (Deneme yanılma olduğunu buradan da görebilirsiniz. Başka hangi aptal Y'yi birden geri saydırıp, sonra sıfır olmuş mu diye kontrol eder?). Bu yöntem bizim için Y'yi de sıfırlayacağı için, Y'yi 25

PÜF NOKTASI

AJASILDA

$DO20 STA Sİ LDY 4805

STA

satır kullanmamızı programcık, ekran renklerini ve kayma miktarını istediğimiz yerde bir sayaç olarak kullanabiliriz. Daha sonra $0FFE adresinde bulunan değeri $D016'ya koyarak ekranın x pozisyonunu ayarlıyoruz. Bu adres de bir değişken olacağı için, bunu da aklınızda tutun (daha da iyisi bir yerlere yazın). Sonra geçen sayılarımızdan tanıdığımız saydırmalı renk koyma rutinine geliyoruz. Bu rutine girmeden önce sayaç olarak seçtiğimiz X'i sıfırlıyoruz. Daha sonra da, $0B90 adresindeki tabloda bulunan bekleme değerini Y'ye alıyoruz, ve gerekli miktarda bekliyoruz. Bu işleri yaptıktan sonra, renk tablosundan kayan yazı renklerini alıp, ekrana ve çerçeveye veriyoruz. Bu işlemi 16 raster satırı boyunca yaptıktan sonra, buradaki işimizi bitirip, ekranı renkli olarak kaydırmaya devam ediyoruz. Bu işleri yapan kısa programcığı Tablo-3'de bulabilirsiniz. Gördüğünüz gibi, sadece renk değiştirme rutini, ekranı kaydırırken renk değiştiren rutinden biraz daha uzun sürüyor. Sanırım DMA'larla uğraşmanın ne kadar belalı bir iş olduğunu yavaş yavaş anlıyorsunuzdur. Gelelim, kayan yazıdan sonra ekranı kaydıracak rutine. Ekranı yazıdan sonra da kaydırmamızın sebebi, tüm sinüsünü içeren bölgenin hemen altında ekran satırlarını sabitlemek. Bu sayede, en altta kalan iki-üç satıra da bir ufak efekt sokuşturabiliriz. Geriye kalan kısmı sabitleyecek olan rutini Tablo-4'de bulabilirsiniz. Bu programın başında

Klavyeyle gezinmek için ← ve → tuşları.