Commodore sayı 52, sayfa 23

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 23

6049 INC $DO20 Renk kodu bir arttırılır.

Eğer çerçeve renginin kodu 15'den büyük olursa tekrar 0'dan başlanır, zira 5.-7. bit'ler kullanılmaktadır. Bundan sonra tekrar normal IRQ rutinlerine dönülür. 604C JMP $EA31 Bu şekilde yazı ekranının kenarlarındaki çerçeveler ele alınmış oluyor. Bundan sonra üst ve alt tarafta kalan bölümler ile uğraşacağız:

604F LDA # $00 6051 STA $DO20

Siyah rengin kodu çerçeve rengi registerine yazılır. Yazı ekranının yukarıdan başladığı Raster satırı Raster registerine yazılır. Tekrar normal IRQ rutinlerine dönülür

6054 LDA # $32

6056 STA $DO12 6059 JMP

Bu son bölümde üst ve alt kısmındaki bölümleri siyah olması gerektiğini belirttik. Kendi yazdığımız Interrupt rutini bu satırlarla sona ermiş oluyor. Yalnız istenildiği zaman bilgisayarın normal ekranına dönülmesi için birkaç satır daha eklememiz gerekmektedir. SYS 24668 ile C-64 ilk konumuna gelecektir.

605C 605D LDA # $00 605F STA $DOJA 6062 LDA # $31 6064 STA $0314

Interrupt kesilir. Raster-IRQ durdurulur.

IRQ vektörünün eski haline dönüştürülmesi Raster registerine yazılır. Tekrar normal IRQ rutinlerine dönülür.

6056 STA $DO12 6059 JMP $EASI

6067 LD # $EA 6069 STA $0315 606C LDA # $0E 606E ST $DO20 6071 CLI 6072 RTS

Açık mavinin renk kodu çerçeve registerine yazılır. IRQ'dan çıkılır.

Programımız artık tamamlanmış durumdadır. Çalıştırmadan önce diskete ve kaset'e kaydetmenizi tavsiye ederim. SYS 24576 ile programı başlattığınızda ekranın dış çerçevesinde renkli şeritler gözükecek ve aynı zamanda Cursor yanıp sönerek sizden emir bekleyecektir. Programımız bazı değişikliklere de olanak sağlamaktadır. POKE komutu ile 2 No.'lu adresteki değer değiştirerek çerçevedeki bantların kalınlığını istediğiniz gibi belirleyebilirsiniz. Yine POKE komudunu kullanarak 24645 adresindeki döngünün başlangıç değeri değiştirilebilir. Deneyerek göreceğiniz gibi bu tüm Interrupt programlarında süre oldukça önemli bir rol oynamaktadır. Eğer bu süreyi doğru olarak belirleyemezseniz ekranda istemediğiniz şeyler olacaktır. Örneğin yukarıdaki örneğimizde şeritler hareket etmeye başlar.

Program üzerinde değişiklik yapmaya olanak sağlayan diğer bir nokta da şeritlerin başlangıç ve bitiş değerleridir. Bu değerler program içinde yazı alanının yüksekliği ile aynı olacak şekilde ayarlanmıştır. POKE 24661, sayı ile şeritlerin başlangıç ve POKE

24635, X: POKE 24588, X ile de şeritlerin bitiş değerlerini değiştirebilirsiniz. Daha önce de belirttiğimiz gibi yazdığımız programda şeritlerin başlangıcı 50. Raster ve bitişi 248. Raster olarak belirtilmiştir.

Bu yazıdan edindiğiniz bilgilerle değişik Interrupt programları yazabilirsiniz. Yalnız hemen şunu belirtelim: Ekranı tarayan ve belli bir Raster'de VIC-Interrupt'ı başlatan elektron ışınının hızı çok yüksektir. Bu nedenle yazacağınız alt program fazla uzun olmamalıdır, zira daha işlem tamamlanmadan bir sonraki Interrupt başlayabilir.

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