Bu sayfadaki yazılar
Sayfanın metni
Sayfa 21
dığı dataları kendi üzerine yazmaz. Şimdi de sıra bu İntroya nasıl program ekleyeceğinizi görmeye geldi. İlk olarak intronuzu belleğe yükleyin ve Kayan yazılarla, Ekran harflerini bir monitör program yardımıyla değiştirin. Kayan yazılar $2800 adresinden başlıyor. Ekrandaki yazılar da adresinde. Yalnız DİKKAT!!! Ekran yazılarının ilk dört satırını kullanmayın. Bundan sonra şu komutları BASIC'de verin: Poke 43,1 Poke 44,44 Poke 11264, O Şimdi de asıl program LOAD “isim”, 8 komufuyla yükleyebilirsiniz. Sakın kullanmayın, programı üzerine yüklersiniz. Yükledikten sonra dö: Poke 43,1 Poke 44,8 komutlarını verip, SAVE “yeni isim”, 8, 1 komutuyla proğramınızı diskete kaydedin. Eğer SAVE tunuzdan sonra “OUT OF MEMORY ERROR” hata mesajıyla karşılaşıyorsanız, makine dilinde bir program kaydedici yapıp, kayıttan hemen önce $01'e $36 değerini vermeniz gerekir. Bu değeri $01'e verdiğinizde, yalnızca $A000-$BFFF arasında bulunan ROM ortadan kalkar ve $E000-$FFFF arasındaki KERNAL ROM kullanılabilir. Çok uzun datalarla uğraşmamanız için Program Döküm Eki'ne girecek olan intromuzu kısalttım. Bunu kullanmak için önce programı yükleyin, sonra da boş bir disket yerleştirin drive'ınıza, Daha sonra programı çalıştırın. Program önce kendini açacak, sonra da kullanılabilir halini diske kaydedecektir. Eğer makine dilinde SAVE işlemini nasıl yapacağınızı merak ediyorsanız, bu-İşlemden sonra $2C00 adresine bakarak SAVE rutinini görebilirsiniz. Gelecek aya kadar hoşçakalın.
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 20
Taşı1 Lda TransBaşı, Y Taşı2 Sta BasicBaşı, Y Dey Bne (TransBaşı—intronun bitiş, programınızın başlangıç adresi Basic Başı — $800)
Bu kadarını tabi ki siz de biliyorsunuz. Bu rutin sayesinde bir blokluk bilgiyi $0800'e taşırız. Yeri gelmişken söyleyeyim, $0801'den başlayan proğramları TransBaşı - 1 adresine yükleyin ve Transbaşı adresinin değerini O'layın. Her neyse, transferimize devame delim. Bunun için de programın kendini değiştirmesi metodunu kullanıyoruz gene. İnc Taşı2-42 Inc Taşı1 42 taşınan dataların bloklarını birer arttırdık. Şimdi de bellek sonu konirolü yapılıyor. Bne Taşı Bu kadar basit olduğunu tahmin etmiyordunuz eminim. Sadece transfer bloğunun değerinin sıfır olup olmadığını kontrol ediyoruz. Eğer değeri sıfır olduysa, TransBaşı'dan SFFFF'e kadar transfer tamamlanmış demektir. Y'yi tekrar sıfırlamaya gerek yok, çünkü son İşlemden zaten sıfır olarak çıkmıştı. Eğer tüm bellek transfer edildiyse, yapacak pek bir İşimiz kalmadı demektir. Sadece Lda # $37 Sta $01 komutuyla ROM'lar geri alıp, Clı ile interrupfları açıp, Jsr Jmp SAZAE ile de RUN işlemini yerine getirmek asıl programı hatasız olarak çalıştırmak için yeterli olacaktır. Eğer program kendi sonunu kontrol ediyorsa ($2D veya $AE adresinden) bu değerleri de birkaç Lda ve Sta ile eski haline getirmek sizin için pek zor olmaz herhalde, Transfer label'ıyla başlayan programı, üç JSR'nin arkasında eklediniz mi? Peki neden çalışmadı sizce? Evet doğru bildiniz. Bu rutin, asıl programı $0800 adresinden başlayacak şekilde geri Taşıyor ve bu arada da kendi üzerine de bol bol bay? yazarak sonunu hazırlıyor. Bunu engellemek için programı $0400'de çalışacak şekilde yazıp boş bir alana transfer edin: Trans1 Lda BoşAlan, Y Sta $0400, Y Jmp $0400 Üç JSR'nin arkasına eklemeniz gereken program: cık bu. Buradaki BoşAlan Transfer rutinini koyduğunuz boş alanın adresidir. Bu sayede Transfer, taşı-.