1 Kasım 1990 Tarihli Commodore Gazetesi Sayfa 46

1 Kasım 1990 tarihli Commodore Gazetesi Sayfa 46
Metin içeriği (otomatik olarak oluşturulmuştur)

rutinini kullanırsak elektron alt satırda, bu işlemi yap- tığımız koordinatın hemen altında bulunacaktır. Ta- bii ki bu kadar kolayca bu iş içinden çıkamayız. Çün- kü C64'ünüz belli satırlarda (her karakter satırının baş- langıcında) sizin programınızla olan bağlarını keser ve ekrana gidecek olan gürüntüyü ayarlamak için ye- ni satırı almak, yüksek çözünürlük modunda iseniz bu satırdaki harfleri renklere çevirmek gibi işlemlerle uğ- raşır. Tabii ki bu işlem sizin ayarladığınız zamanlamayı da alt-üst eder. Bu olayları yapmak için program kul- lanılmadığı için (tamamen elektronik olarak başa Çı- kılır bu işlerle) çok gelişmiş sistemler kullanmak dışın- da bu satır yenileme olayını engellemek elimizde de- ğgildir. Bu yüzden, yazacağınız program bu satırlarla uğraşacağı zaman renk değiştirme işini elinden gel- diğince çabuk halletmek zorundadır. Tabii ki bu ayar- lamayı yapmak kolay olmadığından renk şeritleri yapmak çoğu programcının korkulu rüyası olmuştur. Bu programlar o kadar hassastır ki içlerinden çıkarı- lacak tek bir komut bile tüm zamanlamayı alt-üst ede- bilir. Daha da ilginci, $DO11 adresinde bulunan y po- zisyonunu değiştirmenizin programın çalışmasını en- gellemesidir. Eğer $DO1 1 kullanarak ekranı bir piksel aşağı alırsanız, buözel satırlar da bir satır aşağı ka- yacak ve sizin programınızda belirlenen yerlere denk gelmeyecektir. Bunun sonucu olarak da programınız işe yaramayacaktır. — Bu konuda sizi uyarmam gereken bir nokta daha var. Eğer bir satır üzerinde bir sprite bulunursa o C64'ünüzü o sprite'ı gösterebilmek için o satırda sizin programınızdan biraz zaman çalmaktadır. Bu kadar uyarı ve açıklamadan sonra gelelim prog- ramın açıklamasına: $C000-$C032 arasında bildiğiniz sistemlerle inter- rupt'lar ayarlanır. Bu arada $COF7 adresi sıfırlanır ve ekranın X pozisyonunu tutan adrese $C7 değeri veri- lir. - Multicolor modu için bu değeri $D7 yapın . IRA 46 rutininiz $31. rasterda başlar ve $C035 adresinde bu- lunur. IRA Lda #$4D Sta $L018 Komutlarıyla karakter setinin yeri değiştirilir. ($ 3000 adresine alınır.) Eğer 1D yerine $15 değerini kullanır- sanız normal karakter setine geçersiniz. Ldx #S1D Dex Bne Loop Rutinini kullanarak elektron ışınının istediğimiz yere gelmesini sağlıyoruz. Lda $COF8 Sta $DO16 ile x piksel-koordinatını ayarlıyoruz. Ldy # S04 Jmp Başla komutuyla ilk satırın rengini ayarlanmasını sağlıyo- ruz. (ilk satırda bazı ayarlamalar yapılır unutmayın.) Loop Kısaltılır Ldy #S08 Başla Lda $COE2, X Renkver Sta $DO20 Sta $DO21 gördüğünüz gibi ilk olarak satırın rengini hiç vakit kaybetmeden veriyoruz. Iİnx Dey Bea Kısasatır Programın can alıcı noktası burası. Her sekiz satır- da bir birazdan gireceğimiz bekleme rutinie uğrama- dan yeni renk verilir. Cpx#$11 Bes renkson tam $11-1 (— 16) satıra $COE2 adresinden başlayan renkler verilecek. Eğer yeni datalar yazarsanız ve bu sayıyı bu datalara göre artırırsanız son sayının ekran rengini de ayarlayacağını unutmayın. Jsr Bekle sekiz tane NOP ve bir RTS'den oluşan zaman har- cama rutinine gidiyoruz. 7 Tf aŞY LA * ği : W7 .A T B —— © 1 — | d

Bu sayıdan diğer sayfalar: