Commodore sayı 27, sayfa 63

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 63

2) İki byte (LO/HI) program satır numarası. Satır numarası kullanıcı tarafından verilir. Bu sayı 0 ile 63999 arasında olmalıdır. 3) BASIC komut kodları ve veriler. Bu bölüm en fazla 250 byte uzunluğunda olabilir ancak bunun sadece 80 byte'ı klavyeden girilebilir. 4) Satır sonunu belirleyen karakter: $00. Bu sayı BASIC'e satırın sonuna gelindiğini söyler. $A004-$A00C arasındaki adresler BASIC ROM'una aittir. Bu adreslere bakarsanız CMBBASIC yazısının ASCII kodlarını görürsünüz. $D800: $D800-$D80C arasındaki adresler Renk RAM'inin bir bölümüdürler. Bu adreslerde yer alan değerlerin LOW dört biti önemlidir. Çünkü renk hafızası için sadece dört bit kullanılmaktadır. Dört bit kullanarak toplam 16 ayrı renk elde etmek mümkün. Bu sayıda C64'ün bize verdiği renk sayısıdır. Bu adreslerdeki değerlerin dört biti normal olarak $0'dır. Bu değerler siyah rengin kodu olan sıfırdır.

BASIC PROGRAMLAR

BASIC dilinin en şikayet edilen özelliklerinden birisi de çok yavaş olmasıdır. Ancak iyi bir programlama tekniği kullanarak yazdığımız programların normale göre çok daha hızlı çalışmasını sağlayabiliriz. Programların daha hızlı çalışmasını değişkenler üzerinde yapacağımız uygulamalarla sağlayacağız. Ancak ilk olarak BASIC'in değişkenleri nasıl sakladığını görelim: Sayısal değişkenler programda tanımlandıkça isimleri ve değerleri BASIC programın arkasından itibaren saklanır. BASIC o ana kadar tanımlanmış değişkenlerin ismini bir tabloda tutar. Yeni bir değişken tanımlandığında değişkenin değeri ve ismi tablonun en sonuna eklenir. Programın çalışması sırasında ne zaman bir değişken kullanılsa bu tablodan değişkenin bulunması gerekir. İstenilen değişken için gerekli olan bilgi tablonun başından başlanarak sonuna doğru değişken bulunana kadar aranır. Değişkenler için tutulan bu tablo programın çalışması sırasında oluşturulduğundan ilk tanımlanan değişken tablonun en başında yer alır. Bu yüzden tablonun en başında yer alan değişkenler programın içinde en hızlı işlem gören değişkenlerdir. Eğer bir değişkeni programın başında tanımlarsanız tablonun başlarında yer alacağından BASIC tarafından kolay bulunur. Anlattıklarımızın uygulamasını görmek için iki programı yazıp çalıştırın: 10 20 30 40 50 TI$ = “000000” 60 FOR X = 1 TO 1000 80 NEXT X 90 A1 = TI: PRINT A1; “VURUŞ”, A1/60; “SANİYE”

50 numaralı satırda TI$ değişkeni ile geçen süreyi sıfırlıyoruz. 90 numaralı satırda istenilen döngünün yapılması için geçen süre veriliyor. İki sayının toplanması için geçecek zaman çok az olacağından bu işlemi 1000 kere yaptırdık. Bu programın çalışma süresi yaklaşık olarak yedi saniye alıyor. Şimdi 60-80 arasındaki satırları şu şekilde değiştirelim:

60 FOR 1 TO 1000 70B->B4C 80 NEXT A

Program bu hali ile çalışmasını yaklaşık olarak dört saniyede tamamlar. İki program hemen hemen aynı olmasına rağmen niçin ikincisi daha hızlı çalışıyor? İkinci programda tanımlanmış olan üç değişken tabloda ilk üç sırada yer alıyorlar. Buna karşın ilk programda tanımlanmış olanlar ise değişken tablosunda 24 ile 26'ncı sıralar arasındaydılar. Bu farklılık elbette alfabetik sıralamadan değil değişkenleri tanımlama sıralamasından kaynaklanıyor. BASIC'in değişkenleri ne şekilde kullandığını gördük. Programlarımızın hızlı çalışmasını sağlamak için sık sık kullanılan değişkenleri ilk önce tanımlamak programın hızlı çalışması açısından önemlidir. Örnekte programları biraz daha hızlandırmak için NEXT komutundan sonra gelen değişkeni kaldırın yani 80 numaralı satır.

80 NEXT

olsun. Bu uygulama sayesinde programın çalışma süresi biraz daha kısalır. Matematik işlemler yapan programlarda da zaman kazanmamızı sağlayacak yollar var. Mesela 53 sayısının karesini alacak bir program yazalım:

10 TI$ — “000000* 20 FOR J- 1 TO 1000 30 40 NEXT 50 AL-TI.FRİNT A1; 1/60; “SANİYE”

Programımız 1000 kere 53 sayısının karesini alacak, programın bu işlemi yapması yaklaşık olarak yedi ile sekiz saniye sürer. Şimdi 30 numaralı satırı değiştirerek programı yeniden yazalım:

10 TI$ - “000000” 20 FOR J— 1 TO 1000 30 A—b32 40 NEXT

Bu programda 53 sayısının karesini 1000 kere hesaplıyor ama bu sefer programın çalışma süresi yaklaşık olarak 55 saniyeye çıkıyor. Kare işleminde çarpma işlemini kullanarak hesaplama süresini kısaltabilirsiniz. ^ işlemini sayının karesini almanın dışında yapılacak üs işlemlerinde kullanmak daha iyidir. Örnek programı daha da hızlandırmak için 5 numaralı satıra B=0 ekleyin ve 30 numaralı satırı 30 A=B*B şeklinde değiştirin. Gerekli değişkenler tanımlanmış olduğundan program daha hızlı çalışacaktır. Şimdilik hoşça kalın...

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