THE DIRECTOR -1-
Retro bilgisayarMerhaba! Bu kez size, kullanım kolaylığı açısından Commodore 64'teki Simons Basic'e benzeyen bir animasyon dilini tanıtacağım. Bu dil aynen BASIC'te yaptığınız gibi ufak ya da daha gelişmiş programlar yapmaya yaramaktadır. Yapılan bu programların hepsinin ortak bir özelliği, tümüyle Amiga'nın grafik yeteneklerini kullanabilmesi ve onlar yardımıyla değişik prezentasyon ve demonstrasyonlar yapılabilmesidir. Bildiğiniz gibi BASIC çok kullanışlı bir dildir.Hele Amiga'da standart BASIC dışında bir sürü komut daha olduğundan bir hayli gelişmiş ve detaylı programlar yazmak artık çocuk oyuncağı haline geldi. Fakat Amiga BASIC'in kötü yanlarından biri grafiğe yeterli destek vermemesidir. Bu yüzden her seferinde tam istediğiniz gibi güzel grafıkli bir program yazmanız çok zordur.
Director programı, BASIC'ten yola çıkılarak yazılmış ve Amiga'nın grafik ve animasyon yeteneklerini destekleyen bir dildir. Bunu en geç, bu program yardımıyla kendiniz bir animasyon yapmaya başladığınızda anlayacaksınız. Kullanılan komutların çoğu BASIC'teki eşlerinin aynıdır. Bazılarında ufak değişiklikler olsa da, yazının devamını okuyarak bu farklılıkları öğrenebilirsiniz.
İlk önce kendimize bir çalışma disketi hazırlamalıyız. Bu diskete programın kendisini ve bir de isteğinize göre herhangi bir text editör programını kopyalamanız gereklidir. Ben hızı ve kullanım rahatlığı açısından CygnusEd Professional Release H'yi tercih ediyorum. Fakat isteyen tabii ki WorkBench'in editörünü de bu iş için rahatlıkla kullanabilir.
Çalışma disketini hazırlamak için aşağıdaki işlemleri takip etmeniz yeterlidir.
Tek disket sürücüsü olanlar: 1. WorkBench ya da başka bir program (örneğin Diskmaster) yardımıyla boş bir disketi 'DİRECTOR_ÇALIŞMA_DİSKETİ' adı altında formatlayın.
2. WorkBench'i yükleyerek CLI'ya girin ve burada şu komutları sırasıyla uygulayın:
MAKEDIR RAM:
COPY DF0:C/COPY RAM:
COPY DF0:C/MAKEDIR RAM:
COPY DF0:C/DELETE RAM:
CD RAM:
3. Şimdi Director programının 1. disketini takın ve aşağıdakileri uygulayın:
COPY DF0:C/ ALL RAM: COPY DF0:DEVS/ALL RAM: COPY DF0:FONTS/ ALL RAM: COPY DF0:L/ ALL RAM: COPY DF0:LIBRARY/ ALL RAM: COPY DF0:LIBS/ALL RAM: COPY DF0:OPTIONS/ ALL RAM: COPY DF0:DIRECTOR RAM: COPY DF0:PROJECTOR RAM: 4. Bundan sonra da daha önceden formatlayıp hazırlamış olduğunuz disketi takın ve aşağıdaki komutları uygulayın:
COPY RAM: ALL DF0: MAKEDIR DF0:PICTURES MAKEDIR DF0:SOUNDS MAKEDIR DF0:SCRIPTS MAKEDIR DF0:ANIMS DELETE RAM:C/ALL DELETE RAM:DEVS/ALL DELETE RAM:FONTS/ ALL DELETE RAM:L/ALL DELETE RAM:LIBRARY/ALL DELETE RAM:LIBS/ALL DELETE RAM:OPTIONS/ALL DELETE RAM:DIRECTOR DELETE RAM:PROJECTOR 5. En son olarak da beğendiğiniz text editörün olduğu disketi takarak bunu ilk önce RAM:'e ardından da RAM:'den DF0:'a kopyalayın. Bazı text-editörler 'LIBS' directory'sinde ve diğer directory'lerde bazı yardımcı dosyalara gerek duyarlar. Bu dosyaları da çekmenizde fayda
THE DIRECTOR
vardır. CygnusEd programının gereksinim duyduğu dosyalar LIBS directory'sinden 'ARP.LIBRARY' ve FONTS directory'sinden 'CEDFONT' directory'sinin tamamıdır.
Çift disket sürücüsü olanlar: 1. WorkBench ya da başka bir program yardımıyla boş bir disketi 'DIRECTOR_ÇALIŞMA_DİSKETİ' adı altında formatlayın.
2. WorkBench'i yükleyerek CLI'ya girin ve burada şu komutları sırasıyla uygulayın: -1-
MAKEDIR RAM: COPY DF0:C/COPY RAM: COPY DF0:C/MAKEDIR RAM: COPY DF0:C/DELETE RAM: CD RAM: 3. Şimdi Director programının 1. disketini takın DF0:'a formatlayıp hazırladığınız boş disketinizi de DF1'e takın ve aşağıdakileri uygulayın:
COPY DF0:C/ALL DF1: COPY DF0:DEVS/ ALL DF1: COPY DF0:FONTS/ALL DF1: COPY DF0:L/ALL DF1: COPY DF0:LIBRARY/ ALL DF1: COPY DF0:LIBS/ ALL DF1: COPY DF0:OPTIONS/ALL DF1: COPY DF0:DIRECTOR DF1: COPY DF0:PROJECTOR DF1: MAKEDIR DF0:PICTURES MAKEDIR DF0:SOUNDS MAKEDIR DF0:SCRIPTS MAKEDIR DF0:ANIMS 4. En son olarak da beğendiğiniz text editörün olduğu disketi DF0:'a takarak bunu DF1:'e COPY komutu yardımıyla kopyalayın. Bazı text-editörler 'LIBS' directory'sinde ve diğer directory'lerde bulunan çeşitli yardımcı dosyalara gerek duyarlar. Bu dosyaları da çekmenizde fayda vardır. CygnusEd programının gereksinim duyduğu dosyalar LIBS directory'sinden 'ARP.LIBRARY' ve FONTS directory'sinden 'CEDFONT' directory'sinin tamamıdır.
Eh, çalışma disketimizi de hazırladığımıza göre artık çalışmaya başlayabiliriz.

