Amiga Dünyası sayı 22, sayfa 15

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 15

C severler Amiga başına! Bu ayki konumuz, CLI ekranı üzerinde çalışmamızı sağlayan Screen fonksiyonları.

Bildiğiniz gibi, Amiga'da WorkBench disketini ya da herhangi bir çalışma disketimizi taktığımızda karşımıza çıkan ilk şey, AmigaDOS'un CLI ekranıdır, işte Screen fonksiyonları da bu ekran üzerindeki yazı yazma, ekran silme gibi işlemleri yapmamızı sağlayan fonksiyonları kapsıyor. Fakat bu fonksiyonlar C compiler disketinin -lc ya da -lc32 kütüphaneleri içerisinde mevcut değil. Bu nedenle compiler işlemleri sırasında link ederken Screen fonksiyonları içerisinden -ls32 kütüphanesini seçmeliyiz. Aksi taktirde compiler Screen fonksiyonlarını tanıyamaz.

CLI (Command Line Input) aynı zamanda Amiga dos komutlarının icra edildiği pencereyi oluşturuyor. Bildiğiniz gibi bu ekrandan herhangi bir programı da çalıştırmak mümkün. CLI ekranına aynı zamanda 'consol' ekranı da deniyor. Bu nedenle Screen fonksiyonları aynı zamanda 'consol' ekranı üzerinde çalışıyor. Sonradan açacağınız consol ekranı üzerinde de Screen fonksiyonları işlemlerini yapmak mümkün. Consol penceresi örneklerini daha önceki sayılarımızda öğrenmiştik.

Daha önce de söylediğim gibi, CLI ekranı aynı zamanda Dos komutlarını ve hazır programlan kullanmamızı sağlıyor. Bildiğiniz gibi, Amiga'da Utility programları dediğimiz yardımcı programlar mevcut. Tahmin ediyorum siz de en azından bir Xcopy, Diskmaster gibi programları kullanıyorsunuzdur. İşte bu tür programlar için bir menü oluşturmak Screen fonksiyonları ile mümkün. Bu nedenle, ben bir örnek program da bu ayki yazımız için hazırladım.

Şimdi gelelim Screen fonksiyonlarının kullanımlarına ve açıklamalarına:

scr_bs(): Bu fonksiyon, aktif ekran pozisyonunu (kursor) bir karakter geri almak için kullanılır.

scr_tab(): Kursor pozisyonunu tab uzunluğu kadar ileri taşır. scr_lf(): Kursor pozisyonunu bir satır aşağı alır. Eğer satır sonuysa, bütün ekranı bir satır yukarı kaydırır.

scr_cursup(J: Kursor pozisyonunu bir satır yukarı alır. Bu sırada kolon pozisyonunu değiştirmez.

scr_cursrt(): Kursor pozisyonunu bir karakter sağa taşır. Eğer sağda karakter varsa, bu karakteri silmez.

scr_clear(): Ekranı siler ve kursor pozisyonunu sol üst köşeye taşır (home).

scr_home(): Kursor pozisyonunu home noktasına yani sol üst köşeye taşır.

scr_curs(lin,€ol): Kursor pozisyonunu verilen kolon ve satır numarasına getirir.

scr_eol(): Kursor pozisyonundan o satırın sonuna kadar olan karakterleri siler.

scr_linsert(): Kursor pozisyonunun bulunduğu noktaya bir satır boşluk yerleştirir.

Ascr_ldelete(): Kursor pozisyonundan bir karakter siler. scr_cinsert(): Kursor pozisyonuna bir karakter boşluk yerleştirir ve bu pozisyondan sonraki karakterleri ileri atar.

scr_cdelete(): Kursor pozisyonundan bir karakter siler ve diğer karakterleri bir geri alarak arayı doldurur.

main()

{

scr_clear(); } Yukandaki örnek, bir Screen fonksiyonunun kullanımını göste- riyor. Programı yazdıktan sonra link ederken -ls32 kütüphanesini eklemeyi unutmamalıyız. Bu örnek CLI ekranını silmemizi sağ- layacaktır.

Şimdi daha gelişmiş bir örnek üzerinde Screen fonksiyonlarını görelim:

/* Programming by Cenker OZKURT */ /* Amiga Dünyası */

#include <stdio.h>

main()

{

char a[50]: int lin,col,max;

strcpy(a," Amiga Dunyasi"); lin=10; col=10; max=strlen(a); new_print(a.lin,col,max);

return(0): }

new_print(a,lin,col,max) char a[50]: int lin,col,max;

{

int i;

for(i=max;i>=0;i-) { scr_curs(lin,col); printf("%c\n",a[i]); scr_cursup(); scr_cinsert(); Delay(l);

} printf("\n");

Bu örnek ile, CLI penceresi üzerindeki verilen bir pozisyona herhangi bir diziyi yazdırmamız mümkün. Şimdi programımızı bir inceleyelim. #include <stdio.h> satırı ile, standart input/output fonksiyonlarını ve makrolarını compiler tanıyor. Kullandığımız Delay() fonksiyonu da bu dosya içerisinde tanınıyor. Daha sonra., char a[50]; int lin,col,max;

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