Bu sayfadaki yazılar
Sayfanın metni
Sayfa 11
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.
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 10
Bu program C64 için makina diliyle yazılmıştır ve MDE ile girilmesi gerekir. Başlangıç adresine 0801, bitiş adresine 090A yazın; program daha sonra $ 9400'e yerleşecek ve SYS 37888 ile çalışacak hale gelecektir.
Program yazı ekranlarını zarif bir biçimde değiştirmek için hazırlanmıştır. Geçiş hızını $ 0339 (825) adresine Poke etmelisiniz. Yumuşak bir geçiş için 30 ile 50 arası uygundur.
Program ekrana gelecek yeni ekranı $ B000'dan alıyor. Gösterilecek ekranı buraya bir monitör yardımıyla (ya da istediğiniz başka bir şekilde) girmelisiniz. Programı daha fazla uzatmamak için Bilgi-Gir türü bir rutin eklemedim, fakat programın başında göreceğiniz 3 NOP komutunu JSR veya JMP ile değiştirerek istediğiniz rutini programa dahil edebilirsiniz.
Son olarak; program RenkRam'ını düzenlemediği için, eğer sileceğiniz ekranda birden fazla renk varsa (örneğin kırmızı başlık altında siyah bir text, vs, vs), program kusursuz çalışacak ve yeni ekran eksiksiz görünecek, fakat silme işlemi sırasında ilginç ama "ciddiilikten uzak" görüntüler oluşacaktır.