09.09.2013 Views

Amiga Dunyasi - Sayi 15 (Agustos 1991).pdf - Retro Dergi

Amiga Dunyasi - Sayi 15 (Agustos 1991).pdf - Retro Dergi

Amiga Dunyasi - Sayi 15 (Agustos 1991).pdf - Retro Dergi

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

DİLLER<br />

AMIGA<br />

CENKER OZKURT<br />

C severler <strong>Amiga</strong> başına. Artık sıra siz-<br />

de! <strong>Amiga</strong>'da baş döndürücü programlar<br />

yazmak için, elinizde daha fazla kaynak<br />

program olacak. Kaynaklar bizden!<br />

Bu sayımızda, geçen sayıda verdiğimiz<br />

örneğin açıklaması dışında, <strong>Amiga</strong>'da lib-<br />

rary açma-kapama ve bununla ilgili ör-<br />

nekler göreceksiniz.<br />

Şimdi sizlere <strong>Amiga</strong> Library'leri hak-<br />

kında biraz bilgi vererek yazıma başlamak<br />

istiyorum. Library'ler (kütüphaneler),<br />

adından da anlaşılacağı gibi, içerisinde<br />

bilgisayar için gerekli olan sistem komut-<br />

larını içerir. Biz herhangi bir programı ça-<br />

lıştırdığımızda, grafik ya da müzik olsun,<br />

program kendi için gerekli olan library'i<br />

açarak içindeki program parçalarını kul-<br />

lanmaya başlar. Bu program parçaları<br />

