TEKNİK AÇIDAN AMIĞA 14. SPRITE Sprite adı verilen grafik elemanı, bit noktalı bir gösterim elemanıdır. Pozisyonunu değiştirmek için, sade- ce sol üst köşesinin koordinatını ye- niden vermek yeter. Sprite'lar, gö- rüntü alanlarından bağımsızdır ve ve- rilen önceliğe göre, bunların önünde veya arkasında görünebilirler. AMIGA'nın, donanım olarak be- lirlenmiş sekiz adet sprite'ı mevcut- tur. 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; bu- nun sonucunda dört renk kombinas- yonu yaratılır. Bunlar, üç renk ve saydamlıktadır.) AMIGA'nın sprite'- ları, 16 düşük çözünürlüklü nokta ge- nişliğinde ve herhangi bir yükseklik- te olabilir. Her bir sprite çifte, üç de- Bişik renk palet değerini paylaşır. (Örneğin, O ve |'inci sprite'lar 17, 18 ve 19 numaralı renk register'lerini, 2 ve 3'üncü sprite'lar 21, 22 ve 23 nu- maralı renk register'lerini, vs. kulla- nırlar.) Böylece 8 sprite, toplam ola- rak 12 değişik rengi kullanır. Çift olan sprite'lar birbirleriyle birleştiri- lebilirler. (Mesela, 0 ve 1 numaralı sprite'lar.) Bunun sonunda dört bit yüzeyi derinlikte sprite'lar elde ede- riz. Birleştirilmiş sprite çifti 17'den, 31'inci renk register'ine kadar 15 de- ğişik renk kullanabilir. AMIĞA'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 ve- rilerini ekrana siz gönderirsiniz. (Ta- bii ki bu yöntem oldukça zor kulla- nımı Olduğu için pratikteki kullanım değeri sıfır) ikinci yöntem otomatik yöntemdir. Bunda, sprite'ların DMA kanalını aktive edersiniz. Sprite dev- 36 resi hafızada belli bir yerde bulunan ve sprite'ın pozisyonunu ve satır sa- tır tanımlarnmış şeklini içeren veri ya- pısını alır ve çizer. Bundan başka, sprite'ın tanımını, daha o sprite çizi- lirken değiştirmeniz mümkün. Spri- te devresi, sprite pozisyon ve tanım- larından oluşmuş bir listeyi kabul edi- yor. Burada tek sınırlama, bir tanım- lamanın sonu ile, bir diğerinin başı arasında en az bir video satırının bu- lunması. Dikkatinizi şuna çekmek is- terim ki, burada COPPER'ı devreye sokmak gerekmiyor. (Tabii, Copper devreye girince söz konusu işlem oto- matik 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 doldur- mak ve görüntü alanının içindeki dik- dörtgen bölgelerin işlenmesi ve taşın- masıdır. Dikdörtgen blokları işlerken blit- ter, ana işlem ünitesi ile yapıldığı za- man ç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 ge- rek yok. Yaptığı işlemlere örnek ola- rak 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 bir- kaç 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 dol- durmak (bu, blitter'in alan doldurma kabiliyetinin temel ilkesini oluşturu- yor). Blitter'i, benzer özel işlem ünitele- rinden 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: CANBUCO), CANBU-O), (A)CB(O), seeee CA)CBMUCO). Elde edeceğimiz sekiz terimi 256 değişik kombinas- yonla (OR işlemi) birleştirebiliriz. Bunca matematiksel safsatanın sonu- cu özetle şudur: Mesela, bir araba gö- rüntüsünü, yol görüntüsünün üzeri- ne otomatik olarak taşıtabiliyoruz. Araba şeklinin dışındaki yerlere hiç- bir şey olmuyor ve arabanın camla- rından arka taraf da görünüyor. Bu işlemleri bir program gerçekleştirsey- di, 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 O'larla veya 1'lerle veya belir- lenmiş bir şekil kullanarak doğruyu oluşturur. Bir bit genişliğinde doğru- lar 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 para- metrelerini 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üz- de fazla büyütmemek lazım. Kaldı ki, tüm bu işlemleri ROM'da bulunan grafik altprogramları hallediyor za- ten. 16. ANİMASYON ALTPROGRAMLARI Amiga'nın rom'unda bulunan ani- masyon (canlandırma) altprogramla- rı, kişisel bilgisayar piyasasının gör- düğü en karışık renkli animasyon ola- yı için bir taban oluşturuyor. Örnek olarak ROBO-CITY adlı demo prog- ramını verebiliriz. Bu programda, beş adet çizgi film tipi yaratık ekranda