C64 Türkiye sayı 5, sayfa 19

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 19

Yukarıdaki komutlarla bir karakteri baş aşağı çeviriyoruz. Burada asıl can alıcı nokta "YIĞIN" dediğimiz bölgenin kullanılmasıdır Yığın "LIFO" -Last In First Out- mantığıyla çalışır. Yani yığına atılan en son sayı ilk önce geri alınır. Bizim komutlar ilk çalışmaya başladığında önce $3000'den itibaren ilk 8 byte'ı okuyup yığına atmaktadır. Böylece yığına en son $3007 adresindeki değer atılmış olmaktadır. Yığından geri alma işlemi sırasında ise ilk önce $3007 adresinin değeri alınmaktadır. Bu işlemi 8 defa tekrarladığımızda ise bir karakterin datalarını kendi içinde tersten yerleştirmiş oluyoruz. Aşağıdaki tablo daha açıklayıcı olacaktır.

$3000 --> yığın --> $3007 $3001 --> yığın --> $3006 $3002 --> yığın --> $3005 $3003 --> yığın --> $3004 $3004 --> yığın --> $3003 $3005 --> yığın --> $3002 $3006 --> yığın --> $3001 $3007 --> yığın --> $3000 lda $fb ;Karakter setinin LO adresini al clc ;Elde bitini sfırla adc #$08 ;8 ile topla sta $fb ;LO adrese geri yaz. bcc next_char ;Toplama sonucu "elde" biti "0" ise git inc $fc ;Karakter setinin HI adresini 1 arttır next_char lda $fc ;HI adresi al cmp #$40 ;#$40 oldumu? Olmadıysa bir sonraki bne loop2 ;karakter için işlemleri tekrarla rts ;Olduysa programı bitir. .end Gördüğünüz gibi kısacık bir programla $3000-$4000 arasındaki karakter setimizi baş aşağı çevirmiş olduk. Programın listesini “program dökümleri” sayfasında bulabilirsiniz. Ekran görüntülerimiz ise aşağıdadır.

Normal karakter setli ekran görüntüsü Ters karakter setli ekran görüntüsü. Bir başka karakter setinde görüşmek dileğiyle.

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