1541'i Anlamak (2)

Geçen ayki genel girişten sonra, bu ay 1541'i tanımaya başlıyoruz. En başta da söylediğimiz gibi: En basitten en zora doğru... Gene de konunun basitliği sizi kandırmasın. Çoktandır disket kullanan profesyoneller bile yazıyı şöyle bir okusunlar. Bilmedikleri birkaç ayrıntı gözlerine çarpabilir. VC 1541'i, bilgisayarımızda ürettiğimiz program ve verileri çeşitli dosya tiplerine göre saklamak için kullanıyoruz. Yani 1541'i kullanarak ne yaparsak, etkisini doğrudan bir disket üzerinde görebileceğiz. Peki 1541'in kullandığı disketlerin özellikleri neler? Her disketin track adı verilen iç içe çemberlerden, track'ların da çeşitli sayılarda sector'lerden oluştuğunu geçen sayımızda görmüştük. Her disket sürücüsü, kendine has bir format kullanır. Başka bir deyişle, her değişik marka disket sürücüsü, değişik sayıda track ve sector kullanır. Bunu, o disket sürücüsünün kullandığı DOS (Disk Operating System, Disk İşletim Sistemi) programı belirler. VC 1541, CBM DOS V2.6 1541 olarak adlandırılan Disk İşletim Sistemini kullanır. Bu DOS altında formatlanan disketin özelliklerini anlatalım dilerseniz. Ama daha önce formatlamak deyimi ile tam olarak ne kastettiğimizi görelim. Bir disket fabrikadan çıktığında, üzerinde bir sürü manyetik parçacık olan bir tür plaktan başka bir şey değildir. Disket sürücüsünün bu disketi kullanabilmesi için onu kendi anlayabileceği hale getirmesi gerekir. Bu işleme formatlama adı verilir. Bu işlem sırasında ilk yapılan şey, disketi gerekli sayıda track ve sector'e bölmek, bunların ayırt edilebilmesi için gerekli sinyalleri üretecek bazı bilgileri diskete yazmak ve ileride bilgisayar tarafından gönderilecek bilgilerin yerleşeceği alanları sıfırlamaktır. Daha sonra da disketin üzerinde, Directory (Fihrist) adı verilen özel bir bölüm hazırlanır. Bu bölüm, disketin adı, o ana kadar ne kadarının dolu olduğu, hangi kısımlarının dolu olduğu, disket üzerinde yer alan bilgilerin hangi Track/Sector adreslerinde bulunduğu gibi bilgileri saklar ve bir disketin can damarıdır. Diyelim ki, bilgisayar, disket sürücüsünden bir programı kendisine göndermesini istedi. DOS'un yapacağı şey, Directory içinde o programın adını aramak, bulursa disketin üzerinde nerelerde olduğunu öğrenmek ve bu bölgelerdeki bilgileri okuyarak bilgisayara göndermek olacaktır. Directory ile ilgili işlemleri ayrıntısı ile ileride göreceğiz.

1541'in kullandığı format şu şekildedir:

Track sayısı: 35 Track başına sector sayısı: Track'ın uzunluğuna göre 17-21 arası değişiyor. Sector başına byte sayısı: 256 Toplam blok sayısı: 683 Boş blok sayısı: 664 Directory için harcanan blok sayısı: 19 Maksimum dosya sayısı: 144

Yukarıda birdenbire karşınıza çıkan “blok” kelimesi sizi şaşırtmasın. Bildiğimiz sector'den başka bir şey değil. Ancak bir sector numarası verirken ait olduğu track numarasını da belirtmeliyiz. Blok deyimi ise, disket üzerindeki herhangi bir sector anlamına gelmektedir.

VC 1541'i COMMODORE 64'e nasıl bağlayacağınıza çok kısa değineceğiz. Daha ayrıntılı bilgiyi VC 1541 Elkitabı'nda bulabilirsiniz. 1541'i kutusundan çıkardıktan sonra içindeki kablolardan siyah olanının bir ucunu 1541'in arkasındaki iki girişten herhangi birine takın. Diğer ucunu da bilgisayarınızdaki kaset girişinin hemen yanındaki yuvarlak girişe. Fişin ve girişin uçlarının birbirine tam uymasına dikkat edin. Sakın fazla zorlamayın. Kabloyu ve daha önemlisi bilgisayarınızın veya 1541'in girişlerini bozabilirsiniz. Bir önemli nokta daha: Tüm bu kablo döşeme çalışmalarını yaparken, hem COMMODORE 64'ün hem de 1541'in kapalı olmasına dikkat edin. Tersi durumlarda, girişlerde birikebilecek statik elektrik yükünün bir anda bir aletten diğerine akması ve onu bozması söz konusu olabilir. Bağlantıyı sağladıktan sonra, 1541'in elektrik kablosunu da bağlayın. Eğer disket girişinde bir karton duruyorsa onu çıkarın ve iyi bir yerde saklayın. İleride 1541'i bir odadan bir başkasına taşımanız gerekirse, onu yerleştirmeyi unutmayın. Ve dikkat! Bu karton parçasının yerini başka bir karton veya bir disket tutamaz. Bu kartonun şekli özeldir ve taşıma işlemleri sırasında 1541'in tüm mekaniğinin ve özellikle hassas okuma/yazma kafasının sabitleştirilmesini sağlar. Bunun önemini anlarsınız sanırız. 1541'i ve COMMODORE 64'ü açarken önce 1541'i açmaya özen gösterin. Daha doğrusu başka çevre birimleriniz varsa, örneğin printer gibi, COMMODORE 64'ünüzü tüm çevre birimlerini açtıktan sonra açın. COMMODORE 64 onlara bir sinyal göndererek RESET yapmalarını sağlayacak, bu da ileride çıkabilecek birtakım sorunların önüne geçecektir. Son bir nokta daha. Tüm bilgisayar sisteminiz açılmış ve çalışır duruma gelmeden, 1541'in içine disket yerleştirmeyin. Çok çok nadiren de olsa, 1541'in açılması sırasında oluşabilen voltajlardaki bir faz farkı, okuma/yazma kafasına yanlış bir sinyal gitmesini ve bu nedenle de disketinizin üzerindeki tüm bilgilerin kullanılmaz hale gelmesine yol açabilir.

