Bu sayfadaki yazılar
Sayfanın metni
Sayfa 19
KOMUT AÇIKLAMA ETKİLENEN BAYRAKLAR
TSX Yığın göstergecini X registerine kopyala. ( X = SP olur. ) N Z
ADRESLEME MODU ASSEMBLER KOMUTU İŞLEM KODU BAYT SAYISI ÇEVRİM SAYISI Dolaysız TSX BA 1 2
KOMUT AÇIKLAMA ETKİLENEN BAYRAKLAR TXA X registerini Aküye kopyala. ( A = X olur. ) N Z ADRESLEME MODU ASSEMBLER KOMUTU İŞLEM KODU BAYT SAYISI ÇEVRİM SAYISI Dolaysız TXA 8A 1 2
KOMUT AÇIKLAMA ETKİLENEN BAYRAKLAR
TXS X registerini Yığın Göstergecine kopyala.
( SP = X olur. ) Tehlikeli bir komuttur. ----------
ADRESLEME MODU ASSEMBLER KOMUTU İŞLEM KODU BAYT SAYISI ÇEVRİM SAYISI Dolaysız TXS 9A 1 2
KOMUT AÇIKLAMA ETKİLENEN BAYRAKLAR TYA Y registerini Aküye kopyala. ( A = Y olur. ) N Z ADRESLEME MODU ASSEMBLER KOMUTU İŞLEM KODU BAYT SAYISI ÇEVRİM SAYISI Dolaysız TYA 98 1 2 Assembler bölümünü böylece bitirmiş olduk. Bir program yazmaya başlamadan önce programda ne gibi özellikler bulunacak, nasıl çalışacak vs. bunları belirleyin. Programı yazarken hiç acele etmeyin. İlk önce programın ekran düzenini kafanızda canlandırın. Ekranda yazı nerede bulunacak, renkler ne olacak bunları ayarlayın. Daha sonra programı yazmaya başlayın, yazdıkça arada bir kaydedin. Daha sonra çalıştırın ama şuna dikkat edin. Henüz bitmemiş bir programınız olduğu için programı çalıştırınca bilgisayarınız kilitlenebilir veya istediğiniz gibi çalışmayabilir. Bir örnek verelim isterseniz. Diyelim ki programda müzik çalacak ve bunun için LDA #$00 JSR $1000 gibi bir komut vererek hazırlık yaptınız. (İntrocular iyi bilir bu komutları ☺) Fakat hafızaya müzik yüklemeyi unuttuysanız C64 kilitlenecektir. Veya değişik bir font kullanacaksınız ve font hafızaya yüklenmiş durumda. Programda yeni karakter setinin bulunduğu bölgeyi VIC’e bildirdiniz fakat ekran birden saçma sapan karakterlerle doldu. Sebebi ise $D018 adresine yanlış bir sayı yerleştirilmiş olabilir (belki de karakter setiniz bozulmuştur). İşte bunun gibi durumlarla karşılaşmamak için eğer ekstradan font, müzik, sprite vs. kullanacaksanız önceden bunları hafızaya yükleyin sonradan programda aktif hale getirin. Size tavsiyem bunların hepsini tek seferde kaydedin. Yani fontu ayrı müziği ayrı kaydetmeyin. Büyük bir ihtimalle – neredeyse standart diyebilirim- müzik $1000-$2000 ve font ise (1x1 font için) $2000-$2200 adresleri arasında olacaktır. Code için ise $0900-$1000 arasını ve daha üst adresleri kullanabilirsiniz. Eğer programınızda logo falan olacaksa size tavsiyem $4000’den yukarısını kullanın demek olacaktır. Bazen basit bir hata programınızda büyük bir problem ortaya çıkarabilir. Mesela gereksiz yere çağrılan bir alt rutin, başka bir alt rutin tarafından kullanılan hafıza bölgesini değiştiriyor olabilir, siz de niye çalışmıyor diye kafayı sıyırırsınız. O nedenle assembler ile program yazarken dikkat etmelisiniz. Assembler ile yazılmış bir programda hata bulmak zordur. Ama programları yazdıkça, zamanla elinizde neredeyse klişeleşmiş rutinler olacaktır ve işiniz daha da kolaylaşacaktır. Son olarak şunu söyleyeyim. Eğer başkasının yazdığı programları incelerseniz çok faydasını görebilirsiniz. En azından bazı işlerin nasıl yapıldığını anlayabilirsiniz ama şunu açıkça söylemekte fayda var. Bir başkasının yazdığı assembler programları anlamak veya çözmek her zaman kolay değildir. Mesela incelediğiniz programda sürekli olarak JSR komutlarıyla alt rutinlere sıçrama yapılıyorsa bir süre sonra hangi adresin nereden çağrıldığını karıştırırsınız. Veya programcı ROM’lardaki rutinleri sık sık kullanıyor olabilir. Bunun için de C64’ün ROM’larını incelemeniz ve oradaki rutinlerin ne iş yaptığını bilmeniz gereklidir. Bu kadar laftan sonra artık bir şeyler yaparsınız değil mi? Hadi bakalım kolay gelsin.
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 18
KOMUT AÇIKLAMA ETKİLENEN BAYRAKLAR SEC Elde bitini "1" yap. (C = 1 yap) C ADRESLEME MODU ASSEMBLER KOMUTU İŞLEM KODU BAYT SAYISI ÇEVRİM SAYISI Dolaysız SEC 38 1 2
KOMUT AÇIKLAMA ETKİLENEN BAYRAKLAR SED Ondalık moda gir. (D = 1 yap) D
ADRESLEME MODU ASSEMBLER KOMUTU İŞLEM KODU BAYT SAYISI ÇEVRİM
SAYISI Dolaysız SED F8 1 2
KOMUT AÇIKLAMA ETKİLENEN BAYRAKLAR SEI İnterruptları durdur. ( I = 1 yap ) I ADRESLEME MODU ASSEMBLER KOMUTU İŞLEM KODU BAYT SAYISI ÇEVRİM SAYISI Dolaysız SEI 78 1 2
KOMUT AÇIKLAMA ETKİLENEN BAYRAKLAR STA Aküdeki değeri adrese yaz. ---------- ADRESLEME MODU ASSEMBLER KOMUTU İŞLEM KODU BAYT SAYISI ÇEVRİM SAYISI Sıfırıncı Sayfa STA $ADR 85 2 2 Sıfırıncı Sayfa X indeksli STA $ADR, X 95 2 4 Mutlak STA $ADRES 8D 3 4 Mutlak X İndeksli STA $ADRES, X 9D 3 5 Mutlak Y İndeksli STA $ADRES, Y 99 3 5 İndeksli Dolaylı STA ($ADR, X) 81 2 6 Dolaylı İndeksli STA ($ADR), Y 91 2 6
KOMUT AÇIKLAMA ETKİLENEN BAYRAKLAR STX X registerindeki değeri adrese yaz. ---------- ADRESLEME MODU ASSEMBLER KOMUTU İŞLEM KODU BAYT SAYISI ÇEVRİM SAYISI Sıfırıncı Sayfa STX $ADR 86 2 3 Sıfırıncı Sayfa Y indeksli STX $ADR, Y 96 2 4 Mutlak STX $ADRES 8E 3 4
KOMUT AÇIKLAMA ETKİLENEN BAYRAKLAR STY Y registerindeki değeri adrese yaz. ---------- ADRESLEME MODU ASSEMBLER KOMUTU İŞLEM KODU BAYT SAYISI ÇEVRİM SAYISI Sıfırıncı Sayfa STY $ADR 84 2 3 Sıfırıncı Sayfa X indeksli STY $ADR, X 94 2 4 Mutlak STY $ADRES 8C 3 4
KOMUT AÇIKLAMA ETKİLENEN BAYRAKLAR TAX Aküdeki değeri X registerine kopyala. ( X = A olur. ) N Z ADRESLEME MODU ASSEMBLER KOMUTU İŞLEM KODU BAYT SAYISI ÇEVRİM SAYISI Dolaysız TAX AA 1 2
KOMUT AÇIKLAMA ETKİLENEN BAYRAKLAR TAY Aküdeki değeri Y registerine kopyala. ( Y = A olur. ) N Z ADRESLEME MODU ASSEMBLER KOMUTU İŞLEM KODU BAYT SAYISI ÇEVRİM SAYISI Dolaysız TAY A8 1 2