Amiga Dünyası sayı 5, sayfa 36

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 36

Örnek:

BREAK ON

ON BREAK GOSUB ALT

DIM ADET(99),FİYAT(99) LET TOPLAM=99 OPEN "O",#1, "STOK"

FOR I=1 TO TOPLAM WRITTE#1 ,ADET(I),FİYAT(I) NEXT I CLOSE#1:BREAK OFF INPUT "Yazıcı çıktısı ? E?H", CEVAP$

IF CEVAP$="Y" THEN BREAK ON: GOSUP KONTROL END ALT: CLS:BEEP:PRINT "Şu anda programdan çftmazsınız" RETURN

CALL KOMUTU:

Kullanım şekli: CALL alt rutin ismi [(argüman-listesi)] isim [argüman-listesi]

SUB ile tanımlanmış bir alt programa kontrol transferi yapılabilir, bir makina dili program ya da sistem library rutini sabit bir bellek adresine depolanabilir. CALL ile bir alt program çağrıldığında parametreler sayısal ya da yazısal sabit veya değişken olabilir ve bunlar alt programa geçirilebileceği gibi, alt programın değerleri de program tarafından kabul edilir.

Programlarınızda kullanacağınız en önemli komutlardan biridir. CALL komutu ile, SUB yönergesi ile tanımlanan bir alt programı, sabit adresli bir makina dili alt rutini ya da yine makina dili bir LIBRARY (kütüphane) rutinini çağırabilirsiniz. Komutta CALL kelimesinin kullanımı opsiyoneldir. Kullanılmazsa, argüman listesi parantez içine alınmaz.

Sub yönergesini kullanan bir alt programı çağırırken değişkenlerin geçişi tanımlanır, ifadeler değer olarak geçecektir. Örneğin:

SUB ALT (x,y) STATIC END SUB CALL ALT (a,b) Alt rutinle program arasındaki değişken geçişlerinden yazımızın önceki bölümle- rinde bahsetmiştik.

Amiga Basic, makina dili rutinleri transfer etmenin bir yoludur. İsim alt rutinin bellekteki başlama noktasını (adres) ifade eden basit bir değişken belirtir, bir dizi elemanı olamaz. Argüman listesi, alt rutine geçecek argümanları listeler. Parametreler de, uzun ya da kısa tamsayılar olmalıdır, standart C-dili çağırma kurallarının kullandığı değerle geçebilir. Aksi takdirde Amiga Basic "Type mismatch" mesajı verir. Adres, tek ya da çift açıklıkta olabilir: CALL Rutin(VARPTR(x)) Adres yazısal dizi olursa:

CALL Rutin(SADD(x$)) Aşağıdaki örnekte, değişkenler kısa tamsayı (&) olarak adresi tutarlar. Kısa tamsayı adreslerin 24 bit kullanmayı unutmayın. a=0:b=0

DIM Kod%(100) FOR I=0 to 90 READ Kod%(I) NEXT I KodAd&=VARPTR( Kod%(0))

CALL KodAd&(a.b) Kütüphaneler Amiga'nın özel düzenlen-

miş kaynak dosyalarıdır. Bir LIBRARY'den makina dili altrutin çağırmak için: LIBRARY "graphics.library" CALL Çizim(50,60) Bu örnekle Amiga Basic Çizim adıyla bir değişken yaratır. Bu bilgiler daha sonra makina dilindeki yerlerine değişken ismi ile saklanır. Bu nedenle değişken kısa tamsayı olamaz.

Aşağıdaki örnek, bir "Type Mismatch" hatası üretir:

DEFINT A-Z CALL Çizim(50,60) Aynı örneğin doğrusu: DEFINT A-Z CALL Çizim#(50,60) Gelecek ay görüşmek üzere........

Klavyeyle gezinmek için ← ve → tuşları.