Commodore sayı 23, sayfa 57

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 57

BURAK KİPER TEKRAR EDEN TUŞLAR

C64 ile çalışırken fark etmişsinizdir, kursor tuşları ve boşluk tuşu basılı tutulduklarında tekrar ederler. Buna karşın diğer tuşları basılı tutsanız da sadece bir kere çalışırlar. Bütün tuşların basıldıklarında tekrar etmeleri özellikle bir program yazıyorsanız veya kelime işlem türünde bir çalışma yapıyorsanız çok yararlı olur. Tuşların tamamının basıldıklarında tekrar etmelerini sağlamak için bir tek POKE komutu yeterli oluyor. Değişikliği istersek bir program içinde, istersek direkt modda yapabiliriz. Kullanacağımız adres 650. Bu adrese 0 değerini verirsek sadece kursor tuşları tekrar eder. 128 verirsek bütün tuşlar tekrar eder. 64 değerini vererek tüm tuşların tekrar etme özelliğini kapayabiliriz, ama bu durumda boşluk tuşu ve kursor tuşları da tekrar etme özelliğini kaybederler.

10 POKE 650,128:REM tüm tuşlar tekrar eder. 20 POKE 650,0 :REM sadece cursor tuşu tekrar eder. 30 POKE 650, 64:REM tekrar etme kapanır. Tuşların tekrar hızlarını ve tekrar etme için gecikmeleri- ni ayarlayan değerleri 651 ve 652 adreslerinde bulabiliriz.

WAIT KOMUTU

WAIT komutu ne işe yarar? Birçok farklı BASIC dilinde bilgisayarın belirli bir süre işini bırakıp beklemesini sağlayan komutlar vardır. WAIT komutu ilk bakışta bu işi üstlenmiş görünüyor, ancak kullanımı oldukça farklı. Amacımız WAIT komutunun ne yaptığını ve ne için kullanılabileceğini açıklamak. İlk önce komutun yapısına bakalım:

WAIT A,B

A değişkeninde bir hafıza adresi olsun. WAIT komutu A değişkeninde bulunan adresin içeriğini alıp B değişkenindeki değeri ile AND işlemini gerçekleştirir. Bu işlemin sonucu sıfır değilse program akışı devam eder. A değişkeninde yer alan hafıza adresi bir giriş çıkış veya başka bir aleti ilgilendiren adres değilse veya bu adresin içeriği interrupt yolu ile değiştirilmiyorsa programınız bu noktada sonsuza kadar bekleyecek demektir. Bu yüzden programımızda WAIT komutunu kullanırken çok dikkatli olmamız gerekir. WAIT komutundan nasıl yararlanabiliriz? Mesela bazı özel tuşlar basılana kadar program akışını durdurmak istersek WAIT komutu çok işimize yarar. 653 numaralı hafıza adresinde SHIFT, COMMODORE veya CTRL tuşlarının basılıp basılmadığına dair bilgi saklanır. CTRL tuşu basılana kadar bekleyecek bir program yazalım. 10 “CTRL TUŞUNA BASIN.”

20 WAIT 653,4:REM CTRL TUSU BASILANA KADAR BEKLE.

20 numaralı satırda bilgisayar CTRL tuşuna basılana kadar bekleyecektir. Aynı beklemeyi SHIFT ve COMMODORE tuşları için sağlamak istersek yapmamız gereken;

WAIT 653,1:REM SHIFT TUSU ICIN BEKLE WATT 653,1:REM COMMODORE TUSU ICIN BEKLE

Herhangi bir tuşu kontrol edebilmek için 203 numaralı adresi WAIT komutu ile kullanmamız gerekir. Klavyede hiçbir tuşa basılmamışsa 203 numaralı adresin içeriği 64 olur.

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