Bu sayfadaki yazılar
Sayfanın metni
Sayfa 23
Ilac $DO19 Lda # $19 Sta $D018 Lda Bekle Cmp $D812 Bne Bekle Lda # $15 Sta $D0O18 Jmp $EASI
Burada Grafiksonu adlı değer, grafik ekranının bitiş raster satırı, $D018 adresine #$19 değerini verdiğiniz zaman karakter setiniz $2000'den başlar. Karakter setini normale döndürmek için ise $D018'e #$15 (21) vermeniz gereklidir. Gördüğünüz gibi 13 bloğa sığan grafiği ekranda göstermek oldukça kolay. Aslında bu sistem, sabit duran
Loop
Temz
İNİ
> "nee,"
GAZ AM Naz
grafikler için düşünülmemiştir. Gelecek ayın yazısında ekranda bir logonun nasıl sağa-sola sallanacağını göstereceğim. Fark ettiğiniz gibi bu işi grafik ekranında yapmaya kalksaydınız, kullanmanız gereken adreslemeler yüzünden bilgisayarın hızı bize yetişmeyecekti. Bu ayki yazıma son vermeden önce son bir şey daha söylemek istiyorum. Eğer ekrandaki grafikle karakter ekranına geçip satırında garip karakterler görünüyorsa (büyük bir olasılıkla bunu göreceksiniz) renk RAM'ini kullanarak bu satırın rengini ekran rengiyle aynı yapın. Bu sayede garip karakterlerin görünmesini engellersiniz. | Gelecek ayki yazıda görüşmek üzere hepiniz hoşça kalın.
Klavyeyle gezinmek için ← ve → tuşları.
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: