Commodore sayı 19, sayfa 48

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 48

Eğer bir programı ,8,1 ile yüklemişseniz ve program kendiliğinden başlamamışsa VERİFY “İSİM”,8,1 ile kontrolunu

Esas sorun belli bir hafıza blokunu SAVE etmekte ortaya çıkar. Eğer makina dili bir program SAVE etmek istiyorsanız, makina dilinden biraz anlıyorsunuz demektir. Bu durumda da muhtemelen bir makina dili monitörünüz vardır. Bu monitörün SA-VE komutunu kullanabilirsiniz. Bu SAVE genellikle,

.S “İSİM”,08,AAAA,BBBB

türünde olacaktır. AAAA ile başlangıç adresi, BBBB ile de bitiş adresinden bir sonraki adres, onaltılık sistemde temsil edilmektedir.

Ama makina dili bilmiyorsanız, makina dili monitörünüz yoksa ve gene de belli bir hafıza bölümünü diskete almak istiyorsanız, aşağıda verdiğimiz minik programı kullanacaksınız. SAVE “İSİM”,8,1 gibi bir komut YOK!

A-256*AH NT (B/256 70 BL— B-256*BH 80 SYS (57812)AS,8 90 POKE 193,AL 100 POKE 194,AH 110 POKE 174,BL 120 POKE 175,BH 130 SYS 6257

Biraz makina dili bilenler yukarıda yaptıklarımızı anlayacaklardır. Yukarıdaki hesaplamaları elden yapıp tüm komutları tek satırda vermek de mümkün. 80 numaralı satırdaki SYS komutunda bir hata yok. COM-MODORE 64'ün işletim sistemindeki bir rutini kullandığımız için böyle küçük hilelere başvurmamız gerekebiliyor. Böylece VC 1541'e program dosyası göndermenin ve çağırmanın inceliklerini görmüş olduk. Bu kadar ayrıntı olduğunu tahmin ediyor muydunuz?.. Şimdi sıra geldi işin daha karışık yönlerine... Disket sürücümüze belli komutlar göndermeyi öğreneceğiz. LOAD, SAVE ve VERİFY komutları ile sadece program dosyalarının alışverişini becerebiliyorduk. Diğer tür dosyaları kullanmak veya komut göndermek için kullandığımız başka BASIC komutları da var: OPEN, CMD, PRINT , INPUT , GET ve CLOSE gibi. COMMODORE 64'ün çevre birimlerinden herhangi biriyle, ki VC 1541 de bunlardan biridir, iletişim kurması bir haberleşme kanalı ile olur. Dolayısıyla bu haberleşme kanalını belirlemeden herhangi bir aletten bilgi almak veya bilgi göndermek mümkün olmaz. LOAD, SAVE ve VERİFY komutları gerek duydukları kanalları kendiliklerinden açıp kaparlar. Ama bizim kendi amaçlarımız doğrultusunda, kendi kanalımızı kendimizin açması gerekiyor. Bu işlemi OPEN komutu yapar. Formatını görelim:

OPEN kanal no, araç no, ikincil adres, “komut veya isim

KANAL NO ile, OPEN komutunda bildirdiğimiz türde açılacak haberleşme kanalına bir isim vermiş oluyoruz. Daha sonra bu kanaldan bir şey göndermek veya almak istediğimizde bu sayıyı belirtmemiz gerekecek. 1- 127 arası herhangi bir sayı olabilir. Ancak kullanılan her değişik haberleşme kanalı için değişik bir kanal numarası vermek gerekir.

Bunun arkasından gelen sayı ve karakterler o kanalın özelliklerini belirliyor. ARAÇ NO ile o kanalın hangi çevre birimine açıldığı verilir. Araç kodlarını önceki bölümde görmüştük. Disket sürücüsü için 8 olacak. İKİNCİL ADRES ile de bazı özel kodlar göndermemiz mümkün oluyor. Buradaki sayının anlamı hitap edilen çevre birimine göre değişiyor. Örneğin yazıcıda karakter setini seçmek, satır aralarını ayarlamak vs. gibi işlemleri değişik ikincil adresler üzerinden yapabiliyoruz. Disket sü- Tücümüze gelince... İkincil adresimiz 1541 için 2-14 arası bir sayı olabilir. 0 veya 1, işletim sistemi tarafından kullanılmaktadır. Siz de kullanabilirsiniz, ancak eğer ikincil adresiniz O ise © haberleşme kanalını sadece disketten bilgi okumak için kullanabilirsiniz. | yapınca da, sadece 1541'e bilgi gönderebilirsiniz. Diğer ikincil adreslerde bir sorun yok. İkincil adresiniz 15 olduğunda disket sürücüsünün komut kanalını kullanıyorsunuz demektir, ki bu bizim bugünkü temel uğraşımız olacak. “KOMUT VEYA İSİM” olarak ya da haberleşme kanalını açtığımızda kullanmak istediğimiz dosyanın adı, türü ve haberleşme biçimini gösteren kodu (sonra göreceğiz!) ya da, eğer ikincil adres olarak 15 kullanmışsanız, 1541'e göndereceğimiz komut yer alacaktır. PRINT ,GET veINPUT komutlarının normal PRINT, GET ve INPUT'tan pek farkları yok. Sadece etkileri, belirtilen haberleşme kanallarında görülüyor. Örneğin PRİNT 1,“AHMET” yaptığınızda, AHMET yazısı | numaralı haberleşme kanalına gönderiliyor. Eğer bu kanal printer'a bağlı ise yazı yazılıyor. Veya bu kanal disket üzerindeki bir dosyaya bağlanmışsa yazı o dosyaya ekleniyor. GET # 1,A$ ile, 1 numaralı kanaldan bir tek karakter okumuş oluyoruz. INPUT * 3,A$ ile de | numaralı kanaldan bir karakter dizisi okuyoruz.

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