Bu sayfadaki yazılar
Sayfanın metni
Sayfa 33
Eğer Amiga'nızı Workbench 1.3 işletim sistemi ile kullanıyorsanız, 1.3 ile gelen bazı ilginç özellikleri fark etmiş olabilirsiniz. Bu özelliklerden biri de RAD disk. RAD kısaltması Recoverable (geri çağrılabilir) RAM disk anlamına geliyor. RAD'ın özellikleri Amiga resetlendiğinde veya Guru mesajı alındığında çoğu kez içeriğinin silinmemesi. Ayrıca Amiga, RAM diskten boot edebiliyor. Buna karşılık RAM disk'in içeriği resetleme sırasında kayboluyor. Fakat her iki disk'in de bir ortak yönü var: bilgisayarın kapatılmasıyla sakladıkları bilgiler yok olur.
RAD'ın hızı hard disk'ten yüksek RAM disk'ten düşüktür. Hard disk'ten hızlı olması doğrudan bellekten okuma ve yazma yapmasından ileri gelmekte. RAM'a göre yavaşlığı ise dinamik olmamasından ve fiziksel bir sürücüyü simüle ederek çalışmasından (RAD'ı normal bir disk gibi formatlayabilirsiniz ve asla READ/WRITE hatası vermez) kaynaklanıyor.
RAD'ın RAM'a göre bir başka dezavantajı daha var. RAD'ın içeriği boş bile olsa bellekte kapladığı alan sabit kalıyor. RAM disk ise daima %100 dolu gözüktüğü halde sadece içindeki bilgi kadar bellek kaplar.
RAD'ı çalıştırmadan önce birkaç ufak işlem yapmalısınız. Devs directory'si içindeki mountlist dosyasında RAD ile ilgili aşağıdaki bilgiler yer almakta.
RAD: Device = ramdrive.device Unit = 0 Flags = 0 Surfaces = 2 BlocksPerTrack = 11 Reserved = 2 Interleave = 0 LowCyl = 0 ; HighCyl = 35 Buffers = 5 BufMemType = 1 # Önce RAD'ın ne kadar büyük olacağına karar verin. Eğer RAM belleğiniz çoksa (2MB'dan yukarısı) 880K'lık bir RAD açarak bir disk'in tümünü örneğin Workbench'i buraya kopyalayabilirsiniz. Sonuçta jet hızıyla çalışan bir Workbench'iniz olur. Bunun için:
- ED DF0:devs/mountlist yaptıktan sonra tabloda gösterilen RAD'la ilgili bilgileri bulup 21 olan HighCyl seçeneğini 79 yapın ve mountlist'i bu şekliyle kaydedin (ESC X).
- Bilgisayarı kapatıp 30 saniye bekleyin. - Bilgisayarı açıp CTRL-D ile bilgisayarı durdurun. MOUNT RAD: ve SYSTEM/DISKCOPY DF0: to RAD: name "RAD-WB" komutlarından sonra aşağıdaki komutu girin.
1>PATHRAD:CADD 1>ASSIGNC:RAD:C
1>ASSIGNS:RAD:S 1>ASSIGNL:RAD:L 1> ASSIGN LIBS: RAD:LIBS 1> ASSIGN DEVS: RAD:DEVS 1> ASSIGN FONTS: RAD:FONTS 1> ASSIGN SYS: RAD: 1> LOADWB 1> ENDCLI Bu işlemlerden sonra hızlı Work- bench'in keyfini çıkarabilirsiniz. İsterse- niz Amiga'yı bir kere resetleyin. Startup- sequence'in ne kadar hızlı çalıştırıldığına tanık olacaksınız.
Tabii herkesin 2MB RAM'ı olmayabilir. 512K da zaten bilgisayarın kendisine zor yetiyor. O halde 1 MB Amiga'sı olanların RAD ile neler yapabileceklerini görelim.
Tamamen dolu bir disketi 1MB'lık bir Amiga'da RAD'a kaydedip çalıştırmak imkansız ancak bütün disketlerin Workbench gibi tıka basa dolu olduğunu zannetmeyin. Böyle program disketleri sayesinde, siz de RAD'dan boot etmenin ve çalışmanın zevkine varabilirsiniz. 1MB'lık Amiga'da aşağı yukarı 70 track'lık bir RAD disk oluşturabilir. Bu da 35 cylinder demek. Acaba 35 cylinder'in saklayabileceği bilgi kaç KB eder?
(35*2*11*512)/1024 = 385K Bu arada track, sector ve cylinder kavramları size yabancı geliyorsa Amiga Dünyası, Sayı 2, Amiga Dost yazısına başvurun.
385K'nın basit bir hesapla 880K'nın %43'ünden biraz fazla olduğu bulunabilir. Yani sonuç olarak biz en fazla %43 oranında dolu disketleri RAD'dan çalıştırabiliriz. Bir disketin % kaç dolu olduğunu anlamak içinse CLI içinden şu komutu verebilirsiniz:
1> info df0: + Buna göre disketin içeriğinin RAD:'a sığıp sığmayacağını anladıktan sonra şu işlemleri yapın:
- Yukarıdaki 880K RAD örneğinde olduğu gibi mountlist dosyasına girin ve HighCyl seçeneğini 35 yapın ve bunu kaydettikten sonra bilgisayarı kapatarak 30 saniye bekleyin. - Bilgisayarı açın ve CTRL-D yaptıktan sonra MOUNT RAD: ve SYSTEM/FORMAT drive RAD: name RAD (komutu yazdıktan sonra ENTER tuşuna basarak formatlamayı başlatın.)
- COPY DF0: all RAD: quiet + komutunu verip Workbench disketini sürücüden çıkartıp RAD'a kopyalanacak disketi takın. Bir kaç saniye bekleyip RETURN tuşuna basın. Kopyalama işlemi bittiğinde disketi sürücüden çıkartıp Amiga'nızı resetleyin.
Eğer bilgisayarı kapatmadan RAD'ı silmek isterseniz
1> assign RAD: unmount komutunu verebilirsiniz.
KOMUTLAR
LOADWB Format: LOADWB [DELAY] [-DEBUG] Workbench ekranını yükleyip başlatmak için LOADWB komutu kullanılır. Orijinal Workbench startup-sequence dosyasında sonlarda yer alan komutlardan biri olan LOADWB komutunun açtığı Workbench penceresini DOS'u kapatmadan görebilmek için ENDCLI komutunu vermeden Workbench'in önünde duran CLI penceresini küçültebilirsiniz.
DELAY seçeneği Workbench ekranı açılmadan önce LOADWB komutunun üç saniye beklemesini ve disket okuma işleminin bitmesini sağlar. Böylece Workbench ekranının çıktığını görüp, sürücünün çalışması devam ederken, yanlışlıkla disketi çıkarma hatası önlenmiş olur.
-DEBUG seçeneği ile Workbench'i yüklediğinizde menü çubuğunun en sağında Debug ve Flushlibs adlı iki seçeneğin yer aldığını göreceksiniz. Bu seçenekler sadece iki Amiga'yı (veya Amiga ile başka bir bilgisayarı) seri bağlantıyla birbirine bağladığınızda kullanılabilir. Debug seçeneği ROMWack adlı bir hata düzeltici test programını çalıştırır. Böylece iyi assembler bilenler Guru hatası veren bir Amiga'da sorununun nereden kaynaklandığını, ROMWack yardımıyla diğer Amiga'dan anlayabilirler. Flushlibs ise RAM bellekte hazır olan fakat o anda kullanılmayan tüm kütüphane, font vb.'yi silerek Workbench'in mümkün olduğu kadar bellek kazanmasını sağlar.
Örnek:
1> loadwb delay 1>endcli LOCK Format: LOCK sürücü [ON|OFF] [PASSKEY] Bu komutla hard diskinizin tümünü veya istediğiniz partition'larını kayda karşı korumalı (write-protect) hale getirebilirsiniz. Komutu çalıştırabilmek için hard diskinizin FFS (fast file system) ile çalışıyor olması gereklidir.
PASSKEY seçeneğini bir password kelimesi olarak tanımlayabilirsiniz. Bir password kullanarak koruma işlemi yaptığınızda, korumayı kaldırabilmek için yine aynı password'ü vermelisiniz.
Örnek:
1> lock dhl: on şifre (kayıt mümkün değil)
1> lock dh1: off şifre (kayıt mümkün) MOUNT Format: MOUNT araç [FROM dosya-adı] Amiga'ya yeni araçlar bağlamak ve Amiga'nın bunları tanımasını sağlamak
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 32
2-Aşağıdan yukarıya kopyalama 3-Sağdan sola kopyalama
WRITE "<a1>", $<a2>, [a3], … "<a1>", $<a2> ya da [a3] ile belirlenen yazı dosyasını/dosyalarını açılmış olan dosyaya yazar.
Evet komutlar bu kadar. Gelelim daha önce de sözünü ettiğimiz ses üretme konusuna.
DIRECTOR YARDIMIYLA SES
ÜRETMEK VE BUNLARI
KULLANMAK Yaptığınız animasyonlarda insan ya da diğer her hangi bir sesi kullanmak mı istiyorsunuz? Bunun için ilkönce sesi yaratmanız gerekli. Kaliteli bir ses digitizer'ı ve iyi bir ses örnekleme programıyla bu çocuk oyuncağı. Ses örnekleme programı olarak Aegis'in çıkarttığı Audio Master programını tavsiye ederim. Bu programın kullanımını daha önceki sayılarda bulabilirsiniz. Gelelim örnekleyip diskete kaydettiğiniz sesi kullanmaya. Bunun için programınızın ilk satırlarından birinde aşağıdaki komut yer almalıdır
MODULE "sound" Bu sayede ses modülünü programınıza bağlayabilirsiniz. Ses modülü sayesinde kullanabileceğiniz komutlar 6 tanedir:
LOAD, FREE, PLAY, QUIET, SLOW-FADE ve KILL
Bu komutların hepsini SOUND komutu aracılığıyla girebilirsiniz. Aşağıda buna ait birkaç örnek bulabilirsiniz:
SOUND [v], "LOAD", 1, 2, ":sounds/ crash.snd"
SOUND [v], "PLAY", 1,1,63,400 Her Sound komutundaki ilk parametre ([v]) bir değişkendir. Bunun sayesinde komutun işlendikten sonra bize göndereceği bir değer varsa bunu öğrenebiliriz. Bazı komutlar işimize yaramayan anlamsız değerler gönderebilir. Fakat her komutta bir boş değişkenin parametre olarak girilmesi gereklidir. Aşağıda Sound komutu aracılığıyla kullanabileceğiniz 6 komut açıklanmıştır.
SOUND [v], "LOAD", <buf>, <oct>, <"dosya">
Disketten dijitize edilmiş ve kaydedilmiş bir sesi yüklemenize yarar. <buf> ile sesin yükleneceği ses buffer'ını, <"dosya"> ile de sesin disketteki ismini belirleyebilirsiniz. Kullanabileceğiniz 20 ses buffer'ı vardır ve bunlar 1'den 20'ye kadar sıralanmışlardır. Yüklenen ses çok oktavlı bir ses (AudioMaster yazısına bakınız) ise <oct> ile sadece bunun herhangi bir oktavını kullanmanızı sağlar. Çok oktavlı seslerde yüksek oktavlardaki sesler ilk önce kaydedileceğinden, bunları kullanmak için 1 ya da 2 değerleri girmelisiniz. <oct> isteğe göre bir parametredir. İsterseniz buraya hiç değer yazmayabilirsiniz. Bu durumda ses çok sesliyse en son oktavı, yani en kalın oktavı kullanılacaktır. Komut, işlendikten sonra [v] değişkeninde yüklenen sesin periyod değerini kaydeder. Bu değeri PLAY komutunda kullanabilirsiniz. Periyod ile sesin periyod noktası, yani kısaca bitişi belirtildiğinden bu değer, sesi sadece bir defa çalacaksak kesinlikle PLAY komutunda
SOUND M, "FREE",<buf>
Bir ses buffer'ının silinmesini ve böylece hafızadan tasarruf edilmesini sağlar. <buf> silinecek buffer'ın numarası olmalıdır. O an çalınan sesi FREE komutunu kullanarak silerseniz istemediğiniz distorsiyon sesleri (parazitler) oluşacağından ilk önce QUIET ya da SLOW-FADE kullanılarak sesi kapamanız gereklidir.
kullanılmalıdır.
SOUND M, "PLAY", <buf>, <n>, <vol>, <periyod>
SOUND [v], "KILL"
Kullanılan ses modülünü hafızadan siler. Bu komuttan sonra ses modülüne ait komutları kullanamazsınız. Yaptığınız programdan çıkışta bu komut otomatik olarak gerçekleşir.
İsterseniz başka bir müzik program ile hazırlanan müziklerin demonstrasyonunuzun arkasında çalınmasını sağlayabilirsiniz. Bunun için herhangi bir programla (örneğin NoiseTracker 2.0) hazırlanan müziğin CLI'dan çalıştırılabilir şekilde olması lazımdır. Bunu yapmak için bazı cracker'ların yapmış olduğu Utility Package adı verilen yardımcı programların olduğu paketlerde çeşitli programlar mevcuttur. Daha sonra Director'un EXECUTE komutunu kullanarak bu müziğin çalınmasını sağlayabilirsiniz.
Yüklenmiş bir komutun çalınmasını sağlar. <buf> ile ses buffer numarasını, <n> ile sesin kaç defa çalınacağını (0 - 63 değerleri kullanılabilir) ve <vol> ile sesin çalınma şiddetini belirleyebilirsiniz. <periyod>, ses yüklendiğinde [v] değişkeninden alınabilecek değerdir ve sesin tekrarlanması sırasında bitiş noktasını, hızı ve ses çalınma süresini belirlemekte kullanılır. Eğer <n> olarak 0 değerini girerseniz, ses QUIET ya da KILL komutuyla kapanana kadar sürekli olarak çalacaktır.
Aynı anda 4 ses çalabilirsiniz, zira Amiga'nın sadece 4 ses kanalı mevcuttur. 5. bir sesi çalmaya çalışmak hiçbir şey yapmayacaktır. Ses çalarken stereo efekti yaratmak isterseniz aynı sesi iki defa çalmanız gereklidir.
SOUND [v],"QUIET" Bu komut ile tüm ses kanallarını aynı anda kapayabilirsiniz. Parametre olarak hiçbir şey gerektirmemektedir.
Eh, bu programın da açıklaması burada bitiyor. Artık bundan sonrası size kalmış; isterseniz bir slide-show yaparak çizdiğiniz resimlerin çok güzel şekillerde ekrana gelmelerini sağlayın, isterseniz de çeşitli animasyon programlarını da kullanarak çok güzel prezentasyon / demonstrasyon yapın. Bu programla yaratıcılığınızın sınırı daha da genişler.
SLOWFADE [v], "SLOWFADE",<sp> Sesin yavaş yavaş kısılarak kapanmasını sağlamak istiyorsanız, bu komutu kullanabilirsiniz. <sp> ile sesin kapanma hızını belirleyebilirsiniz. Buraya girilecek bir 1 değeri sesin çok hızlı olarak kapanmasını sağlar. 10-20 arasındaki değerler ile sesin çok yavaş olarak kapanmasını sağlayabilirsiniz.
TERMİNOLOJİ
Double-buffering (çift saklamalı): Yapılan animasyonların bazen çok detaylı ve karışık olması gerekebilir. Bir ekranda çok fazla hareket aynı anda yapılacağından ekran tarama ışınının hızı bunların hepsine yetişmeyebilir. Böyle durumlarda animasyonda her karedeki kopyalama işlemleri hafızada başka bir resim buffer'ına kopyalanmalı ve hemen ardından da bu resim buffer'ı ekran buffer'ına kopyalanmalıdır. Bu işlem saniyede en az 30 defa yapılacağından ekrandaki animasyonda en ufak bir hız azalması olmayacaktır. Aksine animasyondaki hareketler daha akıcı ve kaygan görünüm kazanacaklardır.
Page-flipping (sayfa çevirme): Daha çok çizgi film ile uğraşanların kullandığı bu teknikte bir animasyonun tüm kareleri daha önceden hazırlanmıştır. Bu kareler bir hareketin saniyede en az 24'te 1'lik bir anını taşırlar. Sırayla bu kareler ekranda ard arda gösterildiği zaman resimlerdeki objeler hareket ediyormuş izlenimi verirler. Eminim hepiniz ilkokul yıllarınızda bir defter sayfalarına en sondan başlayarak her sayfa köşelerine birer adam çizip bu sayfaları hızla çevirmişsinizdir. İşte size page-flipping tekniğine en basit örnek!
Buffer: Director programında kullanılacak tüm resimler ilk önce hafızaya aktarılmalıdır (LOAD). Bu resimlerin karışmaması için de hafızada bunların bulundukları yerleri belirten bir tablomuz olmalıdır. Fakat tablo tutmak ve en az 6 rakamlı sayıları aklımızda tutma işlemi ile kimse uğraşmak istemediğinden program bunu bize otomatik olarak yapıyor. Fakat resimlerin nerelerde olduğunu bilmemiz için bize 1'den başlayarak hafızaya göre doğru orantılı olarak artış gösteren rakamlar kullanımımıza sunulmuştur. Bu rakamlar her bir resmin kodudur ve yüklerken bunları biz belirleriz. Daha sonra yüklediğimiz resmi kullanmak için onun adresi ya da ismi yerine onun kodunu kullanmamız yeterli olacaktır. Aynı şey ses ya da animasyon için de geçerlidir.
W dizisi: Director ile yapılan animasyonların bir hayli hafıza yediklerini er geç anlayacaksınız. Bu hafızadan mümkün olduğunca tasarruf edebilmek için BASIC'te bir hayli yer kaplayan dizi değişkenleri, bu programda çok kısıtlı bir şekilde kullanılabilmektedir. BASIC'te farklı isimlerde sayısız dizi yaratmak mümkünken, Director'da sadece tek bir dizi kullanabilirsiniz. Bu dizinin ismi '@'dir. Kullanacağınız tüm dizisel değişkenlerin hepsini bu dizi ismi altında toplamalısınız. Bu yüzden programınızın başında dizi boyutunu yeterli olarak tanımlamalısınız. Dizinin istediğiniz herhangi bir elemanını kullanabilmek için de '$' işaretini kullanmanız gerekecektir. '$' işaretinden sonra gelecek parantezlerin içindeki rakamla dizinin hangi elemanını kullanmak istediğinizi belirleyebilirsiniz.