CURSOR V1.2

Program dökümü: CURSOR V1.2

Durmadan yanıp sönen Cursor'ünüz artık size antipatik mi geliyor? Eğer cevabınız evetse hiç beklemeyin ve bu programı yazın. Program C64 için hazırlanmıştır ve MDE ile girilmesi gerekir. Başlangıç adresi olarak 0801, bitiş adresi olarak da 0926 girin; program çalıştıktan sonra kendini $C000'dan itibaren yazacak ve normal hafıza bölgesini boşaltacaktır.

Yeni Cursor olarak Sprite 0'ı kullanıyoruz, yani sonsuz sayıda Cursor şekliyle çalışabiliriz. Program Interrupt tekniğini kullandığından bilgisayar her 1/60 saniyede bir yaptığı işi bırakıp bizim programımıza dalanıyor.

Programın işleyiş biçimi prensip olarak çok basit: İlk önce $ CC adresine gerekli değeri Poke ederek normal Cursor'u "söndürüyoruz". Daha sonra Kernal Plot rutini ile Cursor'un koordinatlarını saptıyoruz. (Itiraf etmeliyim ki dikkatsizliğim yüzünden burada 2 günümü harcadım. Nedeni de bu rutinin X koordinatını Y registerine, Y koordinatını da X registerine yüklemesiydi.) Her neyse, bundan sonra bu koordinatlara denk gelen Sprite adreslerini hesaplayıp Sprite 0'ı normalde Cursor'un bulunduğu yere yerleştiriyoruz. Benim kullandığım Cursor beyaz renkli ve içi boş bir kare şeklinde. Durdurduktan sonra $C03E (49214) adresine dilediğiniz rengi yerleştirebilirsiniz. Sprite dataları ise $C080-C09E (49280-49310) arasında bulunuyor.

Son olarak; yeni Cursor'umuz Interrupt tekniğini kullanmayan ve kendi adresleri üstüne gelmeyen bütün programlarla (hem Basic, hem de Assembler) kusursuz çalışıyor.

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.