Yani programınız; lda 2 ; sistem moti- fini Yo 50 ka- reli olarak jsr SetPattern ; düzenle jsri Rectangle ; ekranı temiz- le . byte 0 ., byte 199 . word 0Ü . word 319 Ida testicons ; ikon datala- rının saklan- dığı sta rüL ; adresleri T0 pseudo- register'ine lda testicons ; yerleştir sta r jsr Dolcons ; ikonları akti- ve et rts ; Kernal'a dön Evet, ana programınız bu uzunluk- ta. Fakat asıl zor olanı ikonların iş- lemlerini ayarlayan rutinleri yazmak. Deminki örnek programdaki testi- cons, ikonların datalarının saklandığı bellek alanının label'ıdır. Sizin ikon- ları aktive etmeniz için yapmanız ge- reken şey şimdi açıklayacağım özel- likte bir ikon tablosu hazırlayarak bu tablonun başlangıç adresini GEOS Kernal'a bildirmektir. Bu yolla birden fazla ikonu tek ko- mutla ekrana çıkartabilir ve aktive edeblirsiniz. Bu işi de Dolcons ruti- nine tablonun adresini r0 repgisterine koyduktan sonra sıçrayarak yapabi- lirsiniz. İKON TABLOSUNUN DÜZENLENMESİ İkon tablosunun en başındaki dört byte'ta kaç tane ikon tanımlanacağı ve ikonlar gösterildikten sonra im- leç'in (GEOS'ta seçimlerinizi yapma- nızı sağlayan, joystikle hareket etti- rebildiğiniz ok işareti) hangi (x,y) ko- ordinatlarında gösterileceği hakkın- da bilgi bulunur. Bundan sonra her ikon için sekiz byte olmak üzere ikon- lar tanımlanır. Bu byte'lar sırasıyla şu bilgileri verir: 1. ve 2. byte: İkonun grafik data- sının saklandığı alanın adresi. Bura- da adresin saklanması; C-64'ün stan- dardı olan önce alçak (low) sonra yüksek (high) değerlikli byte'ların sı- ralanması şeklinde yapılır. Bu saye- de aymı grafik datasını birden fazla ikon için de kullanabilirsiniz. 3. byte: İkonun byte değeri olarak X pozisyonu. İkonunuzun X koordi- natı 0-319 arasında sadece belli X ko- ordinatlarında bulunabilir. Yani an- cak 0,8,16,... koordinatlı X pozis- yonlarında ikon bulundurabilirsiniz. Bu byte pozisyonunu bulmak için ko- ordinatı sekize bölmeniz yeterlidir. Bu tür bir sistemin kullanılmasının sebebi; her X koordinatını vermek için iki byte kullanmayı ve dolayısıyla bellek israfını önlemek. Buna karşı- lık Y koordinatı 0-199 arasında her değeri alabilir. 4. byte: Y koordinatı. Bu koordi- nat değeri 0-199 arasında olabilir. 5. byte: İkonun X genişliği. Bu de- ğer de X koordinatı gibi byte olarak verilmesi gerekir. X boyutunun kaç piksel olduğunu bulmak için bu de- Beri sekizle çarpmak gerekiyor. : : İkonun Y uzunluğu. Bu değer de Y koordinatı gibi kaç pik- sel uzunluğunda bir ikonunuz olaca- ğını kontrol eder. 7. ve 8. byte'lar: İkon ateş tuşu ile aktive edildikten sonra sıçranacak ru- tinin adresi. Bu da C-64 standart sis- temi ile saklanır. (Alçak byte önce, yüksek byte sonra.) (Tablo 1) 7. ve 8. byte'larda gösterilen rutin- de istediğiniz her türlü işlemi yapa- bilirsiniz. İsterseniz tüm sistemi ye- niden başlatabilirsiniz. (Desktop'u yeniden yükleyerek programınızın so- na ermesini sağlamak ve benzeri amaçlarla.) Bu rutinlerde ikonunuzun üzerin- de ateş tuşuna bir kez mi yoksa iki TEST İKONLARI : .byte 8 ; ikon sayısı Aword 160 sikonların gösteriminden sonra imlecinizin x pozisyonu byte 100 sikonların gösteriminden sonra imlecinizin y pozisyonu ;İKON DATA 1 awvord showCase Data ;Grafik data adresi .byre 10 şikonun sol üst köşesi x byte pozisyonu .byte 3 ;ikonun sol üst köşesi y piksel pozisyonu .byte 2,16 ;byte halinde genişlik ve piksel halinde yukseklık K Aword DoShow 3sbowCase için servis rutini ;:İKON DATA 2 «waord JustForFunData ;Grafik data adresi .byte T0 şikonun sol üst köşesi x byte pozisyonu .byte 3 şikonun sol üst köşesi y piksel pozisyonu «word DoFun ;servis rutini Ş ; adet ikon dala girişi daha TABLOÖ 1