1 Nisan 1987 Tarihli Commodore Gazetesi Sayfa 53

1 Nisan 1987 tarihli Commodore Gazetesi Sayfa 53
Metin içeriği (otomatik olarak oluşturulmuştur)

kalıyor. COMMODORE 64'ümüzün işletim sistemindeki interrupt değer- lendirme altprogramı (“interrupt ser- vice routine') bu flag'ı da kontrol edi- yor. Bu yüzden BRK işleminin ormal interrupt'la karışması engelleniyor. Bu komut genelde bazı özel program- ları çağırmak için kullanılıyor (Mese- la monitör programı). Interrupt değerlendirme altprogra- mı işini bitirdiğinde asıl programa geri dönebilmesi için normal RTS komu- tuni kullanamaz, çünkü bu komut du- rum register'ini yığından almıyor. Bu durumda RTI ('Teturn from inter- rupt') komutu kullanılır. Bu komut hem adresi, hem de durum register'i- ni yığından alır ve yürütülmesi kesi- len programa flag'lar bozulmadan de- vam edelir. Aşağıdaki tabloda komutları ve ko- mut kodlarını bulacaksınız. Komut Komut kodu BRK $00 RTI $40 15. Etkisiz Komutlar Bilinen komutların en sonuncusu- na geldik. Bu komut hiçbir şey yap- miyor, bu yüzden adı NOP ('no ope- ration'). Bu kullanımına örnek ola- rak, bir program içindeki gereksiz yer- leri atmak için o bölgeyi NOP komut- larıyla doldurmak verilebilir; böylece programın geri kalan kısmını kaydır- mak ve içindeki adresleri ayarlamak zorunda kalmayız. Ayrıca, bu komut programın akışı içinde belli bir gecik- me yaratmak için kullanılır. Ne de ol- sa NOP'ta bir komut ve yürütülmesi için belli bir zamanın geçmesi gereki- Komut kodu $EA 16. Bilinmeyen Komutlar Bu gruptaki komutlar ne ola ki?.. Daha evvelki bölümde 151 emri gör- dük. Görecek başka bir şey kaldı mı ki?.. Aslında resmi dökümanlara ba- kılırsa kalmadı. Fakat 6510 ana işlem ünitesinin kullanılmıyor denilen 105 ihtimalde (256-151) ne yaptığını me- rak eden varsa bu bölümü okusun. Bir kere daha belirtelim, burada belirti- len komutlar aletinizde çalışmayabi- lir veya sizinkinde çalışır da başkası- nınkinde çalışmayabilir. O yüzden, kullanırsanız sorumluluk size ait. TABLO 1 İşlem Kodlar (onaltılık olarak) Crash 02, 12, Hiçbir şey 1A, 3A, SA, TA, DA, (1 Byte) Hiçbir şey — 04, 14, 34, 44, 22, 32, 42, 52, 62, 72, 92, 82, D2, F2 54, 64, 74 (2 Byte) 80, 82, 89, C2, D4, E2, F4 Hiçbir şey — 0C, 1C, 3C, 5C, 7C, DC,DC (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ı kul- lanmaya. Tabii, böyle bir programı beylik bir monitör programı ile ince- leyirice bir şey anlaşılmıyor. Fakat siz böyle bir durumda aşağıdaki listeleri elinize alıp programı çözebilirsiniz. Neyse, daha fazla uzatmadan konu- muza geçelim. ayrılıyorlar. Bunlar sırayla: 1.Grup: Bu komutlar bilgisayarın hiçbir itiraza meydan vermeden kilit- lenmesine (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 2 2 3 ASL:ORA 03 13 0F ROL:AND 23 33 2F LSR:EOR 43 53 4F ROR:ADC 63 73 6E DEC:CMP C3 D3 CE INC:SBC E3 F3 EF ABS,X ABS,Y $..,X $.. a 1F 1B 17 07 3F 3B 37 21 SF 5B S7 47 TF TB T1 67 DF DB D7 CT FF FB F7 E7 Bu gruptaki komutlar yaptıkları işin düzeni açısından dört kategoriye Commodore *2” olan her emir bilgisayarı crash et- tirecek diye bir kural yok, mesela $A2 kodu LDX komutuna kaırşılık geliyor. 2.Grup: Bu komutlar hiçbir şey yapmıyorlar. Bunlar işlem olarak 3, 2 veya | byte sürebiliyorlar. Son ka- tegoriye 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 res- mi komutlarla yazmaya kalktığımız- da dört byte sürecekti. Bu grubun ko- mutları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

Bu sayıdan diğer sayfalar: