Commodore sayı 74, sayfa 14

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 14

Atölyemize hoş geldiniz. Üç aydır devam etmekte olan köşemizde oldukça yetersiz olan BASIC'imizi çok daha kullanışlı hale getirebilecek programlar yazıp, tanıtıyoruz. Asıl amacımız, makine dili bilmeyen arkadaşlarımızın da makine dilinin rahatlığından faydalanmasını sağlamak. Tabii bu arada işinize yarayacak yardımcı programlar da yaratabilirsek ne mutlu bize. Bu programları sadece BASIC kullanıcıları için hazırlamıyoruz ama. Programların nasıl mantıklar üzerine kurulduğunu anlatırken, makine diline yeni başlamış arkadaşlara da yardımcı olabildiğimizi umuyoruz. Bu sayımızda grafik severler için bir programımız var. 30K'lık BASIC alanına dokunmadan da grafik ekranların kullanılabileceğini ispatlayan bir program bu. Program sadece beş komuttan oluşuyor. Ama ROM rutinlerini oldukça fazla kullandığı için biraz yavaş işliyor. Bu yavaşlığı ortadan kaldırmak tabii ki mümkün, ama programın işleyişini anlatırken bu konuya değinmek daha iyi olur. Biliyorsunuz C-64 aslında 64K RAM'e sahip. Ama tüm bu bellekten yararlanabilmek için oldukça iyi derecede makine dili bilgisine sahip olmanız gerekli. BASIC kullanıcıları için ise gizli bölgelere ulaşmak imkansız. Ancak makine dilinde yazılmış programcıklar yardımıyla bu alanlara bilgi saklayabilirsiniz. Bu ay anlatacağım grafik paketçiği de bu kullanılmayan alanlara BASIC kullanarak erişebilmenizi sağlıyor. Bilgisayarınızın grafik işlerini düzenleyen çipi VIC, RAM'in üzerinde duran ve aslında bomboş duran bu alanı kullanmanızı engelleyen ROM'ları hiçbir zaman dikkate al-

maz. Eğer bir şekilde bu RAM'in altına grafik datalarınızı yazabilirseniz ve VIC'in bu alanı göstermesini sağlayabilirseniz, grafik dataları sizin BASIC alanınıza ihtiyaç duymaz. Sadece grafiğin kullandığı alan olarak

Vedat Hallaç düşünürsek, bu işlem size yaklaşık 8K'lık bir kazanç sağlar. Oysa asıl bellek kazancınız bu kadarcık değildir. BASIC'de grafik kullanmaya kalkarsanız, büyük bir ihtimalle $2000-$4000 arasını tercih edersiniz. Böyle bir seçim ise BASIC alanını 6K ile sınırlamak anlamına gelir. Programın açıklamasına girişmeden önce grafik kullanımı ve 64K RAM kullanırken nelere dikkat etmeniz gerektiği konusunda ufak bir özet çıkarmayı düşünüyorum. Grafik konusunda detaylı bilgiyi dergimizin eski sayılarında ele almıştık. Eğer buradaki bilgiyi yetersiz görürseniz eski sayılarımızı inceleyin. İlk olarak “VIC registeri” derken neden bahsettiğimi anlatmalıyım. C-64 türü bilgisayarlarda (Motorola CPU kullananlar) giriş/çıkış işlemleri için belleğin bir bölümü ayrılmıştır. Her özel çip (VIC, SID, vb.) bellekte kendine ait bir alan ayırır. Bu çipin registerleri de bu alanda bulunan ve çiple sizin aranızda bir iletişim hattı kuran adreslere verilen addır. VIC çipi $D000 - 53248 ile $D3FF - 54271 arasını kendisine ayırmıştır. Ama fazla bir iletişime ihtiyacı olmadığı için yalnızca $D000 ile $D02E arasını kullanır. Diğer adreslerde ise bu bölgenin kopyaları bulunur. Bu kopyalardan herhangi birine yapılan okuma-yazma işlemleri doğrudan doğruya $D000-$D02E arasında belirlenmiş adreslerle yapılır. Yani $D000 ile $D000 adresleri arasında herhangi bir fark yoktur. Grafik ekranı açmak, yerini değiştirmek ve çok renkli moda geçmek için üç adet VIC registeri ve isimleri şöyledir: $D011 VIC kontrol registeri 1, $D016 VIC kontrol registeri 2, $D018 VIC bellek kontrol registeri. Bu kontrol registerlerinin her biti özel bir işlemi kontrol eder. VIC kontrol registeri 1'in bitleri şu işleri yapmakla yükümlüdür: 7 Raster'in 9. biti, 6 Extended (genişletilmiş) renk modu, 5 Bit-map modu (grafik modu), 4 Ekran açık/kapalı, 0=kapalı, 3 24/25 satır gösterimi, 2-0 Ekranın aşağı kayma miktarı. 0-7 piksellik yumuşak kaymalar bu adresle yapıla- Bu bitleri adrese yazmak için, 2^(bit no)

Klavyeyle gezinmek için ← ve → tuşları.