20 PRİNT EX$;” — "YVAL(EXS) 30 GÖTO 10 Programı kullanmeak için hasaplanmasını istediğiniz sayısal ifadeyi yazın (İmesela, 24 273) ve RETURN tu- şuna başın. Sonucuün ekrana yözıldığını göreceksiniz. Yeni VAL komutunu kullancırak yapmış olduğumuz üç satırlık hesap makincısı programını normal BASIC ile yapmak hemen hemen imkönsızdır. Bütün BASIC komutlarında olduğu gibi sayısaıl ifa- delerde bazı belirli yapısal kurallara uymacık zorunda- dırlar. VAL komnutu bir hatoa ile karşılaştığında iki şey olur. İlk olarak VAL komutu sonuç olarcık sifir verir. de- ha sonrc 781 numarcilı addrase hatanın numarasını ya- zar., Bu adresin değerini, PRİN7 PEEK(781) komutuyla öğrenebilirsiniz. 7841 adresinin olabilecek değerleri ve bunların canlamlcırı: Ü : Hata yok 11 : Yozim hatası 14 : Geçersiz değer hatası 15 : Çok büyük sayı 22 : Forkli tipler hatcışı 23 : Dizi çok büyük 25 : Sayısal ifade çok karmaşık 27 : Belirsiz fonksiyon. Eğer istersenliz Potaları gözönünde bulundurmaya- bilirsiniz. 23 numarah hatanın özel bir durumu var. BASKC, ka- rakter dizilerinin maksimum 255 karakter olmasıncı izln verir. Ancak yeni VAL komulu södece BÜ karaktere izin verir. Eğer 88 karaklerden fazlcı bir dizi kullanır- sanız 23 nuümarali hafta ile karşılaşırsınız. Eğer hoata mesajlarını programı durdurmadan gör- mek isterseniz yukanıdaki programa cışağıdaki satır- ları ekleyin: 22 E—PEEK(781)"2 : IF E-0 THEN 10 24 EA — PEEK(4 1766 4 E) * PEEK(4 41767 4 E)*256 : PRINT vazar, 26 C - PEEKCEA) : PRİNT CHRS(C AND 127): : İF C(128 THEN EAZEA4 4 : GÖTO 26 28 PRİNT “HATA VAR” Yeni VAL Kormutu bütün BASIC programıları ile uyum- ludüur. Yani eskiden yazmış olduğunuz bir BASIC prog- ramı hiçbir değişiklik yapmadan yeni YVAL komutunu kullanabilirsiniz. Yeni VAL Komutunu oluşturan maki- na lli 49152 - 49358 (50000-500CX5) adreslerinde yer- clıyor. Eğer isterseniz programın 1010 numaroalı sat- rındaki SA değişkenini değliştirerek müaklna dilini beaş- ka adreslere taşıyabilirsiniz. Böylece bu cadreslere sa- hip başka bir makina dili programla birlikte yeni VAL komutu çalışır. Anecık BAŞIC'in CHRGET rutininl kullancın veya 1045- 1023 (ŞOSAZ7-SO3FA) crasındaki cadresleri kullancın programlarla birlikte programımız çalışmayabilir. Biraz da programiın nasıl çalıştığından bahsedelim. Sayısal Hadeleri kullanmak İçin progğram BASIC'in ROM'da bulunan FRMEVL adlı rutinini kullanır. Bu ruti- nin görevi sayısdl ifadeleari çözmeklir. ROM'da yercıldirı rutin 44446 (SADSPE) adresinde başlar. Sayısal ifade- lerin ilk olarak oyrılması gerekir. Bunun için ROM'da bulunan başkoa bir rutin kullanılıyor. Yeni VAL komulu kullanıldığında verilen sayısal ifa- denin bulunduğu dizi, 512 (58288) numaralı cadrasa veri gliriş bölgesine aktarılır. Bundan sonra 42361 (SAS7S) numarcl adreste yeralan CRUNCH rütini kul- lanılarak verl giriş bölgesindeki sayısal ifade birimle- re Oyrılır. Bu İşlerm tarmamlandıktarn sonra FRİMEYVL rutini çoğ- rılcıraaık sayısal ifade çözümlenir ve sonuç VAÂAL'e iletilir. VAL kormutu herhangi bir hata ile koarşılaştığında program akışını durdurmamak için 768-767 (50300- $03041)'deki hata vaktörünü dağiştirip kendisi ile ilgili hata kodunu 764 (SO300D) adresine verip tekrar hata veklörünü eski yerine çeviriyor. Şimdilik hoşçakalın.