Commodore sayı 57, sayfa 22
Sayfanın metni

Sayfa 22

VEDAT HALLAÇ

Selam GEOS'çular. İşte yeni bir sayıda tekrar birlikteyiz ve GEOS'un sırlarını açığa çıkarmaya devam ediyoruz. Hatırladığınız gibi geçen sayıda GEOS'un en önemli özelliklerinden biri olan menüleri anlatmıştım. Daha önceki sayımızda da ikonlar hakkında bilgi vermiştim. Bu sayımızda ise bu özelliklerin kullanımına alışmanız için ikonların ve menülerin kullanıldığı bir örnek programı açıklayacağım. Bu örnek program, sadece Amerika'lı GEOS kullanıcılarının yararlanabildiği bir hizmet olan modem servisinin GEOS programının bir benzetimi. Tabii ki örnek programın çalışmasının Quantum-Link programıyla uzaktan yakından bir alakası yok. Yalnızca ekran düzeni orijinalinden farksız. Programın açıklamalarını dikkatle okuduktan sonra programı çalıştırırsanız menüler veya ikonlar hakkında anlamadığınız bir şey kalacağını sanmıyorum. Programı çalıştırdığınızda ekran temizlenir ve sekiz tane ikon ekrana dizilir. Bu ikonların hangisini seçerseniz seçin sizi ikinci ekrana, yani menü ekranına götürür. Bu ekranın sol üst köşesine iki elemanlı bir yatay menü ve ortasına da bir ikon yerleştirilir. Menü elemanlarının her biri birer dikey alt-menü açar. Bu alt menülerin bütün seçenekleri ise sizi ana menüye döndürür. Programdan çıkmak için ise ekranın ortasında bulunan ikonu seçmeniz gerekli. Şimdi de programın ayrıntılı açıklamasına gelelim: * ; Programımız $4400 adresinden

; başlıyor. Programda kullanılan label'ların adresleri: NewDisk - $CIBİ MouseUp — $CISA SetPattern — $C139 i. Pattern . — $C19F Dolcons - $C15 DoMenu - GotoFirsiMenu — $CIBD EnterDesktop — - $C22C r0 — $02

Program belleğe yüklenir yüklenmez GEOS Kernal tarafından yapılacak ilk şey programın çalıştırılma adresi olan $4400'a (bunu header block'da belirtiyoruz bildiğiniz gibi) sıçramaktır. Burada ise ilk ekranın düzenlenmesi ile ilgilenen rutin bulunur: Jsr NewDisk Eski GEOS versiyonlarında bulunan bir hata yüzünden, her application'ın başında bu rutine sıçranarak disk motorunun durdurulması şarttır. Yeni GEOS versiyonlarında bu hata tamamen düzeltilmiştir. Fakat programınızın tüm GEOS'larla uyumlu olarak çalışması için her programınızın başında bu komutu kullanın. Jsr MouseUp Eğer herhangi bir sebeple mouse'unuzun görünmesi engellenmişse bu komutla tekrar görünür hale gelmesi sağlanır. Lda # $02 Jsr SetPattern Sistemin grafik işlemlerinde kullanacağı deseni ayarlar. Bu komutlarla GEOS'un alışılmış ekran deseni olan kareli deseni seçiyoruz. (Desenler konusunda ayrıntılı bilgiyi “GEOS'la Grafik” bölümünde vereceğim. Fakat bu desenlerin neler olduğunu görmek isteyenler geoPAINT programında sol alt köşede bulunan büyük siyah kutunun içinde ateş tuşuna basarak tüm desenleri inceleyebilirler. Jsr Rectangle .byte 0 .byte 199 0 319 Burada kullandığımız Rectangle rutini, kendisinden sonra gelen 6 byte'ta tanımlanan dikdörtgenin içini seçilmiş olan desenle doldurur. Jsr komutunu takip eden ilk byte dikdörtgenin üst kenarının, ikinci byte ise alt kenarının y koordinatıdır. Bunu takip eden iki byte'la sol kenarın, sonraki iki byte'la da sağ kenarın x koordinatını belirtiyoruz. Buradaki komutlarla tüm ekranın seçilen desenle doldurulmasını sağlıyoruz. Lda # < ikontest Sta r0 Lda # > ikontest Sta r0+1 Jsr Dolcons Artık ekrana konacak ikonların tanım tablosunun yerini GEOS Kernal'a belirtmenin zamanı geldi. “İkontest” label'ı ile gösterilen bu tanım tablosunun adresini r0'a yerleştirdikten sonra Dolcons rutinine yapılacak bir sıçrama bu işi yapmak için yeterli. Rts Artık kontrolü GEOS Kernal'ına bırakmamız gerekiyor. Böylece aktive ettiğimiz ikonlar kullanıma girebilecek.

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