1 Haziran 1987 Tarihli Commodore Gazetesi Sayfa 58

1 Haziran 1987 tarihli Commodore Gazetesi Sayfa 58
Metin içeriği (otomatik olarak oluşturulmuştur)

10: Bu programımızda, bilgisaya- rın 3 numaralı BANK'ını kullanmak istiyoruz. Eğer dizimizin dördüncü bölümünü hatırlarsanız, videoram'ı bü 16K içinde 16 değişik yere koyabili- yor ve bunları Ü-15 arası numaralan- dırabiliyorduk. Biz, üçüncü BANK için de 3 numaralı bölgeyi ekran (vi- deoram) olarak seçiyoruz. Aynı şekil- de grafik sayfası olarak da, 16K'nın ikinci yarısını seçiyoruz. Ancak bu- nu programın içinde kullanmadık. Çünkü, bunun kullanılması, karak- ter setinin gösteriminde zorluklara yolaçardı. Biliyorsunuz, VIC'in 24. yazmaçının üçüncü bit'i, hem grafik, hem de karakter üreteci için önem ta- şıyor. Biz bu programda karakter se- tinin kaymasını göstermenin daha önemli olduğunu düşünüyoruz. Ka- rakter setini de, 2K'lık adımlarla kay- dırabildiğimizi gözönüne alarak, 2 numaralı bölgeyi karakter üreteci- nin başlangıç adresi olarak saptıyo- ruz. Tüm bu değerleri hesaplarsak, başlangıç adresleri şu şekilde olacak- tır: BANK: ($C000) EKRAN: BANK 4 3*1024 — 52224 KARAKTER: ($ CCOO) 3*16*1024-49152 BANK * 2*2048 — 53248 ($D000) 20: Önce, CIA2'nin (56576 - $DDOO) alt iki bit'i ile oy- nayarak, belirtilen BANK'ı seçiyo- ruz. Asıl BANK SWITCHING işle- mi budur. Bundan sonra yaptıkları- mız, Commodore 64'ü kendisine ge- tirmek için yapılmaktadır. 30: Şimdi de, VIC'in 24 numaralı . yazmaçının üst dört bit'ini değiştire- rek ekran adresini saptıyoruz. 40: Ve en son olarak da, gene 24. yazmaçın bu sefer 1-3 arası bit'lerini değiştirerek, karakter setinin yerini VIC'e bildiriyoruz. Son üç satır bo- yunca yaptığımız işlemler, daha ön- ce 12. sayımızda formül olarak ver- diğimiz işlemlerdi. 50: Ancak, bu işlemi ilk kez görü- yorsunuz. Gerçi daha önce de ekran editörünün öneminden bahsetmiştik, ama sadece bir iki kelimeyle. Bu edi- tör, bizim tüm ekranı bir çalışma sa- hası olarak kullanmamızı sağlayan (full screen editor), COMMODORE 64'ü diğer bilgisayarlardan (çoğunda line editor var) ayıran en önemli özel- liklerden biridir. Ancak, çalışmaları- nı sürdürebilmek için, ekran hafıza- sının (videoram) nerede olduğunu bil- mesi gerekir. Bu nedenle, videoram'- ın yeni adresini 256'ya bölerek elde ettiğimiz sonucu, editörümüzün bu bilgiyi almak için kullandığı 648 ad- resine yerleştiriyoruz. Normalde bu- rada 4 vardır (1024/256—4). Eğer BANK SWITCH programını çalıştır- dıktan sonra RUN-STOP/RESTO- RE yaparsanız, ekrana yazı yazamaz duruma gelirsiniz. Ancak, ekranda görmeden de olsa, POKE 648,4 ya- parsanız, çalışmanıza devam edebilir- siniz. Bunun nedeni, bu tuş kombi- nasyonu ile VIC'in açılış durumuna gelmesi ve BANK 0'ı kullanmaya başlaması, ama editörün olduğu gi- bi kalması. 55: Ekran hafızasını değiştirdiğimi- ze göre, 1024-2047 arasındaki ekran- da kalan bilgileri yeni ekrana taşı- makta fayda var. Bu satırdaki dön- gü, tamamen bu işlemi yapıyor. VI- DEOÖ içinde, yeni videoram başlangıç adresi hesaplanıyor. Ancak bu sıra- da ekranda saçma sapan karakterler göreceksiniz. Çünkü daha karakter setini tanımlamadık. Gerçi başlangıç adresini VİC'e bildirdik ama, bu ad- resten sonra gelen 4K boyunca tama- men tesadüfi değerlere sahip byte'lar duruyor. Zavallı VIC de bunları ka- rakter tanımlaması olarak görüp, bi- ze bu byte'ları seyrettiriyor. Öyleyse, hemen ROM'daki tanımlamaların bir kopyasını da 53248'den sonraya çı- kartmalıyız! Sakın karakter ROM'"- unun da 53248'den başlaması sizi şa- şırtmasın. BANK değiştirdiğimiz için COMMODORE 64â, karakter tanım- lamalarını bizim belirttiğimiz adres- teki RAM'dan okumak isteyecektir. Yani aynı adreslerdeki ROM'un bil- gilerini RAM'a aktarmalıyız. 60: Ancak bildiğiniz gibi, $DO00- $DFEFF arası, bir ROM ve iki RAM taşımaktadır. Normal koşullarda ya- pılan PEEK ve POKE!'lar, giriş/çıkış (İnput/Output) adını verdiğimiz F

Bu sayıdan diğer sayfalar: