Commodore sayı 14, sayfa 53

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 53

Aşağıdaki tabloda komutları ve komut kodlarını bulacaksınız.

Komut Komut kodu BRK $00 RTI $40

15. Etkisiz Komutlar

Bilinen komutların en sonuncusuna geldik. Bu komut hiçbir şey yapmıyor, bu yüzden adı NOP ('no operation'). Bu kullanımına örnek olarak, bir program içindeki gereksiz yerleri atmak için o bölgeyi NOP komutlarıyla doldurmak verilebilir; böylece programın geri kalan kısmını kaydırmak ve içindeki adresleri ayarlamak zorunda kalmayız. Ayrıca, bu komut programın akışı içinde belli bir gecikme yaratmak için kullanılır. Ne de olsa NOP'ta bir komut ve yürütülmesi için belli bir zamanın geçmesi gerekiyor.

Komut Komut kodu NOP $EA

16. Bilinmeyen Komutlar

Bu gruptaki komutlar ne ola ki?.. Daha evvelki bölümde 151 emri gördük. Görecek başka bir şey kaldı mı ki?.. Aslında resmi dökümanlara bakılırsa kalmadı. Fakat 6510 ana işlem ünitesinin kullanılmıyor denilen 105 ihtimalde (256-151) ne yaptığını merak eden varsa bu bölümü okusun. Bir kere daha belirtelim, burada belirtilen komutlar aletinizde çalışmayabilir veya sizinkinde çalışır da başkasınınkinde çalışmayabilir. O yüzden, kullanırsanız sorumluluk size ait.

r-

TABLO 1 İşlem Kodları (onaltılık olarak) Crash 02, 12, 22, 32, 42, 52, 62, 72, 92, 82, D2, F2 Hiçbir şey — 1A, 3A, 5A, 7A, DA, (1 Byte)

Hiçbir şey — 04, 14, 34, 44, 54, 64, 74

(2 Byte) 80, 82, 89, C2, D4, E2, F4 Hiçbir şey — 0C, 1C, 3C, 5C, 7C, DC, FC (3 Byte)

Aslında bu bilinmeyen komutların arasında işe yarayacak gibi olanları da var. O yüzden midir, bilemiyorum; Almanlar bayılıyor bu komutları kullanmaya. Tabii, böyle bir programı beylik bir monitör programı ile inceleyince bir şey anlaşılmıyor. Fakat siz böyle bir durumda aşağıdaki listeleri elinize alıp programı çözebilirsiniz. Neyse, daha fazla uzatmadan konumuza geçelim.

ayrılıyorlar. Bunlar sırayla: 1. Grup: Bu komutlar bilgisayarın hiçbir itiraza meydan vermeden kilitlenmesine (crash etmesine) yol açıyor. Böyle bir durumda ya bilgisayarınızı resetliyorsunuz, ya da kapatıp yeniden açıyorsunuz. Başka bir kurtuluş yok. Bu gruba giren komutların hepsinin ortak özelliği, düşük değerli nibble'larının (1 nibble — 4 bit) içeriğinin “2” olması. Fakat düşük değerli nibble'ı

TABLO 2 (IND,X), (IND),Y ABS ABS,X ABS,Y $..,X $.. 2 2 3 3 ASL:ORA 03 13 0F 1F 1B 17 07 ROL:AND 23 33 2F 3F 3B 37 21 LSR:EOR 43 53 4F 5F 5B 57 47 ROR:ADC 63 73 6F 7F 7B 71 67 DEC:CMP C3 D3 CF DF DB D7 C7 F3 EF FF FB F7 E7 Lİ

Bu gruptaki komutlar yaptıkları işin düzeni açısından dört kategoriye

*2” olan her emir bilgisayarı crash ettirecek diye bir kural yok, mesela $A2 kodu LDX komutuna karşılık geliyor. 2.Grup: Bu komutlar hiçbir şey yapmıyorlar. Bunlar işlem olarak 3, 2 veya | byte sürebiliyorlar. Son kategoriye bizim NOP'ta giriyor.

3.Grup: Şimdi ilginç bir yere geldik. Burada, ana işlem ünitesi “iki” resmi emri bitişik olarak peşpeşe yürütüyor. Her iki işlemde aynı adresleme tipini kullanıyor. Mesela $E7, $DD byte'- ları peşpeşe gelince INC $DD: SBC $DD işlemleri peşpeşe yapılıyor. Bu işlem iki byte sürerken, aynı işlemi resmi komutlarla yazmaya kalktığımızda dört byte sürecekti. Bu grubun komutlarında STA komutunda kullanılabilen tüm adresleme tipleri geçerli. Tabii, buradan da ilginç bir olay çıkıyor: $E3 ve $DD byte'ları peşpeşe geldiğinde INC ($DD,X):SBC

53

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