AYNALAR

Program dökümü: AYNALAR

Bu makine dili grafik programı, C64'te high resolution (yüksek çözünürlük) ekranını kullanarak son derece hızlı ve devamlı değişen kaleidoskopik grafik desenleri üretiyor. Programı tamamen makine dilinde yazıldığından programı MDE ile girmelisiniz. Programı MDE ile yazdıktan sonra diskete veya kasete kaydetmeyi unutmayın. Bundan sonra programı normal olarak yükleyip RUN edin.

Programı çalıştırınca ekran temizlenecek ve dört ayrı kadran oluşacaktır. Her kadranda devamlı değişen şekiller ortaya çıkacaktır. Burada her kadran bir ayna vazifesi gördüğünden sonuçta ortaya çıkan grafikler simetrik olacaktır. Herhangi bir tuşa bastığınızda programdan çıkar ve BASIC'e dönersiniz.

C64, bit mapped grafikler için biraz karmaşık bir adresleme tekniği kullanılıyor. Ekrana yerleştirilecek pixelin yerini hesaplamak için şu eşitliği kullanabilirsiniz.

D = HIRES + 320 * INT(Y/8) + 8 * INT (X/8) + (YAND7)

Burada HIRES, yüksek çözünürlük ekranın hafızadaki adresini temsil etmektedir. X ile Y ise pixelin yatay ve düşey koordinatları belirtiyor. Programcılar bu eşitliği ekrana yerleştirilecek pixellerin değerlerini bulmak için sık sık kullanırlar. Ancak bizim programımız bunu daha kolayca halledliyor.

Program yukarıdaki eşitliği sadece bir çizgi üzerindeki ilk pixeli yerleştirmek için kullanıyor. Bu pixel yerleştirildikten sonra yapılan iş sadece D'nin değerini değiştirmektir. Burada ise bilgisayar şu mantığı kullanıyor:

Eğer X arttığı zaman (X AND 7)= 0 ise D=D+1 X azaldığı zaman (X AND 7)= 0 ise D=D+1 Y arttığı zaman (Y AND 7)= 0 ise D=D+313, öbür durumlarda D=D+1 Y azaldığı zaman (Y AND 7)= 7 ise D=D-313, öbür durumlarda D=D-1 oluyor.

Pixelin bu şekilde hesaplanması normal metoda göre çok daha hızlıdır.

Bu yazıdaki programlar

Dergideki dökümlerden çıkarıldı; satırlar derginin kontrol toplamlarıyla doğrulandı ve programlar VICE emülatöründe denendi. Tarayıcıdaki C64'te çalıştırabilir, indirip bir emülatöre sürükleyip bırakabilir ya da gerçek bir C64'te LOAD "AD",8,1 ile yükleyebilirsiniz. "Sorun bulundu" yazanlarda bazı satırlar okunamadı ya da tutmadı; düzeltilmiş bir sürümünüz varsa contact@coze.org adresine gönderin.