Bu sayfadaki yazılar
Sayfanın metni
Sayfa 53
TRACK no SECTOR no 01-17 1 00-20 18-24 25-30 1 00-17 31-35
Birazdan her bir SECTOR'ün byte düzeyinde yapısına ineceğiz ve kimi SECTOR'lerde her bir byte'ın ayrı bir anlamı olduğunu göreceğiz. Ancak bunu yaparken Diskmon adlı programımızdan faydalanmamız yerinde olacak. Bu program ile disketin üzerindeki herhangi bir bloku TRACK/SECTOR adresini vererek okumayı, ekranda görmeyi, değişiklik yapmayı, o bloku diskete geri yazmayı ve yazımızın ilerleyen kısımlarında göreceğimiz başkaca işlemleri yapmayı becereceğiz. Önce MDE programını kullanarak DISKMON programını bilgisayara girin ve diskete kaydedin. Bu arada eğer yeni okuyucularımız varsa ve MDE'nin ne olduğunu bilmiyorlarsa, bu arkadaşların dergimizin birinci ve ikinci sayılarını TELETEKNİK'ten isteyip bir göz atmalarını tavsiye ederiz. MDE (Makine Dili Editörü), makine dilinde yazılmış programları hatasız ve kolayca bilgisayara girmenizi sağlar. Tıpkı bunun gibi, bir de BDE (Basic Dili Editörü) programımız var. Bununla da, BASIC dökümlerimizin yanında bulunan sayılar yardımıyla, dergiden yazdığınız programın SYNTAX ERROR vermeden çalışmasını garantileyebilirsiniz. Eğer dilerseniz, her iki programı da disket veya kasette TELETEKNİK'ten isteyebilirsiniz. Biz gene 1541 konumuza dönelim. DISKMON'u yazıp disket üzerinde hazır ettikten sonra yükleyip RUN komutunu verin. Ekranın değiştiğini göreceksiniz. Göreceğiniz nokta ve yanında yanıp sönen cursor, bilgisayarın sizden komut beklediğini göstermektedir. Buraya gireceğiniz komutlar ile disket keşfimize devam edebiliriz. Önce ya boş bir disket bulun ya da dolu bir disketin kenarını kapatarak yazılmaya karşı koruyun. DISK-
MON ile yapacağınız denemelerde hata yapma olasılığımız her zaman vardır ve eğer hata sonucu disketin üzerindeki bir SECTOR'ün içeriğini bozarsanız, birkaç programınızı düzeltilemez şekilde bozmuş olabilirsiniz. Disketin kenarını kapatmamızın sebebi bu. Dilerseniz, artık kullanmadığınız bir disketi formatlayıp deneme disketi olarak da kullanabilirsiniz. İsterseniz, bu işlemi DISKMON komutları ile nasıl yapacağımızı görelim. Önce disketi yerine takalım ve noktanın yanına $ karakterini yazıp RETURN tuşuna basalım. Ekrana o disketin directory'sinin yazıldığını göreceksiniz. Eğer diskette 20'den fazla dosya adı varsa, okumanızın kolaylaşması için bilgisayar ilk 20 dosya adından sonra durup sizin bir tuşa basmanızı bekleyecektir. Eğer
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 52
1541'i
TUNA ERTEMALP
Merhaba arkadaşlar... Bu ayki konumuza başlamadan önce, ufak bir yanlış anlamayı düzeltelim. Eğer bu yazı dizisinin devamlı okuyucularından (eskilerin deyimiyle, müdavimlerinden) iseniz, geçen sayıda yayınlanan dördüncü bölümün son bölüm olduğunun açıklandığını hatırlarsınız. Hem de iki kere, hem yazının başında hem de fihrist bölümünde... Şimdi de karşınıza pat diye beşinci bölümü getiriyoruz. Olay şuradan kaynaklanıyor. Bendeniz yaz boyunca İsviçre'de yaz stajımı tamamlamaya gitmeden önce dizimizin ilk dört bölümünü yazıp teslim etmiştim. Döndüğümde devam edeceğimi de belirtmiştim. Ancak, o sıralarda askerlik görevini sürdüren yayın yönetmenimiz Ziya Bayman, benim bu belirtmemi duyamamış, dördüncü bölümü dergiye basarken elinde beşinci bölümün olmadığını görünce de, biraz da askerlikten yeni çıkmış olmanın getirdiği sarhoşluktan olsa gerek, dizinin bittiğine kanaat getirmiştir. Neyse, düzeltir, okurlarımızdan özür dileriz... Gelelim bu ayki konumuza. Artık gittikçe ciddileşiyoruz. Bugüne kadar, genel disket tarihini ve yapısını, BASIC kullanarak 1541'e hitap etmeyi ve bu alete değişik komutlar göndermeyi öğrendik. Şimdi ise, disketimizin derinliklerine inip, dükkândan aldığımız o dışı kare içi plak şeklindeki şeyin 1541 tarafından nasıl kullanıldığını, bilgilerin üzerinde nasıl organize edildiğini açığa çıkaracağız. Bu araştırmamızda yalnız olmayacağız. Bize DISKMON adını verdiğimiz bir program yardımcı olacak. DISKMON da ne? diyorsanız, yazımızın geri kalanını da okumanızı tavsiye ederiz. Artık işe girişelim. Daha ilk bölümde, bilgilerin disketlere belli bir düzen içinde yazıldığını, bilgilerin disket üzerinde TRACK ve SECTOR adını verdiğimiz bölümlere kaydedildiğini belirtmiş, ama pek de fazla derine inmemiştik. Acaba TRACK gerçekte nedir, ya SECTOR ne ola? Bir disket fabrikadan çıktığında TRACK/SECTOR nedir, bilmez. Bu tamamen, o disketi kullanan disket sürücüsünün (bizim durumumuzda 1541'in) yorumuna, disket üzerinde-
ki manyetik maddeyi kullanmasına bağlıdır. Bilgisayar disketiyle karşılaştırma konusunda klasik örneğimiz olan müzik plaklarını (ama yeni teknoloji ürünü CD'leri değil, atalarımızdan kalma koca siyah şeyleri) düşünün... Onlar da fabrikadan boş plak olarak çıktıklarında pırıl pırıl bir yüzeye sahiptirler ve ancak özel baskı yöntemleriyle üzerlerine müzik “kazınınca” hepimizin gördüğü çizgiler ortaya çıkar. Disketlerde de durum buna benzer. Ancak bir farkla, disketlerin üzerine fiziksel olarak kazınan bir şey yoktur. Tüm işlemler manyetik partiküllerin etkilenmesi sonucu gerçekleşir. Ayrıca, plaktaki izler dış kenarda başlayan ve içeri girdikçe küçülen bir spiral oluştururlar. Diskette ise iç içe girmiş manyetik halkalar vardır. İşte bu halkaların her biri TRACK adını alır. Bir diskette kaç TRACK olacağı, daha önce de belirttiğimiz gibi, tamamen onu kullanan disket sürücüsüne bağlıdır. O disket sürücüsünün okuma/yazma kafasının ne kadar hassas olduğu, birbirine ne kadar yakınlıktaki TRACK'ların bilgilerini ayırt edebileceği, TRACK sayısını belirler. Disketin merkezine en uzak olan en dıştaki TRACK'ın en uzun, merkeze en yakın en içteki TRACK'ın da en kısa TRACK olacağı aşikâr. Buna bağlı olarak da, her TRACK'ın alabileceği bilgi miktarı değişecektir. Ancak gene de, en kısa TRACK'ın alabileceği bilgi miktarı bile oldukça fazladır. Burada karşımıza bir optimizasyon sorunu çıkıyor. Belki biliyorsunuzdur, bilgisayarlar, kayıt araçları ne olursa olsun, bilgiyi kaydedilmek üzere belli uzunlukta bilgi kümeleri haline gönderir, tekrar geri okuma işleminde de aynı uzunluktaki bilgi kümeleri olarak okur. Bir başka deyişle, hiçbir kayıt aracına birer birer byte gönderilmez, daha fazla sayıda byte BLOK'lar haline getirilip gönderilir. Bu blokların uzunluğu 128, 256, 1024, 2048 veya 4096 byte olabilir. Bu, bilgisayarınızın büyüklüğüne ve kayıt cihazınızın kapasitesine bağlıdır. Diyelim ki, kayıt cihazınız 256 byte'lık bloklar halinde bilgi bekliyor ve siz sadece 200 byte (hatta dilerseniz 1 byte deyin) kaydedeceksiniz. Bu durumda geriye kalan 56 byte (ya da 255 byte) boşa gitmiş olacaktır. Bir sonra göndereceğiniz bilgi bloku eski bilgi blokunun kaldığı yerden değil, yeni bir fiziksel blok başlangıcından itibaren kaydedilecektir. Bu nedenle kayıt aracınızda mutlaka hafızanın boşa kullanılması olayı ortaya çıkacaktır. Önemli olan, o sistemin özelliklerini, sistemde kullanılan programların uzunluklarını ve kayıt aracının kapasitesini göz önüne alarak, uzun vadede en verimli sonucu verecek blok uzunluğu saptamaktır. Bu, bilgisayar mühendislerinin ve sistem dizayncılarının işi. 1541'de bu uzunluk 256 byte olarak tanımlanmıştır. Tabii bunda COMMODORE 64'ün 8 bit'lik bir alet olmasının da önemi var. 256 byte'lık bir bilgi yığınını 8 bit'lik indeks yazmaçları ile makine dilinde işleme tâbi tutmak çok daha kolay. Dediğimiz gibi, en kısa TRACK bile 256 byte'dan çok çok daha fazla bilgi alabilir. Bu durumda her bir TRACK'ı 256'şar byte'lık SECTOR'lere bölmenin zamanı geldi demektir. Neden BLOK adı dururken SECTOR adını kullanmaya başladık? BLOK ile, disketin üzerindeki herhangi bir 256 byte'lık bilgi kümesini adlandırıyoruz. Ancak, birazdan da göreceğiniz gibi, her bir TRACK'ın içindeki SECTOR'lere birer sıra numarası vererek disketin üzerindeki BELİRLİ bir bloku adreslememiz mümkün olacak. Bu sırada kavram kargaşasına düşmemek için, BLOK ve SECTOR ayırımı yapıyoruz. 1541, disketleri toplam 35 TRACK olarak kullanır. Bunlar, 01, 02,... 35 olarak numaralandırılmıştır. En dışta bulunan en büyük çaplı TRACK'e 1 numarası verilmişken, en içteki en kısa TRACK 35 numarasını almıştır. Şimdi de bu TRACK'ları SECTOR'lere ayıralım. 1-17 arası numaralandırılmış TRACK'lar en uzunları oldukları için, en fazla sayıdaki SECTOR bu TRACK'larda yer alır. Tam 21 SECTOR. Bu SECTOR'ler de 0-20 arası sayılarla numaralandırılmıştır. Sonra 18-24 numaralı TRACK'lar gelir. Bunların da her birinde 19 SECTOR vardır ve 0-18 arası numaralandırılmışlardır. 25-30 numaralı TRACK'lar ise 0-17 arası numaralandırılan 18'er SECTOR'e sahiptir. En içteki en kısa TRACK'lar olan 31-35 arası TRACK'lar ise en az sayıda SECTOR'e sahiptir. 0-16 arası numaralandırılan 17'şer SECTOR. Eğer bunları çarpma/toplama ile hesaplarsak, 683 adet BLOK olduğunu görürüz. Ancak bunların 19 tanesi directory ile ilgili bilgilerin saklanması nedeni ile kullanıcıya kapalıdır. Dolayısıyla bize 664 blok kalmakta. Her bir bloktaki 256 byte'ın ikisi sistem tarafından kullanıldığı için bize 254 byte kalır. Hesaplarsak, 254*664 = 168656 byte'lık, bir başka deyişle, 168656 / 1024 = 164.70 kilo byte'lık bilgi saklayacağımız bir alanımız var demektir. Daha önce bahsettiğimiz blokların son kısımlarının boş kalması sonucunda kaybedeceğimiz alanı da hesaba katarsak, aktif olarak kullandığımız yaklaşık 155-160 Kbyte'lık bir hafıza ortaya çıkıyor. Bu, bilgisayarımızın hafızasını 2.5 kere doldurmaya yeter. Görüldüğü gibi, disket üzerindeki bir BLOK'u hangi TRACK üzerinde olduğu ve bu TRACK üzerindeki kaç numaralı SECTOR olduğunu belirterek adresleyebiliriz. Bu bize biraz aşağıda da göreceğimiz bazı kolaylıklar sağlayacak. Tüm bu bilgileri bir tablo halinde görelim: