AMIGA DOS
Retro bilgisayarCLI kursumuzda daha önce açıklamalarını yaptığımız önemli DOS komutlarından bazılarına bu ay daha yakından bakacak ve kullanımlarını daha detaylı olarak örneklerle göreceğiz.
PROTECT Eğer bilgisayarınızın diskete kayıt yapmasını istemiyorsanız, teyp ve video bantlarındakine benzer bir yöntemle disketin üzerinde yer alan plastik tırnağı kullanabilirsiniz. Bu sayede disketinizi en emin yoldan silinmekten kurtarmış olursunuz. Protect komutu da, diskette yer alan dosyaları tek tek silinmeye karşı korumak için kullanılır. Bu komutla protection bit'i denen ve dosyanın disket üzerinde hangi durumda kayıtlı olduğunu belirten bit'i ayarlayabilirsiniz. Burada yapabileceğiniz ayarlamalar, yalnızca silinmeye karşı korunmayla ilgili değildir. Eğer list komutuyla c directory'sinin listesini alacak olursanız, rwed olarak dört ayrı protection bit'inin durumunu görebilirsiniz. Bu bitler aşağıdaki şekilde görevlendirilmişlerdir:
r (read): Dosya okunabilir. w (write): Dosyaya kayıt yapılabilir. e (execute): Dosya çalıştırılabilir. d (delete): Dosya silinebilir.
Bu bit'ler negatif olarak ayarlanmışlarsa, yukarıdakilerin tersi durumunda oldukları anlaşılır. Şimdi de örnekler:
1> protect df0:c/run -d (dosya siline-
mez)
1>protect df0:c/type +rwe (dosya okunabilir, yazılabilir, çalıştırılabilir)
Ayrıca + ve - yerine FLAGS ve ADD ve SUB argümanları kullanılabilir:
1> protect df0:c/list SUB e (list komutu çalıştırılamaz)
1> protect df0:c/list ADD e (list komutunu eski durumuna getirir)
1> protect df0:c/type FLAGS -r-w-e-d (bütün bitleri negatif yapar)
1> protect df0:c/type FLAGS rwed
(type komutunu eski durumuna getirir)
Workbench 1.3'te rwed bitlerine ek olarak 4 yeni protection bit'i eklenmiş. Bunlar:
h (hidden): Dosyanın dir listesinde görülmesini sağlar.
s (script): Script dosyalarının başlarına execute yazmadan kendi isimleriyle çalıştırılmalarını sağlar.
p (pure): Komutun, resident listesine konabilecek türde olduğunu belirtir.
a (archive): Copy işlemini düzenler.
Örnekler:
1 > protect df0:.info +h (info dosyasını görünmez hale getirir)
1 >protect df0:s/startup-sequence +e ile startup dosyasını yalnızca adını yazarak çalıştırabilirsiniz. Bu özellik Ed gibi herhangi bir editör programı ile yazılan ve AmigaDOS komutlarından oluşan script dosyaları için geçerlidir.
1> protect df0:c/type -p yazarsanız, type komutunu bellekte hazır (resident) olarak kullanamazsınız. Bu özellik AmigaDOS'un multitasking olmayan birkaç komutunu belirtmek için kullanılmakta:
1> protect df0:data/listel +a
Copy komutu daima a bit'i negatif olan dosyaları kopyalar. Bu nedenle, yukarıdaki biçimde ayarlanan liste 1 dosyasını copy komutuyla kopyalayamazsınız. Bununla birlikte bu dosyaya bir kayıt yapılacak olursa, bu bit otomatik olarak negatif hale getirilir.
ASSIGN
Bu komut bütün AmigaDOS komutları içinde en pratik ve en sık olarak kullanılanlardan biridir. Yaptığı işlem, directory'leri ve araçları (device) başka directory ve araçlara devretmektir. Assign komutu argümansız
CAN ÖZTÜRK veya LIST argümanıyla yazıldığında bir assign listesi verir. Bu listeyi CLI/SHELL'e girip;
1>assign yazarak aşağıdaki şekilde alabilirsiniz.
Volumes:
RAM DISK [Mounted]
Workbench [Mounted]
Directories:
CLIPS
RAM DISK:clipboards
ENV
RAM DISK:env
T
RAM DISK:t
S
Workbench: s
L
Workbench:l
C
Workbench:c
FONTS
Workbench:fonts
DEVS
Workbench:devs
LIBS
Workbench:libs
SYS
Workbench:
Devices:
PIPE AUX SPEAK NEWCON DF0
PRT PAR SER RAW CON
RAM DH0

Bu listede üç ayrı başlık göze çarpmakta. Bunlar:
VOLUMES: Volumes AmigaDOS tarafından tanınan disket adlarını gösterir. Bu adlar disket sürücüdeki disketin (Workbench) veya RAM DİSK vb. olabilir. Disk ikonlarındaki adı değiştirdiğinizde, volume adı da değişir. Mount ifadesi disketlerin sistemde hazır olduklarını belirtir.
DIRECTORY: AmigaDOS tarafından tanınan directory'ler, adları ve hangi directory'lere bağlı olduklarını belirtir şekilde gösterilmişlerdir. Örneğin S directory'si Workbench disketindeki S directory'sine bağlıdır. Eğer istersek ASSIGN komutuyla S directory'sinin bağlı olduğu directory'yi değiştirebiliriz:
I > makedir RAM:s
l>assign s:RAM:s
Yukarıda, RAM Disk'te yeni bir s directory'si yarattık ve s'yi RAM:'daki bu yeni directory'ye devrettik. Bundan sonra s adıyla yapılacak herhangi bir referans RAM:'da bulunan s directory'sine gidecektir. Eğer istersek ASSIGN listesine yeni directory adları da ekleyebiliriz. Örneğin:
1> assign ramses: ram:s
Ramses adında yeni bir directory adı yarattık. Eğer Ramses diye bir directory çağırılacak olursa bakılacağı yer RAM'daki s directory'sidir.
DEVICES: Devices yani araçlar Amiga ile birlikte kullanılan dahili (DF0:, RAM:, RAD: gibi) ve harici (DF1:, DH0:, PRT:) araçların adlarını belirtir.
Bir araçtaki programı başka bir araca kopyaladığınızda (örneğin df0:'dan dh0:'a). Assign listesi değişmez. Örneğin program font yüklemek istediğinde bu font'ları DH0'dan değil, yine df0'dan arar. Eğer programın hard diskteki font'ları yüklemesini istiyorsanız, şu komutu verebilirsiniz:
1> assign fonts: dh0:fonts
Assign komutunun da Protect komutunda olduğu gibi 1.3 versiyonunda bazı yenilikler yer almakta. Bunlar EXISTS ve REMOVE argümanları. EXISTS ile herhangi bir disk, directory veya araç adının devredileceği directory veya dosyanın varolup olmadığını anlayabilirsiniz. Örneğin:
1> Assign >nil: Workbench 1.3 exists
komutu ile Workbench disketinin DF0:'da olup olmadığını kontrol etmek mümkündür. >NIL: komutu ile hata mesajı almayı engellemiş olursunuz. Ancak AmigaDOS'un Warn flag'ı 5 (error) olarak ayarlanır ve siz de bunu bir script dosyasında aşağıdaki gibi kullanabilirsiniz:
assign >nil:workbenchl.3:exists
if warn
echo "Lütfen Workbench disketini takın."
endif
echo "Workbench disketi sürücüde."
Remove seçeneği ile assign listesinde bulunan bir araç veya disk adı listeden çıkarılır. Örneğin:
I > assign RAD: remove
RAD disk'i kapatır. RAD'ı tekrar mount komutuyla sisteme dahil edebilirsiniz.
CHANGETASKPRI Amiga, multitasking bir bilgisayar olduğundan ve her programı run komutuyla ayrı bir task numarası ile çalıştırdığından bahsetmiştik. Changetaskpri komutuyla bu task'ların önceliklerini belirlemek elinizde. Örneğin aynı anda hem yazıcıdan uzunca bir yazı çıkarmak hem de kelime işlem programınızla yazı yazmaya devam etmek istiyorsunuz diyelim. Eğer basım işleminin çok hızlı olmasının bir önemi yoksa, bu işlemi daha düşük bir task numarası ile yavaşlatıp merkezi işlemcinin diğer task'ı daha hızlı çalıştırmasını sağlayabilirsiniz. Bunun için iki ayrı CLI/SHELL penceresi açın. Birinde:
1>changetaskpri -125 ötekinde ise; 1>changetaskpri +125 komutunu verin. İlk pencerede
1> copy df0:dosya to prt: yazarak dosyayı yazıcıya gönderin. Daha sonra mouse ile öbür pencereye klikleyerek:
1> run df0:wp ile kelime işlem programınızı çalıştırın. Gerçi bu işlemde iki task arasındaki hız farkını fark edememeniz normal ancak iki işlem de bittiğinde ayrı ayrı 1>dir df0: komutunu verdiğinizde listeleme hızlarındaki farkı kolayca görebileceksiniz.
Şimdi de AmigaDOS'un pek bilinmeyen bir özelliğinden bahsedelim. LOAD-WB komutunu -debug argümanıyla kullandığınızda Workbench menüsünde yeni bir menu seçeneği belirecektir. Burada Debug ve Flushlibs adlı iki yeni seçenek göreceksiniz. Bu seçeneklerden flushlibs ile Workbench, bellekte kullanılmayan bütün kütüphaneleri, fontları vb. kapatarak boş bellek haline getirir. Debug seçeneği ile ROM'da yer alan ROMWACK adlı hata düzeltici program çalıştırılır. Bu programla seri porttan başka bir bilgisayara bağlanarak onun belleğini inceleyebilir ve hataları düzeltebilirsiniz. Tabii sözüm assembler ve C ustaları için.