Bu sayfadaki yazılar
Sayfanın metni
Sayfa 24
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 25
Bilgisayarlarca "utility" olarak adlandırılan, yardımcı programlar silsilesinden bir tanesine bu sayımızda yer veriyoruz. Maksat kolaylık olsun...
Diyelim ki yabancı dergilerden birinde veya bizim dergimizde, makine dilinde yazılmış bir program gördünüz ve o dergide verilen bir editör sayesinde yazdınız. Veya bambaşka bir yerden elinize RUN ile değil de, SYS komutuyla çalışan bir program geçti. Şimdi de bu programı başka bir yere SAVE etmek veya bir arkadaşınıza vermek istiyorsunuz. Eğer bir makine dili monitörünüz yoksa işiniz zor. Normal SAVE komutu ile belli bir hafıza bölümünü diskete veya kasete gönderemezsiniz. O zaman, ne yapmalı?..
Bunun birçok yolu var. Bunlardan biri de makine dilindeki programı DATA satırlarından oluşan bir BASIC programı haline çevirmek. Ama, oturup da bilmem kaç kilobyte'lık programı tane tane DATA'lara dönüştürmek, her babayiğitin harcı değil. Hem biz o bilgisayarı boşuna mı aldık. Bırakalım o yapsın bu işi.
Bizim programımızı kullanmak için, önce DATA satırlarına dönüştürülecek programı, 8,1 ile disketten veya, 1,1 ile kasetten yükleyin. Başlangıç adresini bilmeniz gerekiyor. Bitiş adresini de: PRINT PEEK(174)+PEEK(175)*256 ile öğrenebilirsiniz.
Sonra da programımızı yükleyin ve run 500 ile çalıştırın. Aman dikkat!.. Sakın tek başına RUN demeyin, 500 yazmayı unutmayın!! Yoksa hata çıkar...
Program size, makine dili programının başlangıç ve bitiş adreslerini soracaktır. Önceden de söylediğimiz gibi, başlangıç adresini bilmeniz gerekiyor. Bitiş adresini bulmayı da öğrendiniz. Program oluşturduğu her satırı ekrana yazacaktır. En sonunda da 500'den sonra gelen satırları silip, DATA satırlarından oluşan programı tek başına bırakacaktır. Artık bu programı, normal bir BASIC programı olduğu için, SAVE ve LOAD ile kullanabilirsiniz. RUN dediğinizde ise, program DATA satırlarını sırayla hafızaya yerleştirecek, o sırada okuduğu satır numarasını gösterecek ve bu arada da her satırı kontrol edecektir. Sırası gelmişken belirtelim, programımız DATA satırlarını oluştururken, her DATA satırına 20 tane hexadecimal (yani onaltılık sistemde) sayı ve bir de kontrol toplamı yazıyor. Böylece hem hafızadan tasarruf yapılıyor, hem de güvenilirlik sağlanıyor.
Dilerseniz, biraz programı inceleyelim. Program o meşhur klavye tamponu (keyboard buffer) ile çalışıyor.
0-10: Oluşacak olan DATA satırlarını hafızaya yerleştirmeye yarayan baş kısım.
500-503: Başlangıç ve bitiş adresleri sorulup, kullanılmayan hafıza bölgelerine yerleştiriliyor. Bunu yapmamızın bir nedeni var. Programda kullanılan yöntem, programa devamlı olarak yeni satırlar eklemekte. Ancak, her yeni satır eklendiğinde, işletim sistemi, o ana kadar tanımlanmış değişkenlerin hepsini otomatik olarak siler. Eğer kullanacağımız değişkenleri hafızada depolamazsak, programımızı yürütemeyiz.
504: D ile kaç satır oluşturduğumuzu sayıyoruz. Ayrıca verilen adreslerin uygunluğu kontrol ediliyor.
505-507: Klavye tamponuna bir HOME ve iki RETURN tuşu yerleştirilip, ekranda iki numaralı satır olarak yeralması gereken FOR...NEXT satırı yazılıyor ve program bitiriliyor. Ancak tampondaki üç tuş otomatik olarak devreye girip, ikinci satırı programa ekliyor ve programı 508 numaralı satırdan itibaren yeniden çalıştırıyor.
508-509: Başlangıç ve bitiş adresleri hafızadan geri okunuyor.
511-512: Onaltılık sistemdeki sayıları