Commodore sayı 74, sayfa 18

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 18

0061 83 E0 00 00 00 00 0069 84 DO 00 00 00 00

., 1000. ASGILDA $61 ., 1002 202BBF JSR ., 1005 00 BRK

.G 1000

«1 0061 87 B6 00 00 00 00 00

Sonucu ondalık sayıya çevirirsek:

> 1011011 — 64416484241-97-7*13

Bir de 37'yi hesaplayalım: CO 00 00 00 00 7-83 E0 00 00 00 00

Bunları gene FAC ve ARG'a yerleştirmeliyiz. Yalnız işlemin ARG . FAC olarak yapılacağını unutmayın. Yani 3'ü $69'dan, 7'yi de itibaren yazmalıyız:

83 E0 00 00 00 00 «1 0069 84 CO 00 00 00 00

., 1000 ASGILDA $61 1002 207BBF JSR $BETB ., 1005 00 BRK .G 1000

0061 0061 8C 88 BO 00 02 00 00

Türkçesi: 1.000 1000 1011 0000 0000 0000 0000 0010 1000 1000 1011. 0000 0000 0000 0000 0010 —20484128484241-41.9*10.-6 Ne garip değil mi? 2187 kısmı doğru, ama sonuna garip garip sayılar gelmiş. Normalde sadece 9 rakam basılacağı için PRINT 3.7 yazınca ekranda 2187 görünür. Ama

PRINT 3.7-2187

yazdığınızda sıfır yerine 1.90734863E-06 görürsünüz. İyi de bu garip artık kısım nereden geliyor? Bu sorunu cevabını öğrenmek için üs alma rutinini incelediğimizde üs alma işleminin şu şekilde yapıldığını görürüz:

EXP(B*LOG(A)) EXP ve LOG işlemleri yalnızca belli bir dereceye kadar kesinlik gösterebildiği için -- sebebini daha sonra göreceğiz- işlemin sonucunun sonunda garip rakamlar kalması pek de sürpriz sayılmaz. Üs alma işleminin gerçekleştirilmesi için iki ayrı işlem yapılması gerektiği için bu işlem diğerleri arasında en yavaş işleyenidir. Ortalama olarak 50 milisaniyeden (saniyenin binde biri) biraz daha fazla zaman harcar. Bu yüzden basit üs alma işlemlerini elinizden geldiği kadar çarpma işlemleriyle yaparsanız hem daha hızlı, hem de daha kesin sonuçlar elde edersiniz. Mesela 3.2 işlemini 3*3 olarak yaptığınız zaman en az yirmi kaz hızlı çalışacaktır. İşlemlerin hızlarını daha sonra bir tablo halinde yayınlayacağız. Şu ana kadar öğrendiklerimizin pratikte kullanılabilmesi için BASIC yorumlayıcısının değişkenleri nasıl kullandığını öğrenmemiz gerekecek. Zero-page'da (sıfırıncı sayfa:$00-$FF arası belleğe verilen ad) birkaç adres değişkenler hakkında bilgi tutar. Bu adreslerde BASIC programın yeri, normal değişkenler, indeksli değişkenler ve string'- lerin (A$ gibi değişkenler) bellekteki yeri gibi değerli bilgiler saklanır. Değişkenlerin yerini gösteren adresler aşağıdaki tabloda göskarakterlerinin sonu $37/S38 BASICRAM'in sonu

Tablo-l: Sıfırıncı sayfa değişkenleri ve gösterdikleri adreslerin yerleşimi.

Bilgisayarınızı ilk açtığınız zaman BASIC programının yerleştiği adres $0801 2049 olarak belirlenmiştir. Bu alanın sonu $A000 adresidir.

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