AMIGA BASIC
Retro bilgisayar
Merhaba... Hatırlarsanız geçen ay Amiga Basic'in yapısal özelliklerini incelemeye başlamıştık. Amiga Basic dilinin elemanlarına, şekline ve komutlarına geçmeden önce, animasyon rutinlerinde kullanmak üzere resimler oluşturabileceğiniz bir yardımcı program olan OBJECT EDITOR'den bahsetmek istiyoruz.
OBJECT EDİTÖR: Object Editör, Amiga Basic disketinizin "BASICDEMOS" çekmecesinde Objedit adı altında bulunan ve ovaller, dörtgenler, düz ya da serbest çizgiler çizebileceğiniz bir tuvale sahip programdır. Çizilen objelere iç ve dış renk verilebilir, istendiği gibi düzeltme ve silme yapılabilir.
Object Editör ile yaratılan bir obje diskete kaydedildikten sonra, Amiga Basic'in COLLISION ve OBJECT yönergeleri içinde kullanılabilir ve bu yolla hareketli resimler oluşturulabilir. Objeler, Object Editör penceresinde oluşturulur. Bu pencerede 4 ana bölüm vardır:
MENÜ ÇUBUĞU: Üzerinde 3 menü başlığı bulunur: File, Tools ve Enlarge. File menü seçenekleri ile yaratılan bir objeyi diskete kaydedebilir, var olan bir obje dosyasını disketten yükleyebilirsiniz. Tools menü birçok resim yaratma metodu içerir. Enlarge menü ise objeyi tüm ayrıntıları ile oluşturabilmeniz için genişletme seçeneklerine sahiptir. Şimdi bu menü başlıkları altındaki menü seçeneklerini sırayla inceleyelim isterseniz:
ENLARGE MENÜ SEÇENEKLERİ: Seçenek Fonksiyon New Ekranı siler ve tuval değiştirilmişse, onu orijinal boyutlarına geri döndürür.

4*4 Tuvali 4 katı büyütür. Tuval, enine 100 pixel, boyuna 31 pixelden büyük olamaz. Open Diskette var olan bir dosyayı yüklemek için kullanılır.
1*1 Tuvali normal büyüklüğüne döndürür.
Save Var olan bir dosyayı yüklenmişse, aynı isimle; yeni oluşturulan bir dosya ise isim sorarak diskete kaydeder.
TUVAL (CANVAS): Object Editör penceresinin sol üst köşesinde yerleşmiş olan tuval, objeleri yaratmak ve editlemek için kullanılır. Sağ alt köşesindeki genişletme kutusu ile tuvalin genişliği artırılabilir. Save As dosyayı isim sorarak diskete kaydeder. Quit Object Editor'den çıkarak Amiga Basic'e geri döner.
RENK SEÇİM ÇUBUĞU: Objeyi boyamak ve çerçeve renklerini değiştirmek için kullanılır. Kullanılacak olan renk bu çubuktan seçilir. Kullanılacak renk sayısı programda SCREEN yönergesinde kullnılan depth (derinlik) parametresi ile artırılabilir. Objedit programı normalde bir arka zemin ve diğer iki renk içeren derinlik parametresi olan 2'yi kullanır. Eğer programın belleği müsaitse, daha çok renk varyasyonu da kullanılabilir. Verilen derinlik parametresinin artmasına bağlı olarak kullanılabilecek renk sayısı da ikinin üssü olarak artar. Yani derin-
TOOLS MENÜ SEÇENEKLERİ: Seçenek Fonksiyon Pen Serbest çizim Line îki nokta arasında düz çizgi Oval Elips Rectangle Dörtgen Erase Tuvaldeki resmi silme Paint Seçili olan renkle resmin içini boyama lik parametresi olarak 4 verilirse, 2 4= 16 farklı renk kullanabilirsiniz demektir. DURUM SATIRI (STATUS LINE): X ve Y koordinatları ile tuvalin o anki genişliğini ve hangi çizim aracının seçili olduğunu gösterir.


