Bu sayfadaki yazılar
Sayfanın metni
Sayfa 48
POKE 53265,PEEK(53265) OR 32 POKE 53270,PEEK(53270) AND 239
Bu alanın rengini de, 1 Kbyte'lık videoram belirlemektedir. Buradaki her byte, grafik ekranındaki 8*8'lik bir karenin rengini belirler. Şöyle ki: Eğer grafik ekranındaki bir bit 0 ise, videoram'ın alt 4 bit'i o noktanın rengini belirler (yani arka alan rengi). Eğer grafik ekranındaki bir bit 1 ise, videoram'ın üst 4 bit'i o noktanın rengini belirler (yani çizgi rengi).
b) Çokrenkli noktasal grafik: VIC'in 17. yazmacının 5 ve 6 numaralı bitlerini ve 22. yazmacın 4. bit'ini yakarak, bu moda geçebilirsiniz:
POKE 53265,PEEK(53265) OR 32 POKE 53270,PEEK(53270) OR 16
Bu durumda ekrandaki bir noktayı, grafik hafızasında yanyana duran iki bit belirler. Dolayısıyla çözünürlük 160*200'e düşer. Buna karşılık, bu geniş noktaların her biri değişik bir renk alabilmektedir. Bu durumda, o noktayı oluşturan iki bit'in sahip olduğu değer, rengin nereden geleceğini belirler:
00: 0 numaralı arka plan rengi (VIC'in 33. yazmacı) 01: Videoram'ın alt dört bit'i 10: Videoram'ın üst dört bit'i 11: Renk RAM'ı (yazı ekranının rengini veren 55296-56295, $D800-$DBE7 arası)
B) Sprite'lar: Sprite'lar, ekranda serbestçe dolaşabilen (512*256'lık bir alan içinde), büyüyüp küçülebilen, renk bilen ve sekiz tanesi birarada görülebilen yaratıklardır. 63 byte'lık bir görüntü tanımlamasına sahiptirler ve VIC'in yazmaçlarının çoğunu onlar yerler. İki tür sprite vardır (aynı anda değişik türden sprite'lar ekranda gözükebilir):
a) Normal renk: 24*21'lik bir çözünürlüğe sahiptirler. Her bir noktasının 0 veya 1 olmasına göre renk değiştirir.
0 : Saydam nokta
1 : 39-46 arası VIC yazmaçlarından, o sprite'a ait olanındaki renk koduna göre renklenir.
b) Çokrenkli: Tıpkı çokrenkli grafik ekranı gibi, iki bit ile geni: noktanın rengi bı lirlenir. Yani nürlük 12*21'e düşer, renk sayısı dörde çıkar. Bit'lerin durumuna göre renkler şöyledir:
00: Saydam nokta Ol: VİC'in 37. yazmacı 10: VİC'in 38. yazmacı 39-46 arası VIC yazmaçlarından, o sprite'a ait olanındaki renk kodu
C) Karakter gösterimi: C64'ün karakter setinde, 2*256— 512 tane karakterin sekizer byte'lik görüntü tanımlaması vardır. Her byte sekiz bit'ten oluştuğuna göre, her bir karakter 8*8'lik bir matristen oluşuyor demektir. İşte karakter gösteriminde, bilgisayar otomatik olarak videoram'dan okuduğu byte'a göre gereken 8*8'lik grafiği (yani karakterin şeklini) ekrana yansıtır. Böylece 320* 200'lük bir ekrana 40*25 karakter sı-
Commodore 64'ün Can Simidi
Green Beret ğar. Bu da bizim normal yazı ekranımızı oluşturur. Bu karakter setinin tanımlarının ve bulunduğu bölgenin değiştirilmesini ileride göreceğiz. Bu gösterimin de üç değişik türü vardır: a) Normal renk: Videoram'daki her byte, ekrandaki bir karakteri temsil etmektedir. Bir karakter, bu karakteri oluşturan bit'- lerin değerine göre renk alır:
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 49
0 : 0 numaralı arka plan rengi (33. VIC yazmacı) |: Renk RAM'ının alt dört bit'i b) Multicolor: Bu çalışma şekli oldukça ilginçtir. Bir karakterin sahip olduğu renge göre, çözünürlüğü ve renkliliği saptanmaktadır. Böylece hem normal hem de multicolor karakterleri ekranda aynı anda kullanabilmektesiniz. Eğer renk RAM'ında bir karaktere denk gelen renk kodu 0-7 arasındaysa (yani 3. bit O ise) o karakter belirtilen renkte ve 8*8 çözünürlüğünde gösterilecektir. Ancak renk 7-15 arasında ise, karakter bu kez multicolor olacaktır.
Çünkü bu renkler, renk RAM'ında 3. bit'i | yaparlar ve bu da bilgisayar için bir sinyaldir. Eğer durum böyleyse, karakterin çözünürlüğü 4*8'e düşecek ama renk sayısı da 4'e çıkacaktır. Bir yatay geniş noktayı oluşturan, karakter setindeki iki bit'in değerine göre o noktanın rengi belirlenecektir:
00: O numaralı arka plan rengi (33. VIC yazmacı) Ol: | numaralı arka plan rengi (34. VIC yazmacı) 10: 2 numaralı arka plan rengi (35. VIC yazmacı) Renk RAM'ındaki üç bit.
Bu moda geçebilmek için aşağıdaki POKE komutları gerekmektedir. Bakalım hangi yazmaçların hangi bit'- lerine ne yaptığımızı anlayacak mısınız?
POKE 53265,PEEK(53265) AND 159 POKE 53270,PEEK(53270) OR 16
c) Extended; Normal yazı ekranında, bir karakteri RVS (yani negatif) yazdığınızda, karakterin arka zeminini değiştirebilmekte, ancak içinde kalan karakterin rengi hep ekran rengi olarak kalmaktaydı. İşte bunu değiştirecek ve arka plan ile karakter renklerini her karakter için ayrı ayrı saptamayı sağlayacak bir yöntem var: Geliştirilmiş (extended) renk modu.
Öncelikle söyleyelim, karak negatif yazmak durumunda dı V. Karakterlerin çözünürlükleri 8*8 olar rak kalacaktır. Bir karakteri oluştu- Tan görüntüyü veren karakter setindeki bir bit, eğer | ise bu nokta normal renginde, yani renk RAM'ından alınan renkle (0-15) gösterilecektir. Ancak geriye kalan karakterin etrafını saran boş alanın ne renk olacağını, o karakterin videoram'da saklanan ekran kodunun en üst iki bit'i belirler. Aşagibi:
00: O numaralı arka plan rengi (33. VIC yazmacı) Ol: | numaralı arka plan rengi (34. VIC yazmacı) 10: 2 numaralı arka plan rengi (35. VIC yazmacı) 11: 3 numaralı arka plan rengi (36. VIC yazmacı)
Kullanılacak POKE'lar ise şöyledir: