Bu sayfadaki yazılar
Sayfanın metni
Sayfa 64
GEOS KURSU-2
Burada GEOS Kernal rutinlerinin programcı tarafından nasıl kullanıldığını kısaca anlatacağız. Bu konuda yapılan bir uygulama da bazı değişkenleri zpage (sıfırıncı sayfa)da depolamaktır. Çünkü bu sayfada 6502 direktifleri daha az yer kaplar ve daha hızlı çalışır. Bu amaçla sıfırıncı sayfada, yer 2'den başlamak üzere 30 bayt pseudo (sahte) kütükler olarak kullanılmak üzere ayrılır. Bu bellek yerleri 15 kelime uzunluğundaki değişkenlere ayrılırlar. GEOS Kernal rutinlerine bu sahte kütüklerle mesajlar iletilir. Bu kütükler GEOS Kernal rutinlerine parametre geçirmenin tek yolu değildir. Bazen a, x, y ve carry flag bile bu amaçla kullanılabilir. Bir GEOS programı hazırlamakta aşamalar: Bu aşamaları üç evreye ayırabiliriz: Olayları (events) seçmek: Programın hangi menü ve ikonlara sahip olacağına karar vermek. Olayları tanımlamak: Olayları tanımlayan tabloları oluşturmak ya da tabloları yüklemek. Örneğin menü yapıları basit bir tablo yapısıyla tanımlanabilir.
Ez
:
bi a
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 65
RUTİNLERİ YAZMAK:
Ana döngü tarafından tanımladığınız olayları gerçekleştirmek için gereken rutinleri oluşturmak. Şimdi de GEOS'un yapısal bir betimlemesine girişeceğiz. Yani programlandığı grafik moduna, bellekteki yerine, Kernal'ın hangi versiyonu çalıştırdığını anlamaya, donanım kontrol kütüğünün neye ayarlı olduğuna ve bellek haritasının Kernal ya da BASIC ROM rutinlerini kullanmak üzere nasıl değiştirileceğini incelemeye, Yüksek Çözünürlük Bit-Mapped Mod: GEOS C-64'ün bit-mapped grafik modunu, 320x200 piksellik bir çözünürlükte kullanır. Bu mod ekranı göstermek için 8000 bayt kullanılır. GEOS Kernal ile programlama uygulamalarını daha kolaylaştırmak için, genellikle ekran datasının bir yedek kopyasını tutmak üzere kullanılan 8000 baytlık bir buffer vardır. Arka plan buffer'ında depolanmış olan görüntüleri ekrana kopyalayan rutin, penceresinin önüne bir menü indirildiğinde ya da bir diyalog kutusu belirdiğinde yararlıdır. Ekranda daha önce bulunanları kurtarmak için, menüler ve diyalog kutuları arkaplan ekranını ön ekrana kopyalar ve programı ekranı yeniden yaratmaya çalışmak zahmetinden kurtarır.
leri kullanılır. Bu özellikle program
BELLEK HARİTASI GEOS BELLEK HARİTASI
GEOS Kernal Bellek Haritası tablosu, GEOS Kernal tarafından kulla-
Bayt no. adres Alanı | nılan ve program uygulamaları için | bırakılan bellek alanlarını Desimal Heksadesimal TANIM | gösterir. Uygulamalar $0400'den 1 0000 6510 Data Yön Kütüğü $FFFF'e kadar 22K'ya sahiptir. Ba- 2 0001 6510 I/O Kütüğü zı durumlarda 8k ilave ile 30k'ya ula- 110 0002-006F- Geos ve program tarafından kullanılan 0. şırlar. Bu ilk bakışta sınırlı bir bellek sayfa gibi görünebilir ama menü, ikon, di- 16 Programda kullanılan 0. sayfa (küt. a2-a9 yalog kutuları, disk, dosya sistemi ve
123 0080-00FA 4 1 256 0100-01FF 512 23552 0400-5FFE 8000 6000-7F3F 192 7F40-7FFE 8000-89FFE $A000-8BEF
C-64 Kernal ve Basic tarafından kul. 0 prog. kullanılan 0. sayfa (küt. a0-a1) Kernal ROM ve Basic rutinler değişik buffer desteklerinin GEOS Kernal'e dahil olduğunu unutmamak gerek. Bu programcıya bırakılan 222 6510 stack ile 30k'lık alanın artması ve program- Kernal ROM rutinleri için ROM cı için daha az iş demektir. Uygulama programı ve data | Uygulama kodunun yeri ve RAM Arkaplan ekran RAM programcıların GEOS Kernal Bellek Uygulama RAM Haritası hakkında bilmeleri gereken- GEOS disk buffer ve dı leri oluşturuyor. RAM üç ayrı yerde Sprayt resim datası ve programcının onu kullanmak isteken RAM
| 1000 8C00-8FD7 Video renk matrisi | diği yerde bulunabiliyor. 16 8FD8-8FF7 GEOS RAM 8 pointer'ları 4096 9000-9FFF OS kodu 8000 A000-BE3F Ekran RAM ya da BASIC ROM
192 BF40-BFFF GEOS Tabloları
4288 C000-CFFF 4k GEOS Kernal kodu 4096 4k GEOS Kernal ya da 4k I/O alanı 7808 E000-FE74 8k GEOS Kernal ya da C-64 Kernal ROM 370 FE80-FF Input Sürücüsü
6 6510 NMI, IRQ ve reset vektörleri