TEKNİK AÇIDAN AMIGA

Bilgisayarın bir işi halletmesi için iki yöntem vardır; işi yazılımla yapmak veya donanımla yapmak. İlki sınırsız bir esneklik sağlar, ikincisi ise yüksek hız. Apple firmasının ürünü olan Macintosh adlı bilgisayar, aşağı yukarı her şeyi yazılımla yapıyor. Bu yüzdendir ki kullanıcılar Apple'dan, Macintosh'un hızını artırmasını, renklerini fazlalaştırmasını ve fiyatını düşürmesini istiyorlar. COMMODORE firması 1985 Ağustos'unda, bu gelişmeleri kullanıcıya ulaştıracağı sözüyle yeni bir modelini piyasaya sürdü. Bu modelin adı AMIGA PERSONAL COMPUTER'di ve muhteşem grafik özelliklerine sahipti; hız olarak üstündü, disk ve RAM hafızası olarak Macintosh'un iki katıydı ve Macintosh'dan birkaç yüz dolar daha ucuzdu. Diğer teknik özellikler de dikkat çekiyordu; 256 Kilobyte'lık, 68000 ana işlem ünitesinin kodlarından oluşmuş işletim sistemi, AMIGA'nın multitasking, grafik, stereofonik örneklemeli ses ve animasyon özelliklerini olduğu gibi ortaya koyuyordu.

1. GENEL ÖZELLİKLER

Adı: A 1000 Amiga Personal Computer

Pazarlayan Firma: Commodore International 1200 Wilson Dr. West Chester, PA 19380 (215) 431-9100

Ana İşlem Ünitesi: Motorola 68000, 16/32 bit microprocessor, 7.15909 MHz Ana Hafıza: 256 KB dinamik RAM, içeriden 512K'ya kadar genişleme, dışarıdan

AYHAN KALAYLIOĞLU

8.5 MB'a kadar genişleme olanağı. Ayrıca 256 KB'lık WCS RAM'i. ROM: İlk modellerde 192K. Yeni modellerde 64K. Öteki kısım KICKSTART Disketinden “BOOT” ediliyor. Grafik: 5 Mod (320x200 nokta 32 renk, 320x400 nokta 32 renk, 640 x 200 nokta 16 renk, 640x400 nokta 16 renk, hold-and-modify mod'u). İki ayrı ekranı üst üste gösterip, bağımsız olarak kaydırabilme. Renkler, 4096 renk bulunduran bir renk paletinden seçiliyor. Ses: Dört bağımsız ses kanalı. Stereo çıkış verebilme. Örneklemeli sesler. 68000'in kontrolü altında çalışan, ses DMA kanalı. Floppy Disk: Ön panele monte edilmiş 3.5 inch'lik çift taraflı disk drive. Disket başına 880 KB, 160 track, her biri on bir adet 512 Byte'lık sektörlerden oluşmuş. Sürücü donanımı bir kerede bir track'ı olduğu gibi okuyabilir. Tuş Takımı: 89 tuşlu, yan tarafta aritmetik tuş takımı, fonksiyon ve cursor tuşları. Tuş takımı başlı başına bir bilgisayar olduğundan her tuşun inmesini de, çıkmasını da ayrı ayrı algılayabilir.

* Aynı anda iki ayrı tuşu algılayabilme.

8 tuşa kadar type-ahead tampon hafıza, Genişleme Yuvaları: Seri disk port'u. Buraya peş peşe üç disk sürücü daha bağlanabilir, maksimum 500000 bps haberleşme hızı. Programlanabilir paralel port, normalde CENTRONICS compatible programlanmış. Genişleme BUS'unda her türlü çevresel birim ve hafıza genişlemesi için yeterli sinyal var.

User-Interface (Intuition): Multitasking ile ayrı window'lardaki birçok programı aynı anda yürütebilme. “Window-Icon-Mouse-Pull-Down-Menu”, kısaca WİMP sistemi ile çok rahat kullanım. Ekranda aynı anda görünen değişik grafik modundaki parça ekranlar. Beraberindeki Programlar: Workbench: DOS işlemlerini window ve mouse ile kullanabilmeyi sağlıyor. Extras: Basic yorumlayıcısı, demolar ve ilginç birkaç kullanım programı burada yer alıyor. AUDIO ve VİDEO Çıkışları: Stereo Audio jack fişi. RGB analog, RGB digital ve NTSC composite video çıkışı. Diğer: 68000 ile paralel çalışan üç adet özel işlem grafik, ses, çevresel birimlerin I/O kontrolü, 19 bitlik adres kanalına bağlı tüm çip'leri ve iki butonlu optik-mekanik mouse'u vs. DMA kanalıyla kontrol ediyorlar. İsteğe Bağlı: Ekstra disk sürücüler, Harddiskler, hafıza genişleme modülleri, modem, MIDI-Interface, frame grabber, DIGI-VIEW, genlock interface.

2. SİSTEMİN TANIMI

Yukarıda, AMIGA'nın genel özelliklerinin özetini okudunuz. Bunlara birkaç şey daha ekleyelim. AMIGA'nın üzerinde genişleme kartlarını takmak için yuvaları yok. Bu işlem için ayrı bir ünite alıyorsunuz. Mesela aletinizin hafızasını 8 Megabyte artırmak için RAM kartlarını bu üniteye takıyorsunuz. AMIGA'nın işletim sistemi ilk açılış sırasında bu üniteyi ve üzerindekileri kontrol ediyor. Böylece otomatik olarak bu kutunun içeriğine göre, sistemin konfigürasyonunu her defasında yeniden ayarlıyor.

A500 Block Diagram

3. SİSTEMİN YAPISI

AMIGA mimari açıdan kendine özgü bir yapıya sahip. Bunu fonksiyonel blok diyagramda da görebilirsiniz. Üç adet özel işlem ünitesi, merkezi işlem birimi 68000'i birçok bilgisayarın verimini düşüren işlemleri yapmaktan kurtarıyorlar. Fakat bu diyagram, adres ve veri kanallarının tüm sistem arasında paylaşılmasının yarattığı karmaşık görüntüyü yansıtmıyor, genel bir blok diyagram sadece. AMIGA'nın 25 DMA (direct memory access) kanallarında gerçekleşen, veri taşıma ağırlıklı ve 68000'i meşgul etmeyen işlemler, ayrıca işletim sisteminde yer alan multiprocessing işlemlerini düzenleyen alt programların hepsini daha detaylı olarak ileriki bölümlerde inceleyeceğiz.

4. ÖZEL İŞLEM BİRİMLERİ

AMIGA'da DMA, grafik, ses ve (input/output- giriş/çıkış) kontrolünü yapan üç adet özel işlem birimi, JAY MINER tarafından dizayn edilmiş. Her ne kadar biz bu çip'leri tek tek tüm detaylarıyla inceleyeceksek de kısaca özetlemenin faydası olacağını umuyorum:

• İlk çip “animation custom chip” adında. Görevi ise oldukça çok. Mesela DMA kanallarının kullanılmasında trafik polisliği yapıyor. İçinde COPPER adlı bir co-processor barındırıyor, bu cihazın görevi sistemin içindeki tüm birimleri, ekranı çizen elektron ışınıyla senkronize etmek. Bu çip'i kendine barınak seçmiş biri daha var. Adı BLITTER, görevi grafik ekranında hızlı olarak düz çizgiler çizmek, belli bir renkle bir alanı doldurmak ve dörtgen şekilli bilgi bloklarını işlemek ve taşımak. • İkincisi çipin adı “graphic custom chip”. Görevi görünen ekranı yaratmak. Becerisi ise aynı anda iki bağımsız ekranı ve sekiz sprite'ı göstermek. (Sprite deyimini COMMODORE 64'ten hatırlayacaksınız.) • En son özel işlem biriminin adı “peripheral sound chip”. Dört kanal sesi çıkaran, disk controller'ı içeren, interrupt'ları kontrol eden, seri port'a ve mouse/joystick port'una arabirimlik eden ünite bu; ve bütün bu işlemleri DMA kanallarını kullanarak yapıyor, bu yüzden ana işlem ünitesinin hızı bu işlemler yüzünden düşmüyor.

5. INTERRUPT'LAR VE DMA

AMIGA sisteminde bütün çevresel birimleri interrupt'larla sürülüyor. Yani, merkezi işlem birimi 68000, çipleri “bilgi hazır mı?” diye beklemiyor; tam aksine, diğer çipler bilgi hazır olduğunda interrupt yaratıp 68000'in bilgiyi almasını istiyorlar. Böylece ana işlem ünitesi, çevresel birimlerle sadece gerektiği zaman ilgileniyor. Sonuçta 68000 maksimum kapasitede kullanılıyor. Tüm çiplerin yarattığı 15 değişik kaynaklı interrupt sinyalleri, çevresel birim/ses çipinde toplanıyor ve 68000'in altı interrupt seviyesine çevriliyor ve bu sinyaller 68000'e gönderiliyor. 68000'in bir de yedinci interrupt seviyesi var ki buna NMI'de (non-maskable interrupt — önlenemez interrupt) deniyor. Bu seviye gelecekteki kullanımlar için rezerve edilmiş durumda. Şu anki sistemde kullanılmıyor. 68000 ana işlem ünitesi adres ve veri kanalını, kendinden başka 25 DMA kanalıyla da paylaşıyor. AMIGA'nın DMA sistemi iki nedenden dolayı çok hızlı çalışıyor. Birincisi Her aletin kendi DMA kanalı var, böylece DMA kanallarını ortak kullanmadan doğabilecek gecikmeler önleniyor. İkincisi: DMA işlemleri 68000'in işlemleri arasına öyle düzgün serpiştirilmiş durumda ki; 68000 neredeyse DMA olayını hissetmiyor. (Çok yoğun grafik ve ses işlemleri dışında.)

DMA özel işlem birimleri ve RAM hafızası arasında gerçekleşirse, 19 bitlik register-address bus sayesinde (blok şemaya bakın) bilgi transferi iki kat hızlı oluyor. Hafızanın adresini adres kanalına ve register'in adresini register adres kanalına koyduğumuz anda DMA sistemi hafıza adresinin doğrudan register'e geçmesini sağlıyor. Bu işlem, DMA yerine 68000'le yapılsaydı; yarı hızda yürürdü. Çünkü 68000 önce veriyi kendine okuyup, sonra register'e yazacaktı.

6. LIBRARY'LER VE DEVICE'LAR Sistem yazılımı, kullanıcının Kickstart ROM'undaki fonksiyonlara ulaşabilmesi için library'ler içeriyor. Bunlar belli bir düzenle, işletim sistemindeki altprogramların maksimum esneklikle kullanılabilmesini sağlayan bir metod. Library'ler kalıcı veya geçici olabilirler ve belleğin herhangi bir adresinde kullanılabilirler (RAM bellekteyseler tabii ki). Gerek altprogramı, gerekse verilerini 68000'le indirect reference with offset (belli bir ofsete, başlangıca göre dolaylı referans) yöntemiyle çağırabiliriz. (Bu yöntemin ne olduğunu öğrenmek için 68000'in Assembler'ını öğrenmek zahmetine katlanamayacaklar için; bunun maksimum esnekliği sağladığını belirtelim.) Böylece herhangi bir compiler'da (veya assembler'da) bir library'yi asıl adresini bilmeden kullanmak mümkün. (Aslında sistemde bulunan tüm kod'a, alette yalnızca tek sabit adresi bilip referans etmek olası, ve bu da isteyen her programa sağlanabilecek bir bilgi.) Device, library'den türemiş bir kavram. Görevi ise I/O (giriş/çıkış) aletlerine üniform ve esnek bir şekilde erişmeyi sağlıyor. Dikkat ettiyseniz, tüm sistemin tasarımında, esnek kullanım olayı ön planda tutulmuş. Gerçek bir “multitasking” işletim sistemindeki tüm işlerin birbirine karışmadan yürümesi için vazgeçilmez bir ölçü bu.

7. EXEC SİSTEMİ

Exec sistemi, AMIGA'da hayati önemi olan çok önemli altprogramlardan oluşmuş. Yaptığı işler, listeler ve veri kuyrukları (queue) yaratıp işlemek, yapılan işleri önceliklerine göre kontrol etmek ve yürürlüğe sokmak, interrupt'ları işlemek ve servis vermek, çevresel bilgi giriş/çıkışını düzenlemek ve diğer fonksiyonları yerine getirmektir. AMIGA'da list-node adı verilen veri yapısı çok önemli bir yer tutar. List-node, bulunduğu listedeki, kendinden önce ve sonraki node'lara pointer (göstergeç) içeren veri bloğudur. Exec'in içindeki birçok altprogramlar yardımıyla, kullanıcıyı zahmete sokmadan bu tip listeler oluşturmak, araya bir liste sokmak veya aradan bir liste çıkarmak mümkündür. (Burada sözü edilen programlama yöntemi sayesinde hafızada parça parça bulunan birçok bilgi parçasını, -bunlar veri veya program olabilir-, birbirleriyle birleştirmek veya aralarındaki ilişkiyi kesmek mümkün olmaktadır. Mesela, bir program çalışırken kullandığı bellek parçaları birbirlerinin hemen arkasından gelmeyebilir. Arada diğer programların verileri bulunabilir. Birkaç programın aynı anda çalıştığı zaman belleğin karmakarışık bir yapıya bürüneceği kesin! Fakat tüm programlar, EXEC sistemi sayesinde belleği kullanıp, onun gönderdiği parametrelere uyarlarsa hiçbir sorun çıkmıyor.) EXEC'in içindeki diğer bir grup altprogramlar da yapılacak işleri düzenlemenizi sağlıyor. Yapılan işler işin tipi ve önceliğine göre ayırt ediliyorlar ve bunlar yüksek öncelikliden alçak öncelikli olana doğru işleniyorlar. AMIGA'da birçok program veya işlem iş (task) olarak muamele görür. İşlerin önceliği için ayrılmış alan, -128 ile +127 arasında bir sayı içerir. Bu sayı işlerin işleneceği sırayı belirler. Aynı öncelikli işlemler, AMIGA'nın zaman dilimlerinden daha evvelden belirtilmiş bir bölümünü kullanarak işlenirler. O anda yapılan işlemden daha yüksek öncelikli bir işlem sıraya girerse hemen o anki işlem kesilir ve yüksek öncelikli olanı işleme konulur. Her işlemin durumu, register'leri ve bilgi yığını ayrı olduğu için, o işlem kaldığı yerden devam edebilir. Bunun sağladığı bir avantaj da, beraber yürüyen programların birbirini nasıl etkileyecekleri gibi bir sorunun bulunmayışı. Çünkü yürüyen her programın bütün ihtiyaçları öyle düzenli gideriliyor ki, tüm sistemde tek kendi çalışıyor zannediyor. (Burada da bir örnek verme gereksinimi duyuyorum; diyelim ki bir program kullanıcıdan herhangi bir uyarı bekliyor. Böyle bir durumda o program bir bakıma donuyor ve tüm fonksiyonları duruyor. Ta ki istediği bilgi ve uyarıları alana kadar. Sağlanan avantaj ise, bekleme durumları içeren programların bu durumlarda sistem zamanının hiçbir mikrosaniyesini(!) ziyan etmemeleri.)

8. SİSTEM BUS'INI PAYLAŞMA

Düşünün ki AMIGA aynı anda diski okuyor, dört kanallı müzik çalıyor, 16 renkli düşük çözünürlüklü grafik gösteriyor, üstünde de sekiz adet sprite, fakat gene de 68000'in hızında görünür bir düşme olmuyor. Tabii ki, böyle bir şeyin gerçekleşmesi ancak sistem bus'ının (taşıtının) çeşitli alt sistemler tarafından paylaşılmasıyla olur.

AMIGA'nın 68000 ana işlem ünitesi (herhalde artık ezberlediniz!) 7.15909 MHz hızında çalışıyor. Aynı anda, RAM bellek elemanları ise bunun iki katı hızda çalışıyor. 68000'in birçok işlemleri bus'ı kullanmak ve kendi içinde işlemler yapmak arasında gidip geliyor. Tabii bu arada bellek elemanları tüm hızda çalışıp diğer zamanlarda boş kalmakta. Bus'ın paylaşılmasında senkronizasyon olayı elektron tabancasının bir yatay çizgi çekme süresi (yaklaşık 64 mikrosaniye) içinde gerçekleşiyor. Bu süre her biri 280 nanosaniye uzunluğunda 226 hafıza erişimi içeriyor. COPPER, BLITTER ve 68000 çift sayılı darbeleri (0, 2, 4,..) kullanıyorlar. Tek sayılı darbelerin dördü dinamik RAM'leri refresh eden DMA kanalına, üçü disk DMA'sına, dördü ses DMA'sına (dört kanal ses için yeterli), onaltısı sprite DMA'sına (sekiz sprite'a yetiyor) ve sekseni ise ekranı çizen bit-plane DMA'sına (16 renkli düşük çözünürlüklü grafik için yeterli) kullanılıyor. Her çip'in kendi içindeki DMA devreleri kendi zamanı geldiğini anlayıp kimseyle karışmadan bus'ı kullanıyor. Çoğu zamanlar COPPER ve BLITTER aktif değildir ve 68000'in tam hızında çalışmasına izin verirler. Aslında 68000'in bazı emirleri bus'ı tek sayılı zamanlarda kullanmak isterler. (Her yerde olduğu gibi, 68000'in komutları arasında da uyumsuzlar var demek ki...) Böyle durumlarda; basit bir senkronizasyon olayıyla 68000'in boşluk bulana kadar beklemesi sağlanır. Yukarıda anlatılan paylaşım olayı bazı durumlarda değişebilir. Diyelim ki düşük çözümlemede dört bitplane'den fazlasını kullandınız veya yüksek çözümlemeli ekranda iki bitplane'den fazlasını kullandınız; böyle durumlarda ekranı çizen bit-plane DMA'sı 68000'in darbelerinden bir kısmını çalacaktır. Bundan başka gerek COPPER, gerekse BLITTER, 68000'den daha yüksek önceliğe sahiptirler. Bunlar, kendilerine gereken veriyi 68000'i beklemeden daha önce alırlar. Blitter çalıştığı anda şayet 68000 sıkışık durumda kalırsa bunu blitter'e bildirir ve birkaç darbe ödünç alır; daha sonra blitter kontrolü gene eline alır. Böylece blitter çalışırken bile 68000 birkaç darbe çalışabilme imkanına kavuşur. Gerektiğinde bu durum da ortadan kaldırılabilir. Blitter'in register'lerinden birinde yer alan blitter priority (öncelik) bitini yaktığımız anda blitter işi bitene kadar 68000'e hiçbir şans vermez. Aslında bu olay göründüğü kadar kötü değil; düşünün bir kere, şayet blitter olmasaydı, ve onun işini 68000 yapmak zorunda olsaydı, AMIGA'nın gücü gerek hız, gerekse verimlilik açısından oldukça düşecekti (onda bir gibi bir oranda).

9. MULTITASKING

