Bu sayfadaki yazılar
Sayfanın metni
Sayfa 4
Í + 5 : OBJECT FILE Yazdığınız programı kod olarak diskete kaydeder. Í + 6 : $... 'dan $... 'a olan bölgedeki baytları, imlecin bulunduğu yere .byte komutu şeklinde programınıza ekler. Bir tür DATA GENERATOR yani. Í + 7 : Tanımsız. Í + 8 : Tanımsız. Í + 9 : Tanımsız. Í + 0 : Tanımsız. Í + ”+” : HEX sistemde toplama yapar. Í + “-“ : HEX sistemde çıkartma yapar. Í + pound işareti : Tanımsız. Í + “INST/DEL” : Satır siler. Í + “A” : Tanımsız. Í + “B” : Önceden Í + “M” ile tanımlanmış bir blok üzerinde işlem yapar. “W” tuşu ile seçilen bloku diskete SEQ file olarak kaydeder. “K” tuşu ile seçilen bloku siler. “C” tuşu ile seçilen blok imlecin olduğu satırdan itibaren kopyalanır. Í + “C” : COLD START. “Y” ile her şey silinir ve TASS'ı yeniden başlatır.. Í + “D” : Disk komutları kullanabilirsiniz. “I” : INIT, “V” : VALIDATE vs.. Í + “E” : Daha önceden Í + “W” ile diskete SEQ File olarak kaydedilmiş bir programı imlecin olduğu satırdan itibaren araya ekler. Í + “F” : Programda bir yazıyı vs. aratabilirsiniz. İmlecin bulunduğu ilk yere gider. Í + “G” : Daha önceden Í + “M” ile numara verilerek tanımlanmış blok'a gider. Blok
Numarası girilir. + “H” : Programdaki en alt satıra gider. + “I” : $.... ‘dan $.... ‘a kadar olan bölgeyi $.. sayısı ile doldurur. + “J” : $.... ‘dan $.... ‘a kadar olan bölgenin HEX ve ASCII dökümünü verir. + “K” : F3, F4, F5 ve F6 tuşları tanımlanabilir. + “L” : Önceden + “S” ile diskete PRG file olarak kaydedilmiş programı yükler. + “N” : Programdaki herhangi bir satıra gidebilirsiniz. + “O” : Programın renklerini değiştirebilirsiniz. + “P” : EOR CODE --- Ne işe yaradığını çözemedim. + “Q” : Tanımsız. + “R” : REPLACE --- Ne işe yaradığını çözemedim. + “S” : Yazdığınız programı –EKRANDA YAZILDIĞI ŞEKLİYLE – PRG File olarak diskete kaydeder. “ + “5” : OBJECT FILE “ komutundan farklıdır. + “T” : En alt satıra gider. + “U” : Programda kullandığınız etiketleri “,” adıyla diskete kaydeder. + “V” : --- Ne işe yaradığını çözemedim. + “W” : Programı SEQ File olarak diskete kaydeder. + “X” : Tanımsız. + “Y” : En alt satıra gider. + “Z” : Tanımsız. + “*” : Disketin Directory’sini okur. + “:” : İşaretlenen yerleri listeler. + “;” : İşaretleri kaldırır. + “=” : İmlecin bir üstündeki satırı siler. + “@” : Disket sürücünün hata kanalını okur. + “F1” : Fonksiyon tuşlarını sıfırlar. + “F3” : Tanımsız. + “F5” : Tanımsız. + “F7” : Tanımsız. Son olarak program içinde yapacağınız açıklamalar “;” ile başlamalıdır. Örnekler için tıklayınız ☺☺
Klavyeyle gezinmek için ← ve → tuşları.
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.....