BOB'lar ve SPRITE'lar: Amiga sistemi, terminolojide sprite ve bob olarak geçen iki tür obje tanır. Object Editör, obje tanımlamanıza başlarken bu iki tip objeden hangisini istediğinizi sorar. Bu yüzden bu iki tip objenin özelliklerini ve ana farklarını bilmek gerekir. Aşağıdaki tablo sprite ile bob arasındaki ana farklılıkları özetliyor:
BOB'lar Sprite'lardan daha yavaş. Genişlik sadece bellekle sınırlı. Seçilebilen tüm renkleri kullanırlar, bob'ların tamamı görüntülenebilir.
Tüm ekran derinliklerine izin verilir.
SPRITE'lar Bob'lardan daha hızlı. Genişlik 16 olmalı.
Yalnız 3 renk kullanırlar.
Aynı anda aynı satırdaki yalnız 4 sprite farklı renklerde görünebilir. Ekran derinliği 2 olmalıdır.
OBJELER NASIL YARATILIR?
BASICDEMOS çekmecesinde Objedit ikonu kliklenerek açıldığında program bob mu, sprite mı oluşturacağınızı soran bir mesaj verir. Burada seçiminizi yaptığınızda kendinizi Object Editör penceresinde bulursunuz. Burada yaptığınız seçimi File menüsünden New ile değiştirebilir, var olan bir obje dosyasını Open ile çağırabilirsiniz.
Yeni bir obje yaratmak için kullanılacak olan menü seçenekleri, Tools menü başlığı altında sıralanıyor. Çizmek istediğiniz objeye uygun çizim aracını buradan seçerek istediğiniz çizimleri yapabilirsiniz. Renk seçimi, renk seçim çubuğundan istenen renk kliklenerek yapılır. Resmin içini boyamak için, Tools menüden Paint aracı seçildikten sonra doldurma rengi işaretlenip boyanacak kısım kliklenir.
Obje çizimi tamamlandıktan sonra isim verilerek diskete kaydedilir. Bu şekilde kaydedilen obje Amiga Basic animasyon komutları için kaynak dosya haline gelir ve programlar için kullanılabilir.
AMIGABASIC KARAKTER SETİ:
Amiga Basic karakter seti alfabetik, sayısal ve özel karakterlerin karışımından oluşur. Bunlar yalnız Amiga Basic'in kabul ettiği karakterlerdir. Bunlar dışında görüntülenebilecek ya da printerden çıkartılabilecek bir sürü karakter daha vardır, ancak bunların Amiga Basic'te özel bir anlamı yoktur. Alfabetik karakterler büyük ya da küçük harfler, sayısal karakterler ise 0'dan 9'a kadar rakamlardır. Tablo 1'de Amiga Basic tarafından kullanılan özel karakterler ve fonksiyonları verilmiştir.
TABLO 1
KARAKTER FONKSİYON
Boşluk = Eşitlik ve atama sembolü + Toplama işareti - Eksi işareti * Çarpı işareti / Slash ya da Bölme işareti ^ Yukarı ok veya üs sembolü ( Sol Parantez ) Sağ Parantez % Yüzde İşareti # Sayı (ya da paund) işareti $ Dolar işareti ! Ünlem işareti [ Sol Kare Parantez
] Sağ Kare Parantez , Virgül . Nokta ya da ondalık nokta ' Tek tırnak işareti ; Noktalı virgül : İki nokta üstüste & Ve anlamına gelen işaret ? Soru işareti < Küçüktür > Büyüktür \ Ters slash ya da tamsayı bölme işareti @ Süslü a _ Altçizgi RETURN Bir giriş satırını sonlandırır. " Çift Tırnak İşareti
Bu karakter seti dışında [Sağ Amiga] tuşu ile birlikte kullanılan tuş kombinasyonları vardır. Bu kombinasyonlar ve fonksiyonları şunlardır:
TUŞLAR FONKSİYONU [AMİGA] + [.] Programın çalışmasını keser. [AMİGA] + [S] Programın çalışmasını durdurur. [AMİGA] + [T] Bir sonraki yönergeyi çalıştırır. [AMİGA] + [C] Copy fonksiyonunun klavye karşılığı. [AMİGA] + [P] Paste fonksiyonunun klavye karşılığı. [AMİGA] + [X] Cut fonksiyonunun klavye karşılığı. [AMİGA] + [R] Start fonksiyonunun klavye karşılığı. [AMİGA] + [L] Show List komutunun klavye karşılığı. AMIGABASIC SATIRI:
FORMAT: [nnnnn]yönerge [:yönerge.........] [açıklama] [RETURN] ya da; [alfanüm-etiket:] yönerge1 [: yönerge2] [açıklama] [RETURN]
İlk formattaki nnnnn, satır numarası olup 0 ile 65529 arasında bir sayı olabilir. İkinci formattaki alfanüm-etiket ise bir harf ile başlayıp iki nokta üstüste ile biten harf, rakam ve nokta karışımı alfanümerik bir belirteçtir.
Açıklamalar, program arasına konulabilen yardımcı bilgi satırlarıdır. Programın çalışması esnasında hiçbir işlevleri yoktur, bu tür satırlar sadece programın incelenmesini kolaylaştırır.
yönergeler ise program komutlarıdır. Aynı satıra birden fazla yönerge iki nokta üst üste işareti ile ayrılmak suretiyle yan yana yazılabilir.
Gördüğünüz gibi Amiga Basic program satırları bir satır numarası ya da bir etiket ile başlıyor ve mutlaka RETURN tuşuna basılarak bitiyor. Bir program satırı maksimum 255 karakter uzunluğunda olabilir.
alfanümerik satır etiketleri, 1 ile 40 karakter uzunluğunda harf, rakam ve nokta karışımından oluşabilirler: MENÜ:, Alt1:, ARA.TOP: gibi.
SABİTLER: Sabitler, programın çalışması esnasında Amiga Basic'in kullandığı güncel değerlerdir. Sabitlerin iki tipi vardır: Karakter dizileri ve sayısal değerler. Karakter dizi sabitleri, çift tırnak içine alınmış alfanümerik karakterlerden oluşurlar ve en çok 32767 karakter uzunluğunda olabilirler. Sayısal sabitler ise negatif ve pozitif sayılardır. Beş tip sayısal sabit bulunur:
Kısa Tamsayı (Short Integer): -32768 ile +32767 arasındaki 16 bitlik tüm sayılar. Kısa tamsayılar ondalık nokta içermezler.
Uzun tamsayı (Long Integer): -2147483648 ile +2147483647 arasındaki 32 bitlik tüm sayılar. Uzun tamsayılarda da ondalık nokta bulunmaz.
Sabit-noktalı (Fixed-point): Pozitif ya da negatif gerçek (real) sayılardır. Bu tür sayısal sabitler ondalık nokta içerirler, ancak ondalık noktanın yeri sabittir.
Kayan-noktalı (Floating-point): Bu sayılar da pozitif ya da negatif ve ondalık nokta içeren sayılardır. Ancak sabit-noktalı sayılar gibi noktadan sonraki hane sabit değildir.
Hex sabitler: &H önekli onaltılık (Hexadecimal) sayılardır.
Octal sabitler: &O ya da sadece & önekli sekizlik (octal) sayılardır.
Sabit-noktalı ve kayan-noktalı sabitler single (tek) ya da double (çift) precision (kesinlik) sayılar olabilirler. Single-precision sayısal sabitler 7 rakam (artı üs işareti) saklanır ve yazılırlar. Değerler sabitin bu tür olduğunu belirten 3 belirteç içerebilir: yedi ya da daha az rakamlı sayı, üslü gösterimi ifade eden E sembolü ve bunları takip eden bir ünlem işareti (!). Double-precision sayısal sabitler ise, 16 rakam saklanıp yazılabilir. Bu tür sabitleri belirtilebilmesi için formatta yine üç kısımdan biri kullanılabilir: sekiz ya da daha çok rakamlı sayı, üslü gösterimi ifade eden D sembolü ve bunları takip eden bildirim karakteri (#). Bu tür sabitlere örnek olarak aşağıdakileri inceleyebilirsiniz:

57.5 963023185 -3.24E-6 - 3.24768D-06 5497.0 5497.0# 14.8! 2378564.9372
Amiga Basic'te sayısal sabitler virgül içermezler.
DEĞİŞKENLER:
Değişkenler, programda kullanılan değerleri temsil ederler. Sabitler gibi değişkenler de sayısal ve karakter dizisi olarak iki tür olabilir. Sayısal değişkenlere değer olarak sadece sayılar, karakter dizisi değişkenlerine ise karakter dizileri atanabilir. Bir değişkene herhangi bir değer atanmadan önce sayısal değişkense değeri 0, dizi değişkeni ise değer boştur. Değişken isimlerinde yapılacak hatalar, programın "Type Mismatch" hatası üretmesine sebep olur.
DEĞİŞKEN İSİMLERİ:
Değişkenlere 40 karaktere kadar isim verilebilir. Karakterler harf, sayı ya da nokta olabilir, yalnız ilk karakter mutlaka harf olmalıdır. Kullanılan bir değişken isminde büyük ve küçük harf olarak yazımlar aynı kabul edilir. Bunun anlamı TOPLAM, toplam ve TopLAM olarak verilen bir değişken ismi Amiga Basic tarafından aynı kabul edilir.
AYRILMIŞ SÖZCÜKLER (RESERVED WORDS):
Bunlar Amiga Basic komut, yönerge, fonksiyon ve operatörleri için ayrılmış kelimelerdir. Bu kelimeler asla değişken ismi olarak kullanılamazlar. Büyük ya da küçük harf kullanılabilirler. Ayrılmış sözcükler küçük harf yazılmış bile olsalar, RETURN'e basıldığında otomatik olarak büyük harfe çevrilirler.
DEĞİŞKEN TİPLERİNİN BELİRTİLMESİ:
Karakter dizisi değişkenlerine verilen isimler $ (dolar) işareti ile sona erer: SAYI$, TOP$ gibi.
Sayısal değişkenler ise ismi takip eden bir bildirim karakteri ile tanımlanır. Tanımlı sayısal değişken tipi single-precision'dır. Diğer tip sayısal değişkenleri kullanmak için, kullanılacak karakterler şunlardır:
% KISA Tamsayı 2 Byte & UZUN Tamsayı 4 Byte ! Single Precision 4 Byte # Double Precision 8 Byte
DİZİ DEĞİŞKENLERİ (ARRAY VARIABLES):
Dizi, bir tek değişken ismiyle tanımlanan aynı tip elemanlardan oluşan gruptur. Her değer tanımlanan dizinin bir elemanı olarak kabul edilir. Dizi değişken isimlerinde dizinin tek, iki ya da daha çok boyutlu kullanımına uygun olarak tanımı yapılır: tek boyutlu diziler için C(15), iki boyutlu diziler için M(1,4) gibi. Bir dizi için tanımlanabilecek maksimum boyut 255, bir boyut elemanlarının maksimum sayısı 32768'dir.
Gelecek ay AmigaBasic dilinin ifade ve operatörleri ile anlatımlarımızı sürdüreceğiz. Hoşça kalın...