Commodore sayı 22, sayfa 48

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 48

MON yardımı ile nasil bilgi yazabileceğimizi görelim. Önce .R 12 00 ile 18/00'1ı yükleyin. Tabii disketin kenarındaki korumayı kaldırın (hata yaparsanız, sorumluluk size ait!..). Sonra da, .M A2 A6 komutunu vererek ID ve 2A yazısını içeren byte'- ları ekrana getirin. Satırın en solundaki değer A2 olacaktır ve bu bir tür satır numarasıdır; o satırdaki byte'- ların $A2 adresinden itibaren olan byte'lara ait olduğunu gösterir. Şimdi cursor ile A2'nin yanındaki beş byte'- lık bilginin üstüne 414141 41 41 yazın. Sonra da RETURN tuşuna basın. Sağ taraftaki karakterlerin AA-AAA olduğunu göreceksiniz. Sıra geldi blokun yeni halini diskete yazmaya. Aşağıdaki komutu kullanın:

W

Write (yaz) komutu blokun hafızadaki yeni halini diskete yazacaktır. Şimdi de disketi bir kendine getirelim, yani initialize komutunu gönde-

Sonra da $ ile directory'e bir göz atın. Nasıl, ID bölümü biraz değişmiş, değil mi? Artık bu beş byte'a yazacağınız değerlerle oynamak sizin işiniz. Bu arada W komutunu biraz daha açalım. Yukarıdaki işlemi .W 12 00 olarak da yapabilirdik. Ancak, en son okuduğumuz blok 18/00 olduğu için ve DISKMON da bu bilgiyi sakladığından, gerek görmedik. Ancak 18/00'dan okuduğumuz bilgiyi bir başka bloka yazmak istersek (neden isteyelim ki?..) o zaman W”'yi tam biçimiyle kullanıp hangi TRACK'ın hangi SECTOR'üne yazılacağını beirtmemiz gerekir.

Directory'nin 167-170 arası b arı 160 değeri ile ve geriye kalan 171-255 ar. lar da sıfırlanmıştır. Da genelde böyledir. Kimi değişiktir ve kimi di arası byte'ların “İÇE isterseniz buralara imza dilediğiniz yazıyı yerleştirel Gerek duyacağınız karakter k

18/00'la olan ilgimiz bu kadar.

Şimdi zincirin bir sonraki halkasına geçelim, yani 18/01'e. DISKMON'dan bunu iki türlü yazabiliriz. Birincisi .R 12 01 ile. Ancak directory'nin bir bloklar zinciri olduğunu ve bu zinciri takip edebilmek için bir yöntemin olması gerektiği, kullanıcı kolaylığını sağlamak açısından aşikâr. Demek ki, ikinci bir yöntem daha var. Bildiğiniz gibi, 18/00'ın ilk iki byte'ında zincirin bir sonraki halkasının adresi yer alıyordu. Buraya ulaşmak için: .N

Next (sonraki) komutunu kullanabiliriz. DISKMON otomatik olarak o anda hafızadaki blokun ilk iki byte'ının gösterdiği adresteki bloku okuyacaktır. Bunu S ile kontrol edebilirsiniz. Eğer hafızadaki blok başka bir bloku göstermiyorsa, yani ilk byte'ı sıfır ise “End of file” (dosya sonu) mesajı çıkacaktır ve zincirin son halkası hafızada durmaya devam edecektir. Gördüğünüz gibi, N komutu ile

ISKMON'u

tam anlamıyla öğrenip, kullanmak göründüğünden zor, fakat sonuç bu

çabayı haklı çıkaracak nitelikte.

*mantıksal' olarak bir sonraki bloka gidiyorsunuz. Bunun her zaman 'fiziksel' konuya blok olmadığını görmüştük. Örneğin disketinizde 8'den fazla dosya varsa, directory'nin üçüncü halkası 18/02 değil 18/04 olacaktır. Buraya kolaylıkla N komutu ile gidebiliriz. Peki ya gerçekten fiziksel bir sonraki bloku okumak istersek ne yapacağız? O zaman N yerine .R 12 02 işaretini verin. DISKMON 18/02'yi okuyacaktır. Eğer 18/02'de de bir şey yoksa, 18/03'ü tekrar deneyeceksiniz. Yani bloka fiziksel sıraya göre de gitme imkânınız var. Eğer disketinizde 8'den fazla hazır dosya yok ise, 18/01'den itibaren incelememize devam etmeden, önce bir şey daha yapmanız lazım. Önce .X (exit, çıkış) komutu ile DISKMON'dan çıkın. Ekranın sol üst köşesine çıkacak olan şeyleri şimdilik boşverin. Başka bir disketinizden 3-5 blokluk

(daha da uzun olabilir ama zaman alır) bir program (varsa, BASIC programlardan biri) yük yapınca devamında DMON yazıp

Aynı şeyi S$ dedik. Eğer SET tuşu

18/01'i hafızaya alıp verdiğinizde, ekrana çıkacak dökümünün sağ tarafında dosya isimlerini göreceksiniz. Şimdi bu byte'ları da birer birer inceleyelim...

0 ve 1 numaralı byte'lar, her zaman olduğu gibi, bir sonraki blokun adresini gösteriyor. 8'den fazla kayıtlı dosyanız varsa, burası 18/04'ü (12 04) gösterir. Ondan sonra gelen byte'lar 30'arlık gruplar halinde disket üzerindeki dosyalar ile ilgili bilgileri içerir. Yani ilk 30 byte'lık grup (2-31,$02-$1F numaralı byte'lar) diskete ilk SAVE edilen dosya ile, bir sonraki grup ise ikinci dosya ile ilgili bilgileri saklar ve bu böylece disketeki tüm dosyalara ait bilgiler direcory'e yazılıncaya adar devam eder. Acaba bunun mıştır ve kull, na 8 tane 30'lı tory'da de 18/0 gilerini saklama mışsa, 8*18 — 144 dosya ile ilgili bilgi saklayabiliriz demektir. İşte sınır bu... İsterseniz 18/01'in yapısını tablo olarak görelim:

BYTE ANLAMI 0-1 Sonraki blok 2-31 1. dosya 32-33 Kullanılmaz 34-63 2. dosya 64-65 Kullanılmaz 66-95 3. dosya 96-97 Kullanılmaz 98-127 4. dosya 128-129 Kullanılmaz 130-159 5. dosya 160-161 Kullanılmaz 162-191 6. dosya 192-193 Kullanılmaz

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