Commodore sayı 32, sayfa 57

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 57

Eğer programı C-128'de kullanmak isterseniz, 20 numaralı 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. ?EXTRA IGNORED hatasının dışında bazı karakterler de INPUT komutunda veri olarak kullanıldıklarında çeşitli sorunlara sebep olurlar. Yukarı ve aşağı kürsor tuşları ekranın kaymasına sebep olurlar. CLR tuşu ekranın silinmesini sağlar. Eğer ekranda yazılı menü varsa kaybedilmiş olur. Böyle bir durumdan kaçınmanın tek yolu bu tür sorunlara yol açan tuşları etkisiz hale getirmek olacaktı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şiklik yaparak virgül, kolon, kürsor-yukarı, kürsor-aşağı, CLR ve HOME tuşlarını etkisiz hale getiriyor. Bu işlemden diğer tuşlar etkilenmemekte. Klavye matrisi 60289 adresinde başlıyor. Bu programı tek başına veya büyük bir program içinde alt program olarak kullanabilirsiniz. Altı tuşu etkisiz hale getirmek için programınıza INPUT'dan önceki satırda POKE 1,53 komutunu ekleyin. Bu tuşları tekrar aktif hale getirmek için POKE 1,55 komutu yeterli olur.

10 POKE 1,53 20 İNPUT AS : PRİNT A$ 30 POKE 1,55.

İlk POKE virgülü etkisiz hale getireceğinden direkt modda POKE komutunu vermek mümkün olmayacak. RUN/STOP-RESTORE tuşlarına basarak klavyeyi eski haline getirebilirsiniz.

MAKİNE DİLİ

Alfabetik sıraya göre BASIC komutlarını makine dilinde nasıl gerçekleştirebileceğimizi göreceğiz. Bir komut 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 harcayan veya daha hızlı rutinler olabilir. Ben, programlaması daha kolay ve anlaşılabilir olan rutinler vermeye çalışacağım. CLR BASIC'te bu komutu kullanarak değişkenleri silebilirsiniz. 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 için gerekli hafıza bölgesini sıfırlarla doldururuz. Bir makine dili program başlamadan evvel bazı değişkenlerin sıfıra eşitlenmesi gerekir. Eğer bu değişkenler 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 işler çok daha kolay demektir. Değişkenlerin olduğu bölgede kurulacak bir döngü ile tüm değişkenler sıfırlanabilir:

2000LDA $0 2002 LDA $0F ; Y yazmacını sayaç olarak kullanı- yoruz Bu örnekte 15 değişkeni (byfe) sıfırlıyoruz.

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ş programın devam etmesini sağlayabilirsiniz. Ancak makine dilinde çalışan bir programı RUN/STOP tuşuyla durdurmak mümkün olmaz. İsteğe göre basılan bir tuşu kontrol eden bir rutin yazılabilir. Eğer basılan tuş STOP ise BRK komutuyla program durdurulabilir. Gelecek yazımıza bu işi yapacak programla devam edeceğiz. Şimdilik hoşçakalın. 57

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