C64 Türkiye sayı 1, sayfa 5

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 5

DİKKAT : TASS kullanırken dikkat edeceğiniz önemli bir konu var. Yazacağınız programın kodlarının TASS'ın bulunduğu adreslere yerleşmemesi gerekir. Yoksa TASS sapıtır. Zaten çalışma sırasında ekranın en altında devamlı değişen bir adres göreceksiniz. Bu adres siz bir şeyler yazdıkça devamlı azalacaktır. Kısaca TASS ile çakışmayacak adreslerin hepsini kullanabilirsiniz. Ama benden tavsiye her zaman $0900'den itibaren yazmaya başlayın. Bazen bilgisayarı resetlemek durumunda kalabilirsiniz. Bu nedenle daha düşük adreslerdeki programlara – aslında $0800'ün altında fazla bir yer yok – elveda diyebilirsiniz. Eğer resetledikten sonra SYS 36864 komutuyla TASS'ı tekrar çalıştırırsanız bir aksilik yoksa programınız karşınızda duruyor olacaktır. Adresleri kontrol etmeniz gerekir. NOT : Yazacağınız programda kullanacağınız SAYAC, GEÇİCİ SAKLAMA ADRESİ, TABLO, YAZI gibi hafıza kullanan bölümleri programınızın en sonuna yazarsanız daha iyi olur.

ÖRNEK 1 : *=$0900 BASLA LDA #<YAZI ; Yazının alçak baytı aküye LDY #>YAZI ; yüksek baytı Y registerine koy. JSR YAZ ; Rom’daki alt rutini çağır. RTS ; Programdan çık. YAZ =$AB1E YAZI .TEXT “DENEME” .BYTE 0 Yukarıdaki örnekte programın başlangıcı olarak $0900 = 2304 yazıyoruz. Sonra arka arkaya iki komutla yazımızın bulunduğu yerin adreslerini belirliyoruz. Daha sonra ROM’da bulunan ekrana yazı yazdıran alt rutini çağırıyoruz. En sonunda ise RTS komutuyla programımızı bitiriyoruz. İsterseniz JSR YAZI yerine doğrudan JSR $AB1E yazabilirsiniz. Ayrıca dikkat etmeniz gereken bazı konular vardır. ROM’daki bir alt rutini çağırırken hangi registerler kullanılır, sonuç hangi registerde veya hangi adreslerde tutulur vs. $AB1E adresine sıçramadan önce A registerine yazının bulunduğu adresin LOW BAYT’ı Y registerine ise HIGH BAYT’ı yüklenmelidir. Son olarak ta yazının bitişinden hemen sonraki adrese mutlaka 0 değeri yazılmalıdır. Yoksa alt rutin yazının bittiğini anlayamaz ve ekrana garip yazılar çıkabilir. Örneği inceleyin.

ÖRNEK 2 : ÖRNEK 3 : *=$0900 *=$0800 LDA #(TAB/64) .BYTE 0 STA SPRPNT .WORD END RTS .WORD 2002 .BYTE $9E,$20 SPRPNT =$07F8 .TEXT “2068 HADES” TAB =$02C0 .BYTE 0 END .BYTE 0,0 PRG INC $D020 JMP PRG İkinci örneğimizde birazcık matematik yaptık. C64’ün özelliklerinden biri olan SPRITE ile ilgili çok ufak bir deneme olan bu örnekte 1. sprite için Sprıte’ın datalarının bulunduğu hafıza adresi olarak $02C0’ı tanımladık ve sonra bu değeri 64’e bölerek sprite pointerine yazdık. Bunu yapınca VIC çipi artık 1. sprite’ın şeklinin nerede olduğunu bilecektir. Meraklanmayın BELLEK HARİTASI bölümünde sırası gelince SPRITE’larla ilgili bütün bilgileri vereceğim. 3. örnektekileri yazın fakat çalıştırmayın. Sadece Í + “ 3” komutunu kullanın. Sonra Í + “ 1” ile TASS’tan çıkın. LIST komutunu verin. Ekranda ne görüyorsunuz ? 2002 SYS 2068 HADES satırı değil mi ? Şimdi RUN komutu verin. Programın açıklamasını artık yapabilirsiniz. Zaten TASS’ı kullandıkça daha karmaşık programlar yazabileceksiniz. TURBOASSEMBLER dersi burada bitti. Eğer eksik ve/veya hatalı yerler varsa bana bildirin. Bir sonraki sayıda düzeltmeler bölümü açıp oraya ekleyelim.... Herkese şimdiden kolay gelsin.....

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