Başta dedik ki AMIGA 'multitasking' (aynı anda birden çok iş yapabilen) bir alet. Basit olarak ele alındığında bu demek ki, AMIGA aynı anda sprite'ları hareket ettirebilir, diski okuyabilir ve müzik çalabilir. Daha ciddi olarak ele aldığımızda değişik window'larda (pencere) başka başka programların aynı anda çalışmasıdır MULTITASKING. AMIGA'nın multitasking yapabilmesi biraz önce gördüğümüz birkaç özelliğine dayanıyor. Bunlar; interrupt değerlendirme yapısı ve EXEC'te bulunan multitasking'e imkan veren altprogramlar. Çevresel birim/ses çipi tarafından yaratılan ve yönlendirilen interrupt'lar, task'lardan (işlerden) birbirine geçmeyi sağlar. Diyelim ki herhangi bir çevresel birimin sinyali çevresel birim/ses çipine ulaştı, o da bunu 68000'e iletti ve gerekli interrupt oluştu. Böylece o çevresel birime ait interrupt altprogramı yürütülmüş olur. Interrupt altprogramı ya çevresel birimin isteğini hemen yerine getirir, ya da bunun için yeni bir task (iş) belirler, daha sonra da altprogram sona erer. Her iki halde de işlemin sonunda AMIGA “task rescheduler” (işleri yeniden düzene sokma) programını çağırır. Böylece sadece gerekli olan işlerin sistemi kullanabilmelerini sağlamış olur.

10. COPPER

Copper, animasyon (canlandırma) çipinin içinde bulunan ve kendi prog-

AMIGA'nın çeşitli ünitelerinde bilgisayarın donanım kaynaklarının tam kullanılması ve boşa harcanmaması ilkesi gözetilmiş.

Söz konusu programın yürümesi, ekranı çizen elektron ışınına bağlıdır. Bu kabiliyetinden dolayı COPPER, genelde özel işlem ünitelerinin grafik ve ses işlemlerini kontrol etmekte kullanılır. Böylece 68000 ana işlem ünitesi, yorucu ve zaman harcayan bir işten kurtulmuş olur. COPPER'ın programları, bildiğimiz RAM belleğinde (ilk 512 KB'lık bölgede) duruyor ve orada yürüyor. Program yürürken, gerek diğer özel işlem birimlerinin, gerekse kendi register'lerine (yazmaçlarına) bir şey yazması gerektiğinde DMA (Direct memory access - doğrudan bellek erişimi) tekniğini kullanıyor. Copper'ın emirleri sadece üç tipten oluşuyor. Bunlar: veriyi doğrudan register'e yazmak; elektron ışınının belli bir pozisyonu geçmesini beklemek; üçüncü olarak da ışın belli bir pozisyonu geçmişse bir sonraki komutu atlamak (yürütmemek). Elektron ışınının pozisyonu diye bahsedilen parametre, yatay olarak, 4 adet alçak çözünürlüklü grafik noktası, yani 8 adet yüksek çözünürlüklü grafik noktası hassasiyetine kadar kesin. Dikey olarak kesinlik ise yüzde yüz. COPPER'ın geniş kullanım olanakları, yazılan programın akıllıca ele alınması ile daha da genişletilebilir. Örneğin, copper'ın, kendi adres sayaç register'ine yazması sağlanarak, belli bir şarta göre, bambaşka bir adreste bulunan bir altprogramı yürütmesi sağlanabilir. Başka bir örnek de, Copper'ın INTREQ (interrupt request) register'inin 15'inci bitini yakmak suretiyle, 68000'in 6'ncı seviyede interrupt yürütmesi sağlanabilir. Bilhassa bu son örnek, bilgisayarın içinde, oldukça karışık işlemlerin gelişmesini sağlar. (Zaten, bu aletin içinde gerçekleşen olaylardan basit olanına pek rastlanmamıştır.) Önemli bir olay da; COPPER'ın, elektron ışınını beklerken sistemin adres ve veri kanallarını meşgul etmemesi. Böylece birçok başka bilgisayarda olduğu gibi, ışını bekleme sırasında ana işlem ünitesinin birkaç milisaniyesinin boşa harcanması gibi olaylarla karşılaşmıyoruz. Burada, gene bilgisayarın donanım kaynaklarının tam kullanılması ve boşa harcanmaması ilkesinin korunduğunu görüyoruz. COPPER çipi, 68000'le çakışmaksızın, tüm sistemin ana fonksiyonlarından birçoğunu yerine getirir. Örneğin, her ekranın başında bit-plane (bit yüzeyi) ve sprite değerlerini tazeler ve düzenler. Veya, ekranın ortalarında bir yerde, renk paletini değiştirebilir (böylece her ekranda 32 renkten fazlasını kullanmanız mümkün olur.), ve grafik modunu değiştirebilir (hafızadan tasarruf); bunlardan başka ekran hafızasını, titreme ve karışıklıklar yaratmadan değiştirebilir. COPPER programları, görüntü işlemleri ile ilgili tüm olayların maksimum düzeyde kontrolünü sağlar. Fakat bu programları doğrudan yaratmak oldukça zor olduğu için, sistem ROM'unda, her türlü isteğe uygun programı yaratacak altprogramlar mevcut.

