depolama alanı olarak hareket eder. Bu karakter seti depolaması ile karış- tırılmamalıdır. Ekran kodu karakter jeneratöründe bir şekilde pointer ola rak hareket eden bir değerdir. Sonra VİC bu şekli seçilen karakter ekran- da göstermek için kullanır. Grafik modundayken, Video RAM renk bel leği fonksiyonunu taşır. Buna ek olarak sekiz sprite tanımı- nin pointer'ları Video RAM'ın son sekiz baytında depolanmıştır. c) RENK RAM'i: İK alanı vardır. ve $D&800-$DEFE arasındadır. (55296-56319). Okunup yazılabilir ama yalnızca alt döri bit aktiftir. Üst dört bit değiştirilemez ve her zaman ayarlıdır. Normal modda, ekrandaki metin karakterlerinin rengi için depo olarak hizmet eder, Gralik modundayken, yalnızca çok renk ol- duğu zaman işlevseldir. O zaman çok renk 3'ü grafik ekranda 4-8 noktalık bir alanda temsil eder. d) BİT-MAPPED GRAFİK BELLEĞİ: Grafik ekranının bir görüntüsünü taşır. Ekrandakı her noktanın duürü- mu bireysel olarak belirlenir. 320x200'lük bir çözünürlükte, ner- deyse SK'lık bir depolama gerektiren 64,000 nokta vardır. e) SPRİTE TANIMLARI: Her sprite tanımı için 63 bayi uzunluğunda bir bellek alanı ayrılma- hdır. Bu 63 bayt normal bir sprite'ın 21x24 noktasını içerir. VIC BELLEK KONTROLÜ Değişik bellek alanlarının videa kontrolü tarafından yapılması CPU tarafından sunulan diğer seçenekle- re göre çok daha kolay ve basittir. Programcı yalnızca ROM'a ulaşabil- diği zamanlar bile, RAM video RAM menzilindedir. Bu çok önemli çünkü grafik belleği ROM'a yerleştirilebilir. Bunu yaparken BASIC depo alanı kullanılmaz. Daha önce sözünü etti- ğimiz video RAM, grafik, sprite ta- nımları gibi bellek alanları da iki is- tisna dışında RAM'den alınır: Eğer $1000-51FFF (4096-8191) ya da $9000-$9FFF arasındaki alan ge- rekiyorsa, bu alanlardaki bilgi bu bölgelerdeki RAM'den değil, $DO00- $DFFF arasında uzanan karakter je- neralörü ROM'undan alınır. İlk durum bilgisayarınızı açtıktan sonra, yalnızca ali taraftaki 16K'nın VIC tarafından koönirol edilebilme- siyle açıklanabilir. Ekrandaki karak- terleri tanımlamak için gereken ka- )7 rakter seti 1/O adreslerinin aşağısın- da, $DO00-$DFFF arasındadır. Bu nedenle $1000-51FFF arasındaki ad- resler özel bir statüye sahiptir ve ka- rakter seti mantıksal olarak oraya yerleştirilir. Bu bölgenin diğer fonk- siyonları, ne yazık ki feda edilmeli- dir. $9000'deki sınırlama da aynı ne- denden kaynaklanmaktadır. Renkli RAM'de işler daha da ba- sittir. Diğer alanlar gibi hareket etti- rilemediği için, her zaman $DE800- $ODBEF (55294-56319) arasındadır. EKRAN Bllll(l'!ıl HAREKET ETTİRME Video kontrolünün bellek idaresin- deki en pratik yönlerden birisi ekran belleğini hareket ettirebilme yetene- ğidir. Örneğin, Bit-mapped grafik belleğini normal olarak bulunduğu $2000 (8192) yerine, ROM'un altına $E000 (41440)'a yerleştirebilirsiniz. Karakter setini de başka alanlara taşıyıp kendi kişisel karakterlerinizi yaratabilirsiniz. O kadar çok olanak vardır ki tümünün peşine düşemezsi- niz. Her hareketten sonra, VIİC'in kontrol x.dubil(.u.ği bellek alanını ta- kip etmelisiniz. Örneğin, RAM'deki sprite tanımını $1000-$1FFF'e yerleş- tiremezsiniz, çünkü VİC RAM değil, $DO00O-$DFFF arasındaki ROM ka- rakter setini okur. a) VİC'in Adres Alanını Değiştir- mek , Video Denetimcisi ancak 16K'lık bir alana ulaşabilir. ($000-$3FFF) C- 64'ün adres alanı 64 K'dır. Yani yu- VIC en karıdakinin dört kat fazlası. üst ik adres bitine sahip değildir (14 ve 15). Onun için dışarıdan sağlan- maları gerekiyor. Bu amaçla Regis- ter (kütük) O kullanılır: register O, CIA 20/1. bitler ($DDO0O — 5676) Bu iki bit VIC bellek adresi için en önemli iki biti temsil ederler: adres billeri FEDECBA9Y8765SA 3210 Bunları ayarlayıp tüm adrese sahip olabilirdiniz. Ama burada dikkat edilmesi gereken bi nokta var. Bu iki bit LOW (aşağı) aktiftir. Yani, eğer ayarlanırlarsa, adresi hesaplamak amacıyla temizlenmişler gibi muame- le görürler. Doğru adrese ulaşmak 1s- tiyorsak bu bitleri ters çevirmeliyiz. Bunu yaptıktan sonra, VİC'in kont- rol edebileceği alanı alırız. VİIC'in kontrol ettiği tüm ekran fonksiyoan- larını 16K'lık adımlarla otomatik ola- rak hareket ettirir: -video RAM -grafik depolama -karakter jeneratörü -sprite tanımlama Anlaşılmasını kolaylaştırmak için, bunların bellek alanlarını aşağıda bir tablo halinde veriyoruz: BO/1 Adres B Adres alanı 11 00 —— $0000-$53FFF (0-16383) 10 01 $4000-$7FFF (16384-32767) 01 10 — $8000-$BEFF (32768-49151)