Eğer programı C-128'de kullanmak isterseniz, 20 nu- maralı satırı; 20 BANK 15 : SYS 20371 olarak değiştirin, 30. satırdaki FOR...NEXT döngüsün FOR X-—512 to 771 olarak değiştirin. ?2EXTRA İGNORED hatasının dışından bazı karakter- ler de INPUT komutunda veri olarak kullanıldıklarında çeşitli sorunlara sebep olurlar. Yukarı ve aşağı kürsor tuşları ekranin kaymasına sebep olurlar. CLR tuşu ek- ranın silinmesini sağlar. Eğer ekranda yazılı menü var- sa kaybedilmiş olur. Böyle bir durumdan kaçınmanın tek yolu bu tür so- runlara yol açan tuşları etkisiz hale getirmek olacak- tır. Program döküm ekindeki üçüncü program bunu yapıyor. Program BASIC ve KERNAL'ı ROM'dan RAM'e kopyalıyor. Bundan sonra klavye matrisinde değişik- lik yaparak virgül, kolon, kürsor-yukarı, kürsor-aşağı, CLR ve HOME tuşlarını etkisiz hale getiriyor. Bu işlem- den diğer tuşlar etkilenmemekte. Klavye matrisi 60289 adresinde başlıyor. Bu purogramı tek başına veya büyük bir program içinde alt program olarak kullanabilirsiniz. Altı tuşu et- kisiz hale getirmek için programınıza INPUT'dan ön- ceki satırda POKE 1,53 komutunu ekleyin. Bu tuşları tek- rar aktif hale getirmek için POKE 4,55 komutu yeterli olur. 10 POKE 1,53 20 İNPUT AS : PRİNT AS$ 30 POKE 1,55 İlk POKE komutu virgülü etkisiz hale getireceğinden direkt modda POKE komutunu vermek mümkün olma- yacak. RUN/STOP-RESTORE tuşlarına basarak klavye- yi eski haline getirebilirsiniz. MAKİNE DİLİ Alfabetik sıraya göre BASIC komutlarını makine di- linde nasıl gerçekleştirebileceğimizi göreceğiz. Bir ko- mut için benim vereceğim makine dili rutini çok baş- ka şekillerde de yazılabilir. Bunların kimisi daha kısa, kimisi anlaşılması daha zor ama daha az hafıza har- cayan veya daha hızlı rutinler olabilir. Ben, program- laması daha kolay ve anlaşılabilir olan rutinler ver- meye çalışacağım. CLR BASIC'te bu komutu kullanarak değişkenleri sıfırla-« yabilirsiniz. NEW komutuna bu yönüyle benzer ama programı silmeyerek ondan bu noktada ayrılır. Makine dilinde CLR komutunu programın hazırlık safhası sayabiliriz. Bu kısımda programda kullanaca- ğımız belirteç, sayaç ve işaretler gibi veriler İçin ge- rekli hafıza bölgesini sıfırlarla doldururuz. Bir makine dili brogram başlamadan evvel bazı de- ğişkenlerin sıfıra eşitlenmesi gerekir. Eğer bu değişken- ler hafızanın farklı yerlerinde yer alıyorlarsa bunları tek tek sıfırlamak gerekir: 200LDA $0 2002 STA $1990 ; Değişkenlerden birini sıfırla 2005 STA $1994 ; Diğer değişkeni sıfırla. Burada değişken olarak tanımladığımız aslında bir hafıza adresi. Adresler programın ihtiyacına göre farklı farklı değerler saklamada kullanılabileceğinden BASIC'teki değişkenlerin işlevlerini görürler. Eğer bütün değişkenleri programın sonuna koymuş- sanız İşler çok daha kolay demektir. Değişkenlerin ol- duğu bölgede kurulacak bir döngü ile tüm değişken- ler sıfırlanabilir: 2000LDA - $0 2002 LDA $0F ; Y yazmacını sayaç olarak kullanı- yoruz Bu örnekte 15 değişkeni (byte) sıfirliyoruz. 2004 STA $199,Y ; 15 değişkenin en büyüğü 2007 DEY 1008 BNE $2004 ; Y Değişkeni sıfıra doğru saysın. Y sıfır olana kadar döngü $2004 adresine geçecek, Bu şart tamamlandığında program $200A adresindeki komuttan devam edecek. CONT " BASIC'te bu komutla STOP'la durdurulmuş progra- mın devam etmesini sağlayabilirsiniz. Ancak makine - dilinde çalışan bir pbrogramı RUN/STOP tuşuyla durdur- mak mümkün olmaz. İsteğe göre basılan birtuşu kont- rol eden bir rutin yazılabilir. Eğer basılan tuş STOP ise BRK komutuyla program durduruloabilir. Gelecek yazımıza bu işi yapacak programla de- vam edeceğiz. Şimdilik hoşçakalın.