Bu sayfadaki yazılar
Sayfanın metni
Sayfa 50
CLI kursumuza tüm hızımızla devam ediyoruz. Ancak her zaman olduğu gibi komutlara geçmeden önce değişik bir konuyu ele alacağım. Bu bahsedeceğim konulardan ilki, Amiga'nın bellek haritası.
Amiga'nın içindeki Motorola 68000 mikroişlemcisi bilgisayarın beyni durumundadır ve bilgisayarın yaptığı işlemlerin hemen hemen tümünü kontrol eder. Bilgisayarın RAM ya da rastgele erişimli belleğini içeren RAM çiplerinin içeriği MC68000 tarafından gösterilir ve değiştirilir. Bunun yanında Kickstart adıyla bilinen ROM ve Fat Agnus, Denise gibi custom çiplerini kontrol eden siciller, MC68000 içinde yer alır. İnsan beyninde, görme, koku alma gibi duyumlar ve hafıza gibi bilgilerin, beynin farklı yerlerinde saklanıp kontrol edilmesine benzer biçimde 68000 işlemci yukarıda bahsedilen bilgileri 16MB (16,777,216 bayt) genişliğinde bir alanda, ayrı bölgeler halinde saklar. Bellek haritası olarak bilinen ve 16'lık sayı tabanında gösterilen bu yerleşim, aşağıdaki gibidir.
Amiga'nın bellek haritasıyla insan beyni arasında bir benzerlik daha var. Bu da aynı beynimizin tamamını kullandığımız gibi Amiga'nın tüm adreslerinin kullanılmaması. Yukarıda 'ayrılmış' olarak belirttiğimiz yerler Commodore'un gelecekte Amiga'ya yapacağı ilaveler için boş bırakılmış.
Amiga'da iki tip RAM mevcut. Birinci tip olan ve $000000-$0FFFFF adresleri arasında yer alan çip RAM, bu adı Amiga'nın custom çiplerinin kullanabildiği bellek olmasından dolayı alıyor. Grafik ve örneklenmiş seslerle ilgili bilgiler burada saklanmakta. Ayrıca, Amiga'ya bağlı bir ek sürücü de 22K çip RAM kullanır. Çip RAM'in yeni Amiga'larda bile en fazla 1MB genişliğinde olması ve yukarıda bahsettiğimiz önemli amaçlar için kullanılıyor olması, onu önemli hale getiriyor.
İkinci tip RAM olan ve $200000-
$9FFFFF adresleri arasındaki 8MB'lık bölgede yer alan fast RAM ise, sadece MC68000 tarafından kullanılır. Böylece, çip RAM'da olduğu gibi MC68000, RAM'ı kullanmak için custom çiplerinin işinin bitmesini beklemek zorunda kalmaz ve bu yüzden bu RAM'a fast yani hızlı adı verilir. Bu arada $100000-$1FFFFF arasında kalan 1MB'lık bölgenin önceki 1MB'lık bölgeye eklenerek 2MB çip RAM'a erişebilen ECS (geliştirilmiş custom çip seti) çipleri tarafından kullanılması bekleniyor. Bu durumda Amiga daha yüksek çözünürlükleri ve Workbench 2.0'ı gerektiği gibi gösterip çalıştırabilecek. Emektar Amiga 1000'de çip RAM'ın sadece 256K (ek RAM kartıyla 512K), ilk çıkan 500 ve 2000'lerde de 512K ile sınırlı olduğunu belirtelim. $C00000-$DFFFFF bölgesinin 1.5 MB'lık kısmı Amiga'nın arkasına takılan ek RAM kartları için ayrılmış. Kalan 512 K'lık bölgede ise pilli saatin belleği ve custom çiplerinin sicilleri (register) bulunuyor. Amiga'da bilgisayar kapatıldığı zaman silinmeyen tek virüs olan saat virüsü, belleğin saat hafıza için ayrılmış olan bölümünde barınıyor.
Amiga'nın bellek konfigürasyonu şimdilik böyle. Gelecekte yeni nesil mikroişlemcilerin kullanılmasıyla, bu konfigürasyonun çok daha kapsamlı hale geleceğini söyleyerek şimdi başka bir konuya geçelim. Amiga'nın multitasking bir bilgisayar olduğunu muhtemelen duymuşsunuzdur. Bir insanın yolda yürürken çiklet çiğneyebilmesi veya araba kullanırken sigara yakabilmesi gibi, Amiga da belli işlemleri aynı anda yapabilir. CLI'yi kullanırken Amiga'nın multitasking özelliklerinden nasıl yararlanabileceğinizden bahsedelim. Her ne kadar, Amiga multitasking bir bilgisayar olsa da, iyi yazılmamış ve test edilmemiş programlar multitasking ortamda çalıştırılmaya kalkıldığında Amiga'yı crash ettirirler yani kilitlenmesine sebep olurlar. Eğer 'Software Error' ve 'Guru Meditation' mesajlarından sık sık başınız ağrıyor ve değerli bilgilerinizi hiç ummadığınız bir anda kaybediyorsanız, buna karşı alabileceğiniz önlemler var. CLI'de çalışırken kullandığınız bir komut, hata mesajlarından birini veriyor olabilir. Buna karşılık NEWCLI komutuyla açacağınız yeni bir CLI penceresi sigortanız olacaktır. CANCEL'ı seçip bilgisayarı resetlemeden önce, diğer CLI penceresine klikleyip o pencereye geçerek normal şartlara dönebilirsiniz. Tabii, herhalde ilk yapacağınız işlem bellekteki değerli bilgileri ve dosyaları diskete kaydetmek olacaktır. Bunun için sürücüye boş ve formatlı bir disket koyup COPY RAM: DF0: ALL komutunu verebilirsiniz.
Amiga'nın multitasking yeteneklerini tam anlamıyla kullanıp aynı anda birden fazla program çalıştırıyorsanız, şu noktalara dikkat edin.
- Programlar çalışırken bir Workbench penceresini ve bunun üzerinde CLI veya SHELL'i hazır bulundurun. Bazı programlar bellek kazanmak amacıyla Workbench ekranını kapatabilirler. Bu durumda programın içinden Workbench'i açmak için gerekli seçeneği işaretleyin.
- Şüpheli programları mümkün olduğu kadar RUN komutuyla yükleyip çalıştırın.
Sonuçta herhangi bir program hata mesajı verecek olursa CLI'nin bulunduğu pencereye geçerek başka bir task ile çalışmaya devam edebilirsiniz.
Amiga'nın multitasking kullanımına bir örnek olarak, kendime ait bir yöntemi gösterebilirim. Her ay okumakta olduğunuz bu sütunları gözde kelime işlem programımla Amiga'da yazarken, istediğim zaman arkada duran Workbench penceresinden CLI'yi başlatıp aşağıda kullanımlarını açıkladığım komutların örneklerini çalıştırıp test ediyorum. Bu arada ek sürücüde bir disket formatlayıp daha önceden yazdığım başka bir yazıyı bu diskete kaydetmek istersem, şu komutları yazıyorum:
1 > format df1: (return) copy df0:dosya to df1: (return)
Komutları yazdıktan sonra istediğim zaman Amiga-N tuşlarıyla kelime işlem programına geri dönüp yazımı yazmaya devam edebiliyorum. Böyle mükemmel bir çalışma ortamı sağladığı için Amiga'ya bayılıyorum.
$000000-$0FFFFF 1MB ÇİP RAM $100000-$1FFFFF 1 MB AYRILMIŞ $200000-$9FFFFF 8MB FAST RAM $A00000-$BEFFFF 960K AYRILMIŞ $BF0000-$BFFFFF 64K CIA CİPLERİNİN SİCİLLERİ $C00000-$DFFFFF 2MB EK (EXPANSION) RAM, PİLLİ SAAT BELLEĞİ VE CUSTOM CİPLERİNİN SİCİLLERİ $E00000-$E7FFFF 512K AYRILMIŞ $E80000-$EFFFFF 1MB OTOKONFİGÜRASYON ALANI $F00000-$FBFFFF 768K AYRILMIŞ $FC0000-$FFFFFF 256K SİSTEM (KICKSTART) ROM
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 51
KOMUTLAR FILENOTE
Format: Filenote [file] Dosya-adı COMMENT] Not
Filenote komutuyla dosyalara 80 karakter uzunluğunda özel notlar veya görüşler yazabilirsiniz. Bu notlar daha sonra list komutuyla okunabilir. Eğer filenote'u olan bir dosyayı COPY komutuyla kopyalarsanız, dosya kopyalanırken filenote kopyalanmaz.
Örnek:
1> filenote c/list "bu komut filenote'ları gösterir."
GETENV
Format: Getenv ad Getenv komutu, ortam değişkeninin değerini bulmak için kullanılır. Ortam değişkenleri ENV: handler'ı içinde saklanacaktır, ancak şimdilik bu handler mevcut olmadığından RAM diskte boş bir directory ENV: handler olarak gösterilmekte. Bu handler olmadan komut da çalışmıyor.
ICONX
Format: Iconx Iconx komutu, script dosyalarını Workbench'ten çalıştırmanızı sağlar. Burada yapılan işlemler şöyledir: Önce script dosyasını yazıp diskete kaydedin. Herhangi bir ikon editör programı ile (Extras 1.3'te bir tane mevcut) bir tool ikonu hazırlayıp bu ikona script dosyasının adını verin. Daha sonra yeni hazırladığınız ikona bir kere klik edin. Workbench'in Project menüsünden Info'yu seçin ve burada DEFAULT TOOL'u C:ICONX yapın. Bu ayarlamayı SAVE seçeneğiyle diskete kaydettikten sonra, ikonun üzerine çift klik yaparak script dosyasını çalıştırabilirsiniz.
Iconx ile çalıştırılan bir ikonu kliklediğinizde iconx komutu sizi ikonun içinde bulunduğu directory'ye geçirir. Bu işlem için de CD komutuna gerek duyar. Bu nedenle C directory'sinde C komutunun yanısıra CD komutunun bulunmasına dikkat edin.
Info içindeki tool types satırına script dosyası çalıştırıldığında açılan pencerenin adını ve boyutlarını belirtebilirsiniz. Bunun için yazılacak komut:
CON: 1/10/640/100/script
şeklindedir. Komutta ilk iki rakam pencerenin X, takip eden iki rakam ise Y değerlerini tespit eder. script kısmına pencerenin ismini verebilirsiniz.
Format: If [NOT] [WARN] [ERROR] [FAIL] yazı dizisi EQ/GT/GE yazı dizisi [VAL] [EXITS dosya]
If komutu, script dosyaları içinde koşullu durumları yakalamak için kullanılır.
If komutu işleme konduğunda ENDIF veya ELSE komutuna kadar olan tüm komutları etkiler. NOT seçeneği koşulun uymadığı durumları, WARN seçeneği koşulun kullanıldığının belirtildiği durumları, ERROR hatanın bulunduğu durumları ve FAIL, herhangi bir işlemin yapılamadığı durumları belirtir. Workbench 1.3 versiyonunda eklenen EQ (eşit), GT (büyüktür) ve GE (büyüktür veya eşittir) seçenekleriyle yazı karakter karşılaştırmaları yapabilirsiniz. Sayısal karşılaştırmalar için VAL seçeneği kullanılır. Aşağıdaki programda örnek bir IF kullanımı gösterilmiştir:
INFO
Format: Info araç-adı Info komutu ile bilgisayarınızda mevcut veya bilgisayara bağlı çevresel araçlar hakkında bilgi alabilirsiniz. Info komutunu argümansız olarak verirseniz Amiga'ya bağlı tüm araçlar hakkında bilgi verilir. Bu bilgiler araçların kapasitesi, doluluk oranı, hatalar vb. olarak belirtilir.
Örnek:
l>infodh0: İNSTALL
Format: install sürücü [NOBOOT] [CHECK]
Disketi boot edilebilir hale getirmek için kullanılan install komutu, Workbench 1.3'te noboot ve check gibi iki yeni argümana sahip. Noboot argümanı disketin bilgisayar tarafından DOS disk olarak görülmesini sağlar fakat disket boot edilemez. CHECK argümanı ise disketin bootblock'unu (0'ıncı track) kontrol etmek için kullanılır. Eğer diskette standart bootblock mevcutsa, durum flag'ı 0'a eşitlenir. Eğer bootblock'ta başka bir şey varsa durum flag'ı 5'e eşitlenir. Aşağıdaki kısa programı virüs kontrolü için kullanabilirsiniz. Programı yazıp RAM'a kopyaladıktan sonra şüpheli disketi takıp programı çalıştırın.
echo "BOOTBLOCK'U KONTROL EDELİM" install df0: check if vvarn echo "DİSKETTE ŞÜPHELİ BOOTB- LOCK BULUNDU" quit endif echo "DİSKET TEMİZ"
JOIN
Format: JOIN isim1 isim2 AS veya TO isim3
Bu komutla iki veya daha fazla dosyayı birleştirerek tek bir dosya haline getirebilirsiniz.
Örnek:
1> join yazılar yazıların-devamı as tüm-yazılar echo "DF1 BAĞLI MI ACABA?"
LİST assign >nil: dfl: exists if warn
Format: List [QUICK] [BLOCK] [NO-HEAD] [FILES] [DIRS] [LFORMATdizi]
echo "DF1 BAĞLI DEĞİLMİŞ " noline echo "BAĞLANTIYI KONTROL EDİN." endif echo "DF1 'DE MAKEDIR KOMUTU VAR MI ACABA?" if not exists df0:c/makedir
List komutu, Workbench 1.3 versiyonunda, yeni argüman seçenekleriyle en zengin hale gelen komutlardan bir tanesi. List komutu, disketteki dosyalar hakkında detaylı bilgi almak için kullanılıyor.
echo "MAKEDIR KOMUTUNU BULAMADIM" endif if exists dfö:c/makedir echo "MAKEDIR BULUNDU" endif
Quick argümanı dosya adlarından sonra konan boşluğu kaldırır. Block argümanı dosyaların uzunluklarını bayt yerine blok biriminde gösterir. Nohead argümanı, liste verilirken ilk çıkan bilgilerin gösterilmemesini sağlar. Files ile directory'ler gösterilmez sadece dosyalar listelenir. Dirs ile dosyalar gösterilmez sadece directory'ler listelenir. Lformat ile listelemeyi istediğiniz formatta listeleme alabilirsiniz. Bu formatı aşağıdaki örnekle açıklayabiliriz.
1> list >df0:SILME-PRG lformat = "delete %S"
Bu komutu çalıştırdığınızda içinde bulunduğunuz directory'deki dosyaların listesi, silme-prg adıyla diskete kaydedilir. Bu arada her dosyanın başına delete yazısı (komutu) eklenir. Böylece, silme-prg adlı dosyayı çalıştırdığınızda adları list komutuyla diskete kaydedilen bütün dosyalar silinir. %S seçeneği, dosya adlarını belirten bir değişkendir. Eğer %S%S yazarsanız, listeleme formatı directory:dosya olarak gösterilir.
Örnek:
1> list df0:silme-prg
Gelecek ay görüşmek üzere, hoşçakalın.