Artık başlayalım. İlk göreceğimiz işlemler, LOAD, SAVE, VERIFY gibi sıradan işlemler. Ancak bunları kullanabilmek için formatlı bir diskete ihtiyacımız var. Eğer yeni bir 1541 kullanıcısı iseniz, bir bilgisayar mağazasından alabileceğiniz bir disketi 1541'in içine yerleştirin. Eğer daha önceden de 1541'i kullanmışsanız, şimdi anlatacaklarımızı biliyor olmalısınız. Siz de temiz bir disket yerleştirin. Önce bu disketi formatlayacağız. Diskete komut gönderme daha sonraki bölümlerimizin işi olduğu için size sadece komutu veriyoruz. YENİ(!) ve BOŞ(!) disketi yerine yerleştirip, 1541'in mandalını kapatın ve aşağıdaki satırı yazıp RETURN tuşuna basın:

OPEN 1,8,15,“N:DENEME,01”':
CLOSE 1

Artık 80-90 saniye arkanıza yaslanıp bekleyin. Bu arada duyacağınız tıkırtıları da hiç önemsemeyin. Çok normal. Bilgisayarınız READY verdiğinde ve 1541'in kırmızı ışığı söndüğünde formatlama işlemi tamamlanmış demektir. Bu kırmızı ışığa dikkat! Yandığı sürece, 1541 meşgul demektir. Beklemekten başka bir çareniz yok. Eğer formatlama bittiği halde kırmızı ışık yanıp sönüyorsa, bir hata var demektir. Disketi çıkarın, tüm çevre birimlerini kapatın ve demin verdiğimiz sıraya göre yeniden açıp çalıştırın. Disketi yeniden takıp, yukarıdaki komutu yeniden verin. 80 saniye sonunda, hattâ daha önce kırmızı ışık göz kırpmaya başlarsa durum kötü demektir. Tüm işlemleri bir de başka bir yeni disketle deneyin. Gene aynı sonuç olursa, ya kullandığınız disketler çok kötü demektir, ya da 1541'inizde bir arıza vardır. Her iki durumda da bayinize gidip bir hatırını sorun... Neyse, temiz bir disketimiz var diyelim. İlk yapacağımız iş, directory'i yükleyip temiz bir disketin görünüşünün nasıl olduğuna bakmak. Disketten herhangi bir şey yüklemek için kullanacağımız komut, LOAD olacaktır. Directory'i yüklemek için:

1541'İN TRACK DÜZENİ

Track 34 Track 35

LOAD “$”',8

yazıp RETURN tuşuna basın. Gene kırmızı ışık yanacak, kısa süre sonra da sönecektir. LIST komutunu verince iki satır göreceksiniz. İlk satırda DENEME, 01 ve 2A yazıları görünecek. DENEME ve 01 yazıları, bizim yukarıda verdiğimiz komutta yer alıyor. 2A ise, DOS'un imzası. Şaka değil bu! Gerçekten de 1541 ile formatladığınız her diskette 2A olarak yer alacak yazı, gerçekten 1541'in format kodudur. Alt satırda ise 664 BLOCK FREE yazısını göreceksiniz. Burada 664 blokluk boş yere sahip olduğunuzu görüyorsunuz. Daha diskete bir şey yazmadık. Bu nedenle tüm bloklar (directory'nin işgal ettikleri hariç) emrinize amade...

Yavaş yavaş kullanmayı öğrenmeye başladık. Disketimizi formatladık ve boş bloklarımızı elde ettik. Artık bu boş blokları doldurabiliriz.

Şimdi minik bir BASIC program yazalım:

10 FOR 1-1 TO 10
20 PRINT I
30 NEXT I

Bu programımızı diskete göndermek için kullanacağımız komut, SAVE olacaktır:

SAVE “DENEME ”,8

komutunu vererek disketimizi işletelim. Hazır disket işlerken, aradaki zamandan yararlanıp program adından sonra verdiğimiz 8 rakamının ne demek olduğunu anlatalım. COMMODORE standartına göre her çevre biriminin bir alet numarası vardır. Kaset için 1, ekran için 3, printer için 4 ve disket sürücüsü için 8. Printer ve

48 disket sürücüsünün kodları hardware olarak 4 yerine 6, 8 yerine de 9 yapılabiliyorsa da, temel kullanım 4 ve 8 olarak saptanmıştır. Biz de, LOAD ve SAVE işlemleri sırasında 8 kullanarak hitap ettiğimiz çevre birimini disket ünitesi olarak belirliyoruz. Bu arada kırmızı ışığın sönmüş olması gerekir. LOAD ile directory'nin yeni haline bir bakalım. LIST sonucunda göreceğiniz gibi yeni bir satır araya girdi. Bu satırın en başındaki 1 sayısı, adı görünen dosyanın (bizim durumumuzda “DENEME”) kaç blok kapladığını gösteriyor. Daha sağ tarafta yer alan PRG harfleri ise, dosyanın bir program olduğunu belirtiyor. PRG dışında SEQ, REL, USR ve türü dosyalar da vardır ve biz bunları daha sonra göreceğiz. En son satırda, daha önce 664 olan boş blok sayısının 663'e düştüğünü görüyoruz. Bunu programımızın kapladığı 1 bloka borçluyuz. Şimdi LOAD “DENEME” ile demin diskete kaydettiğimiz programı geri yükleyelim. Çünkü directory'i yüklerken programımızı silmiş olduk. Bu arada artık anlamış olacağınız gibi $ işareti aslında directory'nin adı yerine geçmekte. Yükleme işlemi bitince, LIST verip programımızın sağlam olup olmadığını kontrol edebilirsiniz. Hazır söz kontroldan açılmışken, disket üzerindeki program ile hafızadaki programın doğrudan karşılaştırmasını yapabilirsiniz. Şu anda bilgisayarda, disketten yüklediğimiz program olduğuna göre, böyle bir karşılaştırma yapınca olumlu sonuç almalıyız. Bakalım...

Kontrol için kullanılan komut VERIFY “DENEME”,8 olacaktır. Tıpkı deminki SAVE ve LOAD işlemlerinde olduğu gibi bilgisayar yaptığı işlemi ekranda size gösterecektir. Daha önce Loading veya Saving yazarken şimdi de Verifying diyecektir. Karşılaştırma bittiğinde size vereceği cevap ya OK olacaktır ya da VERIFY ERROR. Şimdi alacağımız cevabın OK olacağı belli. İsterseniz 30 numaralı satırı değiştirip sadece NEXT yazalım. Bu değişiklikten sonra yapacağımız VERIFY işlemi hata gösterecektir.

Deneme olsun diye LOAD veya VERIFY işleminde DENEME yerine başka bir şey, yani disketin üstünde olmayan bir dosya adı yazın. Kırmızı ışık yanıp sönmeye başlayacak ve bilgisayar FILE NOT FOUND mesajını vererek, yazdığınız dosyanın bulunmadığını bildirecektir. LOAD, VERIFY ve SAVE komutları, 1541 ile haberleşmeyi sağlayan başlıca komutlar. Şimdi bunları daha yakından inceleyelim. Özellikle dosya ismi yerine koyduğumuz bazı özel durumlara bakalım.

Önce disketimizin üzerinde birkaç değişik dosya yaratalım. Bunun için DENEME dosyasını LOAD ile yükleyip aynı programı değişik isimlerle diskete birkaç kere gönderelim. Bu arada dikkat etmeniz gereken bir nokta var. Dosya isimleri en fazla 16 karakter olabilir. Eğer daha uzun isimler verirseniz sadece ilk 16 karakter dikkate alınacaktır. Deneme disketimizi hazırlarken aşağıdaki isimleri kullanırsanız ilerideki örneklerimiz için yararlı olur:

Afitap, Af, D, DD, Deneme1, Den, F, FF, ZZZ, ZZ, Gzxodyl

Şimdi LOAD “$”,8 ile directory'e bir bakalım. Dosyaların bizim SAVE ettiğimiz sırada yerleştiğini göreceksiniz. Acaba directory'i değişik şekillerde görme imkanımız var mı? Tabii ki. LOAD “$”,8 ile disketin üzerindeki programların isimlerini görmeden doğrudan doğruya iki satır halinde, disketin adını, ID'sini (örneğin 01, ne olduğunu sonra göreceğiz) ve kaç blok boş kaldığını görebiliriz. Bu işlem LOAD “$”,8 komutundan daha çabuk olacaktır ve özellikle çok sayıda dosya içeren disketlerdeki boş blok miktarını kısa zamanda öğrenmek için idealdir. Birkaç değişik directory alma türü daha vardır. Ancak bunlara geçmeden önce bazı bilgilere ihtiyacımız var.