Amiga 500 Programlama

Öncelikle 2014 yılında kim / neden Amiga programlama ile ilgilenir, önce bunun cevabını vereyim. Ya kökleriniz eskidedir; 30’unuzdan sonra geri dönmeye başlarsınız. Ya da ruh hastasısınızdır; birşeyi yapmak için mantıklı bir nedene zaten ihtiyacınız yoktur. Ayrıntılı bilgi için psikiyatristinize danışın.

Neden 500?

super_frogÇünkü Amiga 500 modeli, Commodore Amiga’nın en çok bilinen ve en yaygın modelidir. Standart donanımdır; upgrade seçenekleri yok denecek kadar azdır. Dolayısıyla siz bir Amiga 500’den bahsettiğinizde kimse size “Picasso RTG mi yoksa AGA mı?” diye sormaz.

Üzerinde demoscene geliştirmek için ideal platformdur. Bugün Amiga 1200 veya Amiga 4000 gibi “high-end” olarak tabir edilen modeller, artık 3D oyunları bile rahatlıkla çalıştırabildiğinden demoscener’lar için pek bir anlam ifade etmez.

Kısıtlı donanımdır; optimize edilmiş kod yazmayı öğrenirsiniz. 512 K RAM’i nasıl daha verimli kullanabileceğinizi hesaplarsınız, “Not Enough Memory” hatası almadan kodunuzu çalıştırmanın sevincini yaşarsınız. Kısıtlı imkanlarla en iyi sonucu almak için daha iyi kod yazmaya kendinizi zorlarsınız. Yandaki kurbağanın kim olduğunu bilenler, iyi bir programcının ve tasarımcının bir Amiga 500 üzerinde neler yapabileceğini de iyi bilir.

Çalışma Ortamı

Zamanında gerçek donanım kullanmış kişiler, Amiga emulatorlerinin donanımın yerini hiç bir zaman tutmayacağında genelde hem fikirdir. Yine de düzgün konfigüre edilmiş bir emulator ile donanımsal ortamı büyük ölçüde yakalayabilirsiniz. Ek olarak dosya transferi, durum kaydetme (save state) vb. özelliklerinden dolayı emulatorlerin sağladığı avantajları da göz ardı etmemek gerekir.

Amiga emulatoru olarak ben WinUAE kullanıyorum. Yazılımın Quickstart bölümünde emule edeceğimiz donanımı A500 olarak seçiyoruz. Donanım konfigürasyonu olarak da kendisinin de not düştüğü gibi en yaygın konfigürasyon olan 1.3 ROM / OCS‘yi seçiyoruz. Aslında oyun oynamak için 512K RAM yeterli ancak aşağıda bahsedeceğim yazılımların bazıları 1 MB RAM’e ihtiyaç duyduğu için ek 512K Slow RAM ekliyoruz. Böylece yazılım tabanlı bir Amiga 500’e sahip olmuş olduk.

winuae1

Diğer ayarları bildiğinizi varsayıyor ve işin programlama tarafına geçiyorum. Amiga 500 üzerinde geliştirilen oyunlar, uygulamalar, demoscene’ler farklı derleyicilerle veya yorumlayıcılarla geliştirilmiş olabilir. Bunlardan en yaygın olarak kullanılanlara kısaca bakalım.

Assembly

Amiga 500 üzerinde büyük başarı yakalamış oyunların, demoscene’lerin büyük çoğunluğu Assembly ile yazılmıştır. Low-level olduğu için tabi ki zordur, her programcının harcı değildir. Mortal Kombat’ı Assembly ile Amiga 500’e port eden Richard Castello’nun ne zorluklar yaşadığını şurada okuyabilirsiniz. Ancak sonuç olarak daha optimize edilmiş bir makine kodu ortaya çıkarır ki bu da avantajıdır. Yaygın olarak kullanılan Assembler’lardan biri olan ASM-PRO buradan indirilebilir.

debug_sc_big

Aztec-C

Yine Amiga 500 üzerinde çok yaygın olarak kullanılan cross-platform bir C derleyicisi. Assembly’e göre daha yüksek seviyeli olmasına rağmen, iyi derecede C bilgisi gerektirir. Kendisi bir interpreter olmayıp bir derleyici olduğu için optimize edilmiş makine kodu üretir ancak low-level hafıza yönetimi ve sancılı debugging işlemleri programcının elinden öper. Şurada çok detaylı bir dökümantasyonunu bulabilirsiniz. Kendisinin ekran görüntüsünü bulamadığım için ekürisi StormC‘nin görselini ekledim.

sc_ged

AMOS

AMOS, interpreted (yani yorumlanmış) bir BASIC dili olduğundan öğrenmesi kolaydır. Assembly ve C gibi düşük seviyeli olmadığı için ürettiği çalıştırılabilir dosyalar nispeten daha yavaş ve boyut olarak büyüktür. Kesin bir bilgi olmasa da Amiga 500 oyun portföyünde AMOS ile yazılmış yüzlerce oyun olduğu söylenir. Tam sürümünü şuradan indirebilirsiniz. AMOS’un en büyük dezavantajı kendi zamanında bile yeterli dökümantasyona sahip olmamasıydı.

AMOSPro_V2_editor_pic2

Blitz Basic

AMOS gibi yorumlanmış BASIC dilidir ve yine öğrenmesi kolaydır. Zamanında AMOS ile büyük rekabet içindeydiler. AMOS’un aksine yeterince iyi dökümantasyona ve üzerine yazılmış çok sayıda kitaba sahiptir. İnternette bu kitapları hala PDF olarak bulabilirsiniz. Unutmamanız gereken şey, Blitz Basic’in yalnızca 2.x sürümünün Amiga 500 üzerinde çalıştığıdır. Daha sonradan açık kaynak hale getirilen ve AmiBlitz adını alan proje “high-end” Amiga sistemleri için tasarlandı. Blitz Basic 2.x tam sürümünü buradan indirebilirsiniz.

amiga-2-22

Amiga 500 programlama ile ilgili derleyiciler / yorumlayıcılar elbette bunlarla sınırlı değil. Daha fazla bilgi için Commodore.gen.tr’nin Amiga Dökümantasyon Projesi sayfası faydalı olabilir. Eğer kısmetse ben de bu seneki 7DX Demo Party‘e Blitz Basic ile yazacağım bir demo ile katılmak istiyorum.

Facebook Twitter Digg Delicious

08 Mart 2014 tarihinde yayınlandı.