Bu sayfadaki yazılar
Sayfanın metni
Sayfa 9
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 8
ki gibi satır numarasını yazıp RETURN'a basarak silmek istiyorsanız, satır numarasının yanına eksiyi de yazmanız şart. Assembler o satırı silecek ve bir sonraki satırı otomatik olarak gösterecektir. Sizin de hemen göreceğiniz gibi assembler, siz bir satır yazıp RETURN'a basar basmaz yazdığınız satırı formatlayıp ekrana yeniden basacaktır. Böylece programınızı yazarken kontrol etmeniz çok kolaylaşacaktır.
Bir de, assemblerimizin hata mesajlarını görelim:
CAN'T NUMBER TERM : Bir terim hesaplanamıyor. Assembler komutlarından biri yanlış yazılmış olabilir.
END OF LINE EXPECTED : Satır sonu beklenirken bir başka koda rastlanmış.
UNKNOWN PSEUDO : Assembler komutu anlaşılamıyor.
ILLEGAL REGISTER : Makine dili komutunda index yazmacı yanlış.
WRONG ADRES : Makine dili komutu yanlış adresleme modu ile kullanılmış.
ILLEGAL LABEL : Tanımlanmamış label kullanılıyor.
BRANCH TOO FAR : BNE, BEQ, BCC gibi atlama komutlarıyla hedeflenen adres 127 byte'den uzak.
LABEL DECLARED TWICE : Aynı adlı label ikinci kez tanımlanmış.
TOO MANY LABELS : Hafıza artık hem programı hem de değişkenleri alamıyor. Çok değişken kullanılmış.
NO MACRO TO CLOSE : .MA olmadan .RT verilmiş.
PARAMETER : Makro çağırılırken gönderilen parametreler, tanımlamadaki parametre sayısıyla aynı değildir.
RETURN : .MA olmadan .RT verilmiş.
Hafıza kullanımı da şu şekilde:
$0000 : Zeropage
$033C: Genel amaçlar için kullanılıyor.
$0400 : Video RAM
$0800-$1FD7 : Assembler kodu için ayrılmış bölge
$A000-$BFFF : BASIC ROM'u ve altındaki RAM'da tanımladığınız değişkenler.
$C000-$CFFF : Kullanılmıyor, yani boş Siz kullanabilirsiniz...
$D000-$FFFF : İşletim sistemi.
İşte sonuna geldik. Bir iki uyarı da kaset kullanıcılarına. Maalesef, C-64'ün kasete kayıt sırasında kullandığı kodlama, diskete kayıttakiyle aynı olmadığı için, .OB ile oluşan kodu kasete kaydetmeniz imkânsız. /G1 ile araç numarasını kasete çevirip tüm işlerinizi halledebilirsiniz, ancak .OB işe yaramaz. Bu nedenle, size küçük bir program daha sunuyoruz. Bu, assemblerde yazılmış ve Süper Assembler'ı kasete ayarlayan bir program. Dergimizde yayınladığımız uzun Süper assembler programını MDE ile yazıp SAVE ettikten sonra yükleyip RUN ile çalıştırın ve "Süper Assembler/Kaset" programını aynen yazın. RUN ile çalıştırıldıktan bir süre sonra obje üretimi duracak ve bilgisayar, PRESS RECORD&PLAY ON TAPE yazacaktır. RUN/STOP tuşu ile çıkın ve SYS 49152 ile Süper Assembler'ın bu yeni halini kasete SAVE edin. Adı Süper ASS/Kaset olacaktır. Artık bu assemblerı kullanabilirsiniz. Herhangi bir assembler kodunu objeye çevirdikten sonra, bu yeni Süper Assembler kendiliğinden PRESS RECORD&PLAY ON TAPE diyerek, kasette kayda başlamanızı bekleyecektir. Eğer kayıt yapılmayacaksa RUN/STOP ile durdurun. Yapılacaksa da, kaseti çalıştırın. Programınız LISTE$ adıyla kasete geçecektir. Ancak bu işlemin doğru yapılabilmesi için programınızın $C000-$CFFF arasında olması gerekir. Bir başka olasılık da /U komutu ile kendinize $1FD8'den sonra boş yer yaratıp, objeyi oraya yaratırmanız.
Bir diğer olanak da, elinde monitör programı olan arkadaşlar için geçerli. Objeyi yarattıktan sonra /X ile Basic'e geri dönün. Korkmayın, bu arada makine dili programınıza bir şey olmaz. Şimdi monitör programınızı, makine programınızla üstüste gelmeyecek şekilde yükleyin ve monitörün SAVE komutunu kullanın. Nasılsa obje üretimi sonunda ilk ve son byte adresler veriliyor. Ancak son byte adresine bir eklemeniz gerektiğini unutmayın.
İşte bu kadar... İyi programlar...