İlk olarak Director programının nasıl kullanılacağını kısaca izah edeceğim. İlk önce BASIC'te olduğu gibi bir program listesi hazırlamanız gereklidir. Bunu aşağıda açıkladığım komutları kullanarak text editörde yazmalısınız. Daha sonra bunu çalışma disketinize kopyalayarak istediğinizde kullanılır hale getirmelisiniz. Bunun için de Director programını kullanacağız. Program sizin belirlediğiniz dosyayı yükleyecek ve onu kendi anlayacağı şekle çevirecektir. Çevrilen bu program diskete isminin sonuna bir '.film' takısı getirilerek kaydedilir. Tabii bunun için disketinizin yazma koruması açık olmalıdır. Director'u kullanarak bir .film dosyası yaratmak için CLI'dan aşağıdaki komutu kullanmalısınız:
DIRECTOR <dosya ismi> Kısa bir beklemeden sonra diskette <dosya ismi>.film ismiyle bir dosya daha oluşacaktır. Artık animasyonunuz çalışmaya hazır duruma getirilmiştir. İstediğiniz zaman bunu 'PROJECTOR dosya ismi.film' komutuyla çalıştırıp zevkle izleyebilirsiniz.
İsterseniz animasyon dosyanızı WorkBench ekranı üzerinden de çalıştırabilirsiniz. Bunun için animasyon dosyanızın ikonuna iki defa klik etmeniz yeterli olacaktır.
Eğer animasyonlarınızda ses de kullanmak istiyorsanız program listenizin başına şu satırı eklemeyi kesinlikle unutmayın: EXECUTE a,"ASSIGN mod: DIRECTOR_ÇALIŞMA_DİSKETİ:options"
Programı kullanırken bazı değişken isimleri kullanmanız gerekebilir. Bunlar için Director tarafından izin verilen formatı kullanmanız gereklidir. Bu format, BASIC'tekinin aynısı olduğundan söylememe gerek yok. Fakat bilmeyenlerin BASIC yazı dizisinin ilk bölümlerini okumalarını tavsiye ederim.
Bazı komutlarda kullanılabilecek aritmetik işlemler mevcuttur. Bunlar aşağıda listelenmiştir: * Çarpma / Bölme % Modül hesaplama
(hesap sonucu artan değer) + Toplama
Çıkarma ! Kesin değer (elde edilen değer tam sayıdır) < Küçüktür > Büyüktür = Eşittir # Eşit değil & Lojik AND işlemi | Lojik OR işlemi ^ Lojik EXOR işlemi ? Rastlantısal değer alma (?50 ile 0-
49 arası bir değer seçilecektir) ~ Tepe değeri - Başlangıç değeri
Bu işlemlerdeki öncelik sırası aynen BASIC'teki aritmetik işlemlerinde olduğu gibidir.
Gelelim en önemli bölüm olan komutların işlevlerinin ve kullanım biçimlerinin açıklamasına. Burada <,> işaretleri içindeki yere gerekli değer ya da değerleri yerleştirerek komutu kullanabilirsiniz. Köşeli parantez ( [,]) kullanılan yerlere değişken isimleri konmalıdır. Yazıda yabancı olduğunuz bazı terimlerle karşılaşabilirsiniz; bunların açıklamaları da en sonda yer almaktadır. Açıklanmayan bazı terimler de mevcuttur. Bunlar hakkında bilgi almak için de dergimizin 1. sayısında yer alan "Amiga'da resim nasıl oluşturulur?" yazımı okumanızı tavsiye ederim.
ABORT <çıkış numarası> Animasyondan çıkışı engellemekte kullanılır. Flag olarak aşağıdaki değerler kullanılabilir:

0) Çıkış yok; bu durumda animasyondan çıkılamaz. Bilgisayarı resetlemek gereklidir.
1) Mouse tuşlarından herhangi birine klik edilirse animasyondan çıkılır
2) Klavyeden herhangi bir tuşa basılırsa animasyon terk edilir
3) 2. ve 3. seçeneklerin birleşimi; klavyeden ya da mouse'dan bilgi geldiğinde, yani ikisinden birine basıldığında çıkış gerçekleşir.
IFMOUSE komutu kullanılmışsa, ABORT komutu ile çıkış kaldırılmalı ya da başka şekilde gerçekleştirecek biçime getirilmelidir.
ANIM <a>,<p>,[abs],[rel],[bitiş] Ekran buffer'ı olan <p>'yi kullanarak <a>'daki animasyon buffer'ında değişiklik yapar. Komutun işlenmesinden sonra [abs] değişkeninde animasyonun başladığı andan beri geçen süreyi, [rel] değişkeninde ise son kareden beri geçen süreyi saklar, [end] değişkeni sıfır değerine eşit ise son işlenen kare, animasyon dosyasının son karesi değildir. Bu değer 1 ise işlenen kare son animasyon karesidir. Animasyon yaparken double-buffering (çifte saklama) tekniğini kullanmanızda fayda vardır. Bu teknik yazının sonundaki püf noktalarında daha detaylı olarak açıklanmıştır.
ARRAY <boyut>,<en>
'@' dizisi için hafıza ayırır. <boyut>, kaç elemanlık dizi ayrılacağını, <en> ise her dizi elemanının kaç byte yer kaplayacağını belirlemekte kullanılır. Bilindiği gibi tek byte ile 255 (-127, +128), iki byte ile de 65535'ya (-32767, +32768) kadar olan sayıların hepsi tanımlanabilir. 4 byte ile de 4295000000 (-2147500000, +2147500000) kadar olan sayılar tanımlanabilir.
'@' dizisi ARRAY komutu ile yer açılmadığı zaman kullanılamaz. İkinci bir ARRAY komutu ile ilk '@' dizisi silinerek yerine yeni boyutlardaki ikinci dizi açılır.
Bir dizideki istenen elemanı bir değere eşitlemek için şu satırı kullanmanız gereklidir:
@ <eleman>=<değer> <eleman> ile boş eleman numarası belirlenir. <değer> de elemanın alacağı değerdir.
Dizinin istenen elemanını rahatlıkla matematiksel formüllerde kullanabiliriz. Buna en uygun örnek aşağıdadır:
DEL=A+@(5) Burada dizinin 5. değeri <A> değişkeni ile toplanarak <DEL> değişkenine yazılmakta.
BLIT <buf>, <ax>, <ay>, <bx>, <by>, <x>, <y>
<buf> ile tanımlanan resim buffer'ından bir dörtgen içinde kalan resim bilgisi, ekranda belirlenen bir yere taşınır. <ax> ve <ay> kopyalanacak bölgenin başlangıç x ve y koordinatlarını; <bx> ve <by> de dörtgenin basılacağı yerin x ve y koordinatlarını belirlemekte kullanılır. <x> ve <y> ile de dörtgenin boyutları tanımlanır.
Eğer kopyalama işleminde dörtgen, ekran yerine bir resim buffer'ına kopyalanacaksa bunu BLITDEST komutunu kullanarak tanımlamalısınız.
TRANSPARENT komutu kullanılarak kopyalama yapılıyorsa kopyalanan dörtgende her zemindeki renkli pikseller, ekranda o koordinatta var olan pikselin rengini alırlar.
BLITMODE komutu ile sadece kopyalamadan başka ufak bazı efektler de yapılabilir.
Kopyalama işleminde Amiga'nın üstün ciplerinden biri olan Blitter kullanıldığından ve bu cipin ses cipi gibi ilave hafızayı (512 KByte'dan yukarısı) adresleyemediğinden, kullanılan buffer'ların her ikisi de hafızanın ilk 512 KByte'ında (CHIP Ram) yer almalıdır.
BLITMODE <mod> BLIT, WIPE ve STENCIL komutlarında kullanmak üzere çalışma modunu belirler. Bu mod 0'dan 255'e kadar bir değer alabilmektedir. Bu mod sayesinde bir resmi kopyalarken aynı zamanda negatifleştirebilir ya da başka bir lojik işlemden geçirebilirsiniz. Seçilecek mod, işlem tipini belirler. Normalde Amiga'da Assembler ya da başka bir dil aracılığıyla Blitter kullanılırsa 255 işlemin hepsi de yapılabilmekte. Fakat bizim işlemlerimiz 255'ten daha az; çünkü aslında Blitter üç kaynağa gereksinim duymaktadır. Bunlardan sadece B ile C kaynakları bizi ilgilendiriyor. B, kaynak buffer'ımızı; C ise sonuç buffer'ımızı, yani normal şartlar altında ekran buffer'ını temsil eder. Aşağıda blitter işlem modunun nasıl hesaplandığını görebilirsiniz. Bunları anlayabilmek için biraz lojik işlemleri, biraz matematik ve biraz da BASIC bilmek yeterlidir.

