Bir aylık bir aradan sonra GEOS programlama kursuna devam ediyo- ruz. Artık bu yazı dizisi sadece GE- OS programlamasını değil; GEOS Desktop, geoWRITE, geoPAINT gi- bi GEOS programlarının kullanımla- rını ve gizli yönlerinin açıklanmasını da kapsayacak. Yani bu aydan son- ra tek başlık altında iki konuyla de- vam edeceğiz. GEOS PROGRAMLAMA KURSU Bu ayki program konumuz GEOS grafik rutinlerinin makine dilinden ; çağrılması. daha önce de belirttiğimiz gibi GEOS, menüler, ikonlar, pence- reler gibi özellikleri desteklemek için yüksek çözünürlük (high resolution) grafik ekranını kullanır. Eğer yüksek çözünürlüklü grafik ekranlarıyla ara- niz iyi değilse, ya dergimizin eski sa- yılarında yayınlanmış yazılardan ya da “Programcının El Kitabı'ndan bu konu hakkında bilgi edinmeniz, ya- zıyı daha rahat anlamanız açısından oldukça yardımcı olacaktır. En genel anlamıyla ekrana herhan- gi bir şey çizmek, ekran RAM'inde bulunan bazı bitleri “1” veya *0” yap- maktır. Değeri 1 olan bitlere “önplan rengi', O olanlara ise “arkaplan rengi' adı verilir. (DİKKAT!! bu “önplan- arkaplan' kavramı normalde kullanı- lanından farklıdır. C-64 işletim siste- minde “önplan rengi' ekranın rengi- ni, “arkaplan rengi' çerçevenin rengi- ni belirtir.) GEOS'un normal ön/ar- kaplan rengi koyu gri/açık gri olarak belirlenmiştir (Hâlâ değiştirmediyse- niz). Bu size biraz ters gelebilir çün- kü genelde boş bir erkan siyah (ya da koyu bir renk) olarak düşünülür. Oy- sa bizde bunun tam tersi geçerli. Açık renkli bir ekran üzürene koyu renk- lerle yazı yazıyoruz.Bu tür kavram- 44 ların kafanızı karıştırmasına asla izin vermeyin. Bu arada dikkat etmeniz gereken şey GEOS rutinlerinin grafik ekranının renk RAM'ını hiçbir şekil- de etkilememesi. Yani değişik renk- te bir şeyler çizmek isterseniz, prog- ramınızın renk RAM'”ını da ayarla- ması gerekiyor. geoPAINT programı da renkler konusunda bu yöntemi kullanmaktadır. GEOS grafik destek rutinlerinin en önemli özelliklerinden biri de bir “ta- mpon grafik ekranı” bulundurması- dır. Bu tampon ekranda asıl ekranın bir kopyası bulundurulup ve asıl amacı herhangi bir anda ekranın belli bir bölgesini eski haline çevirmektir. Bir bölgeyi eski haline getirmek teri- mi, bu bölgenin eski içeriğini tampon ekrandan asıl ekrana kopyalamak olarak açıklanabilir. Bu özellik çizim Celal & Vedat Hallaç programlarına “UNDO” işleminin ek- lenmesini oldukça kolaylaştırır. Özellikle menüleri kullanırken tampon bölgeye sık sık başvurulur. Bir menü elemanını seçtiğinizde, ta- mpon ekrandan menü boyutlariında bir bölüm olduğu gibi ana ekrana kopyalanır. Böylece menünüz kapan- mış olur. GEOS'un bir özelliği de, yapılan grafik işlemlerinin ana ekrana mi, tampon ekranı mı yapılacağını $002F adresinin (“displayBufferOn”' label'- ıyla tanınır) değerine göre belirleme- sidir. Bu işlem için $002F adresinin 6. ve 7. bitlerine bakarak karar veri- lir. Eğer 7. bitin değeri 1 ise ana ek- rana 6. bitin değeri 1 ise tampon ek- rana çizim yapılır. İki bitin değeri de 1 ise her iki ekrana da çizim yapılır. $2F adresinin en yaygın kullanım