Commodore sayı 55, sayfa 48

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 48

Por

Murat Şenyüz & Uğur Özyılmazel

MAKİNE DİLİNİN PÜF NOKTALARI

Bu ay da köşemizden hepinize selamlar. Umarım geçen ay anlattıklarımızı anlamış ve basit uygulamalara geçmişsinizdir. Çünkü şimdi interrupt'ı daha detaylı ve daha profesyonel kullanmayı anlatacağız. Biraz sonra aşağıda vereceğimiz program örneği ile otomatik hız kontrolü bir interrupt'ın nasıl kurulduğunu ve nasıl çalıştığını göreceğiz. Daha önceki interrupt'lar gibi $0314'e low (alçak), $0315'e high (yüksek) byte'ları verdikten sonra CLI komutunu da verip interrupt'ı çalıştırmayacağız. Kullanacağımız diğer adresler $D01A, $D019, $D011, $D01E, $D01D ve gerektiği zaman $D012'dir. Burada $D011 ve $D012 raster registerini oluşturan byte'lardır. $D011'in 7. bit'i raster registerinin yüksek byte'ıdır. $D01A önleme registeridir. Değeri #$01 ise interrupt çalışabilir. $D019 ise kesinti bayrağı registeridir. Herhangi bir açık interrupt varsa 7. bit'i 1 olur. Bu teknik açıklamalarla sizi daha fazla sıkmak istemiyoruz. Çünkü biliyorsunuz yazımızın başında her şeyi pratikten anlatacağız demiştik. Şimdi de bu kuralı bozmayacağız. Zaten bu verdiğimiz adreslere koyacağınız değerler her zaman aynıdır. İşte bu ayki program örneğimiz. $4000 SEI $4004 LDA #$00 STA $0314 $4006 LDA #$11 $4008 STA $0315 $400B LDA $D011 AND #$7F $4010 STA $D011 $4013 LDA #$7F STA $D01D $4019 LDA #$00 $401B STA $D01E $401E LDA #$01 $4020 STA $D01A $4023 LDA #$00 $4026 STA $D019 $4029 LDA #$32 $402B STA $D012 $402E CLI $402F JMP $A474 Şimdi bu programın satır satır kısa bir açıklamasını yapalım. Bunun için daha önceki bilgilerinizden yararlanmanız gerekecek. Daha önceden görmüş olduğumuz klasik interrupt kuruluşu düzeni ile aynı işlemler. Interrupt high ve low byte'larının yazılması 400B - 4013 - değeri alınır 7. biti temizlenir ve değer tekrar geri yazılır. Bu işlemler sayesinde raster satırı belirlenir. Bu işlemlerin aynısını $D011 adresine $1B değeri vererek de gerçekleştirebilirsiniz. Yani; LDA #$1B STA $D011

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