Lojik işlemlerle AND, OR, NOT, EXOR ve bunların kombinasyonlarından oluşan işlemleri kastetmekteyim. Bunları bilenler şimdiki terim açıklamalarımı atlayabilirler.
NOT : Girişteki bilginin tam tersini alarak bunu çıkışa gönderir. Bu, binary sayı sisteminde 1 olan bitlerin 0, 0 olan bitlerin de 1 olması demektir. Programımızda bir piksel negatifleştirilirken 31 sayısı en üst renk rakamı olduğundan bu sayıya göre tersi alınmaktadır. 0 renk kodunu taşıyan pikseller 31, 1 rengindeki pikseller 30 rengini alacaktır. Bu, tüm renkleri etkilediğinden, sonuç olarak elimizde resmin negatifi yer alacaktır.
Doğruluk tablosu :
giriş çıkış
0 1 1 0 AND : Ancak her iki girişte de bir olan bitler çıkışta 1 değeri alabilirler. Bunu director'da uygularsak, koordinatları aynı farklı resimlerde olan iki pikselin renk değerleri de aynı ise işlem sonucunda elde edilecek resimde aynı koordinattaki piksel o rengi taşır. Eğer aynı noktada farklı renklerde pikseller varsa, bunların renk değerlerinin binary karşılıkları AND işlemine tabi tutulur ve sonuçta elde edilen binary sayı da sonuç grafiğindeki pikselin renk kodu olacaktır.
Doğruluk tablosu :
giriş 1 giriş 2 çıkış
0 0 0 0 1 0 1 0 0 1 1 1 renk kodu resim 1:6= 00110 renk kodu resim 2 : 14 = 01110 renk kodu sonuç : 6 =00110 OR : İki kaynaktan herhangi birinde 1 olan bitler sonuçta da 1 değerini alırlar. Resimde bu aynı koordinatlardaki değişik resimlerdeki iki pikselin renk kodlarının sonuç grafiğinde çok farklı olacaklarını belirtir. Doğruluk tablosu :
giriş 1 giriş 2 çıkış
0 0 0 0 1 1 1 0 1 1 1 1 renk kodu resim 1:21 = 10101 renk kodu resim 2 : 11 =01011 renk kodu sonuç : 31 = 11111 XOR ya da EXOR : Burada da iki girişteki bitler aynı değeri taşıdıklarında çıkıştaki bit 1 olur. Doğruluk tablosu :
giriş 1 giriş 2 çıkış 0 1 0 1 0 0 1 1 1 Başına N harfi eklenen işlemlerde ilk önce temel işlem uygulanır, sonrada sonuç bilgisi NOT işlemine tabi tutulur (NOR, NAND, EXNOR).
normal işlem NOT'lu hali
OR ..... NOR AND ....NAND
EXOR ... EXNOR Sağ yanında ünlem işareti olan kaynaklar, negatiflenen kaynaklardır. Yan yana duran ya da aralarında x işareti olan iki eleman OR işlemine tabi tutulacak anlamına gelmektedir. İki işlem arasında + işareti varsa bu, elemanları AND'lememiz gerektiğini bildirir.
Aşağıdaki bit dizimi kullandığımız formülleri sayıya dönüştürmek için gerekli olan formüldür. Az önce de belirttiğim gibi buradaki A girişini biz kullanmıyoruz, bu yüzden onu gözardı edebiliriz. Fakat formülleri hesaplarken onu da hesabın içine katmamız lazım; yoksa formül hatalı olur ve istenmeyen sonuçlar oluşabilir. Formülde kullanılan terim gruplarının bitlerini 1 yaptığımızda, elimize blitter işlem modunun binary değeri gelecektir. Bunu desimal sayı sistemine çevirerek komutumuzla kullanabiliriz. ABC ABC! AB!C AB!C! A!BC A!BC! A!B!C A!B!C! Bit: 7 6 5 4 3 2 10 Formüllerde gerekli birimleri toplamaya göre çarpanlarına ayırabiliriz. Gerekli görülen yerlerde de sadeleştirme işlemini uygulayabiliriz. Sadeleştirmede bir değerin negatifi ile kendisi birbirini götürecektir ( A + A! =0). Formül hesaplamayı daha iyi anlayabilmek için aşağıdaki örneği inceleyin :
Formül: (AB!C) + (AB!C!) + (A!B!C) + (A!B!C!)
İlk iki eleman olan AB!C ile AB!C!'den AB! oluşur. Nedeni de apaçık ortadadır: (AB!C)+(AB!C!)=Cx(AB!) çarpanlarına ayırırsak : Cx(AB!)=Cx(AB!)4€!x(AB!) Burada C ile C! birbirini götürür: (AB!) + (AB!) = AB! Ardından gelen son iki eleman da aynı şekilde çarpanlanna ayrılırsa A!B! elde edilir. Sonuç olarak elde edilen iki elemanı da yine çarpanlarına ayırırsak sonuç olarak C! elde edilir. Bu, kopyalamada sadece ekrandaki (ya da resim buffer- 'ındaki) bir dörtgendeki tüm piksellerin negatifleneceğini bildirir. Fakat hala elimizde bir formül elemanı var. O halde bunu BLIT-MODE komutuyla kullanabileceğimiz bir sayı haline getirmek için OR'lanan tüm elemanların bit karşılıklarını bularak bunları 1 yapıyoruz : 01010101 = 85 Artık bu sayıyı mod olarak rahatlıkla kullanabiliriz. İçinizde hala anlayamayanlar varsa, onlara bu örnekten yola çıkarak birkaç örnek yapmaları gerektiğini vurgulamam gerekir. Aslında bu konuyu anlayanların da birçok örnek yapmalarında fayda var. Bu sayede tüm olayı daha iyi bir şekilde kavramak mümkün. BLITDEST <buf> BLIT işleminde dörtgen, ekran yerine bir resim buffer'ına kopyalanacaksa bunun numarasını <buf> ile programa bildirmeniz gerekir. BUFFERS <adet>
Programda kullanılacak resim buffer- 'larının adedini belirlemekte kullanılır. Normalde bu sayı 30'dur. Fakat bunu, bu komutla rahatlıkla artırabilir ya da azaltabilirsiniz. BUFFERS komutu kullanılacağı zaman programın başında daha hiçbir resim yüklenmediği zaman kullanılmalıdır.
CENTER <flag> TEXT komutuyla çalışırken yazının ortalanması fonksiyonunu açıp kapatır. <flag> değişkenine 1 değerini yazarsanız TEXT ile basılaı her yazı ekranda ortalanarak basılır. Girilen 0 değeri ise daha önce açılmış olan ortalama modunu kapatacaktır. Daha geniş bilgi için TEXT komutuna bakınız.
CIRCLE <x>,<y>,<r> Belirlenmiş olan kalem rengiyle <x>, <y> noktasını merkez alarak <r> yarıçaplı bir daire çizer.
CLEAR Ekranı zemin rengiyle doldurarak temizler
CLOSE ÖPEN komutuyla açılan dosyayı kapatır. COLOR <buf>,<per>,<no>,<r>,<g>,<b> <buf> resim buffennın renklerini ayarlamakta kullanılır. Ayarlanacak rengin numa- OB <no> ile belirtilir. Ekrandaki renkler, kırmızı, yeşil ve mavinin karışımlarından oluşturulduğundan bu üç temel rengin karışım oranlarını <r> (kırmızı), <g> (yeşil) ve <b> (mavi) yardımıyla girmelisiniz. Bu üç renkten her biri için 0 ile 15 arası bir sayı girilebilmektedir. Böylece 4096 renklik bir paletten sizin için gerekli olanları ayarlayabilirsiniz.
Eğer <per> değeri 0 ise yapılan renk ayarlamaları sadece ekranı etkiler. Fakat bu değer 1 ise ekran buffer'ı ile saklanan renk paleti yeni değerlerden etkilenir.
Buffer numarası olarak -1 girilirse, yapılan işlem ekran buffer'ı üzerinde yapılır.
COMPARE [v],<stra>,<strb> <stra> ile <strb> karakter dizilerini ya da değişkenlerini karşılaştırır ve sonuca göre [v]'yi etkiler. Eğer diziler aynıysa komut işlendikten sonra [v] değişkeni 1 değerini alacaktır.
Karakter dizisi tanımlarken içeriği bilinmeyen yerlere <*> işareti konulabilir. Karşılaştırmada kullanılacak ikinci eleman bir dizi elemanı olabileceğinden bunu $ işareti ile belirtmeniz gerekecektir. İşaretten hemen sonra gelen parantez içinde dizinin hangi elemanının kullanılacağını belirtebilirsiniz. Aşağıdaki örneklerde bunu daha detaylı olarak görebilirsiniz:
COMPARE V,"Y*",$(0) - Dizideki ilk elemanın Y harfiyle başlayıp başlamadığına bakar ve sonuç olumlu ise V değişkenini 1 vapar. ' COMPARE V,"*apt*",$(0) - Dizinin ilk elemanının içinde 'apt' harf zincirini arar.
COMPARE V,"turbo",$(0) - Dizinin ilk elemanı 'turbo' ise V değişkenini 1 yapar.
COPY<a>,<&> <a> buffer'ındaki resmi <b> buffer'ına aynen kopyalar. Burada resim buffer'larının dahili hafızada (CHIP Memory) olup olması farketmez; çünkü bu komutta BLIT komutunda olduğu gibi blitter kullanılmaz. Bilindiği gibi blitter ve copper Amiga'da sadece CHIP memory'e çalışabilmektedirler. Bu yüzden bir resim FAST memory'den CHIP memory'e ya da tersine kopyalanacaksa blitter kullanılamaz.
Kopyalama yaparken renk paleti de olduğu gibi kopyalanır.
Buffer olarak girilen -1 değeri, ekran buffer'ının kullanılacağını belirtir.
CYCLE <mod> <mod> 1 değeri aldığı zaman DPaint'de olduğu gibi Cycle modu açılacaktır. Daha önceden açılmış bir cycle modunu kapamak için <mod> yerine 0 yazılmalıdır. SETB-LACK ya da FADE komutu kullanılan yerlerde cycle modunu açmasanız daha iyi olur. Aksi halde ekranda bir renk karmaşası oluşacaktır.
DISPLAY <buf> Ekranda gösterilen resim buffer'ının numarasını değiştirir. Bu komutla sadece CHIP Memory (ilk 512 KByte)'de kalan resim buffer'lan gösterilebilir.
DISSOLVE <buf>ı<ax>,<ay>ı<bx>y <by>, <x>,<y>,<te>
'<buf> ile belirtilen resim buffer'ında <ax>,<ay> ile belirtilen <x>,<y> boyutlarındaki dörtgeni ekran buffer'ında <bx>,<by> noktasına kopyalar. Kopyalama raslantısal seçilen noktaların kopyalanması şeklinde yapıldığından epey güzel bir efekt elde edilir. <hız> ile kopyalamanın hızı ayarlanılabilir. Hız için 1000 ile 4000 arasında kalan sayılar iyi bir sonuç verir.
DRAW <x>,<y> Kalem rengini kullanarak bir çizgi çizer. Çizginin başlangıç noktası, o an grafik cursor'unun bulunduğu noktadır. Bitiş noktası ise başlangıç noktası koordinatlarına <x> ve <y>'nin eklenmesi ile bulunur. Grafik cursor'unu hareket ettirmek için MOVE komutunu kullanmanız gereklidir. DRAW komutunu kullandıktan sonra çizginin bitiş noktası grafik cursor'unun yeni noktası olacaktır. Bu sayede birbirine bitişik çizgiler çizmek bir hayli kolaydır.
DRAWMODE <mod> Çizim ve yazım modunun belirlenmesinde kullanılır ve girilebilecek değerler aşağıdadır:
0 - JAM1 : Yazının doğrudan ekrana basılmasını sağlar. Yazı karakterlerinde kenarlarda bir kare var olduğunu sayarsak bu karenin içindeki boş pikseller (zemin renginde olan) zemindeki piksellerin renk değerlerini alırlar.
1 - JAM2 : Yazı karakterlerinde boş pikseller 0 rengini alırlar.
2 - COMPLEMENT: Piksel basılırken, bu piksel zeminde altında kalan pikselle exor'lanır. Bu sayede koyu renk olan yerlerde açık yazı, açık renk olan bölgelerde ise koyu renkli yazı elde edilebilir.
Normalde çizim modu 1'dir ve MODE -1 komutuyla normal çizim moduna dönülebilir.
ELLIPSE <x>,<y>, <xr>,<yr> <x> ve <y> merkez olmak üzere <xr> x ekseni yarıçaplı, <yr> y ekseni yarıçaplı bir elips çizilir. Çizim rengi kalem rengidir.
ELSE Bir önceki IF komutunda belirtilen şart yerine gelmemişse ELSE komutundan sonraki komutlar uygulanır. ELSE komutunu her IF komutunda kullanmak zorunlu değildir. Fakat her IF ve/veya ELSE komutu kullanıldığında sona bir ENDIF komutu koymak gereklidir.
END Yapılan animasyonun bittiğini bildirir ve kullanılan tüm değişken, dizi ve resim buffer'larının temizlenmesini sağlar.
ENDIF IF'le açılan bir koşul gerçekleştirmenin bitirilmesini sağlar. IF kullanılan her yerde ENDIF komutu da kullanılmalıdır.
EXECUTE [a], <"komut dizisi"> <"komut dizisi"> bir CLI komutudur ve program bunu CLI'a göndererek uygulanmasını sağlar. Bu sayede Director ile çalışırken programınızda bazı dosyaların kopyalanmasını ya da silinmesini de sağlayabilirsiniz. <a> değişkeninde alınan değer, komut işlendikten sonra onun verdiği bilgiler ya da hata mesajlarıdır.
Gelecek ay Director programının kalan komut ve özelliklerini yine bu sayfalarda bulabilirsiniz. Hoşça kalın....
