Commodore sayı 70, sayfa 45

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 45

Bne RASTER'miş komutlarını koyabiliriz. Belki siz de bit kontrolü yaparken bu sistemi kullanmaya alışıksınızdır. Ama yukarıdaki komutlar hem A'nın içeriğini etkilemez, hem de aşağıdakinden daha hızlı çalışır. Yukarıdaki sistemde negative flag'ini (eksi bayrağını) kullanıyoruz. Bu bayrak, kendisini etkileyen bir komut kullanıldığında (LDA gibi) bu komutun kullandığı değerin MSB'sinin değerini alır. Daha sonra kullanılacak olan bir BMI (branch on result Minus — sonuç eksiyse dallan) MSB birse, BPL (Branch on result Plus — sonuç artıysa dallan) MSB sıfırsa işlem yapar. Bu bite neden eksi biti dendiğini öğrenmek için biraz sabredin. Örneğimize geri dönersek, $D019'un son biti birse (VIC interrupt'ıysa) $C038'e sıçranıyor. Değilse KERNAL'a izin veriliyor. Buraya kadar hep yeni şeyler öğrendik atölyemizde. Şimdi ise o kadar aydır devam eden Makine Dilinin Püf Noktaları yazısının konularından yararlanma vakti geldi. Hepimiz en zahmetsiz şekilde kaç RASTER satırlık renk koyulabileceğini biliyor sanırım. Sen! Gözlükleri olan, söyle bakalım... Duyamıyorum seni. Ne? Demek elektrikler kesikti çalışamadın, ha? Sana ödev veriyorum, makine dilinin püf noktalarını daha dikkatli oku, öyle gel. Biz arkadaşlarla devam edeceğiz. En zahmetsiz şekilde ardışık yedi RASTER satırlık renk şeridi koyulacağını hatırladık sanırım. Bunun sebebi ise, her sekiz satırda bir (doğal hayatına karışılmamış bir bilgisayarda) görüntü işlemleri için bizim zamanımızdan birazının bilgisayar tarafından çalınmasıdır. Bu yüzden bu satırlara (DMA satırları) geldiğinde kurmuş olduğumuz tüm zamanlama çöker. Saatlerce zamanlama tutturmaya uğraşmaktansa iki DMA satırı arasını kullanırız sadece, olur biter. Biraz tembellikten, biraz da görsel etkiler yüzünden bu örnekte bu yedi satırın yalnızca altısını kullanacağız. Harfler yedi piksel (nokta) yüksekliğinde olduğundan, renkleri ortalamak için bunların beşini renkle, altıncısını ise ekran rengiyle harcayacağız. Sonuç olarak renk şeritlerimiz değişik beş renkten oluşacaklar. Bu beş renk karakter setinin tam ortasına gelecek şekilde ayarlanmış olacak (RASTER satırı buna göre ayarlanmalıdır). Sonuç olarak beş rengin bir karakterin tam ortasından geçmesini sağlayacak olan rutini Tablo 2'de görebilirsiniz.

Kısacık bir rutinle BASIC ekranlarına canlılık katabiliriz.

Programda sırasıyla şu işlemler yapılıyor (hoş, çoğunuzun bunu anlamış olması gerekiyor): adresinde ilk olarak rengin değiştirilebilmesi için uygun bir yere gelinmesi bekleniyor. Eğer yerini iyi ayarlayamazsak ekrandaki renkler titrer. Sonra kaçıncı rengin gösterileceğini ayarlayan sayaç (Y registeri) sıfırlanıyor ve ilk renk $C028 adresinden alınıyor. Bu renk hemen çerçeve ve ekrana veriliyor. $C048 adresinde alt satırın başına kadar bekleniyor, sayaç veriliyor. $C048 adresinde alt satırın başına kadar

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