64'ler sayı 15, sayfa 46

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 46

Bu sayımızda yayınladığımız ve makina dili editörü ile yazdığınız bu monitor programı dışarıdan para ile satın alacağınız veya bir kitaptan yazabileceğiniz monitorlar kadar iş görebilecek bir programdır. 4K uzunluğunda olup 49152-53247 desimal ($C000 - $CFFF hex.) adreslerine yerleşmektedir. Hafızanın en üstüne yerleşmesinin sebebi, üzerinde çalışacağınız BASIC yada MAKİNA KODU ile yazılmış programlardan uzak kalması içindir. Bununla birlikte, daha ileride açıklanacağı gibi eğer istenirse herhangi bir adrese de taşınabilir. Programın $C000 adresine yerleşmesi sebebiyle herhangi bir Basic Pointer'i değiştirmek gerekmemektedir. Program kendini korumak için önce Pointer'in kendi adresine taşıp taşmadığını kontrol etmekte ve gerekirse Pointer'i daha aşağı bir adrese indirmektedir.

64'ler Mon. programının ayrıntılarına girmeden önce nasıl yazılıp yükleneceğini açıklayacağım. Önce Makina Dili Editörünü yükle ve çalıştır. Program adını 64'ler Mon. şeklinde yaz ve RETURN tuşuna bas. Başlangıç adresi olarak C000 yaz ve RETURN tuşuna bas. Bitiş adresini D000 yaz ve RETURN tuşuna bas. Programı yazdıktan sonra kaydet (Save)

Kaydettiğin programı tekrar yüklemek için:

| — Load"'64'ler Mon.”,8,1 Disket için

Mon.”,1,1 Kaset için

yaz ve RETURN tuşuna bas. Program yüklendikten sonra SYS 49152 yaz ve RETURN tuşuna bas. Ekranda 64'ler Mon. Y mesajı ve bir takım rakamlar göreceksin. Artık monitor çalışmaya hazırdır. 64'ler Mon programı yüklenip SYS 49152 yazıldığında normal ekran yazılım kolaylıklarının yanısıra iki özel fonk-

siyona daha kavuşuruz:

F1: Cursor'ın bulunduğu yerden satır sonuna doğru ekranı siler. F3: Cursor'un bulunduğu yerden başlamak üzere ekranın altına doğru ekranı siler. Komutlar tek bir (alfabetik harf komut karakteri) ve onu takip eden özel değişkenleriyle girilir. Her komutun çeşitli şekilleri ileride ayrıntılı şekilde anlatılmıştır. Kısaltmalar şöyledir: $sss dört rakamlı başlangıç adresi, eeee dört rakamlı bitiş adresi, dddd dört rakamlı gideceği adres, dd iki rakamlı DEVICE değeri (örnek 08 -disk drive-).

ver)

bb iki rakamlı bayt değeri

Herhangi bir komutta kullanılan yukarıdaki sayıların hepsi hexadesimal kabul edilmişlerdir ve $ işareti gerekmemektedir. Fakat desimal sayılarda başına ve sonunda birer nokta konularak da verilebilir. (Örneğin: D 2000 ile D. 8192. birbirlerine eşdeğerdir). Bütün komutlardaki biçim boşlukları da dahil olmak üzere dikkatle korunmalıdır. Her komutu alfabetik olarak ele alıp, çeşitli olanaklarını göstermeye çalışacağım. A ssss - Assembler'i başlatma modu. Program kendiliğinden ekrana > ssss yazıp size her satır için opcode ve operand yazmanıza olanak vermek üzere READY duruma geçer. Hiçbir şey yazılmadan bir satır program Assembly durumundan çıkar. Operand'ı hex veya Desimal girebilmemiz için önüne karakterin ASCII değerinden girersek bir apostrof ('), ekran değerinden girersek bir ünlem (!) koymak yeterli olacaktır. Bir dallanma komutunun (branch instruction) operand'ı işe yukarıdaki bu iki seçeneğin birisiyle belirtilebilir. Bu girilen değer ya tek bayt'lık bir dallanma parçasıdır veya iki bayt'lık kesin (absolut) varış adresidir. Çok kullanışlı komutlardan bir tanesi de 255'e kadar diledi-.

b

ğiniz sayıda NOP veya BRK komutunu, komutun ken-

disinden sonra sadece sayısını belirtmekle girebilirsiniz. Örneğin NOP 07 yazarak ardarda yedi NOP girebilirsi- niz. .A 1800 1800 LDX #03 1802 LDA ##!M 1804 STA. 1024., X 1807 LDA 1809 JSR FFD2 180C NOP 04 1810 DEX 1811 BNE 1802 1813 BEO 01 1815 BRK 1816 RTS 1817

V V V V

C ssss eeee dddd - Bu komut hafızanın ssss-eeee arasında kalan bölümünü dddd adresinden başlamak üzere daha yukarıya doğru karşılaştırarak farklı değerleri içeren adreslerin dökümünü yapar. Stop tuşuyla durur. D - En son referansı verilmiş adresten başlıyarak

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