1 Ocak 1988 Tarihli Commodore Gazetesi Sayfa 56

1 Ocak 1988 tarihli Commodore Gazetesi Sayfa 56
Metin içeriği (otomatik olarak oluşturulmuştur)

ına yüklemek ve orada çalıştırmak mümkün. Formatı: “B-E kanal araç track sector”” Makina dili programlar belli adres- lerde çalıştığı için, programın hangi buffer'a doldurulacağı da önemli. 0-3 arası buffer'lar 1541'in içinde $300- $7FF (768-2047) adresleri arasını kaplarlar ve 256'şar byte uzunlukta- dırlar. Örneğin 2 numaralı olan $500- $5FF arasını kaplar. Eğer disketiniz- de 19/02 blokunda bu adres aralığın- da çalışacak bir makina dili program varsa, aşağıdaki program onu yükle- yip çalıştıracaktır (isterseniz gerçek- ten denemeyin...): 10 OPEN 1,8,15 20 OPEN 3,8,2, * #$2” 30 INPUT#1,A 40 I1F A—70 THEN PRINT “BUFFER DOLU!”': GOTO 60 50 PRINT #4 1,““B-E 2 0 19 02” 60 CLOSE 3 70 CLOSE | MEMORY-READ (M-R) Bu bellek okuma komutu ile, 1541? in ROM ve RAM'indeki bilgileri okuyabilirsiniz. Formatı: “M-R CHRS$(LO0O) CHR$(HI)” Örneğin 1541'in RAM'inin 762 ve 764 numaralı adreslerinde o an içeri- de bulunan disketin kaç boş bloku- nun oldugu yeralır. İsterseniz onu okuyalım 10 OPEN 1,8,15,“1” 20 A— 762 30 HI-INT(A/256) 40 LO- A-256*HI 50 PRİNT.&#1,“M-R”; CHR$(LO);CHRS(HI) 60 GET #& 1,A$ 70 Al- ASC(A$ 4 CHR$(0)) 80 A—764 90 HI- INT(A/256) 100 LO — A-256*HI 110'PRİNT #1,“M-R”; CHRS$(LO);CHRS$(HI) 120 GET # 1,BS 130 A2 — ASC(B$ - CHR$(0)) 140 PRİNT Al -256*A2 150 CLOSE | Artık programın incelenmesini si- ze bırakıyorum. Bu komuta bir parametre daha ek- leyerek kaç byte okumak istediğinizi de belirtebilirsiniz. Onu da aşağıda- ki örnek ile görelim. Bir disket initialize edilince, diske- tin adı $780'den itibaren 1541'in bel- leğine yazılır. $790'ü LO/HI olarak ayırırsak 144/7 elde ederiz. 10 ÖPEN 1,85,15, 1” 20 PRİNT #1,“M-R”;CHRS(144); CHRS$(7);CHRS(16) 30 INPUT #1,A$ 40 CLOSE | 50 PRINT A$ Görüldüğü gibi, okunacak byte miktarı gönderilince, GET # yerine INPUT & kullanabiliyoruz. MEMOR Y-WRITE (M-W) Bu komutla da, 1541'in RAM'in- deki bazı bilgileri değiştirme imkâni vardır. Genel formatı: “M-W CHRS$(LO) CHR$(HI) CHRS$(adet) CHRS(datal) CHR&$(data2)....”” LO ve HI ile M-R'de olduğu gibi RAM'daki adresi belirtiyoruz. Adet parametresi, arkadan kaç byte yazı- lacağını belirliyor. En fazla 34 olabi- omut kanalı en fazla 40 arakter kabul eder. Bunun ilk altısı komutumuzun altı karakteri tarafından kullanılır. lir. Bunun nedeni komut kanalının en fazla 40 karakter kabul etmesi ve bu- nun ilk altısının komutumuzun ilk al- tı karakteri tarafından kaplanması. Bir örnek görelim. Disketin araç numarası (yani 8) 119/120 adreslerinde saklanmakta- dır. 119'da 8432-40, 120'de de 8464 — 72 vardır. Bunu değiştirerek, 1541”e başka bir araç numarası ile hi- tap edebiliriz. Örneğin bunu 8 yapa- lım: 10 OPEN 1,8,15 20 PRİNT #1,“M-W”; CHRSC119);CHRS(0); CHRS(2);CHR$(9 * 32); CHR$(9 4 64) 30 CLOSE 1 40 OPEN 1,9,15 50 PRİNT # 1,“1” 60 CLOSE 1 Artık her türlü işlemde 8 yerine 9 kullanmanız gerekecek. Tabii, 1541'i kapatıp açarsanız tekrar eski haline döner. MEMORY-EXECUTE (M-E) Bu komutla da, 1541'in RAM'in- de veya ROM'unda olan bir progra- mı çalıştırabilirsiniz. Formatı: “M-E CHR$(LO) CHRS$(HD)” Örneğin, 1541'in işletim sistemin- de $EFC9 adresinde 72 numaralı DISK FULL mesajını gönderen rutin vardır. Bunu çalıştıralım: 10 OPEN 1,8,15 20 PRİNT #1,“M-E” CHRS(201)CHRS$(239) 30 INPUT #1,A,A$,B,C 40 PRINT A,A$,B,C 50 CLOSE | İstediğimiz mesajın oluştuğunu gö- receksiniz. USER (U) Bu komut, kullanıcının belli adres- lere yerleştirdiği bir programı otoma- tik olarak başlatmasını sağlar. For- matı: uuxı) Buradaki X yerine A-J arası bir harf veya 1-9 arası bir rakam veya *” gelebilir. Her defasında da baş- latılacak programın başlangıç adresi aşağıdaki tablodaki gibi olur: UA VEYA Ul - $CD5F UB VEYA U2-$DC97 UC VEYA U3 - $0500 UD VEYA U4-— 50503 UE VEYA U5 — $0506 UF VEYA U6-— $0509 UG VEYA U7- $050C UH VEYA U8 — $05S0F UlI VEYA U9- $FFOl1 UJ VEYA U: - $EAA0 U1/U2 (veya UA/UB) komutları- nı biliyoruz. Diğerlerinden bizim için ilginç olan UJ. Çünkü bu, 1541'i açı- lış durumuna getirecek RESET'i ya- pıyor. 10 OPEN 1,8,15 20 PRİNT $ i,“UJ” 30 FOR I1 TO 1000 40 NEXT I 50 INPUT 4 1,A,A$,B,C 60 PRINT A,A$,B,C 70 CLOSE | 30-40 arasında reset işleminin bit- mesini bekliyoruz. Sonra da hata ka- nalını okuyoruz. Gelen mesajın 73, CBM DOS V2.6 1541,00,00 olması gerekiyor. Hoşçakalın... O

Bu sayıdan diğer sayfalar: