Program Döküm Eki sayı 11, sayfa 20

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 20

Burada vereceğimiz dört KByte'lık monitor programı $C000'dan $CFFF'e kadar olan bölgeyi kaplıyor. Fakat genel amaca hizmet edebilmesi açısından kendi içindeki bazı emirleri kullanarak daha değişik adres aralıklarında çalışması da sağlanmış durumda. Aslında bu özellik diğer makina dili programlar için de geçerli. Yani artık makina dili programlarınız da yer-değiştirebilir (relocatible) oluyor.

Bu monitorun da diğer monitor programları gibi disassembler, memory dump, line assembler gibi özellikleri var. Daha neleri var, onu birazdan emir listesinde göreceğiz.

Monitorumuz SYS49152 emriyle çalıştırılıyor. Burada dikkat etmeniz gereken nokta çağırma adresi ile başlangıç adresinin aynı olması. Bu özellik monitorumuz diğer bir başka yere kaydırıldığı zaman da geçerli. Mesela monitorumuzu $4000'dan $4FFF'e kadar olan bölgeye kaydırdınız. Bu sefer başlatma emri SYS16378 olacaktır.

Monitorumuzu orijinal haliyle kullanırken dikkat edeceğiniz ilk şey bilgisayarın BASIC yorumlayıcısının kafasının iyice karışmış olacağı. BASIC'te herhangi bir program satırı yazmaya kalkıştığınızda "?OUT OF MEMORY ERROR" mesajıyla karşılaşacaksınız. Halbuki, daha çok hafızanız var. Böyle bir durumdan kurtulmak için NEW emrini verin. Artık BASIC yorumlayıcısı düzene kavuşmuştur. Diyelim ki daha evvelden hafızada BASIC bir programınız var ve onu kaybetmek istemiyorsunuz, çünkü o programı da kullanacaksınız, hatta EDIT edeceksiniz. Böyle bir durumda monitor programımızı yükler yüklemez, SYS49152 emriyle çalıştırın. BASIC yorumlayıcısını sakinleştirmesi için şu emri verin:

.ED 0001,0000

Böylece BASIC programınız kurtulur. Monitor programını çağırdığınızda ilk yapılan iş BRK vektörünün monitor içine yönlendirilmesidir. Böylece yazacağınız programlarda BRK emri kullanarak monitor programına dönüşü sağlayabilirsiniz. Bunun birçok yararı var. Mesela programlarınızın ara işlemlerini kontrol etmek istiyorsunuz. Böyle yerlerde BRK emri eşsiz bir araç.

Gelelim monitorumuzun emirlerine:

Line-Assembler

Emrin şekli:

.A aaaa xxx yyyy

Örnek:

.A 9000 LDA $41

Burada yapılan işlem aaaa adresinde xxx emir ve yyyy operandından meydana çıkan 1, 2 veya 3 byte'lık satır yazmaktır. Satır assembler'imiz oldukça ilkeldir ve yalnızca bir disassembler'ın çıkaracağı açıklıktaki yazılımdan anlar. O yüzden sembol kullanma veya hesap yaptırma gibi lüks işlemleri aramayın. Basit programları yazıp, denemek için ideal bir araçtır, zaten monitor'un esas amacı da KByte'lık uzunluğunda programlar yazmanızdan çok yazılmış program üzerinde değişiklik yapma, deneme veya en basitinden öğrenme amacıyla kullanılır. Bu arada bir 'RESET SWITCH' edinmenizi öğütleriz. Çünkü makina dilinde ilk emekleme devrenizde aleti bol bol 'crash' edeceksiniz. Böylece durumlarda aletinizi RESET'lersiniz ve makina dili programınızı denemeye devam edersiniz. Çünkü RESET işlemi sırasında bilgisayarınızdaki makina dili programlar silinmemekte. Oysa aleti kapatıp açtığınızda ise tüm hafıza silinmekte.

Disassembler

Emrin şekli:

.D aaaa,bbbb

Örnek:

.D C000,CFFF

Bu emir verildiğinde aaaa adresinden bbbb adresine kadar bölgede

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