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
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