Kaset - Disket Sohbeti

5 Bu yazıda birçok editörün programı çalışmaz duruma getiren, böylece makine dilinde İsmail'in deyimiyle “düştü” denilen durumu yaratan KASKIRANPO ya da KAKTÜS programı veriyoruz. Bundan önceki yazılarda Basic pointer'lar ve Basic bölgesindeki belleklerle oynanarak programların kopyalanmasına ait örnekler verilmişti. O yazıları incelediyseniz bu programın farkını anlayabilirsiniz. Program BASIC INPUT BUFFER denilen ve $0200'den başlayarak $0258'e uzanan bölge dışındaki herhangi bir alanı Basic yorumlayıcıya almaz. Bunu daha açık görmek için aşağıdaki programa bakalım. 79 numaralı satırda LDA $0206 ilginç bir kullanıma sahiptir. Parametreleri $7A ve $7B satırlardaki INC $7A ve INC $7B ile değişmektedir. ($7A ve $7B, $79. satırın bellek adresleri) Aşağıdaki bölüm ise LDA $0200'den alınan karakterlerin tanınması gibi görevleri yapmaktadır.

0073 E6 TA INC
6075 DÜ BNE
0077 EB INC $7B
ga7zg AD A6 A2 LDA
BA7c C9 SA CMP #$3A
BO BCS
paso cg CMP
gös2 Fd EF BEG $0073
0484 38 SEC
0085 E9 3ü SBC
0487 38 SEC
2088 E9 DA 5BC
gasAa RTS

Eğer Basic program çalışacaksa LDA $0206 komutunun parametreleri LDA $0800 olacaktır. Bu da programı çalıştırmak için yeterlidir. Bunu görmek için aşağıdaki programa bakalım. Bu program RUN için Basic ROM'da yer alan back up text pointer rutinidir.

A68E 18 CLC
A68F A5 2B LDA $2B
63 FF ADC
85 FA STA $#YA
A695 A5 820 LDA
A6937 693 FF ADC #$FF
A6993 85 7B STA
Gü RTS

Aşağıdaki programa baktığınızda $7A değişken olmanın yanında $7B sabit programın çalışmasını engellemekte sadece keyboard'dan girilen komutlar çalışmaktadır.

0073 E&6 YA INC
9075 A3 LDA #$02
85 7B STA

Şimdi gelelim Kaskiranpo'ya: Aşağıdaki dataları belirtilen bellek aralığına giriniz ve programı kaydediniz. Ayrıca monitör programı olmayanlar için Basic program aşağıdadır. Kaskiranpo'nun kullanılması: Mod 1. Kaskiranpo'nun aktif duruma gelmesi için SYS 303 kullanın. Kaskiranpo'nun pasif olması için SYS 294 kullanın, bu durumda $7A ve $7B normal konumlarına gelir, RUN komutu çalışır. SAVE için SYS 312 “isim” komutu kullanın, bu komutla sadece basic alan diskete kaydedilir. Basic pointer'ları değiştirerek istediğiniz bölgeyi kaydedebilirsiniz. Ayrıca 202 blok veya daha uzun programları kaydedebilirsiniz. Mod 2. Bu modun özelliği aktif konumda bütün belleği $FF ile doldurmakla basic düzenlemeyle programın uzunluğunu bulmakta ve SYS 402 “program ismi” ile kaydetmektedir. Makina kodu programları için bu mod uygundur. Disk driver'ı olmayanlar önce ESRA-TURBO'yu yüklesinler, Mod 1 ile çalışsınlar, program düştüğünde SYS 32458 yapıp TURBOSAVE “isim” ile kaydetsinler.

1
2 KASKIRANPO 11 SEYFİ 13865
3 PRİNT" KASKIRANPO AKTIF SYS 303
4 KASKIRAMNPO PASİF 294
5S PRINT"A SAVE İCİN SYS
6 MOD
7 PRINT" KASKIRANPO AKTIF. SYS 38iİ
8 PRINT"MW SYS 294
9 PRINT"A SAVE İCİN SYS
18 BASIC DÜZENLEME SY5 4i6
15 FOR TO 425
28 READ
30 GÖTÜ 38
40 303": NELİ
32000
32001
32002
32003 DATA32,186,2535,234,i66,45,1564,46,1693,43,32,216,255,163,55,133,1İ,76,134
32004
320065
32806
32807