Commodore sayı 62, sayfa 22

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 22

Ne yazık ki her kolaylık için bir bedel ödemek zorundayız. Burada ödediğimiz bedel de renk sayısının azalması. Yani bir grafik ekranında sadece üç renk seçebilirsiniz artık. Bunun en az birinin de ilk sekiz renkten biri olması şart. Biliyorsunuz, karakter setinin multi-color modunda alacağı renkler iki registerle belirleniyor ve ekran rengi de 0-7 arasındaysa normal, 8-15 arasındaysa 0-8 arasındaki renklerin multi-color modu olarak gösteriliyor. Yukarıda saydığım kısıtlamalar işte bu sebepten dolayı bizi rahatsız ediyor.

Tabi ki bütün bu sıkıştırma işlemiyle siz uğraşmayacaksınız. Bu işi sizin yerinize yapacak olan program bu sayının döküm ekinde yer almakta. Program, KOALA PAINTER formatında saklanan grafikleri sıkıştırabiliyor. Eğer, çizim programınız bu programla uyumlu değilse, bir Graphics Converter (grafik çevirici) programı yardımıyla grafiklerinizi sizin programlarınızın formatından Koala formatına çevirin. Programı yükledikten sonra çalıştırın. Karşınıza bir menü çıkacaktır. Bu menüde (1) sonra 2 seçeneği ile grafik ekranında, hatası var mı diye bakın. Eğer bazı kartların renk sıralaması hatalıysa, ekrandaki kareyi joystick yardımıyla bu kartın üzerine getirin ve ateş tuşuyla bu sıralamayı değiştirin. Grafiğinizin düzeldiğine karar verince RETURN tuşuyla ana menüye dönün. (2) seçeneği ile grafiği karakter setine sıkıştırma işlemine başlarsınız. 3'e bastığınızda, size eski karakter ekranını silmeyi isteyip istemediğiniz sorulur. Eğer yeni bir ekranı sıkıştıracaksanız, bu soruya Y cevabını verin. Eğer amacınız birden fazla ekranı tek karakter setine sıkıştırmaksa N deyin. Grafiğiniz sıkıştırılmaya başlayacaktır. Eğer karakter sayısı bir ekranı sıkıştırmaya yetmezse, size ekranın karakter setine sığmayacağını belirten bir mesaj verilir. Bu durumda ekranın orijinali üzerinde oynayarak karakter setine sığabilecek hale getirmeniz gerekir. (4) seçeneği, karakter seti datalarını diske kaydetmeye yarar. (5) ile de karakter matrisini diske kaydedersiniz. (6) seçeneği ile de düzeltilmiş olan grafik ekranını (daha sonra kullanmak üzere) diske kaydedebilirsiniz. Program, karakter seti datasını $2000-$2800 arasına yüklemenizi öneririm, Karakter matrisi ise $7000-$73E9 arasına kaydediliyor. Bunları herhangi bir boş alana yükleyip, zamanı gelince $0400'e transfer edebilirsiniz. Bu şekilde, bir grafik ekranını yaklaşık 13 blok gibi bir bölgeye yerleştiriyorsunuz, ki bu da bizim amacımıza hizmet edebilecek kadar kısa. Bu sayıda, bu karakter setini gösterecek bir rutin hazırlamayacağım, fakat nasıl yapacağınızı anlatacağım. Eminim ki siz de bu işi basit bulacaksınız. İlk olarak interrupt girişini hazırlayacak olan sabit rutinlerinizi yazın. Sonra (Interrupt'lara izin vermeden önce, şu satırları girin:

Ldy # $00 Döngü Lda # $84 Renkli

Sta $D800 Sta $D900, Sta $DA00, y Sta $DBOO, y Lda Matris, y Sta $0408, y Lda Matris 4 256, y Sta $500, y Lda Matris4 512, y Sta $0600, y Lda Matris)768, 7 Sta $0700,y Dey Bne Döngü Lda # Renk2 Sta $DO22 Lda # Renk3 Sta $DO23

Bu satırlarla karakter matrisini $8400'den başlayan karakter ekranına aktarır, Renk RAM'i olan $D800-$DBFF bölgesini ayarlar, diğer iki rengi seçersiniz. Burada RENK1, 0-7 arasında bulunan rengin değeridir. Bunu renk RAM'ine kopyalamadan önce değerini 8 arttırmanız gerekir. Matris, karakter matrisini yüklediğiniz adresin değeridir. Transfer sırasında bu adresin yüksek (high) baytını bir artırarak bu değere 256 ekleyebilirsiniz. Bu rutinin sonuna bildiğiniz CLI Loop Jmp komutlarını ekleyin. Interrupt'ın başlangıç Raster'ini $2D'ye ayarlayın. Interrupt rutininiz de şu olsun:

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