Originally posted by PE&OAS@Mar 10 2006, 06:42 PM
@skate: aslında elimde hiç logo yok, ancak diyelim ki WDPaint gibi bir program ile çiz(dir)iyorum. (şu aralar en çok o kullanılıyor ya o bakımdan.)
[post=5842]Quoted post[/post]
[/b]
O zaman işin basit. Yanlış hatırlamıyorsam WDPaint ile PRG kaydettiğinde;
$5800-$5be8 -> Renk Datası
$5c00-$5fe8 -> Ekran Datası
$6000-$7f40 -> Bitmap Datası
olarak kaydediliyor. Ekrana resmi basmak için;
lda #$02
sta $dd00
lda #$3b
sta $d011
lda #$d8
sta $d016
lda #$78
sta $d018
ldx #$00
renkDongusu:
lda $5800,x
sta $d800,x
lda $5900,x
sta $d900,x
lda $5a00,x
sta $da00,x
lda $5ae8,x
sta $dae8,x
inx
bne renkDongusu
demen yeterli olacaktır. Açıklamasına gelince;
$dd00'a $02 vererek $4000-$7fff arasındaki banka geçiyoruz.
$d011'e $3b vererek bitmap ekranı açıyoruz.
$d016'ya $d8 vererek (dilerseniz $18 de verebilirsiniz, benim alışkanlığım bu) multicolor yani çok renkli 160x200 grafik moduna geçiyoruz.
$d018'e $78 verdiğimizde "7" $5c00'ı işaret ediyor (daha önceki bir postumda detayları var bunun), "8" ise $6000'deki datalara denk geliyor.
Daha sonraki döngü ise $5800'den $5be8'e kadar olan renk datalarını $d800'e kopyalayarak renklerin ekranda gözükmesini sağlıyor.
Hepsi bu. Elbetteki bir de iç ekranın arkaplan rengi vardır. Onu da $d021 ile set edebilirsiniz. Örneğin WDPaint'de Koyu Gri kullandıysanız arkaplan rengi olarak;
lda #$0b
sta $d021
demeniz gerekli. Çerçeve rengi ise $d020 ile değiştirilebilir.
Son olarak orjinal koala modeundan bahsediim. Tek farkı renk ve ekran datalarının yerleşimidir.
$6000-$7f40 -> Bitmap Datası
$7f40-$8328 -> Ekran Datası
$8328-$8710 -> Renk Datası
şeklindedir. Çok da bir farkı yok anlayacağınız ancak ekran datası tam $400'lük bir alana oturmadığı için onu da transfer etmek gerekir bir yere, farkı budur.
Umarım yardımcı olabilmişimdir.