TEKNİK AÇIDAN AMIGA

14. SPRITE

Sprite adı verilen grafik elemanı, bit noktalı bir gösterim elemanıdır. Pozisyonunu değiştirmek için, sadece sol üst köşesinin koordinatını yeniden vermek yeter. Sprite'lar, görüntü alanlarından bağımsızdır ve verilen önceliğe göre, bunların önünde veya arkasında görünebilirler. AMIGA'nın, donanım olarak belirlenmiş sekiz adet mevcuttur. Bunların her birinin üç değişik rengi olabilir. (Sprite'lar görüntü alanlarıyla karşılaştırılınca iki bit yüzeyi derinlikte oldukları görülür; bunun sonucunda dört renk kombinasyonu yaratılır. Bunlar, üç renk ve saydamlıktadır.) AMIGA'nın sprite'ları, 16 düşük çözünürlüklü nokta genişliğinde ve herhangi bir yükseklikte olabilir. Her bir sprite çifte, üç değişik renk palet değerini paylaşır. (Örneğin, 0 ve 1'inci sprite'lar 17, 18 ve 19 numaralı renk register'lerini, 2 ve 3'üncü sprite'lar 21, 22 ve 23 numaralı renk register'lerini, vs. kullanırlar.) Böylece 8 sprite, toplam olarak 12 değişik rengi kullanır. Çift olan sprite'lar birbirleriyle birleştirilebilirler. (Mesela, 0 ve 1 numaralı sprite'lar.) Bunun sonunda dört bit yüzeyi derinlikte sprite'lar elde ederiz. Birleştirilmiş sprite çifti 17'den, 31'inci renk register'ine kadar 15 değişik renk kullanabilir.

AMIGA'da genelde geçerli olan şey, görünen basitliğin altında zorluğun yattığıdır. Sprite, aslında o anki gösterim satırı üzerinde yer alan 16 bitlik bir değerdir. Bunu yaratmanın iki yolu vardır. Birincisi, manual yöntemdir. Her satırda, sprite'ın verilerini ekrana siz gönderirsiniz. (Tabii ki bu yöntem oldukça zor kullanımı olduğu için pratikteki kullanım değeri sıfır.) İkinci yöntem otomatik yöntemdir. Bunda, sprite'ların DMA kanalını aktive edersiniz. Sprite devresi hafızada belli bir yerde bulunan ve sprite'ın pozisyonunu ve satır satır tanımlanmış şeklini içeren veri yapısını alır ve çizer. Bundan başka, sprite'ın tanımını, daha o sprite çizilirken değiştirmeniz mümkün. Sprite devresi, sprite pozisyon ve tanımlarından oluşmuş bir listeyi kabul ediyor. Burada tek sınırlama, bir tanımlamanın sonu ile, bir diğerinin başı arasında en az bir video satırının bulunması. Dikkatinizi şuna çekmek isterim ki, burada COPPER'ı devreye sokmak gerekmiyor. (Tabii, Copper devreye girince söz konusu işlem otomatik olarak daha hızlı yürüyor.)

15. BLITTER

Blitter, animasyon (canlandırma) çipinin bir parçası olup, yaptığı işlem doğrular çizmek, grafik ekranında belli bir kapalı bölgeyi herhangi bir renkle çok yüksek bir hızda doldurmak ve görüntü alanının içindeki dikdörtgen bölgelerin işlenmesi ve taşınmasıdır. Dikdörtgen blokları işlerken blitter, ana işlem ünitesi ile yapıldığı zaman çok uzun sürecek ve ana işlem ünitesinin değerli zamanını çarçur edecek bazı işlemleri yerine getirir. Özel olarak bu iş için geliştirilmiş bir ünite olduğu için, yapılan işlemin çok daha hızlı yürüdüğünü söylemeye gerek yok. Yaptığı işlemlere örnek olarak herhangi bir grafik bölgesini başka bir yere taşımayı verelim. Bu sırada, okuduğu her word'un (1 word = 2 byte = 16 bit) içinden kendisine gerekli olan bitleri ayırır, oluşturduğu şekli, yerine yazabilmek için birkaç bit sağa veya sola kaydırır. Diğer bir örnek ise, bir bölgeyi sağda ve solda rastladığı sınırlara kadar doldurmak (bu, blitter'in alan doldurma kabiliyetinin temel ilkesini oluşturuyor). Blitter'i, benzer özel işlem ünitelerinden ayıran başlıca özelliği üç kay-

AYHAN KALAYLIOĞLU naktan gelebilen bilgiyi 256 değişik kombinasyondan biriyle birleştirip hedefe ulaştırması. (Üç kaynağı A, B ve C diye adlandırırsak; bunların tersleri -A, -B, ve -C olur. Bunlar da sekiz şekilde (AND işlemi) birleşirler: Elde edeceğimiz sekiz terimi 256 değişik kombinasyonla (OR işlemi) birleştirebiliriz. Bunca matematiksel safsatanın sonucu özetle şudur: Mesela, bir araba görüntüsünü, yol görüntüsünün üzerine otomatik olarak taşıtabiliyoruz. Araba şeklinin dışındaki yerlere hiçbir şey olmuyor ve arabanın camlarından arka taraf da görünüyor. Bu işlemleri bir program gerçekleştirseydi, bu programın çok karışık olması ve uzun süre alması gerekecekti. İşte, size Blitter'in faydaları!.. Doğru çizmek için kullanılırken blitter 0'larla veya 1'lerle veya belirlenmiş bir şekil kullanarak doğruyu oluşturur. Bir bit genişliğinde doğrular bilhassa doldurulacak bölgenin çevresini belirlemek için kullanılıyor. Gerek doğru çizme işlemi, gerek alan doldurma, gerek bölgeleri taşıma işleminden önce blitter'in parametrelerini belirlemek için belli bir miktar hesaplama yapmak gerekiyor. Sonuçta yapılan işin hızı ve basitliği göz önüne alınınca, bu işi gözümüzde fazla büyütmemek lazım. Kaldı ki, tüm bu işlemleri ROM'da bulunan grafik altprogramları hallediyor zaten.

16. ANİMASYON ALTPROGRAMLARI

Amiga'nın ROM'unda bulunan animasyon (canlandırma) altprogramları, kişisel bilgisayar piyasasının gördüğü en karışık renkli animasyon olayı için bir taban oluşturuyor. Örnek olarak ROBO-CITY adlı demo programını verebiliriz. Bu programda, beş adet çizgi film tipi yaratık ekranda dolaşmakta. Çözünürlük oldukça yüksek, ancak çok yakından bakılınca pürüzler görünüyor; yoksa elle çizilmiş çizgi filmden farkı yok. Animasyon olayı, animasyonda yer alacak cisimlerin listesini işleyecek bazı altprogramları çağırarak gerçekleşiyor. Animasyon sisteminde, asıl eleman GEL (graphic element — grafik elemanı) adını taşıyor. Dört tip GEL söz konusu, bunlar VSprites, BOBs, AnimComps, ve AnimObjs adlarını alıyorlar. VSprite “virtual sprite” deyiminin kısaltılmışı; anlamı ise suni sprite. VSprite hafızada belli bir yer kaplayan, normal sprite'larla gerçekleştirilen, animasyon altprogramları tarafından kumanda edilen özel bir veri yapısı. Bazı sınırlamalara uymak koşuluyla, bir ekranda sekizden fazla VSprite tanımlayabiliyoruz. Bu arada meydana çıkan, veri yapılarını ve bunlara ait göstergeçleri yenileme gibi işlemleri animasyon rutinleri otomatik olarak hallediyor. VSprite'lar da normal sprite'lar gibi, sadece ekranın belli bir bölgesinde görünebiliyor. BOB “blitter object” deyiminin kısaltılmışı olup, anlamı blitter'in yarattığı ve sprite gibi davranan cisim. Burada beliren başlıca fark, BOB'un görüntü alanının üstüne çizilmesi ve (isteğe bağlı olarak) alt tarafta kalan bilginin saklanabilmesi. Veri yapısı olarak da VSprite'lara benzeyen BOB'ların VSprite'lara göre başlıca üstünlüğü, BOB'un doğrudan görüntü alanının bir parçası haline gelmesi. Bu da BOB'larda 32 renge kadar kullanmayı mümkün kılıyor. Bundan başka, bir BOB'un boyutları için hiçbir sınırlama söz konusu değil. Fakat istenirse, BOB'lar da, ekranın sadece belli bir bölgesinde görünmek üzere sınırlanabilir. AnimComp kelimesi “animation component” deyiminin kısaltılmışı; anlamı ise animasyon parçacığı. Bu parçacık, AnimObj (animation object) yani animasyon cisminin bir parçası. Çok mu karışık oldu?.. Bir örnek verelim: Diyelim ki animasyon cismimiz (AnimObj) yürüyen bir insan; bunun animasyon parçacıkları (AnimComp) ise, gövde, kafa, iki kol ve iki bacak ile ilgili şekilleri içeren BOB'lar olacaklar. Her iki animasyon parçacığı söz konusu bölgenin birkaç görüntüsünü içerir. (Örneğin; bükülmüş kol, düz kol). Tabii ki, bir cismin değişik görüntülerinden bahsedebiliyorsak, bu değişik görüntülerin birbirleriyle bağlanabilmeleri için belli zaman dilimleri geçmesi gerekiyor. Böylece, bu değişik görüntülerin birbirini takip etmesi sağlanıyor. Sequenced drawing animation, canlandırması yapmak da mümkün. Burada, tekrarlı görüntüler listesi ve her tekrardan sonra cismin pozisyonuna eklenecek ofset (hareket miktarı) belirtilir. Bir örnekle görelim: Diyelim ki bir kedinin soldan sağa doğru yürüyüp giderken altı değişik pozunu çizdik. Fakat, bunlardan birbirine geçişini öyle güzel ayarladık ki 1'den 6'ya kadar gösterdikten sonra tekrar 1'e dönünce doğal geliyor. Böylece, bir hareket periyodu belirlemiş olduk. Bundan başka her periyod geçişinde pozisyonda oluşacak değişikliği (bu örnek için sağa doğru belli bir miktar) belirledik mi, animasyon rutinleri bu altı değişik görüntüyü peş peşe geçişli olarak çizip, verilmiş ofseti de değerlendirerek kendisinin ekranın en solundan başlayıp en sağına yürümesini sağlar. Bir başka animasyon modu da motion control animation. Burada BOB'un yeni pozisyonu, o andaki pozisyonu, x- ve y- yönündeki hız ve ivmelerinden hesaplanıyor. Bunlardan başka bir rutini de anlatalım. Adı DoCollision. Yaptığı işlem BOB'larla ilgili iki türlü görüntü çarpışmasını fark edebiliyor. Bu çarpışma tipleri, GEL ve GEL çarpışması ve GEL ile belirlenmiş bir sınırın çarpışması olabiliyor. Bu rutin, bu çarpışmaları fark ettikten sonra elde edilen bilgileri değerlendirmek üzere 16 adet collision-handling (çarpışma değerlendirmesi) altprogramından birini çağırıyor. GEL'ler değişik şekillerde kodlanarak, sadece istenilen tipte çarpışmaların algılanması sağlanabiliyor. Örneğin bir oyun programında, füze-hedef çarpışmasını algılamak, fakat füze-füze çarpışmasını algılamamak gibi...

17. YAZILAR

AMIGA, yazıları da bir tür grafik olarak değerlendiriyor. Yazı font'ları özel bir veri yapısı olarak saklanır ve yazının istenen her yükseklikte ve ister sabit aralıklı, ister orantılı aralıklı (i, l gibi harfleri daha sıkışık yazmak gibi) yazılmasını mümkün kılar. Her bir font'ta 1'den 255'e kadar karakter tanımlanabilir. Tanımlanan karakter sayısı sabit olmadığı için bu da bir parametre. AMIGA'nın ROM'unda iki font sabit olarak bulunuyor. Bunlar Topaz 8 ve Topaz 9 fontları. Topaz 8, düşük çözünürlükte 40, yüksek çözünürlükte 80 karakterin satır başında görünmesini sağlıyor. Diğer fontta ise bu rakamlar 32 ve 64.

“ Gereken diğer fontlar istenirse

RAM'e yüklenebiliyor veya işi bittiğinde atılabiliyor. ROM'da bulunan Text adlı rutin, gönderilen mesajın ekranın istenen bölgesine yazılmasını sağlıyor. Yazı yazma işlemi üç değişik biçimde gerçekleşebiliyor. Birincisi, karakterin belirtilmiş karakter rengiyle yazılması. İkincisi, karakterin kendisini bir renkle ve o karakterin arka planını da özel bir renkle yazıyor. Üçüncü mod ise komplementi alarak yazıyor. Yani karakterin her noktası kendi arkasına gelen noktanın içeriğini değiştiriyor (EXOR işlemi). Apple Macintosh'ta da olduğu gibi, AMIGA'da da fontlar birkaç değişik stilde kullanılabiliyor. Bu stiller şunlar: altını çizme (underline), yatık (italic), kalınlaştırma (boldface), genişletme (extended). Fakat Macintosh'tan farklı olarak, bir stil kullanılacağı zaman önce font dosyasında aranıyor. Şayet bulunamazsa Macintosh'taki yöntem uygulanıyor ve o stil standart karakter setinden birkaç özel algoritma yardımıyla üretiliyor. 18. SES DONANIMI Başta da belirttiğimiz gibi, AMIGA dört adet, DMA kontrollü ses kanalı içeriyordu. Bu ses kanalları 68000 ana işlem ünitesinden bağımsız olarak çalışıyor.

e SAY SizK KAAN vor Aİ 20 | 01 | ExPANSION 40) » | ! co | RAM | | TİME CLOCK ( | A 1 CART cRosS- RESERVED ROM Fa |

Ses kanalları, gerektiğinde 68000'in kendisi tarafından doğrudan kontrol edilebiliyor. Böyle bir durumda, ses kanalları üzerinde tam anlamıyla kontrol söz konusu. Fakat, bu sefer 68000'i başka işler yapmaktan alıkoyuyorsunuz. Esas kullanılan yöntem ise daha farklı bir yöntem. Sesi elde etmek için gerekli ses DMA kanallarını açarsınız, bu kanal hafızadan bir tablodan çıkarılması gereken dalga türünün bir veya birkaç periyodunu içeren bilgileri alır ve sesi oluşturur. Böylece 68000 ana işlem ünitesi, ses ile

2MEG sız çalışma kabiliyetine sahip oldukları için örneklemeli sesleri verirken bile AMIGA sistemi tam hızında çalışmaya devam ediyor. Örnekler kanallardan verilirken, ses şiddetini değiştirmek veya geri verme frekansını değiştirmek gibi değişiklik olanakları da mümkün. Sistemin ROM kısmında bulunan “ses kontrol rutinleri” sayesinde bu özellikleri daha rahat ve daha yüksek ve kolay anlaşılır bir seviyede kullanmamız sağlanıyor.

Dört adet ses kanalı 0'dan 3'e kadar numaralanmış durumda, bunların çıkışları analog sinyallerine çevrilip ve alçak geçiren filtreler yardımıyla süzülüyor. Daha sonra kanallar ikişerli gruplar halinde (0 ve 3, 1 ve 2) karıştırılıyor ve iki adet, stereo kullanabilen, ses grubu oluşturuluyor. Kullanılan filtrelerin kesim frekansı 5.5 ila 7.5 kHz civarında bulunduğu için daha yüksek frekanstaki sesleri geçirmiyor. Bu yöntem 'aliasing' adı verilen bozulmaları (distortion) engellemekte kullanılıyor. Bu bozulma tipi, genelde düşük hızda örneklenmiş sesleri geri çalarken meşgul olmak zorunda kalmaz. Amiga'da her ses DMA kanalı, kendine ait ses şiddet registeri ve ses verileri (bu veriler her defasında bir word —2 byte olarak alınıyor ve çift adresli bellek birimlerinde bulunması gerekiyor.) göstergeç registeri içeriyor. Bunlardan başka bir de periyod registeri var. Bunun işlevi ses verilerine ait peş peşe iki byte'ın kullanımı arasında geçmesi gereken zaman. Bu register, her 279 ns sürede bir eksiltiliyor. Sıfıra ulaştığı zaman, bir sonraki veri byte'ını kullandırıyor ve ilk başlangıç değeriyle tekrar yükleniyor ki tüm işlemler periyodik olarak sürebilsin. Veri tablosu göstergeci son veri byte'ına ulaştı mı, tekrar veri bloğunun başlangıç adresiyle yükleniyor. Böylece sesin, (örneklenmiş dalga biçiminin) başka kimsenin karışması olmadan devamlı olarak, ta ki tümüyle susturulana kadar çalınması sağlanıyor. Sıfır ve iki numaralı ses kanalları, beraber çalıştıkları diğer kanalı modüle etme özelliğine de sahipler. (Sıfır biri, iki ise üçü modüle eder.) Şayet bir kanal bir diğerini modüle etmek için kullanılırsa, buna ait veriler artık ses örneklemesi için değil de, üzerinde modülasyon yapılan kanalın ses şiddeti ve periyodunu belirlemek için kullanılıyor. Böylece bu değerlerle oynayarak, ya genlik modülasyonu, ya frekans modülasyonu, ya da her ikisini birden yaratabiliyorsunuz.

19. SES YAZILIMI

Sistem ROM'unda dört tip ses altprogramı bulunuyor. İlki, kanal rezervasyon rutinleri. Ses oluşturmak istediğinizde bu altprogramı çağırıyorsunuz, o da size bir kanalı rezerve ediyor ve o kanalı kullanmanızı sağlıyor. Bu arada o kanalın numarasını belirtmiyorsunuz ve hangi numaralı kanalın size verildiğini bilmiyorsunuz bile. Bu yöntemle, aynı anda dört taneden fazla kanal açtıysanız, bunların en yüksek önceliğe sahip dört tanesi gerçek kanalları kullanma imkanına kavuşacaktır. Diğerlerinin gerçekte hiçbir çıkışı olmayacaktır. Ta ki kanallar boşalıp onlara sıra gelinceye kadar veya öncelik değerleri yükseltilinceye kadar. İkinci tip altprogramlar, DMA kontrol programları ile ses DMA kanallarını, register'leri değiştirerek ve ses veri tablolarını oluşturarak kontrol ediyor. Ek olarak, herhangi bir kanalın başka bir programa belli bir durumu belirleyen sinyal biti göndermesini sağlayabiliyorsunuz. Bu da başka bir işlemi tetikleyebilir. Diyelim ki ses kanalı, ses veri tablosunu evvelden belirlenen bir sayıda tekrarladı; bu olay asıl programa, bu sinyal yardımıyla bildirilebilir. Üçüncü tip altprogramlar, oldukça akıllı işlemler yapabiliyor. Bunlar sesin şiddetini, herhangi bir notanın gereksinimine göre değiştirebiliyorlar. Bu altprogramlar dört değişik parametreye gereksinim duyuyorlar. Bunlar, daha evvel de duymuş olabileceğiniz ADSR (attack, decay, sustain, release) parametrelerinden başkası değil. Bu parametreler, sırasıyla sesin maksimum şiddete hangi sürede ulaşması gerektiği; maksimum değerin ne olması gerektiği; bu değere ulaştıktan sonra, notanın esas şiddetine ne kadar sürede düşeceği; bu esas şiddetin ne olacağı; ve nota bitirildikten sonra sıfır seviyesine hangi hızda düşeceğidir. Bu parametreleri bir diyagramda (zaman, ses şiddeti diyagramı) gösterirsek, dört adet doğru parçasına ihtiyacımız olacaktır. AMIGA, bu diyagramı, doğruların eğiminden ve doğruların bitişindeki ses şiddeti değerinden algılıyor. Ses donanımının yaptığı gibi, bu tip altprogramlar da sesin (burada notanın) bittiğini belirten bir sinyal gönderebiliyor. Ses programları kütüphanesinde bulunan bir programdan da bahsetmeden geçemeyeceğiz. Bu “text-to-speech” diye adlandırılan ve yazıyı, konuşmaya çeviren bir program. Bu program ROM'da bulunmuyor ve gerektiği zaman diskten yükleniyor ve işi bittiğinde atılıyor. Yani tipik geçici tipte kütüphane (library) programı. Tabii, isterseniz bu programın, bilgisayar açık kaldığı sürece kalıcı olmasını sağlayabilirsiniz. Gelelim, programın kendisine. Program, kendisine verilmiş herhangi bir İngilizce metni, değişik frekanslarda, vurgularda ve hızlarda okuyabiliyor. Sonuçta meydana gelen konuşma bu programın şimdiye kadar görülen genel konuşma programları içinde, en anlaşılır olanlarından biri olduğunu gösteriyor. Ses biraz fazlasıyla vurgulanmış olarak algılanmasına karşın, kapalı gözlerle dinlenildiğinde bile konuşulan metin olduğu gibi anlaşılabiliyor. Bu tip genel konuşma programlarının yüzde sekseni, bu testi geçememiş olduğunu göz önüne alırsak, AMIGA'nın İngilizceyi oldukça iyi konuştuğunu söyleyebiliriz.

20. INTUITION

Intuition'ın ne olduğunu anlatmaya geçmeden, dilerseniz önce bir iki özel terimi ve kavramı açıklayalım. Önce user-interface teriminden başlayalım. User-interface (kullanıcı arabirimi), kullanıcının bilgisayarla arasındaki bilgi alışverişini sağlayan herhangi sesli, optik veya mekanik aletlerdir. Mouse joystick'e benzeyen fakat çok daha rahat bilgi girişi sağlayan bir alettir. Bununla ekrandaki bir oku herhangi bir yere rahat ve hızlı olarak götürebilir ve üzerindeki iki adet tuşa basarak istediğiniz herhangi bir işlemi seçebilirsiniz. Icon ise herhangi bir olayı, programı, dosyayı vs. simgeleyen bir görüntüdür. Intuition AMIGA'nın kullandığı user-interface sisteminin tümüne verilen addır. Genel hatlar olarak, Macintosh'un yaygınlaştırdığı window'lar, icon'lar ve mouse kullanımı içerir. Buna ek olarak, Intuition, bilgisayarda birçok işi window'larla belirlenmiş bölgelerde yürütmenizi sağlar. Her yapılan iş, kendine ait bir suni terminal (window) açar. Bir programın birden çok window açması da mümkündür. Birden çok işin aynı anda yürütülmesi olayına multitasking (aynı anda birden çok işin yapılması) denir ve AMIGA'nın Intuition'ı böyle bir çalışma tipini de destekler. Aynı anda birden çok programın çalışabilmesine rağmen belli bir zamanda yalnızca bir tanesi kullanıcıdan bilgi girişi alabilir. Hangi işe bilgi gireceğinizi belirlemek için, o işin window'unun üzerine gidip (mouse ile tabii ki) mouse'un tuşuna basarak onu seçmeniz gereklidir. Aynı anda, birden çok çözünürlük ve grafik modunu kullanabilmek için Intuition, screens (ekranlar) kullanılır. Bunlar dikdörtgen şekilli olup genişlik olarak tüm ekranı kaplarlar. Ekranların, çözünürlüğü, renk paletleri, yükseklikleri önceden belirlenmiştir ve üzerlerinde bir veya birkaç window bulundurabilirler. Her ekranın üst tarafında bulunan yatay ve uzun dikdörtgen alan o ekranı tanımlar ve bu alandan tutup, o ekranı aşağı, yukarı hareket ettirebilirsiniz. Kenarlarında bulunan belirteçleri (gadget) sayesinde en öne veya en arkaya

memory”

Keyboard

cu mz

Console device

Sameporı device

Graphics atabilirsiniz. Bütün ekranlar, pull-down menüleri içerir. En üstteki dikdörtgen şerit şeklindeki bölgeye gidip mouse'un sağ tuşuna basarsanız, bu menüler görünür hale gelir. İstediğiniz menünün üstüne gidip, sağ tuşu bırakırsanız bu menü aktif olur. Yeni bir özellik olarak, menülerin iki seviyeye kadar derinlikleri olduğunu görüyoruz. Genelde aynı menüleri, kullanılan programa göre tuş takımından da seçmek mümkün. Geleneksel alışkanlıklarından vazgeçmeyenler de düşünülmüş oluyor böylece!.. Menüleri tasarlarken, programcılarla birçok esnek olanaklar sunulmuş durumda. Mesela, menüler kendilerine ayrılan bölgeden daha geniş görünebiliyor ve grafik içerebiliyorlar. Menüler seçildikleri zaman “check” işaretiyle belirlenebiliyorlar. Menülere ulaşmak için gerekli tuş takımı kombinasyonları (eğer varsa) gösterilebiliyor. Ekranların içinde yer alan window'lar, AMIGA'nın tüm grafik, ses, yazı ve animasyon özelliklerini destekliyor. Intuition'un window'larda işlettiği tüm programlar, kendilerine gerekli grafik, yazı ve renk miktarını belirlemeli veya yeni bir ekran yaratmalıdır. Intuition her türlü grafik, ekran ve window ihtiyacına cevap vermeye çalışır. Üst sınırı belirleyen öğe de hafıza miktarıdır. Başta da belirttiğimiz gibi, programlar yürürken en büyük sınırlama, belli bir anda sadece tek bir window'un kullanıcıdan bilgi alabileceğiydi. Eğer yürüyen program, böylece bir bilgiye gereksinim duymuyorsa, bu sınırlamadan etkilenmeyecektir. Herhangi bir window'u aktive etmek için, ya işaretleme okunu o window'un içine götürüp, mouse'un sol tuşuna bir kere basmak, ya da herhangi bir icon'u götürüp o window'un içine bırakmakla olur. Aktif olan bir window'u kapatmak, ondan bir önceki aktif olan window'u canlandırır (aktive eder). Bir window'un birçok değişik özellikleri olabilir. Bunlar, içeriği yatay ve dikey kaydırma bölgeleri, başlık bölgeleri, winpozisyonunu değiştirme bölgeleri (buralardan, window'u tutup başka bir yere bırakabilirsiniz), window'un derinliğini belirlemek için bölgeler (bunlar yardımıyla, window'u diğer window'ların önüne veya arkasına alabilirsiniz), window'un ölçüsünü belirleyen bölgeler ve window'u kapatma (tüm işlemlerini sona erdirme) bölgeleridir. Intuition, bunlardan başka bir de “backdrop windows” adlı window'ları yaratır. Bunlar, en arkada yer alırlar, hareket ettirilemezler, boyutları ve diğer window'lara göre olan pozisyonu değiştirilemez. Tüm uygulama programları, bu window'un ihtiyaçlarından ve içeriğinden sorumludurlar. Normal window'lar bu window'un önünde yer alırlar. Örneğin bir çizim programı, asıl çizim alanı olarak bu alanı kullanır. Diğer window'ları da renk paletini göstermek veya buradan renk seçimine olanak vermek için kullanır. Herhangi bir window açıldığında, alt tarafında kalan ve görünmez hale gelen bilginin dikkate alınıp alınmaması, programcı tarafından belirlenebilen bir öğedir. (Tabii, böyle bir durumda, o window daha fazla hafıza harcar.) Programcıya sunulan başka bir seçenek de “super bit map” olayı. Burada window'un içinde window'dan büyük bir cismi veya alanı görüntülemek söz konusu. Intuition gösterim sırasında yalnızca window'a sığacak kadarını gösterir. Window'un merkez noktasını kaydırarak, veya ebatlarını değiştirerek, söz konusu alanın diğer bölgelerini görmek mümkün. Programcıların karar vermesi gereken başka konular da, window'un nerede görüneceği, içinde hangi renklerin kullanılacağı, window'un içeriği ile ilgili bir başlık içerip içermeyeceğidir.

21. YARDIMCI EKRANLAR

Kullanıcının belirttiği ekranlardan başka yardımcı ekranlar da mevcuttur. Bunlar, işletim sistemi tarafından ğer, işletim sistemini yeterince iyi biliyorsanız, AMIGA'da hiçbir işiniz yarım kalmaz.

Requester (talep eden) tipi yardımcı ekranlar, sizden mouse veya tuş takımı yoluyla bazı bilgileri girmenizi ister. Normalde, işinize devam etmeniz için, requester ekranı içindeki OK, CANCEL vs. yazan bölgeye gidip mouse'un sol tuşuna basıp, işletim sistemini haberdar etmeniz gerekir. Fakat siz gene de başka bir window'a gidip başka bir işi yürütebilirsiniz. İlk ekrana geri döndüğünüzde ise o requester ekranını gene orada bulursunuz. (Mesela, oradaki programın bir disketin içindeki bir programa ihtiyacı oldu. O yüzden o disketi sizden isteyecektir. Fakat, o sırada yürümekte olan başka bir programın o diskete ihtiyacı olmadığı için onları sorunsuz olarak kullanmanız gayet doğal bir olay. Fakat, talepte bulunan programı kullanmaya devam etmek için onun isteklerini yerine getirmeniz gereklidir. İşletim sisteminin requester ekranlarını dileyen programcı, kendi programından da kullanabilir. Örneğin: “Please Insert Disk (Lütfen XXXXX Diskini Takın!)” requester'i. Özel bir requester kullanmak isterse, belirlemesi gereken birçok şey vardır. Bunlar “gadget”ler olabilir (aşağıda anlatılmıştır), requester'in yazısı olabilir, veya istenirse elde çizilmiş ufak bir grafik parçası olabilir. Diğer bir tip özel ekran da, alarm ekranlarıdır. Bu ekranlar oldukça önemli bilgiler taşırlar ve öncelikle bunların isteği yerine getirilmelidir. İki tip alarm vardır; birincisi “recovery” (kurtarıcı alarm) adı alır ve derhal tepki ve çözüm bekler. Diğeri ise “dead-end alerts” adını taşır ve artık yapılacak bir şey kalmadığını ve sistemin “crash” ettiğini gösterir. Bunlara cevap verildikten sonra, sistem kendiliğinden resetlenir (ilk açılış durumuna döner) veya seri porta bağlı bir terminal yardımıyla sistemi kurcalamanızı sağlar. Eğer, AMIGA'nın işletim sistemini yeterince iyi biliyorsanız, AMIGA'da hiçbir işiniz yarım kalmaz, çünkü kilitlenmiş bir AMIGA'yı bilinçli olarak kurcalayıp yeniden kaldığı yerden devam ettirmek, sanıldığı kadar da zor bir iş değildir. Ekranlar, window'lar, requester ekranları ve alarm ekranlarının hepsi gadget denilen çok basit bilgi giriş araçlarını kullanırlar. Sistem gadget'leri, window ebatları belirleme gadget'leri, window'u ön veya arka plana alma gadget'leri, window kapatma gadget'leri olabilir. Programcılar, gerektirdikleri için gerekli gadget tiplerini edebilirler. Bunların şeklini, rengini, üzerindeki seçim bölgesini, yazısını, hafızada kaplayacağı bölgeyi ve gadget'in nasıl davranacağını belirlemek gereklidir. Sistem gadget'lerinden ayrı olarak, programcı, mantıksal, string, sayısal veya orantı gadget'lerinden birini seçebilir. Mantıksal gadget'ler DOĞRU/YANLIŞ gibi durumlar alabilir veya yalnızca seçildikleri zaman sonuç gönderirler. String gadget'leri, tuş takımlarından bir string (RETURN ile biten karakterler dizisi) alır. Sayısal gadget'ler tuş takımından bir tamsayı girilmesini bekler ve girilen bilgiyi çağıran programa iletir. Orantı gadget'leri bulundukları pozisyonun, üzerinde bulundukları eksene (yatay, düşey) olan oranı ile ilgili bilgi iletir. Bunların kullanımına örnek olarak, ebat olarak içeriğinden küçük olan bir window'un merkez noktasını kaydırmak için kullanılan mekanizma verilebilir. (Bunun ne olduğunu anlamak için, AMIGA'nın üzerinde deneyin en iyisi!).

22. WORKBENCH

Workbench, intuition'un içerdiği, wimp (window icon mouse pull-down menu) sistemi ile çalışan bir komut arabirim programıdır. Workbench, dört renkli, 640x200 grafik çözünürlüklü bir ekranda çalışır. Aynı zamanda hem basit bir ekrandır, hem de bir uygulama programıdır. Ekran olarak disketleri icon olarak görüntüler; bunları açabilir, içindeki dosyaları icon'larıyla çağırabilmenizi sağlar. Uygulama programıdır, çünkü kendi elemanlarını kullanır (workbench objects) ve intuition window'larını kullanarak mesaj verir. AMIGA'yı ilk açtığınızda workbench içindeyse otomatik olarak çalışır. Workbench kütüphane programları kullanılarak, workbench'in fonksiyonlarına kendi programlarınızda da erişebilirsiniz. Workbench'te kullanıcı (hepsi icon'lar ve mouse'larla sembolize edildiği için), diskleri, kullanacağı araçları, projelerini (yapacağı veya yaptığı herhangi bir işi), çekmeceleri (drawer, yapılan işleri saklamak için kullanılır), not defterini ve çöp kutusunu (yukarıdakilerden bazılarını atmak için kullanılır, fakat çöpe atılan şey kaybolmaz, gerektiğinde geri alınabilir, aynı şekilde, çöpe atılan bir şey için ayrılmış hafıza alanı boşalmaz, kısacası çöp kutusu, o şeyin sadece icon olarak görünmesini engeller) açabilir, kapayabilir. Herhangi bir aracı AMIGA terminolojisinde herhangi bir uygulama programı bir “araç”tır) açmak, ekranda o aracı simgeleyen bir window'un açılmasına neden olur. Araçlar (uygulama programları) çalışırken projeler oluşturur. (Mesela, kelime işlemci programı aracımız olsun; bununla yaratılmış olan döküman dosyası bizim projemizdir.) Bir aracı açtığımızda, otomatik olarak bu araca ait tüm projeler de, araç window'u içinde listelenir. Tek başına sadece bir projeyi açarsanız, ona ait uygulama programı da (araç) otomatik olarak yüklenir. Workbench, genişletilmiş seçim (extended selection) olanakları da sağlamakta. Mesela bir kelime işlemci paketi ile üç dökümanı seçtiniz. Kelime işlemci çalışırken, bu üç dökümanla, seçtiğiniz sırada çalışacaktır. Çekmeceler (drawer) kendileri bir icon olup, workbench'in diğer tüm elemanlarını içerebilirler. Bunlar, araçlar, projeler veya diğer çekmeceler olabilir. Bir çekmece açıldığında, içeriği bir window'la ve içindekiler birer icon'la gösterilir. Bir çekmecenin içine bir başka elemanı daha almak istiyorsanız, o elemana ait icon'u tutup açılmış çekmecenin window'unun içine bırakın, veya o elemanı çekmeceyi kapalı şekilde gösteren icon'un üstüne götürün, çekmece o elemanı alacaktır. Bir elemanı yok etmek is-

AMIGA öncüllerinden farklı özellikler taşıdığından terminolojisi oldukça farklı ve yadırgatıcı kavramlara sahip.

tiyorsanız onun iconunu alıp çöp kutusu iconunun içine bırakın. Aslında çöp kutusu da bir tür çekmecedir. Fakat, diğer çekmecelerle karıştırılmasın diye çöp kutusu şekli verilmiştir. Not defteri (clipboard, aslında bu kelime yaptığı işlemi tam olarak açıklayamamaktadır) özel bir workbench elemanıdır ve araçlar arasında bilgi alışverişini sağlar. Not defteri, en son kullanılan yazı, grafik veya verileri RAM yapısında bir dosyada saklar (eğer dosya RAM'e sığmayacak kadar büyükse, diskette saklanır). Not defterini kullanarak, birçok program ve araç arasında çok hızlı bilgi transferi sağlayabilirsiniz. Workbench, bunlardan başka PREFERENCES adlı bir program içerir. Bunun yaptığı, mouse ve tuş takımının algılama süratini, çevresel birimlerle baud-rate olarak haberleşme hızını, mouse'un hareket ettirdiği okun hızını, monitör tipini, tuşların tekrar hızını, bağlı olan yazıcı pini, modem tipini, ekranın büyüklüğünü, ekranın monitör üzerindeki pozisyonunu, kullanılabilecek maksimum renk sayısını, ekran başlıklarını ve normalde kullanılan yazı fontunu ayarlamanızı sağlıyor. Preferences programı, ayrıca CLI (command line interface) adlı, tuş takımı yardımıyla AMIGA-DOS emirlerini algılayıp uygulayan, programa ulaşmanızı sağlıyor. CLI, Workbench'in içinde kendine ait bir window açıyor ve standart dökümanlarla CLI hakkında pek bilgi bulunmuyor. Bu yüzden normal workbench disketinde ona ait bir icon yer almıyor. CLI'a ait icon, ancak Preferences adlı programda CLI-ON pozisyonuna geçerseniz, görünür hale geliyor. Emirleri Microsoft'un MS-DOS işletim sistemi emirlerine oldukça benziyor. Bu emirlere örnek olarak, directory'leri (dizinleri) görme, programları çalıştırma, giriş ve çıkışı yeniden düzenleme gibi işlemleri verebiliriz. Kısacası CLI, kullanıcının Workbench'in altında kalan işletim sistemine ulaşmasını ve ona doğrudan hitap etmesini sağlıyor.

23. ÖNEMLİ NOTLAR

Bu yazıda ROM rutinleri diye bahsedilen altprogramlar AMIGA 1000 modelinde KICKSTART disketinden, özel bir RAM bölgesine yükleniyor. Daha sonra, bu bölge donanım seviyesinde, yazılmaya karşı korunuyor. AMIGA 500 ve AMIGA 2000 modellerinde, KICKSTART 1.2 işletim sistemi 256 KB'lık ROM'da sabit olarak yer alıyor. Kabul edersiniz ki, AMIGA gerek yazılım gerek donanım olarak kendisinden önceki diğer bilgisayarlardan oldukça farklı özellikler ve kavramlar içeriyor. Bu yüzdendir ki AMIGA'nın terminolojisi oldukça değişik ve ilk görüldüğünde yadırganıyor. Bu terminoloji henüz, anlamını koruyarak Türkçeye çevrilecek cinsten olmadığı için çoğu yerde orijinal kelimeleri kullandık ve bunların kısa bir açıklamasını da beraberinde vermeye çalıştık. Sonuç olarak, burada ortaya çıkan inceleme, AMIGA'yı gerçekten de teknik açıdan ele almasına rağmen tanıtıcı bir yazıdan çok tanıyan kişilere yol gösterici bir niteliğe büründü. AMIGA'yı tanımak isteyen bir kimseye bu yazının faydalı olabilmesi o kimsenin en azından AMIGA'yı görmüş ve biraz kurcalamış olması gerekiyor. Daha sonra bu incelemeye bir kere daha göz atarak gördüğü sistemin nasıl çalıştığı hakkında bir fikir sahibi olabilir.