64 ile yapılabileceklerin alanını da ge- nişletiyor. Disk-turbo sisteminin var- lığı daha çok data yoğun programla- ra olanak sağlıyor. Böylelikle C-64 ile yazılabilecek programların spektru- mu genişliyor. TEMEL BİLGİLER GEOS aşağıdaki özelliklere sahi ve kursumuzda bu özelliklerini anlata- cağız: İnıp çıkan menüler İkonlar Oranlı yerleştirilmiş fontlar Bu fontları kullanan dizgi (string) 1/O rutinleri Diyalog kutuları Komple grafik kütüphanesi Komple matematik kütüphanesi Uygulamalar içinde multi tasking 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ürek- li olarak bulunur ve çalışır. GEOS'- un tüm pencere, ikon, menü ve font- larının desteği Kernal'da bulunur. Di- ğer yandan deskTop GEOS Kernal'- in bir parçası değil geoWrite ve geo- Paint 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 me- nü 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) di- ye adlandırılır. GEOS Kernal'ı event- leri işlemek için destek sağlar. Uygu- lama, event kullanıcı girdisi ile akti- ve edildiği zaman kullanılacak servis rutini ve menülerle ikonları tanımla- mak için bir tablo sunar. GEOS Ker- nal bir event olduğunu belirlediği za- man uygun servis rutinini çağırır. (Burada aksi belirtilmediği sürece ça- ğırma bir altrutine atlama, return de altrutine dönüş anlamında kullanıl- maktadır) Ondan sonra servis rutin- leri GEOS metin, grafik, dik 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 Ker- nal'a bırakılabilir. Örnek vermek gerekirse, ““mouse click edildi'”' gibi bir sinyali uygula- maya aktarmak yerine, Kernal mou- se hareketleri ve click'lerinden bir menü eventinin gerçekleştiği, bir me- nünün indirildiği ve seçimin yapıldı- ğı sonucunu çıkartabilir. Kernal için- de dispatchers (çağırıcılar) denilen ru- tinler 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 2. Kullanıcı tarafından tanımlan- mış bir süreç anlamlarında kullanıl- maktadır. Sürecin bir örneği bir saati o ana getirmek için her saniye run edilen bir rutin olabilirdi. Uygulama program- cısı rutini sağlar ve GEOS Kernal'a onun ne kadar sık run edileceğini söy- ler. O kadar zamanın geçtiği her se- fer de bir event başlatılır. Eğer kul- lanıcı eylemi söz konusu değilse, yal- nızca GEOS Kernal kodu işliyor de- mektir. Bellek yeri other Press Vek- törü (bastırma vektörü) kullanıcı mo- use'u herhangi bir menü ya da ikon dışında click ederse, çağırılacak ruti- nin adresini içerir. Bellek yeri key Vector (tuş vektörü) klavyede bir tu- şa basıldığı zaman çağrılacak rutinin adresini içerir. Ondan sonra uygula- ma tüm tampon bellek (buffered) gir- dilerini return eden bir rutin çağıra- bilir. Bir editör gibi uygulama örne- ğginde, ekran bir sayfanın belli bir kıs- mını temsil eder. Ekran alanında mo- use'un click edilmesi sayfada bir po- zisyon 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 ikonla- rın dışında) adresi diğer Press Vek- töründe depolanmış bulunan rutin çağırılır. Rutin mouse pozısyonuııu 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ör- deki rutin çağırılır ve kullanıcının gir- diği karakterlere dönmek için get- NextChar (sonraki karakteri al) ru- tinini çağırabilir. Vektörler O nokta- sına getirilerek çağırılacak hiçbir ru- tin olmadığı gösterilir. Uygulamanın başlangıç kodu bu vektörleri uygun rutinlerin adreslerine göre ayarlamalı