11. BELLEK ALANI

Belleğin ilk 512 KByte'lık bölümü çip belleği diye anılıyor (bellek haritası ile ilgili şemayı inceleyin). Özel işlem üniteleri tarafından gerçekleştirilen her türlü fonksiyon, bit yüzeyleri, sprite verileri, Copper programları ve benzeri veriler bu bölgede bulunmak zorunda. Tabii ki standart 256 K'lık (veya genişletilmiş 512 K'lık tipinde) AMIGA 1000'de; çip belleği, aynı zamanda RAM kullanımı gerektiren diğer tüm işlemler için de kullanılıyor. Şu anda dış ülkelerde piyasada rahatça bulunan genişleme kutuları ve bellek genişletme kartları sayesinde belleği 8 MByte daha artırmak mümkün. Böyle bir uygulamada, programlar ve bunlara ilişkin veriler ekstra bellekte saklanıyor ki; hem hız artışı sağlansın, hem de çip belleği çiplerin kendi özel kullanımında yararlanılsın.

12. GRAFİK

AMIGA'nın grafikleri, tek kelimeyle nefes kesici; gerek kalite, gerekse hız açısından. Bu yüzdendir ki gerek ülkemizde, gerek dış ülkelerde, birçok reklam veya video-clip AMIGA ile hazırlanıyor. Sistemdeki başlıca grafik elemanları, görüntü alanları (playfield), sprite'lar, Blitter ve ROM'da bulunan animasyon (canlandırma) ve yazı (text) altprogramları.

13. GÖRÜNTÜ ALANI

Bit yüzeyi, bilgisayarın noktalardan oluşmuş dikdörtgen bir bölge olarak algılayabileceği, belleğin bir bölgesidir. Çoğu bilgisayarın, öyle veya böyle belli bir şekilde bit noktalı grafik özelliği vardır. Bunların bazıları, renkleri yanyana gelen birkaç bitin içeriğindeki bilgiyi birleştirip oluştururlar. Bazıları da bambaşka yöntemlere başvururlar. Fakat AMIGA'da olay başkadır; AMIGA her bit yüzeyinden bir nokta için sadece bir bit kullanır. Renkleri oluşturmak için ise birçok bit yüzeyi kullanır. Yani, aynı anda birkaç bit yüzeyi işlenebilir. Bunların üzerinden aynı noktaya karşılık gelen bitler bulunur ve içerikleri birleşir (Görüntü alanı ve bit yüzeyi ile ilgili örnek şekile bakın, daha iyi anlaşılacaktır). Burada seçilen renkler, doğrudan aletin renkleri değil, sadece renk register tablosu veya renk paleti için bir göstergeç. AMIGA'nın 4096 renginden 32 taneye kadarı bu palete alınıyor ve ekran gösterilirken kullanılmaları sağlanıyor.

AMIGA, aynı anda en fazla beş bit yüzeyini işleyebilir (aslında bu rakam altı; ama bu uygulamalar daha özel amaçlı olduğu için şimdilik değinmiyoruz); buradan da maksimum 32 renk sınırlaması çıkar. Renk register tablosu, 4096 rengi simgeleyen 12 bit'lik değerler içerir. Böylece, AMIGA 4096 renginden herhangi 32'sini kullanarak cisimler çizebilir. AMIGA'nın beş türlü çözünürlük tipi vardır. Bunlardan dördü, iki tipte yatay çözünürlük ve iki tipte dikey çözünürlük kombinasyonundan çıkar. Yatay çözünürlük, 320 nokta/satır, yani düşük çözünürlük; 640 nokta/satır, yani yüksek çözünürlük arasında değişir. Dikey çözünürlük, her ekranda 256 satır (noninterlaced), 1/50 saniye tekrarlı, her ekranda 512 satır (interlaced), 1/25 saniye periyodlu olarak tek ve çift satırların dönüşümlü olarak gösterilmesi, arasında değişir. Burada AMIGA'nın monitörünün kalitesi hemen meydana çıkıyor. Gerçekten de AMIGA'nın monitörü 512 satırı birbirinden ayırt edebilecek kadar kaliteli. Ne var ki, bu monitörün ekranının iç tarafında kullanılmış olan yüksek hızlı fosforlar 512 satırlık gösterim hızında zorlanıyorlar ve ekranı stabil tutamıyorlar. Bu yüzden 512 satır modunda, ekran titriyormuş gibi görünüyor. Bu olaya tanık olursanız, kesinlikle bilin ki bu olayda AMIGA'nın bilgisayar olarak hiçbir suçu yok. Başka model ve daha düşük hızda fosfora sahip bir monitörde olumlu sonuç alınabiliyor. Bit yüzeylerinin kullanacağı bellek miktarı da, kullanılan çözünürlük tipine bağlı olarak değişiyor. Bu rakam 8000 Byte'tan (320x200 grafik),

32000 Byte'a (640 x 400 grafik) değişiyor. Beşinci mod, hold-and-modify adını taşıyor ve altı bit yüzeyi kullanıyor. Bu teknikle, ekranda aynı anda 4096 rengi kullanmak mümkün. Bu modda altı bitteki renk bilgisinde üst taraftaki iki bit, alttaki dört bitin yorumunu yapıyor. Bu yoruma göre, alttaki dört bit ya renk paletine bir göstergeç, ya da bir önceki noktanın renginden bir renk komponent farkıyla (RGB: red, green, blue: kırmızı, yeşil, mavi) değişmesi şeklinde raf kalitesinde olduğunu söylememize gerek yok tabii ki. Diğer bir ilginç özellik ise görüntü alanı olarak belirlenmiş alanın, gerek yatay, gerek dikey boyutlar olarak görünen ekrandan daha büyük bilmesi. Birkaç register'ın içeriği ile oynayarak koca bir ekranı, çok az bir zahmetle yatay veya dikey kayıyormuş gibi gösterebilirsiniz. Diğer bir gösterim yöntemi, dual-playfield-mode adını taşıyor. Bu modu kullandığınızda; her biri üç bit yüzeyine kadar büyük olabilen iki görüntü alanını üst üste göstermeniz mümkün. Burada hangi görüntü alanının, diğerine göre üstün olacağını belirtmeniz gerekir. Bu kullanım, genelde çok karışık işlemler gerektiren bazı gösterimleri, çocuk oyuncağı kadar kolaylaştırıyor. Örnek olarak, Flight Simulator oyunlarını verebiliriz. Uçağın pilot kabini bir ekran, dışarısı da ayrı bir ekran olarak tanımlandığında gerçekçilik açısından hiçbir sorun kalmıyor. Çünkü her iki ekran arasında hiçbir ilişki olmadığı için apayrı değerlendirip, bu ekranların sadece kullanıcıya birleşmiş biçimde ulaşması sağlanıyor.