1 Mayıs 1987 Tarihli Commodore Gazetesi Sayfa 49

1 Mayıs 1987 tarihli Commodore Gazetesi Sayfa 49
Metin içeriği (otomatik olarak oluşturulmuştur)

kendi içinde ikiye ayrılır. İlk yarısı karakterlerin normal görünüşlerini, ikinci yarısı da negatif görünüşlerini taşır. Bu size bir şey hatırlattı mı? Yukarıda bahsettiğimiz ekran kodla- rını mesela? Öyleyse, bu setleri biraz daha derinlemesine inceleyelim... Her bir karakter, 8*8 noktadan oluşur. Commodore 64'ün 320*2000 noktalık bir ekran kapasitesi olduğu- na göre, yazı ekranının neden 40'ar karakterlik 25 satırdan oluştuğu or- taya çıkıyor. Peki bu karakterlerinin nasıl görüneceklerini VİC nereden bi- liyor? Tabil ki, bilgisayarımızın bel- leğindeki karakter tanımlamaların- dan. Her karakterimiz 8*8'lik bir matris oluşturduğuna göre, karakte- rin görüntüsüyle ilgili bilgiyi 8& byte içinde saklayabiliriz. Toplam 512 ka- rakterinin olduğuna göre 512*8 — 4096 byte, yani 4K hafıza bi- ze yeterli olacaktır. Bilgisayarımızda bu hafıza normal durumda $DO00- $DFFF (53248-57343) arasıdır. Ka- rakter tanımlamaları, ekran kodları- na göre sıralanmıştır. Örneğin ilk 8 byte ile"""(2*' karakteri, bir sonraki 8 byte ile de “A” harfi tanımlanır. Bu böylece sürer gider. İlk 256 karak- ter (karakter kodu 0-265) ile büyük harf ve grafik karakterlerinden olu- şan set tanımlanır. Bunun da ilk ya- rısı normal gösterim, ikinci yarısı ne- gatif gösterime ayrılmıştır. Sonra ge- len 256 karakter ise küçük/büyük harf gösteriminin normal ve negatif tanımlamalarından oluşur. VİC ek- randaki görüntüyü yaratırken, vide- oram'daki ekran kodlarının yardı- mıyla karakter tanımlamalarındaki doğru yeri bulur ve oradaki karakter tanımını ekrana getirir. Gördüğünüz gibi ekran kodları ile karakter tanım- lamalarının düzeni arasındaki benzer- lik sadece tesadüf değil. Ancak, ka- rakter tanımlamalarının bulunduğu bu bölge ROM olduğu için üstüne bir şey yazılamaz. ROM'u okuyabilmek için de normal PEEK komutu yeter- li olmamaktadır. Birazdan, verdiği- niz programları incelerken bu bölgey- le ilgili zorlukları hazır çözeceğimizi de göreceğiz. Bilgisayarı açtığınızda, karşınıza çıkan yazı ekranı normal renk mo- dundadır. Ancak, grafik ekranı gibi, yazı ekranını da çok renkli (multico- lor) hale sokabiliriz. Bunun için VIC'in 17 ve 22 numaralı yazmaçla- rının bit'leri ile oynamamız gereki- yor. Şu iki POKE komutu ile önce grafik ekranını ve birazdan açıklama- sına başlayacağımız extended color (geliştirilmiş renk) modunu kapatıp, multicolor'u aktif hale getiriyoruz. POKE 53265, PEEK (53265) AND 159 POKE 53270, PEEK (53270) OR 16 Yazı ekranını multicolor'a geçir- menin sağladığı en önemli olanak, özellikle oyun türü programlarda, renkli grafikleri sadece yazı ekranını kullanarak yapabilmek. Grafik ekra- nının &K, yazı ekranının İK olduğu- nu ve grafik ekranının gerek renk, ge- rekse nokta organizasyonunun ne ka- dar karmaşık olduğunu düşünürse- niz, multicolor karakterlerin prog- ramlamada ne kadar kolaylık yara- tacağını kolayca tahmin edebilirsiniz. Şimdi bu özelliğin derinliklerine ine- Diyelim ki multicolor'a geçtiniz. Bu durumda bilgisayarınızın kullana- bileceğiniz renk sayısı 16'dan 8'e ine- cektir. Hemen meraklanmayın. Ta- bil ki, bunun bize sağlayacağı bir fay- da var. Eğer ekrandaki bir karakte- rin rengi, daha doğrusu onun rengi- ni temsil eden renk RAM'ındaki byte'ın değeri 0-7 arasında ise, söz- konusu karakter normal modda gös- 50 i Commodore terilecektir. Dolayısıyla, multicolor moda geçtiğimiz halde normal karak- ter biçimlerini kullanma olanağımızı sürdürebiliyoruz. Düşünün, bu olma- saydı, çok renkli yazı ekranında oy- nanan bir oyunun skorlarını ekrana nasıl yazardık. Sakın multicolor harf- lerle demeyin! Neden mi? O zaman multicolor karakterlerin açıklaması- na girişelim... Eğer ekrandaki karakterimizin ren- gi olarak 8-15 arası bir renk belirle- mişsek, artık karakterimiz multico- lor'dadır. Yazı dizimizde defalarca belirttiğimiz gibi, multicolor modu- na karşılık feda ettiğimiz şey, yatay noktasal çözünürlüktür. Bu durum- da karakterimizin çözünürlüğü 4*8'e düşecektir ama, dört değişik renk kullanabilecektir. Her zaman olduğu gibi, yanyana duran iki noktanın al- dığı değere göre, oluşturdukları renk noktasının renginin nereden geleceği belli olacaktır. Bir tablo halinde bu ilişkiyi belirleyelim: o00: VİC'in 33. yazmaçı (Ü numa- ralı arkaplan rengi) Oo01: VİC'in 34. yazmaçı (İ numa- ralı arkaplan rengi) Wol0: VİC'in 35. yazmaçı (2 numa- ralı arkaplan rengi) Üoll: 8-15 arası tanımlanan, o ka-

Bu sayıdan diğer sayfalar: