Commodore sayı 51, sayfa 47

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 47

Interrupt ve VIC-II-Chip'i:

C-64'ün görüntü işlevlerini yerine getiren VIC-Chip'inin Interrupt'lar için kullanımı iki registerle gerçekleşir. Bu yöntemle yapılabilecekler dört başlık altında toplanır: 1) Raster satırları (Ekranı sürekli tarayan yatay çizgiler) 2) Sprite'ların arka plan ile çarpışmaları 3) Sprite'ların birbirleriyle 4) Işıklı kalem (Light-Pen) Bu son şıkka pek fazla kullanım alanına sahip olmadığı için değinmeyeceğiz.

VIC-II-Chip'indeki “Interrupt Enable Registeri”, yani

Interrupt'ı devre dışı bırakan register $D01A (53274) adresinde yer almaktadır (Resim 3). Bu registerden yukarıdaki dört olaydan hangi biri veya birkaçı için mikroişlemciye veri gönderilmesi gerektiğini belirleyebiliriz. Bu dördü için burada ayrı bir Bit yer almaktadır. Eğer bu Bit “1” ise Interrupt serbest bırakılır, yani kullanılabilir, 0 ise devre dışı kalır. Bitler registerde şu şekilde yerleşmiştir: Bit 0 Raster satırları Bit 1 Sprite/Background çarpışması Bit 2 Sprite/Sprite çarpışması Bit 3 Işıklı kalem Bit 4-7 Kullanılmamıştır ve 0'dır. VIC-II-Chip'inin 25. Register'i ($D019— 53273) “Interrupt-Latch-Register” olarak adlandırılmaktadır. Eğer dört seçenekten biri $D01A'dan seçilirse 25. Register'de de buna karşı gelen Bit “1” değerini almaktadır. Bit yerleşme düzeni aynı bir öncekindeki gibidir (Resim 4). Yalnız buradaki tek fark Bit 7'dir. Eğer 0-3 Bit'lerinden biri 1 değerini alırsa 7. Bit de kendiliğinden 1 olmaktadır. Bu şekilde bu Bit okunarak kolayca VIC-II-Chip'inde herhangi bir Interrupt'ın serbest bırakılıp bırakılmadığını anlayabiliriz. Son olarak bu registerin ilginç bir özelliğine değineceğiz. Burada eğer herhangi bir Bit'i silmek isterseniz yerine yine “1” yazmalısınız. Bu aylık da bu kadar. Gelecek sayıda Interrupt'lar hakkında gerekli temel bilgiyi edindikten sonra oldukça kapsamlı bir program yazacağız. Hoşçakalın.

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