C64 İÇİN PÜF NOKTALARI (1) BURAK KİPER TEKRAR EDEN TUŞLAR C64 ile çalışırken farketmiş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 yapa- biliriz. Kullanacağımız adres 650. Bu adrese 0 değerini ve- rirsek 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 kay- bederler. 58 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 WAJIT komutu ne işe yarar? Bir çok farklı BASIC dilin- de 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 üst- lenmiş görünüyor, ancak kullanımı oldukça farklı. Amcımız WAIT komutunun ne yaptığını ve ne için kul- lanılabileceğini açıklamak. İlk önce komutun yapısına ba- kalı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şkenin- deki diğeri ile AND işlemini gerçekleştirir. Bu işlemin so- nucu sıfır değilse program akışı devam eder. A değişkeninde yeralan hafıza adresi bir giriş çıkış veya başka bir aleti ilgilendiren adres değilse veya bu adresin içe- riği interrupt yolu ile değiştirilmiyorsa programıniz bu nok- tada sonsuza kadar bekleyecek demektir. Bu yüzden prog- ramımızda WAIT komutunu kullanırken çok dikkatli ol- mamız gerekir. WAIT komutundan nasıl yararlanabiliriz? Mesela bazı özel tuşlar basılana kadar program akışını durdurmak is- tersek WAIT komutu çok işimize yarar. 653 numaralı ha- fıza adresinde SHIFT, COMMODORE veya CTRL tuşla- rının basılıp basılmadığına dair bilgi saklanır. CTRL tuşu basılana kadar bekleyecek bir program ya- zalım. 10 PRINT “CTRL TUSUNA BASIN.” 20 WAIT 653,4:REM CIRL TUSU BASILANA KADAR BEKLE. 20 numaralı satırda bilgisayar CTRL tuşuna basılana ka- dar bekleyecektir. Aynı beklemeyi SHIFT ve COMMODO- RE 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.