1 Mayıs 1987 Tarihli Commodore Gazetesi Sayfa 48

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

rakterleri de görürüz. Bunlar ekran- da hiçbir karakter oluşturmazlar an- cak, renk değiştirme, negatif yazıma başlama gibi işlemleri gerçekleştirir- ler. Ekran POKE kodları ise daha farklıdır. 0-255 arası kodların tama- mı karakterlerle doldurulmuştur. Bu- nun başlıca sebebi, normal karakter- lerin yanısıra negatif gösterimdeki karakterlerin de birer koda ihtiyaç duymaları. Böyle bir ayrımın yapıl- madığını farzedelim. Bu durumda, VIC, ekrandaki görüntüyü oluşturur- ken videoram'ı okuduğunda elde et- tiği bir değerin normal mi, yoksa ne- gatif bir karaktere mi ait olduğunu nasıl anlayacaktı? Bu nedenle 0-255 arası kodların ilk yarısı (0-127) nor- mal karakterlere, ikinci yarısı da (128-255) negatif karakterlere ayrıl- mıştır. Bu size bir de kolaylık sağla- maktadır. Eğer ekrandaki herhangi bir bölgeyi negatif hale getirmek is- tersek, videoram'daki o bölgeye ait değerleri PEEK ile okuyup, 128 top- layıp, yeniden yerine POKE etmemiz yeterli olacaktır. PRİNT komutunu kullanarak negatif yazmak istediği- mizde, RVSON (karakter kodu 18) ve RVSOFF (karakter kodu 146) tuşla- rını kullandığınızı hatırlarsınız. Sıra karakterlerin rengine geldi. Bi- razdan bahsedeceğimiz renk kodları- nın hepsinin 0-15 arası rakamlar ol- duğunu ve her birinin Commodore 64'ün 16 renginden birine karşılık gel- diğini gözönüne alın. Şimdi devam edelim. Renk RAM'ı olarak isimlen- dirdiğimiz, daha önce de noktasal grafikte çok renklilik kullandığımız- da işimize yarayan bu bellek bölümü, $D800-$DFFF (55296-56295) adres- leri arasında bulunmaktadır. Bu böl- geyi, BANK adreslemeleriyle oynaya- rak değiştiremeyeceğimizi geçmiş bö- lümlerden biliyor olmalısınız. Bu bel- lek kısmında, ekrandaki her pozisyo- na bir byte ayrılmıştır (tıpkı videoram gibi). Örneğin 55296'nın içindeki de- ğer ekranın sol üst köşesinin renk ko- dunu içerirken, 55297 onun hemen sağındaki karakterin, 56295 de ekra- nın sağ alt köşesinin rengini belirler. Bu noktada, belki de bugüne ka- dar dikkatinizi hiç çekmemiş bir ko- nuyu açıklamak istiyoruz. CLR tu- şuyla ekranı sildiğiniz zaman Com- modore 6G4, renk RAM'ını baştan aşağı belli bir renk koduyla doldurur. Önemli olan bu renk kodunu nereden aldığıdır. Commodore 64'ün belli bir modeline kadar bu renk kodu, 53281 İ aK LT T Si adresinde bulunan, yazı ekranının rengi olmaktadır. Daha sonra üreti- len Commodore 64'lerde ise bu kod, o anda geçerli olan karakter kodunu saklayan 646'dan alınmaya başlandı. Bu değişikliğin ne gibi sonuçları ol- du? Eski Commodore 64'te ekranı sildikten sonra 1024-2047 arasına bir değer POKE edildiği zaman bu gö- rünmemekteydi. Çünkü o ekran po- zisyonunun karakter rengi, ekran rengiyle aynı olmaktaydı. Tıpkı siyah kalemle siyah kâğıda yazı yazmak gi- bi. Daha sonra çıkan modellerdeki değişiklik ise şuna yolaçtı: Diyelim ki CLR yapmadan önce kırmızı renkle yazı yazıyordunuz, CLR yaptıktan sonra da ekrana bir şey POKE etti- ginizde, ekranda kırmızı renkle görü- necektir. Eski modellerde bu olmaya- cağı için, CLR'den sonra 55296- 56295 arasının da bir renk ile doldu- rulması gerekmektedir. Tabif bunun de kolay bir yolu var. Diyelim ki ek- ranı POKE yaptığınızda karakterle- rin sarı olmasını istiyorsunuz. Bu du- rumda önce POKE 53281,7 ile ekran rengini sarıyapın, sonra ekranı silin. Bu arada renk RAM'ı da sarı rengin koduyla dolacaktır. Sonra da ekranı N aK ER A e Commodore tekrar eski rengine döndürün. FOR...NEXT döngüsü içinde renk RAM'ının 1000 elemanına POKE yapmaktan çok daha hızlı bir yöntem bu. Eğer elinizdeki model eski ise ve bazı programlar arkadaşınızda gö- rüntü verirken sizde vermiyorsa, programın gerekli yerlerine bu tip bir satır ekleyin. Faydasını göreceksi- niz... Bu minicik (!) ayrıntıdan sonra ko- numuza devam edelim. Herhalde yazı ekranının renginden VIC'in 33 numa- ralı yazmaçının (53281) ve çerçeve renginden de 32 numaralı yazmaçın (53280) sorumlu olduğunu belirtme- ye gerek yok. Biz daha ciddi konu- larla ilgilenelim. Commodore 64'ün içinde iki ka- rakter seti vardır. Birisi büyük harf- leri ve grafik karakterlerini kapsar. Diğeri de küçük ve büyük harfleri kapsar ve grafik karakterlerinin bir kısmının yerini harfler alır. Bu iki ka- rakter seti arasında, SHIFT ve COM- MODORE tuşlarına aynı anda basa- rak gidip gelebilirsiniz. Her bir set 256 karakter içerir. Yani hafızada toplam 512 değişik karakter tanımla- ması bulunmaktadır. Her bir set de

Bu sayıdan diğer sayfalar: