Bu sayfadaki yazılar
Sayfanın metni
Sayfa 44
GEOÖOS ll
Geçen ay basit bilgilerle başladığımız GEOS kursuna daha derinlere inerek devam ediyoruz. Bu ay program döküm ekinde bulunacağınız THE ULTIMATE GEOS CONVERTER programını yazmanız, bu kurstan yararlanmanız için şarttır. Program her ne kadar uzunsa da, bu, gözünüzü kurkutmasın çünkü GEOS'un size sunduğu kolaylıklardan yararlanmak için bu programa ihtiyacınız var. Program hakkında ayrıntılı bilgi PROGRAM DÖKÜM EKİ'ndeki açıklamalarda bulunmaktadır. Bu aydan itibaren GEOS programlarını SUPER AS-SEMBLER formatında değil, normal bir assembler formatında vereceğiz. Bunun sebebi SUPER ASSEMB-LER'ın yapısının GEOS programlarını yazmaya uygun olmaması Bu ayki yazımızda size bir GEOS application'ı tasatımlamanız için gerekli temel bilgileri vereceğim. Bir application tasarımını üç ana başlığa ayırabilirsiniz: 1. Event'leri (olayları) seçin: Programınızda hangi tip menüler, ikonlar, vb. kullanacağınıza karar verin. (Daha sonraki yazılarımızda bahsedilecek olan ve özel bir event türü olan zaman tabanlı işlemler de buna dahildir.) 2. Event'leri tanımlayın: Event'i tanımlayan tabloları kurun ve vektörleri yükleyin. Örneğin menü yapıları basit tablo yapılarıyla tanımlanırlar.
Bu ayki sayımızda size bir GEOS application'ı tasarlamanız için gerekli temel bilgileri vereceğiz. Ayrıca program döküm ekinde bundan sonra sık sık kullanacağınız bir yardımcı program yer almakta.
3. Rutinleri yazın: Ana döngü tarafından çağırılacak ve sizin event'liriniz tarafından çalıştırılacak olan rutinleri yazın. Bu noktaya kadar, amacımız GEOS'la programlamanın neye benzediğini göstermekti. GEOS, application'ınızın bir bir prototipini kolaylıkla hazırlamanızı sağlar; çünkü programınızı başa çıkması kolay olan basit tanım tablolarına ve event hizmet rutinlerine ayırır. Eventleri programlamaya başlamadan önce kısa bir şekilde GEOS'- un donanımını tartışacağız: kullandığı grafik modu, bellek düzeni ve bank-switch registerlerinin nasıl ayarlandığı. Aslında GEOS'ta program yazıp da grafik modları veya bank-switch hakkında hiçbir şey bilmemeniz olası, yani bir C64'cüsüyseniz, şimdiki bölüm size zor gelebilir ama ğişikliği silen UNDO komutunun kullanılması için kullanılır. Bu kopyalama özelliğini destekleyen KERNAL rutinleri (adresleri gelecek sayıda vereceğim) RecoverAll- Menus, RecoverLine, RecoverMenü ve RecoverRectangle'dir. Bu rutinleri de grafik ve menü bölümlerinde işleyeceğiz. Eğer tampon bölgeye ayrılan 8000 baytı da kullanmak istiyorsanız, ekranın otomatik olarak bu bölgeye kopyalanması GEOS KERNAL tarafından engellenebilir. Bu sayede kullanabileceğiniz bellek 8000 bayt artar. Bu da grafik bölümünde ayrıntılı olarak ele alınacak konulardan biridir.
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 45
BELLEK HARİTASI:
GEOS BELLEK HARİTASI tablomuzda GEOS KER-NAL tarafından kullanılan ve sizin kullanımınıza açık olan bölgeleri görebilirsiniz. Bu tabloya göre application'ınız $8400-$5FFF arasında bulunan 22K'lık alanı kullanabilir. Buna tampon bölgede bulunan 8K'lık bölgeyi de eklersek sizin kullanımıza tam 30K bırakılmış demektir. Bu miktar ilk bakışta az görünebilir ama GEOS KER-NAL'ının menü, ikon ve diyolog kutularıyla ilgili tüm işlemleri yüklenmesi sizin yazmanız gereken program miktarını oldukça azaltmaktadır. Bundan ayrı olarak GE-OS'un diske ulaşım hızının yüksek oluşu sayesinde yeni bir dosya türü ile bellek sorununuz tamamen ortadan kalkıyor, Adı VLIR olan bu dosya türü ile çok uzun ve gelişmiş programları yazmanız olanaklı hale geliyor. VLIR dosyaları da daha sonraki bölümlerimizde ayrıntılarıyla anlatacağım konular arasında.
yilerinden elde edebileceğiniz) PROGRAMCININ EL Kİ-TABI adlı kitabı okuduğunuz veya grafik hakkında yeterli bilgiye sahip olduğunuz varsayılmıştır. Sizin GEOS bellek haritasını değiştirmek isteyeceğinizi sanmıyorum ama bazen sevdiğiniz bir C64 KERNAL rutinine veya BASIC ROM'una sıçrayıp sonra GEOS'un normal işletimine dönmek isteyebilirsiniz. Birazdan GEOS'un nor- me get mal işletimine dönmek isteyebilirsiniz. Birazdan GEOS'- un normal işletimine dönmek isteyebilirsiniz. Birazdan b. GEOS'un “fiziksel” bir tanımını yapacağım. Yani programlandığı grafik modu, bellekte nerelere yerleşirildiği, 2 hangi GEOS KERNAL verisyonunun sizde bulunduğu, RR ed donanım kontrol register'inin değeri ve KERNAL ile BA-SIC ROM rutinlerini çağırmak için bunu değiştireceğiniz. I E (0) YÜKSEK ÇÖZÜNÜRLÜK ve BIT-MAP MODU: A Y |
GEOS C64'ün 320 x 200'lük en yüksek çözünürlük mo-
'dunu kullanır. Bu modda 8000 bayt (200 satır çizgisi, çizgi 5,25 TE AC-Extern Disk Drive başına 40 bayt) ekranı görüntülemek için kullanılır. Bu moda yabancıysanız PROGRAMCININ EL — 40) / 80 Booter 450 000 TL nda bulabileceğiniz Grafik modları hakkındaki bölümprogramlarının GEOS KERNAL altında yaz. 2MBRAM mını kolaylaştırmak için bellekte normal ekranın bir kopyasını bulunduran 8000 baytlık bir tampon bölge bulu- (0 9) 000 nur. KERNAL'da tampon bölgeyi ekrana 512 KB RAM 2 TL. ya da tersini yapabilecek hazır rutinler bulunmaktadır. *KDV Hariç Bu sayede, bir menü veya konuşma kutusu açıldığında ve application'ınızın ekranının üzerine yazdığında ekran kaybı engellenmiş olur. Yani menü ve konuşma kutuları — tampon bölgeyi ekrana transfer ederek application'ın kendi ekranını yeniden yaratması (ki bu bazen imkânsızdır) gereğini ortadan kaldırmış olur. Bu kopyalama rutinleri application tarafından da kullanılabilir tabii ki. Örneğin geoPAINT bu özelliği son de-