AÇILIŞTAKİ GİZEM
Retro bilgisayar
Merhaba... Bu ay, sizlere Amiga'nızda daha kolay çalışmanızı sağlayacak bazı ipuçları vermeye çalışacağız. Kendi Startup'larınızı yazmaya başladığınızda, bazı şeyleri yapmanın ne kadar kolay ve hızlı olabildiğine siz de şaşıracaksınız.
Amiga'nızı açıp bir disket taktığınızda, bilgisayarınızın ilk aradığı ve bulduğunda otomatik olarak çalıştırdığı belirli bazı dosyalar vardır. Bunlardan en önemlisi disketin "s:" directory'sinde bulunan Startup-Sequence isimli dosyadır. Diğerleri ise yine aynı directory'de yer alan StartupII, CLI-Startup, Shell-Startup ve "Devs:" directory'si içindeki Mount-List dosyasıdır. Yazımızda bu dosyaları tek tek açıklayıp hangisinde nasıl ve ne tür değişiklikler yapabileceğinizi anlatacağız.
Startup-Sequence İlk önce Startup-Sequence dosyasına bir göz atalım. Workbench disketinizle bilgisayarınızı açıp, bir CLI veya Shell penceresinden "Type S:Startup-Sequence" komutunu verirseniz, Tablo-1'dekine benzer bir liste ile karşılaşırsınız.
Dikkat ederseniz, bu dosya her satırında birer CLI komutu bulunan basit bir yazı dosyasından ibarettir. İşte Amiga açılıp bir disket takıldığında ("BOOT" edildiğinde),
bu satırları baştan sona sanki CLI'den verilen birer komut gibi işletir. Dosya bittiğinde de, siz her şeyi ile hazır sizi bekleyen bir Workbench ekranıyla karşılaşırsınız.
Startup-Sequence, her boot'da sizi uzun uzun bekletmeyecek kadar kısa, fakat CLI, Shell, Workbench ve sizin için gerekli bazı hazırlıkları yapmaya yetecek kadar da uzun olmalıdır. Örneğin 10, 11, 12. satırlarda (CLI'ye göre birçok avantajları olan) Shell'in kullanılabilmesi sağlanmış; 19. satırda, verdiğiniz bir komutun sırasıyla hangi directory'lerde aranacağı belirlenmiş; 20. satırda ise Workbench yüklenerek ikonlar ve mouse aktif kullanıma sunulmuştur.
Peki, eğer saatli bir RAM kartınız yoksa, 7. satırdaki saati yükleme komutu ne işe yarayacak? Ya da hiç ek hafıza (fast RAM) kullanmıyorsanız, bilgisayarınızın fast RAM'i öncelikli olarak kullanmasını sağlayan 5. satır, neden yükleme süresini uzatsın? Eğer bunlara ihtiyaç duymuyorsanız, bu satırları gönül rahatlığıyla silebilirsiniz.
Bir de, 1-2 MB hafızanız olduğunu düşünelim. Henüz HardDisk de alamadınız ve hızından dolayı RAD'da çalışmayı seviyorsunuz. Her gün Amiga'nızı açıyorsunuz ve Workbench'i yükleyip;
Mount RAD:
Copy MyDir to RAD: all quiet
MakeDir RAD:c
Copy c: RAD:c all quiet
Assign c: RAD:c
……………………
1 c:SetPatch >NIL: ;patch system functions
2 Addbuffers dfO: 10
3 cdc:
4 echo "A500/A2OO0 Workbench disk. Release 1.3.2 version 34.28*N"
5 Sys:System/FastMemFirst; move C00000 memory to last in list
6 BindDrivers
7 SetClock load;load system time from real time clock(A1000 owners should
8 ;replace the SetClock load with Date
9 FF >NIL: -0 ;speed up Text
10 resident CLI L:Shell-Seg SYSTEM pure add; activate Shell
11 resident c:Execute pure
12 mount newcon:
13 ;
14 failat 11
15 run execute s:StartupII ;This lets resident be used for rest of script
16 wait >NIL: 5 mins;wait for StartupII to complete(will signal when done)
17 ;
18 SYS:System/SetMap usal ;Activate the ()/* on keypad
19 path ram: c: sysrutilities sys:system s: sys:prefs add;set path for WB,
20 LoadWB delay ;wait for inhibit to end before continuing
21 endcli>NIL:
türünden komutlar yazmak zorunda kalıyorsunuz. Neden bu işleri Amiga kendisi yapmasın? Öyleyse bu komutları Startup-Sequence içinde uygun bir yere, örneğin 12. satırın hemen arkasına ekleyebilirsiniz.
1 resident c:Resident pure
2 resident c:List pure :pre-load LIST and CD
3 resident c:CD pure
4 resident c:Mount pure :the next 3 are loaded tor speed during startup
5 resident c:Assign pure
Amiga'sını Türkçe kullanmak isteyen
arkadaşlar, gerekli dosyalar diskette mev-
cut olmak şartıyla 9. satırı:
6 resident c:Makedir pure 7 :make IF. ENDIF. ELSE. SKIP. ENDSKIP. and ECHO resident if 8 :you use scripts much: and can afford the ram. FF>NIL: topaz.font ve 18. satırı, "SYS:System/SetMap Tk0 (veya Tk1, Tk2, /'klavye vb.)" olarak değiştirmelidirler.
9 :also make Failat. WAIT, and ENDCLI resident if you use IconX a lot
l() makedir ram:t
1 assign T: ram:t :set up T: directory for scripts 12 makedir ram:env : set up ENV: directory Şimdi 14, 15 ve 16. satırlara bakalım. Bu satırlarda sizlere anlatacağımız ikinci komut dosyası olan StartupII dosyasının çalıştırılması için gerekli komutlar vardır:
13 assign ENV: ram:env
14 makedir ramxlipboards :set up CLIPS: assign
15 assign CLIPS: ramxlipboards
16 mount speak: :just mounting doesn't take much ram at all
14 failat 11 : bir hata olursa çalıştırmayı
iptal et.
17 mount aux:
18 mount pipe:
15 run execute s:StartupII :s:Start-
upll'yi background: olarak (fonda) çalış-
tır.
19 resident Mount remove ;if you have enough ram. keep these resident
20 resident Assign remove ;by removing these lines
21 resident Makedir remove
16 wait >NIL: 5 mins :StartupII bitin-
ceye kadar bekle.
22 : 23 break I C :signal to other process its ok to finish StartupII StartupII dosyası, kendinize uygun değişiklikleri yapmak için en çok kullanacağınız dosyalardan biridir. Bu dosyayı inceleyecek olursanız, temel olarak 5 bölümden oluştuğunu göreceksiniz.
İlk bölümde, en sık kullanılan Amiga-DOS komutları hafızaya yüklenmektedir. Böylece bu komutların her verilişinde bilgisayar disketten okuma yapmayacağı için, işlem kat kat hızlanacaktır. Resident komutunu kullanarak siz de sık kullandığınız komutları bu listeye ekleyebilir ya da pek sık kullanmadıklarınızı dosyadan silebilirsiniz. Bu konuda dikkat edeceğiniz iki şey var. Birincisi, resident komutu ile hafızaya alınan komutlar, hafızada dosya uzunluklarından biraz daha fazla yer tutarlar. Bu yüzden resident ile hafızaya alacağınız komutları seçerken, hafıza tasarrufu ve kullanım hızı arasında tercih yapmak zorundasınız. Önemli bir diğer şey de, pure olmayan komutları resident yapamazsınız. Bunu anlamak için list komutu kullanılabilir. List komutunu verdikten sonra merak ettiğiniz komut dosyasının karşısındaki protect bitlerine bakın. Eğer onların arasında "p" harfine rastlarsanız, bu komut pure olup rahatlıkla resident yapılabilir. C: directory'sindeki komutların hemen hemen hepsi bu özelliğe sahiptir. Örnekler:
Dir 8772 -p-rwed 19-Apr-90 .......>
Resident yapılabilir
IconX 3884 --rwed 19-Apr-90 ---> Resident yapılamaz.
StartupII dosyasının ikinci bölümünde, bir RAM DİSK ve bunun içinde T, ENV ve Clipboards diye üç directory açılarak, T:, ENV:, CLIPS: mantıksal cihazları bu directory'lerle eşleştirilmiş. Bu mantıksal cihazlar, editörler ve diğer bazı programların geçici veri saklama alanlarıdır. Bu iş için RAM DİSK'in seçilme sebebi, yüksek çalışma hızı ve bilgisayar resetlenince buradaki bilgilerin kaybolmasında bir sakınca olmamasıdır.
Üçüncü ve dördüncü bölümlerde bazı mantıksal cihazlar tanımlanmakta, sonra da sadece StartupII'nin hızlı çalışması için resident yapılan komutlar hafızadan geri silinmektedir. Son bölümdeki tek satır, Startup-Sequence'e StartupII'nin bittiğini haber vermek içindir.
StartupII dosyasına eklenebilecek başka neler olduğuna bir bakalım isterseniz. Utilities directory'nizde bulunan More programından bir editör çağrılabildiğini biliyor ve kullanıyorsanız, "assign ENV: ram:env" satırından sonra örneğin "Setenv EDITOR c:Ed" gibi bir satır eklemek işinize yarayabilir. Böylece EDITOR adlı değişkene AmigaDOS'un Ed yazı editörü daha açılışta yerleştirilmiş olur. Dergimizdeki C dili ile ilgili yazı dizisini takip eden arkadaşlar, yine aynı satırdan sonra
Ask "Bugün C çalışacak mısınız ?
(y=evet/n=hayır) "
If WARN
path SYSl:bin
: siz bunları ken-
di sisteminize
set CCTEMP=ram: : göre uyarlayıp
path' larını
set CLIB=SYS1:lib : değiştirebilirsiniz.
set INCLUDE=SYS1:include ; EndIf satırlarını ekleyerek işlerini kolaylaştırabilirler. Burada bilgisayarınız ilk önce size tercihinizi soracak, "y" tuşuna basarsanız, Aztec C için gerekli komutları işletecek, aksi takdirde bu komutları atlatarak EndIf'ten sonraki satıra atlayacaktır.
Bazen kendiniz de bazı mantıksal cihazlar tanımlamaya ihtiyaç duyabilirsiniz. Örneğin herhangi bir directory'de iken sık sık ulaşmanız gereken:
Dh0:SpreadSheets/Personnel/Dephtl adlı bir directory'niz varsa, StartupII'ye "Assign SPD1: dh0:SpreadSheets/Personnel/Dephtl" gibi bir satır ekleyebilirsiniz. Artık "Dir SPD1:" diyerek bu directory'nin listesini isteme imkanına sahipsiniz.
CLI-Startup ve Shell-Startup CLI-Startup ve Shell-Startup dosyaları, yeni bir CLI veya Shell penceresi açılırken, CLI programı tarafından çağrılıp işletilen birer komut dosyasıdır. Örneğin Shell ikonunu klikleyerek veya NewShell komutu ile bir Shell penceresi açmak isterseniz, program s: directory'si içinde Shell-Startup dosyasını arayıp bulur, içindeki komutları tek tek işletir ve bu dosya bittikten sonra kontrolü size bırakır. Dosyaların içeriğini incelediğinizde, CLI-Startup'da pek bir şey bulamazsanız bile, Shell-Startup dosyasında ilginizi çekecek şeylerle karşılaşacaksınız.
Prompt "%N.%S>" satırı, açılan Shell'de çıkacak olan prompt'u tanımlar (bu örnekle task numarası, bir nokta, içinde bulunduğunuz directory adı ve ">" işareti). Hemen arkasından "alias" diye başlayan bir sürü satır, Shell'in CLI karşısındaki üstünlüklerinden biridir. Alias komutu, hatırlamakta veya uzunluğundan dolayı yazmakta zorluk çektiğiniz bazı komut veya program isimlerine, kolay hatırlanabilir ve yazılabilir takma isimler koyabilmenizi sağlar. Dosyada zaten mevcut olan alias'lara siz de kendinizce eklemeler yapabilirsiniz. Komutun kullanışı, "Alias <Takmaİsim> <Komutİsmi>" şeklindedir. Birkaç örnek vermek gerekirse:
Alias dm Dh0:Copies/DiskMaster1.3 Alias ns NewShell NEWCON:0/0/640/256/WideShell Alias ex Execute Alias red echo "*E[33m" vb. gibi... Çalıştıracağınız bazı programlar Amiga-DOS komutlarını orijinal isimleri ile arayacağından, bu yöntem komut isimlerini Rename ile değiştirmekten daha iyidir.
MountList : Bildiğiniz gibi, Amiga'nız fiziksel cihazlar (Physical Devices) dışında bazı mantıksal cihazlar (Logical Devices) da kullanmaktadır. Bunlar için yazılan handler ve device dosyaları L: ve Devs:

Bildiğiniz gibi, Amiga'nız fiziksel cihazlar (Physical Devices) dışında bazı mantıksal cihazlar (Logical Devices) da kullanmaktadır. Bunlar için yazılan handler ve device dosyaları L: ve Devs: directory'lerinde yer alırlar. Kullanılacak mantıksal cihazların (RAD:, SPEAK:, AUX: gibi) tanımlanması ise, Devs: directory'sinde bulunan MountList dosyasında yapılır. Burada, her mantıksal cihaz için bir entry (giriş) bulunur. MountList dosyası, bundan önce anlattıklarımız gibi bir DOS komut listesi değildir. Kendine has bir yazılış tarzı vardır. Yazım kurallarından kısaca söz edecek olursak:
* Her entry, tanımlanacak olan mantıksal cihazın adı ile başlar ve # işareti ile sonlanır.
* MountList'in kendine özgü diline ait kelimeler olan keyword'leri, bir "=" (eşit) işareti ve gerekli bilgiler izler.
* Her keyword'e ya tek satır ayrılır ya da aralarına ";" (noktalı virgül) işareti konur.
* C dilindeki gibi "/*" ve "*/" işaretleri arasına açıklayıcı notlar konulabilir.
Dosya içinde birçok örnek cihaz zaten tanımlanmış durumdadır. Size düşen, bunları kendi ihtiyaçlarınıza göre biraz değiştirmektir. Örneğin 2 MB veya daha fazla RAM'iniz varsa, pekala bir 3 inchlik disket ölçüsünde (880 kB) RAD: açabilirsiniz. Bunun için bir editörle MountList dosyasına girin ve RAD: girişini bulun, karşınıza şöyle bir şey çıkacak:
RAD: Device = ramdrive.device Unit = 0 Flags = 0 Surfaces = 2 BlocksPerTrack = 11 Reserved = 2 Interleave = 0 LowCyl = 0 ; HighCyl = 21 Buffers = 5 BufMemType = 1 # Şimdi, açılacak olan RAD:'ın ilk ve son silindir değerlerini belirleyen "LowCyl = 0 ; HighCyl = 21" satırındaki HighCyl değerini değiştirip 79 (880 kB'lık bir disketin HighCyl değeri budur) yapın; hepsi bu kadar! Bundan sonra bilgisayar açılıp "mount RAD:" denildiğinde, 880 kB'lık bir RAD: açılacak. Artık "Diskcopy df0: to RAD:" bile diyebilirsiniz. Neden Workbench disketinizi RAD:'a kopye edip (bilgisayarı kapatmadan) reset etmeyi denemiyorsunuz? Deneyin, açılış ve kullanımdaki hızı bir görün. Bu arada, eğer Amiga'nızı RAD:'dan boot etmek istiyorsanız, kickstart versiyonunun en az 1.3 olması ve df0:'da disket bulunmaması gerektiğini hatırlatalım.
Tabii ek hafıza kartı olmayan arkadaşlar da HighCyl değerini küçültüp, sadece ihtiyaçlarına cevap verecek ölçülerde bir RAD: açarak hafızadan tasarruf edebilirler. Çünkü RAD disk, RAM disk gibi içine kayıt yapıp silmekle büyüyüp küçülmez, RemRAD komutu verilip silininceye kadar hep aynı miktarda hafıza işgal eder.
Yazımı burada bitirip, sırayı sizin hayal gücünüze ve kabiliyetinize bırakıyorum. Ben sadece yapılabileceklerden birkaç örnek verip, bir başlangıç yapmanıza yardımcı olmak istedim. Tabii takıldığınız konular olursa her zamanki gibi dergimize mektup yazabilirsiniz.
Son olarak birkaç not: * Bu dosyalardaki değişiklikleri Amiga-DOS'un kendi editörü ile yapabileceğiniz gibi, önceki sayılarımızda açıklaması yapılmış olan Cygnus Editor veya rahat kullanabildiğiniz herhangi bir yazı editörü ile de yapabilirsiniz. * AmigaDOS komutları ile ilgili ayrıntılı açıklamaları Amiga Dost köşemizde bulabilirsiniz.
* Ve bir ALTIN KURAL: Sakın bu değişiklikleri orijinal disketiniz üzerinde yapmayın. Bu tür çalışmalar için daima disketinizin bir kopyasını çıkarmayı alışkanlık edinin.
Bir başka konuda birlikte olmak üzere, hoşçakalın...