Commodore sayı 51, sayfa 46

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 46

Yukarıdaki her iki komut da 1-bayt uzunluğundadır ve işlem süreleri 2 cycle'dır (çevrim). RTI (Return from Interrupt) ise “Interrupt'tan geri dön” anlamına gelmektedir. Bu komut bir bakıma yakından tanıdığımız RTS ile aynı işleve sahiptir. Yalnız RTS eski program sayacı değerini stack'tan alırken, RTI ayrıca statü registerini de stack'tan almaktadır. Bu işlem şu sırayla gerçekleşir: 1) Mikroişlemcinin eski statüsü stack'tan alınır ve statü registerine yazılır. 2) Stack göstergesi 1 arttırılır. 3) Eski program sayacının alçak baytı stack'tan alınır ve yerine yazılır. 4) Stack göstergesi tekrar 1 arttırılır. 5) Eski program sayacının bu sefer yüksek baytı stack'tan alınır ve yerine yazılır. 6) Stack göstergesi 1 arttırılır. Bu şekilde kesintinin gerçekleştiği andaki konuma tekrar dönülmüş olur. Aynı zamanda I-Bayrağı da silinmiştir, zira kesinti olmadan önce bu bayrağın değeri sıfırdır ve eski statü registeri olduğu gibi yerine yazılmıştır. RTI da diğerleri gibi 1 bayt'lıktır, yalnız işlem süresi 6 cycle'dır (çevrim). Son komutumuz olan BRK'yi (break) daha önce birçok kez kullanmıştık. BRK komutu Basic'ten tanıdığımız STOP ile hemen hemen aynı görevdedir ve daha çok programların test edilmesinde kullanılır. Aslında bilgisayarımız mikroişlemcisi BRK ile karşılaştığında aynı IRQ'da olduğu gibi hareket etmektedir. Bu işlem şu şekilde gerçekleşir: a) Program sayacı 2 arttırılır. b) Statü-register'indeki 4. Bit olan B-Bayrağı “1” yapılır. c) Program sayacının yüksek baytı stack'a yazılır ve stack göstergesinin değeri 1 azaltılır. d) Aynı işlem program sayacının alçak baytı için de gerçekleşir. e) Statü registeri de stack'a kaydedilir. f) Statü registerindeki I-Bayrağının değeri 1 yapılır. g) Program sayacına $FFFE/ $FFFF vektörünün gösterdiği değer yüklenir. Bu değer aynı zamanda IRQ'larda da kullanılır. Görüldüğü gibi BRK'nin arkasında oldukça karmaşık işlemler yatmaktadır. BRK de 1 bayt'lık komuttur, fakat işlem süresi 7 cycle'dır (çevrim). Bu şekilde Interrupt'ları kullanırken gereksinim duyacağımız tüm komutları öğrendik. Şimdi kısaca Interrupt'ların bilgisayarımızın hangi birimleri ile ilişkisi olduğunu göreceğiz. Bunları şöyle sıralayabiliriz: 1) VIC-II-Chip'i (MOS 6566/6567 Video Interface Controller) 2) Her iki CIA (MOS 6526 Complex Interface Adapter) 3) RESTORE tuşu 4) Expansion-Port 5) RESET (Bu listeye tamamen ait değilse de sözü edilmeden geçilemez.)

Resim 4: Interrupt-Latch-Register (53273 - $D019) 46

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