eklenmiştir. Bu işaretin gösterdiği ru- tin, sadece bir Icon'u harekete geçir- mekle kalmamakta, aynı zamanda da artık gerekmeyen sembollerin silin- mesini de üstlenmektedir. Window'ların yönetimi işi de Ge- os'ta kurnazca ve yerden son derece tasarruflu bir biçimde çözülmüştür. Çalışma düzlemi önce bir maske- byte'la (iki bit'ten biri konmuş ola- rak) satır satır geriye boyanır. “Rectangle”' rutini kullanılarak ter- cihe tabi bir doldurucu desenle ekran- da bir window açmak mümkündür artık. Dört window köşesinin x- koordinatları (0'dan 199'a kadar) ve y-koordinatları (0'dan 319'aa kadar) verilir. “Frame Rectangle” ile pen- cere bir de çerçeve kazanır. Doldu- rucu-desen için “SetPattern''le ayar- lanan 0'la 33 arasında bir değer veri- lebilir. Menülerle diyalog penceresi, çalış- ma sırasında yazıyla doldurdukları için, Geos, ekranda görünmez hale gelmiş resim parçalarını kurtarmak üzere 8000 Byte'lik bir tampon- belleği de hazırda bulunmaktadır. “Recover Rectangle”', sonradan, tampona atılmış grafik detayı basitçe kopya ederek, resmin hasar görmüş kısımlarını yeniler. Ayrıca GeoPaint, aynı mekaniz- mayı, “Undo” fonksiyonu için de kullanmakta. Tampon bellek, RAM olarak aplikasyonların hizmetine de girebilir, ancak bu durumda, üstüne yazı yazılmış grafiklerin yeniden ima- li imkansızlaşır. Bu durumdan kur- tulmanın bir yolu, resmin yeniden çi- zimi; tabii bu yol daha fazla zamana ihtiyaç gösterir. Ama bu amaçla kul- lanılmak üzere, “*Graphic String” ru- tini geliştirilmiş bulunuyor: Bu rutin, bir grafiği alıp ara-depolama için bir metin stringine dönüştürür. Yenileme için artık gereken yegâne iş, bu me- tin stringini window-açıcıya geri ver- mektir. Bu açıcı, başlangıçtaki resmi, temel yapı taşları olan daire, dikdört- gen, çizgi ve doldurucu-desenlerle ye- niden kurar. Oranlı metinlerin çeşitli karakter setleriyle ekrana yazılması da aynı de- recede basittir. “LoadCharSet”', Ge- os'un sistem disketinden bir karakter setini yükler ve “PutString” arzula- nan metni seçilen yazı tipiyle ekrana yazar. Geos, girilen datanın işlenmesi için Commodore GEOS RUTİNLERİ Desktop Rutinleri Grafik Rutinleri Hires-metni Mouse Yönetimi Sprite Yönetimi Süreç Organizasyonu IEC-Bus ve Disk Yönetimi VLIR File'ları Matematik Kütüphaneleri Genel Kütüphane Rutinleri Dialog Box'ları Printer-sürücüler özel sürücü rutinler kullanıyor. Stan- dart olarak bir joystick sürücü bulu- nuyor. Bunun kapasitesi 380 Byte ve $FE80-$FFF9 adres alanında yer al- makta. Eğer başka bir giriş aracı (ör- neğin bir grafik tableti) kullanılacak- sa, bu noktada ““Call-Routine” ile harekete geçirilen, mütekabil bir program kullanılabilir Sprite yönetimi de en gerekli ola- 'na indirgenmiştir. Her sprite istendiği anda gösterilebilir (““EnableSprite”') ya da silinebilir (““DisableSprite'') ve “PosSprite” kullanılarak da konum- landırılabilir. Başlangıçta Geos'un Multitasking melekelerinden sözetmiştik. Sistemin bu amaca yönelik bir de “süreç- yönetimi” var. Böylelikle ““Main Loop” ve “Interrupt Level” prog- ram parçalarına uygulama program- larında bir üçüncüsü eklenmekte: sü- reç. Dolayısıyla herhangi bir aplikas- yonda, kendi flag-byte'ına sahip bir süreç modülü kurmak mümkün. Interrupt kullanılarak bu sayaç her 1/60 saniyede bır “Interrupt Level”” tarafından bir eksiltilir. 0'a vardı mı, flag-byte'da bir hazırlık biti çıkar; bu da “main loop''a sürecin tekrar ça- lıştırılabileceği sinyalini verir. Bu sa- yede, bu metodlar, az çok eş-zamanlı olarak, CPU zamanını flag-byte'ın hazırlık biti sayesinde paylaşan bir- den fazla küçük programı, hafızada çalıştırmak mümkün. Sayaçlar, burada, süreç öncelikle- rinin düzenlenmesinin ilkel bir biçi- mini oluşturuyor: Bir multitasking iş- letim sisteminde yüksek öncelikli sü- reçler alçak öncelikli diğer süreçler- den daha yüksek bir sıklıkla ele alın- makta ve böylelikle de, daha süratli işlenmekteler. Geos'ta bir sürecin da- ha hızlı işlenmesini mümkün kılmak üzere, gösterge değeri düşürülmekte.