ikonun negatifi görünür. Daha son- ra bir menüden seçtiğiniz bir işlemle (mesela dosya hakkında bilgi alma - get info-) seçilen ikon üzerinde işlem yapabilirsiniz. GeoPAINT'de de her- hangi bir işlemi seçtiğinizde o işlemin ikonu negatif olarak kalır. Yeni bir ikon seçildiğinde ise ilki normale dö- ner ve ikincisinin negatifi gösterilir. Peki ikon-menü ve ikon-ikon arasın- daki bu ilişkiler nasıl düzenleniyor? GEOS Kernal'ında iconSelFlag ($84B5 adresinde) adı verilen bir de- ğişken bulunur. Bu değişkenin 6. ve 7. bitleri ikon seçiminde neler yapı- lacağını kontrol eder. Eğer bit 7 set edildiyse, aktive edildiği zaman ikon önce negatif, sonra normal olarak görünerek seçildiğini belli eder. Bu modu seçmek için $8b45 adresine ve- receğiniz değeri $80 değeriyle OR'la- manız gerekmektedir. İkonlar aktive edildiği zaman ne kadar uzun süre ne- gatif olarak kalacakları selectionF- lash ($84B3) adresiyle ayarlanmakta- dır. Bu adresin orijinal değeri 10'dur. Eğer bit 7 reset ve bit 6 set duru- munda ise ikon seçildikten sonra de- kez mi basıldığını kolaylıkla anlaya- bilir ve buna göre işlem yapabilirsi- niz. Bu tür kontrolleri desteklemek otherPressVector (kontrol rutininin yerini gösteren vektör) rutinleriyle kolaylaştırılmıştır. GEOS Kernal rOH adresinde $00 değeriyle bir $f değe- riyle de iki kez ateş tuşuna basıldığı- nı belirtir. rOL adresindeyse de kaç numaralı ikonun aktive edildiğini öğ- renebilirsiniz. (Birinci ikonun değeri O'dır.) Bu özelliği tüm ikonlar için aynı rutini kullanan fakat değişki ikon seçimlerinde hafif farklı tepki- ler gösteren programlarda kullanabi- lirsiniz. Rutininiz rOL adresindeki ikon numarasını kontrol ederek bu- na göre davranabilir. Bunlardan sonra da ikon grafik tabloları hazırlanır. (Tablo 2) İkon grafikleri bit-map grafikler- dir. Bizim verdiğimiz örnektekiler 2 byte eninde (16 piksel) ve 16 piksel boyundadır. Grafik datasının hazır- lanması ise şöyle yapılır: İlk byte'ınız ikonunuzun kaç byte eninde olduğunu belirtir. Grafik ta- nımını ise Tablo-3'te gösterildiği şe- - kilde yapmanız gerekiyor. Burada bahsedilmeye değecek bir metod DESKTOP ve GeoPAİNT ta- rafından kullanılmaktadır. Eğer DESKTOP'ta bir ikonun üzerine ge- lip bir kez ateş tuşuna basarsanız, 46 vamlı olarak negatif olarak kalacak- showCaseData : byte $02,SFF,$9C,$80,$01,$80,5$39,580,$6D,$80,$E5,$81,$BD,$83,$19 .byte $86,$31,$8C,$61,$98,$C1,$B1,$81,$BB,$01,$BE,$01,$BC,$01,$80 .byte $01,$02,$FF JustForFunData : .byte $02,5FF,$9C,$87,$01,58D,$81,$9E,$CI,$BB,$61,SAD,$B1,$B6,$99 .byte $9B,$09,59D,$0D,$96,$07,$9A,$03,58C,$01,$87,$E1,$80,$31,$80 .byte $19,$02,$FF ; geri kalan 6 ikonun grafik dataları 3 TABLO.2 İkon grafik datalarmın sıralanışı : 1. byte— ikonun byte olarak x genişliği (1.byte-3 olarak kabul edersek). x-1 x-2 x-3 2.byte 3.byte 4 byle S.byte 2 6.byte 7.byle Bizim örneğimizde (tablo-2) : 1.byte- 2 TABLO 3