2) İki byte (LO/HI) program satır numarası. Satır nu- marası kullanıcı tarafından verilir. Bu sayı O ile 63999 arasında olmalıdır. 3) BASIC komut kodları ve veriler. Bu bölüm en faz- la 250 byte uzunluğunda olabilir ancak bunun sade- ce 80 byte'i klavyeden girilebilir. 4) Satır sonunu belirleyen karakter: $00. Bu sayı BA- SİC”e satırın sonuna gelindiğini söyler. SA004: SA004-$A00C arasındaki adresler BASIC ROM'una aifttirler. Bu adreslere bakarsanız CMBBASICO yazısının ASCII kodlarını görürsünüz. $D808: $D808-$D80C arasındaki adresler Renk RAM'inin bir bölümüdürler. Bu adreslerde yer alan de- gerlerin LOW dört biti önemlidir. Çünkü renk hafızası için sadece dört bit kullanılmaktadır. Dört bit kullana- rak toplam 16 ayrı renk elde etmek mümkün. Bu sayı- da Câö4'ün bize verdiği renk sayısıdır. Bu adreslerde- ki değerlerin dört biti normal olarak $0'dır. Bu değer- ler sivah 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 pogramlama 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 üze- rinde yapacağımız uygulamalarla sağlayacağız. An- cak ilk olarak BASIC'in degışkenlerı nasıl sakladığını görelim: Sayısal değişkenler programda tanımlandıkça isim- leri ve değerleri BASIC programın arkasından itiba- ren saklanır. BASIC o ana kadar tanımlanmış değiş- kenlerin ismini bir tabloda tutar. Yeni bir değişken ta- nı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ı ge- rekir. İstenilen değişken için gerekli olan bilgi tablo- nun 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ğun- dan İlk tanımlanan değişken tablonun en başında yer alır: Bu yüzden tablonun en başında yer alan değişken- ler programın içinde en hızlı işlem gören değişken- lerdir. Eğer bir değişkeni programın başında tanım- larsanız tablonun başlarında yer alacağından BASIC tarafından kolay bulunur. Anlatıklarımızın uygulamasını görmek için aşcıgıdcı— ki programı yazıp çallıştırın: 10 Az0:B->0:C-0:D-0:E-0:F-0:6-0 20 Hz0:l-0J-0:Kz0:L-0:Mz0:Nz0 30 OzOP-0:ASORS0:5201Tz0:Uz0 40 V-OWz0:X-0Y-0:7Z-0 50 TIS$ - “000000” 60 FOR X- 1 TO 1000 ZOY-YA4Z 80 NEXT X 90 A1-TI: PRİNT A1; “VURUS”, A1/60; “SANİYE” 50 numaralı satırda Tİ$ değişkeni ile geçen süreyi sıfırlıyoruz. 90 numaralı satırda istenilen döngünün ya- pı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 yak- laşık olarak yedi saniye alıyor. Şimdi 60-80 arasında- ki satırları şu şekilde değiştirelim: 60 FOR Az 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 ta- nımlanmış olan üç değişken tabloda ilk üç sırada yer alıyorlar. Buna karşın ilk pbrogramda tanımlanmış olan- lar ise değişken tablosunda 24 ile 26'ncı sıralar ara- sındaydılar. Bu farklılık elbette alfabetik sıralamadan değil değişkenleri tanımlama sıralamasından kay- naklanı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 progra- mın hızli çalışması açısından önemlidir. Örnekte prog- ramları biraz daha hızlandırmak için NEXT komutun- dan sonra gelen değişkeni kaldırın yani 80 numaralı satfır. 80 NEXT olsun. Bu uygulama sayesinde programın çalışma sü- resi biraz daha kısalır. Matematik işlemler yapan programlarda da za- man kazanmamızı sağlayacak yollar var. Mesela 53 sayısının karesini alacak bir program yazalım: 10 TIS — “000000” 20 FOR J— 1 TO 1000 30O Az53*53 40 NEXT 50 AL-TI.FRİINT A1; “VURUŞ”,A 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ştire- rek programı yeniden yazalım: 10 TIS$ - “000000“ 20 FOR J- 1 TO 1000 30 A-—532 40 NEXT Bu programda 53 sayısının karesini 1000 kere he- saplıyor ama bu sefer programın çalışma süresi yak- laşık olarak 55 saniyeye çıkıyor. Kare işleminde çarp- ma İşlemini kullanarak hesaplama süresini kısaltabi- lirsiniz. A 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 nu- maralı satıra Bz0 ekleyin ve 30 numaralı satırı 30 Az—B*B şeklinde değiştirin. Gerekli değişkenler tanım- lanmış olduğundan program daha hızlı çalışacaktır. Şimdilik hoşçakalın... 63