Commodore sayı 22, sayfa 48

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 48

Write (yaz) komutu bloğun hafızadaki yeni halini diskete yazacaktır. Şimdi de disketi bir kendine getirelim, yani initialize komutunu gönderelim: @I

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ı bazı 160 değeri ile ve geriye kalan 171-255 arası da sıfırlanmıştır. Daha genelde böyledir. Kimi değişiktir ve kimi dizin arası byte'ların “İÇERİKLERİN” ASCII kodlarıdır. Tabii siz de isterseniz buralara imza dilediğiniz yazıyı yerleştirebilirsiniz. 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ç buna değecek 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ükleyin ve değişik isimlerle SAVE edin. Bu işi yapınca devam etmeye hazırız. DMON yazıp RETURN tuşuna basın. DISKMON aktif hale gelecektir. Aynı şeyi SYS 49152 ile de yapabilirdik. Eğer SYS 64738 ile veya bir RESET tuşu ile bilgisayarınızı açılış durumuna getirirseniz (bilerek veya kaza ile), SYS 49152 komutu DISK-MON'u geri getirecektir. İş yapınca devam 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 bloğun 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 disketteki tüm dosyalara ait bilgiler directory'e yazılıncaya kadar devam eder. Acaba bunun sınırı var mı... 30'ar byte'lık gruplar demiştik. Bloğun ilk iki byte'ı bir sonraki bloğu gösterdiğine göre bize 254 byte kalıyor. 254 byte'ın içinde 30'luk 8 grup oluşabilir. Ancak 8*30 = 240 byte ettiğine göre 14 byte'lık yer artıyor demektir. Bu 14 byte da, ikişer ikişer 30'luk gruplar arasına dağılmıştır ve kullanıma 8 tane 30'luk directory'de de 18/0 bilgilerini saklamamış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ı.