Commodore sayı 49, sayfa 20

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 20

64 ile yapılabileceklerin alanını da genişletiyor. Disk-turbo sisteminin varlığı daha çok data yoğun programlara olanak sağlıyor. Böylelikle C-64 ile yazılabilecek programların spektrumu genişliyor.

TEMEL BİLGİLER

GEOS aşağıdaki özelliklere sahip ve kursumuzda bu özelliklerini anlatacağız: İnip çıkan menüler İkonlar Oranlı yerleştirilmiş fontlar Bu fontları kullanan dizgi (string) rutinleri Diyalog kutuları Komple grafik kütüphanesi Komple matematik kütüphanesi Uygulamalar içinde multitasking Hızlı disk ulaşımı Sayfalı dosya sistemi Komple yazıcı arabirim seti GEOS işletim sisteminin merkezi Kernal. Kernal C-64 belleğinde sürekli olarak bulunur ve çalışır. GEOS'un tüm pencere, ikon, menü ve fontlarının desteği Kernal'da bulunur. Diğer yandan deskTop GEOS Kernal'ın bir parçası değil geoWrite ve geoPaint gibi bir uygulamadır. GEOS programcılığı büyük ölçüde menü ve ikonları tanımlamak için masalar oluşturmak ve Kernal'a menü ve ikonlar aktive edildiği zaman çağırılacak rutinleri vermekten oluşmaktadır. Kullanıcının GEOS Kernal'i ile işleyen bir programa yolladığı her tür girdi - bir menüyü açmak, menüyü aktive etmek, metni girmek, mouse'u hareket ettirmek gibi- event (olay) diye adlandırılır. GEOS Kernal'ı eventleri işlemek için destek sağlar. Uygulama, event kullanıcı girdisi ile aktive edildiği zaman kullanılacak servis rutini ve menülerle ikonları tanımlamak için bir tablo sunar. GEOS Kernal bir event olduğunu belirlediği zaman uygun servis rutini çağırır. (Burada aksi belirtilmediği sürece çağırma bir altrutine atlama, return de altrutine dönüş anlamında kullanılmaktadır) Ondan sonra servis rutinleri GEOS metin, grafik, disk turbo ve başka rutinlerini istenen eylemi gerçekleştirmek için kullanırlar. Uygulamalar donanım üzerinde hala direkt kontrole sahip olabilir ama birçok durumda bu destek Kernal'a bırakılabilir. Örnek vermek gerekirse, “mouse click edildi” gibi bir sinyali uygulamaya aktarmak yerine, Kernal mouse hareketleri ve click'lerinden bir menü eventinin gerçekleştiği, bir menünün indirildiği ve seçimin yapıldığı sonucunu çıkartabilir. Kernal içinde dispatchers (çağırıcılar) denilen rutinler kullanıcının ne yaptığını görüp o işi halledecek uygun servis rutinini çağırırlar. Bu tür etkileşime event güdümlü programcılık denir. Burada bir event 1. Kullanıcı tarafından başlatılan bir eylem ya da 2. Kullanıcı tarafından tanımlanmış bir süreç anlamlarında kullanılmaktadır. Sürecin bir örneği bir saati o ana getirmek için her saniye run edilen bir rutin olabilirdi. Uygulama programcısı rutini sağlar ve GEOS Kernal'a onun ne kadar sık run edileceğini söyler. O kadar zamanın geçtiği her sefer de bir event başlatılır. Eğer kullanıcı eylemi söz konusu değilse, yalnızca GEOS Kernal kodu işliyor demektir. Bellek yeri otherPress Vektörü (bastırma vektörü) kullanıcı mouse'u herhangi bir menü ya da ikon dışında click ederse, çağırılacak rutinin adresini içerir. Bellek yeri keyVector (tuş vektörü) klavyede bir tuşa basıldığı zaman çağrılacak rutinin adresini içerir. Ondan sonra uygulama tüm tampon bellek (buffered) girdilerini return eden bir rutin çağırabilir. Bir editör gibi uygulama örneğinde, ekran bir sayfanın belli bir kısmını temsil eder. Ekran alanında mouse'un click edilmesi sayfada bir pozisyon seçilmesi anlamına gelir. Bu pozisyon daha sonra metnin girileceği ve grafiklerin çizileceği pozisyon olur. Kullanıcı mouse'u ekran alanında click ettiği zaman (menü ve ikonların dışında) adresi otherPress Vektöründe depolanmış bulunan rutin çağırılır. Rutin mouse pozisyonunu belirlemek için MouseX pozisyonu ve MouseY pozisyonu değişkenlerine bakabilir. Bir tuşa ya da birkaç tuşa birden basıldığında, Anahtar Vektördeki rutin çağırılır ve kullanıcının girdiği karakterlere dönmek için getNextChar (sonraki karakteri al) rutinini çağırabilir. Vektörler 0 noktasına getirilerek çağırılacak hiçbir rutin olmadığı gösterilir. Uygulamanın başlangıç kodu bu vektörleri uygun rutinlerin adreslerine göre ayarlamalı ya da hiç servis rutini yoksa onları 0'da bırakmalıdır.

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