C64 Türkiye sayı 2, sayfa 12

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 12

$E544 -------- Ekranı siler. $FFD2 ------- Ekrana bir karakter yazar. $FFE4 ------- Klavyede basılan tuşu okur. Gördüğünüz gibi bazı hazır alt rutinler var. Bazı alt rutinler giriş parametreleri ister, bazıları ise yapılan işlemin sonucunu bir registerde veya adreste tutar. Hazır başlamışken adresleri inceleyelim.

$E544 : Aslında ekran silme alt rutini C64’ün ilk açılışta yerine getirdiği –INITIALIZE VIDEO CONTROLLER- işleminin bir bölümü. $E518 adresinden başlayan bu rutinde kursör yanıp sönme, zamanlama vs. gibi işlemlerinden başka yazı rengini belirleyen $0286 adresine #$0E değeri verilerek yazının açık mavi olması sağlanmaktadır. Eğer yazdığınız programlarda başlangıçta yazı rengini de değiştiriyorsanız mesela LDA #$01 - STA $0286 - JSR $E544 gibi komutlarınız varsa bu işi LDA #$01 - JSR $E536 yazarak da yapabilirsiniz. Böylece programınız 3 bayt kısalır. Belki önemli bir kısalma değildir ama PC’lerdeki gibi MegaBayt ile ifade edilen büyüklükte RAM’imiz olmadığı için RAM’i iyi kullanmak lazım ☺☺. Peki istediğiniz gibi hazır alt rutinler yoksa ne yapacaksınız ? Diyelim ki ekranın tamamını değil de ortadan 10 satır sileceksiniz. İki çözüm var. Ya ilgili ekran satırlarının adreslerini tek tek hesaplayıp ekrana BOŞLUK karakteri basacaksınız veya yine KERNAL ROM’da bulacağınız bir alt rutinle işinizi halledeceksiniz. Bu alt rutin, ekranı silen alt rutin tarafından kullanılan ve $E9FF adresinde bulunan CLEAR SCREEN-LINE isimli başka bir alt rutindir.

$FFD2 adresi ise aküde tutulan baytı o anki çıkış cihazına –Normalde ekrandır- gönderir. Mesela LDA #$41 – JSR $FFD2 komutları ile ekrana “A” harfini basarsınız.

Son olarak $FFE4 adresini görelim. Bu adres ile o anki giriş cihazından –Normalde klavyedir- bir bayt okur ve sonucu aküde tutar. Mesela JSR $FFE4 – CMP #$41 komutları ile klavyede “A” tuşuna basılıp basılmadığını kontrol edebilirsiniz. Gördüğünüz gibi $E544 parametresiz kullanılır. $FFD2 aküyle beslenir ☺☺ $FFE4 ise Aküyü besler. (Akü şarj cihazı yani ☺☺) Ana programınızda, alt rutinlerinizi ana programınızın bütünlüğünü bozmayacak şekilde istediğiniz yere yerleştirebilirsiniz ve ana programınızın çalışmasını etkilemeyecek herhangi bir yerden alt rutinlerinizi istediğiniz kadar çağırabilirsiniz. Sadece mutlak adreslemeli komutlarda dikkatli olun yeter.

Commodore 64'ün ROM'larındaki rutinleri, daha doğrusu romların içinde ne var ne yok öğrenmek istiyorsanız ANATOMY OF THE COMMODORE 64 isimli kitabı bulmalısınız. Kitabın orijinalini bulamazsanız bile internette TXT ve HTML uzantılı dosyalar halinde bulmanız mümkün. Yeter ki arayın. (Deniz’in notu: Millet, gördüğünüz gibi bu adamdan hayır yok. Neyse ben kitabın yazarlarını ve basımevini yazıyorum: Angerhausen/Becker/English/Gerits - Abacus Software – Data Becker GmbH. Kitap Amazon’da ikinci el olarak bulunuyor. Lemon64’te de kapağının resmi var. Ayrıca Centsible Software’de, Commodore Computer Center’da, Dr. Feelgood’s Crazy C= Sales’de (evet, kötü isim) ve Vintage Computer’da hâlâ bazı kitaplar (ikinci el veya yeni olarak) mevcut.)

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