{routine'ler), <strong>Amiga</strong> üreticileri tarafından<br />

bilgisayarınızın belleğine (Rom'una) yer-<br />

leştirilmiştir. Tabii ki bu, biz programcıla-<br />

ra büyük kolaylıklar sağlamaktadır. Zaten<br />

C dili de bu program parçalarını kullan-<br />

mak için yazılmış en ideal dillerden biri-<br />

dir. Ayrıca <strong>Amiga</strong>'nın Rom'unun da, C di-<br />

linde yazıldığını belirtmeden geçemeyece-<br />

ğim.<br />

<strong>Amiga</strong>'da Library'ler, yaptıkları işe gö-<br />

re çeşitli isimler altında toplanmıştır. Ör-<br />

neğin grafik için gerekli olan program<br />

parçaları <strong>Amiga</strong>'da 'graphics.library'<br />

olarak isimlendirilmiştir. Eğer biz<br />

<strong>Amiga</strong>'da yeni bir ekran (screen) açmak<br />

istersek, 'graphics.library'yi kullanmak<br />

zorundayız. Çünkü <strong>Amiga</strong> bize bu<br />

screen'i açmak için 'graphics library' için-<br />

de bir routine hazırlamıştır. Biz bu<br />

library'i açarak, sisteme grafik alt prog-<br />

ramlarını kullanacağımızı bildiriyoruz.<br />

Aslında biz bu routine'leri kullanmak<br />

zorunda değiliz. Mesela ekran açma işini,<br />

biz kendimiz de bir alt routine olarak ha-<br />

zırlayabiliriz. Fakat bu düşünüldüğü kadar<br />

kolay bir iş değil. Çünkü böyle bir progra-<br />

mı hazırlamak için, hem <strong>Amiga</strong> Hardwa-<br />

AMIGA DÜNYASI 18<br />

re'ini (donanımını) çok iyi bilmeli, hem<br />

de bu routine'leri, hardware'e tam olarak<br />

ulaşabilmek için Assembler (en hızlı prog-<br />

ram dili: 68000MC bu dili kullanır.) ile<br />

yazmalıyız. Ayrıca şunu da belirtmek iste-<br />

rim ki; C dili içerisinde de Assembler<br />

programları yazıp kullanabilirsiniz. Eğer<br />

C dili içerisinde Assembler kullanmak is-<br />

terseniz, biraz Assembler ve Hardware ça-<br />

lışmanız gerekiyor. Zaten bildiğiniz gibi<br />

dergimizde, Ömer Sinan Polat arkadaşı-<br />

mızın Assembler kursları yayınlamakta.<br />

Siz de bu yazıları takip ederek hem As-<br />

sembler öğrenmiş, hem de daha hızlı<br />

programlar yazmış olursunuz.<br />

Daha hızlı programlar(î) dedim. Şimdi<br />

soracaksınız, <strong>Amiga</strong> C hızlı bir dil değil-<br />

se, neden <strong>Amiga</strong>'nın Rom'u C dilinde<br />

yazılmış? Aslında olay şu; <strong>Amiga</strong> C dili<br />

oldukça hızlı bir dildir. Zaten C Compiler<br />

programı da, yazdığınız programları so-<br />

nuç olarak Assembler diline çevirir. Fakat<br />

C'de routinler birden fazla amaca yönelik<br />

yazılmıştır. Bu programlar çalışırken, de-<br />

vamlı olarak başka programlarla alışveriş<br />

içerisindedirler. Bunun amacı, programın<br />

hatasız olarak çalışmasını sağlamak; eğer<br />

varsa da, bunu kullanıcıya ya da program-<br />

cıya bildirmektir. Tabii ki bu da progra-<br />

mın hızını biraz yavaşlatmaktadır. Fakat<br />

bunun bazı avantajları da vardır. En başta<br />

gelen avantajı, hem bu routinleri kullana-<br />

rak daha kısa zamanda program yazabil-<br />

memiz, hem de korkusuzca istediğimiz<br />

program parçalarını (routine'leri) kullana-<br />

bilmemiz. Sadece bu oldukça yeterli bir<br />

sebep. Ama öyle program kısımları olur<br />

ki, bu kısımların hem çok kısa sürede işini<br />

bitirmesi, hem de çok iş yapması beklenir.<br />

Bu tür routinlerin oldukça hızlı olması<br />

gerekir. İşte kara gün dostunuz Assembler,<br />

böyle zamanlarda yardımınıza koşar.<br />

Şimdi <strong>Amiga</strong>'da var olan diğer<br />

Library'leri ve yaptıkları işleri kısaca gö-<br />

relim; gerçi Assembler'cı Ömer Sinan ar-<br />

kadaşımız geçen sayılarda ayrıntılı olarak<br />

Library'lerden bahsetmişti; fakat ben de<br />

kısaca değinmek istiyorum. <strong>Amiga</strong>'nın<br />

Library'leri şunlardır:<br />

EXEC.LIBRARY<br />

<strong>Amiga</strong> sisteminizin çalışması için, bu<br />

Library'ye ihtiyacınız vardır. Bu Library<br />

açılmadan diğer Library'ler açılamaz.<br />

Çünkü Library'leri açmak için gerekli<br />

olan OpenLibrary() fonksiyonu, 'exec.lib-<br />

rary' İçerisindedir ve hafızada hazır ola-<br />

rak bulunmaktadır. Unutmadan şunu da<br />

belirteyim ki: bazı Library'ler <strong>Amiga</strong>'nı-<br />

zın Rom'unda değil disketlerde saklıdır.<br />

Bunlar sonradan hazırlanmıştır. Bu<br />

Library'ileri kullanacaksanız, disketinizde<br />

LIBS directory'si içinde bulunup bulun-<br />

madıklarına dikkat edin. Yoksa<br />

Library 'niz açılamaz.<br />

Exec Library, bunlardan başka hafıza<br />

ayıran komutları içerir. Çünkü bildiğiniz<br />

gibi, <strong>Amiga</strong> Multi-Tasking bir alettir. Bir-<br />

den fazla program çalışırken, hangi prog-<br />

ramın hangi hafızayı kullandığını sisteme<br />

belirtmek gerekir. Böylece programlar bir-<br />

birlerine karışmamış, kısacası aletiniz<br />

**Crash** etmemiş olur. Bundan başka<br />

exec.library' input-output kanallarının<br />

çalışması için gerekli olan program parça-<br />

larını içerir.<br />

GRAPHICS LIBRARY<br />

Bu Library grafik için gerekli olan yazı,<br />

çizim, ve buna benzer grafik routine'lerini<br />

içerir. Ayrıca ekrandaki veya hafızadaki<br />

bir bloğu taşımak için kullanılan,<br />

<strong>Amiga</strong>'nın yardımcı cipi Blitter'ı kullanır.<br />

DOS.LIBRARY<br />

<strong>Amiga</strong>'nızın disket işlemleri için gerekli<br />

olan komutları içerir. Yükleme, saklama,<br />

silme, kopyalama gibi..<br />

INTUITION.LIBRARY<br />

WorkBench disketinizi taktığınızda, kar-<br />

şınıza çıkan ilk pencere bu Library saye-<br />

sinde oluşmaktadır. Menüler. ekranlar ve<br />

windowlar, bu library ile kullanılabilir ha-<br />

le gelir. CLIST.LIBRARY<br />

<strong>Amiga</strong>'nızdaki Copper cipi için gerekli<br />

değişiklikleri yapmada kullanılır. Copper,<br />

grafik içinde kullanılan çok hızlı bir Hard-<br />

ware donanımıdır.<br />

MATHFFP.LIBRARY<br />

Basit matematiksel fonksiyonları içerir.<br />

MATHTRANS.LIBRARY<br />

Yüksek seviyeli matematiksel fonksi-<br />

yonları içerir.<br />

MATHIEEEDOUBBAS.LIBRARY<br />

Integer (tamsayılar) için basit matema-<br />

tiksel fonksiyonları içerir.<br />

DISKFONT.LIBRARY<br />

Disketteki fontları kullanmamızı sağla-<br />

yan routine'leri içerir. FONTS directory'si<br />

içerisindedir.<br />

LAYERS.LIBRARY<br />

Ekran hafızalarını kontrol eden program<br />

parçalarını içerir.<br />

Bunlar dışında, CONSOLE.LIBRARY,<br />

POTGO.LIBRARY, ICON.LIBRARY,<br />

TRANSLATOR.LIBRARY de <strong>Amiga</strong>'-<br />

nızın Rom'unda bulunuyor.<br />

Library'ler de burada sona erdiğine gö-<br />

re, artık geçen sayımızda verdiğimiz örne-<br />

ğimizi açıklamaya başlayabiliriz. Fakat<br />

gene de bu örneği açıklarken, bazı nokta-<br />

ları yüzeysel olarak geçeceğim. Bunlara<br />

ileride daha derinlemesine değineceğiz.<br />

Şimdi ilk olarak programımız başındaki<br />

INCLUDE'ların ne işe yaradıklarına bir<br />

bakalım.<br />

Include'lardan sonra küçük ve büyük<br />

işaretleri arasındaki isimler, programımı-<br />

zın başlangıçta tanımlaması gereken yapı-<br />

ların saklandığı dosya ismini verir. Bu<br />

isimler Compiler disketinizin içerisindeki<br />

'include' directory'si içerisinde saklıdır.<br />

Include komutundan sonra, bu dosya yük-<br />

lenerek ilk tanımlamalar yapılır. Bu dos-<br />

yanın da bir C dosyası olması zorunludur.<br />

Çünkü compiler bu dosyayı da derler. Ay-<br />

rıca bu dosyalarda macrolar, değişkenler<br />

ve yapılar mevcuttur. Eğer biz bir grafik<br />

programı yazacaksak, içerisinde bu<br />

routine'lerin kullanacağı macroları veya<br />

yapıları saklayan <br />

dosyasını include ile yüklemeliyiz. Aksi

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!