Program Döküm Eki sayı 15, sayfa 25

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 25

Profesyonel iş bilgisayarlarının çoğunda cursor tüm karakteri kaplamaz, sadece karakterin altında çizgi olarak görünür. Neden COMMODORE 64'ümüzün de böyle bir cursor'u olmasın?

Küçük programımız bu işi yapıyor. Programı çalıştırdığınızda, bu işin oluşmasını adım adım seyretme imkânı bulacaksınız. Biz burada işin teknik açıklamasını yapalım.

İlk önce yazı karakteri rengi için açık mavi, arka plan rengi için de koyu mavi seçiliyor. İlk satırda gördüğünüz, önce arka plan rengini açık mavi yapıp ekranı silmek sonra da arka plan rengini yeniden değiştirmek, karakterlere ait renk kodlarının saklandığı renk RAM'ını tamamen açık mavinin koduyla doldurmak için kullanılan küçük bir hiledir. Bir FOR... NEXT döngüsü kullanmaktan daha hızlıdır. Ancak bu hile belli bir modelden sonraki COMMODORE 64'lerde değişiklik gösteriyor. Eğer programın gördüğünüz şekilde yazar da bir sonuç alamazsanız, POKE 53281,14 yerine POKE 646,14 yapın. Bu adres, ekrandaki yazı karakterlerinin rengini kontrol eder.

Renklendirme işlemi bitince, ekran hafızası (VideoRAM) 0-255 arası karakter kodları ile doldurulmakta. Böylece COMMODORE 64'ün tüm karakter seti gözlerinizin önüne serilecek. Dikkat ederseniz bir noktaya kadar normal olan karakterler, o noktadan sonra negatifleşmekte. İşte bizim saldıracağımız nokta burası olacak.

Ekranda cursor olarak gördüğümüz şey, aslında o an cursor'un üstünde bulunduğu karakterin normal ve negatif biçimlerinin arka arkaya gösterilmesinden başka bir şey değil. Bu durumda, eğer negatif karakterleri değiştirir ve sadece en alt kısımlarında düz bir çizgi kalacak şekilde yeniden oluşturursak, bilgisayar o karakterin negatifini gösterdiğini sandığı zaman, aslında altı çizili halini gösteriyor olacak. Şimdi bu değişiklikleri nasıl yaptığımızı bakalım...

Önce bazı değişkenleri ayarladıktan sonra, VIC'in 24 numaralı yazmacı ile oynayarak (bkz. Sayı 10 ve 12, COMMODORE 64 İLE GRAFİK) karakter setinin ve videoram'ın başlangıç adreslerini değiştiriyoruz. Karakter seti 53248'de, videoram'da 52224'de aktif hale gelmiştir artık. Ancak bu işin tam olması için CIA 2'nin (56576) içeriği ile de oynamak gerekiyor. Bu yöntemle BANK 4'ü seçerek her şeyi yerli yerine oturtuyoruz. Bir de 648'de ekran editörüne ekranın yeni yerini bildirince, her şey tamam oluyor.

Artık ekranın ve yeni karakter setinin kopyalarını bu bölgelere çıkarmak lazım. Bu yüzden önce 56333 ve 1 numaralı adreslerin içeriklerini değiştirerek, bilgisayarımızın kesintiye uğramasını önleyip karakter ROM'unu okumayı olanaklı kılıyoruz.

Ve 2 numaralı satırda ekranın içeriğinin taşınması ile işimize başlıyoruz. Ancak bu satırda ekranda sadece saçmalık göreceksiniz, çünkü karakter setini daha tanımlamadık. Programın geri kalan kısmında da, 3. satırın sonuna kadar eski karakter setinin bir kopyasını yeni yerine, üzerinde gerekli değişiklikleri yaparak çıkarıyoruz. İşte bu işlemin seyrine doyum olmuyor, çünkü tüm karakterlerin değişimini ekranda izleyebiliyorsunuz.

Artık işimiz bitmiştir. 4. satırda 1 ve 56333'deki değerleri eski haline döndürüp bilgisayarı normale döndürebiliriz. Cursor'umuzu da uygun bir yere yerleştirince, profesyonel cursor'umuz emrimize hazırdır...

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