C64 Türkiye sayı 6, sayfa 15

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 15

scrcalc lda $ecf0,x ; Rom’daki ekran belleği LOW adres değerini al sta $fb ; $FB adresine kopyala sta $02 ; $02 adresine kopyala lda scr_hi,x ; Tablodan ekran belleği HIGH adres değerini al sta $fc ; $FC adresine kopyala clc ; “carry” bitini sıfırla adc #$d4 ; #$D4 ile topla sta $03 ; $03 adresine kopyala (Renk belleği HI byte) rts ; geri dön ;---------------------------------------------------------------------------------------; vertical ldx #$00 ; X=0 lda #$04 ; AKÜ=4 stx $fb ; X’in değerini $FB adresine yaz sta $fc ; Akünün değerini $FC adresine yaz stx $fd ; X’in değerini $FD adresine yaz clc ; elde bitini sıfırla adc #$d4 ; #$D4 ile topla ve renk bellek adresini elde et sta $fe ; $FE adresine yaz ldx #$00 ; X=0 Æ Satır sayacı olarak kullanılacak vert1 lda #$27 ; AKÜ=27 sta right ; sağ değişkenine yaz ldy #$00 ; Y=0 vert0 sty left ; sol değişkenine yaz ldy right ; sağ değişkenini al lda ($fb),y ; ekran belleği sağdaki adresi oku pha ; yığına at lda ($fd),y ; renk belleği sağdaki adresi oku pha ; yığına at ldy left ; sol değişkenini al lda ($fd),y ; renk belleği soldaki adresi oku ldy right ; sağ değişkenini al sta ($fd),y ; renk belleği sağdaki adrese yaz ldy left ; sol değişkenini al lda ($fb),y ; ekran belleği soldaki adresi oku ldy right ; sağ değişkenini al sta ($fb),y ; ekran belleği sağdaki adrese yaz ldy left ; sol değişkenini al pla ; yığından geri al sta ($fd),y ; renk belleği soldaki adrese yaz pla ; yığından geri al sta ($fb),y ; ekran belleği soldaki adrese yaz dec right ; sağ değişkenini 1 azalt iny ; y'yi (sol değişkeni) arttır cpy #$14 ; 20 mi? bne vert0 ; değilse tekrarla lda $fb ; ekran belleği adresi LOW byte’ı al clc ; elde bitini sıfırla adc #$28 ; #$28 (40) ile topla sta $fb ; Adrese geri yaz sta $fd ; $FD adresine yaz bcc no_hi ; “Elde” yoksa git inc $fc ; $FC adresindeki değeri 1 arttır inc $fe ; $FE adresindeki değeri 1 arttır no_hi inx ; X registerini 1 arttır cpx #$19 ; $19 (25) oldu mu? (25 satır oldu mu?) bne vert1 ; olmadıysa yeni satır için işlemleri tekrarla jmp $a7e4 ; Kontrolü Basic Rom’a devret.

scr_hi .byte 4,4,4,4,4,4,4 ; Ekrandaki her satırın adresinin .byte 5,5,5,5,5,5 ; HIGH byte’larının bulunduğu tablo .byte 6,6,6,6,6,6,6 .byte 7,7,7,7,7 up .byte 0 ; Yukarı değişken sayaç adresi down .byte 0 ; Aşağı değişken sayaç adresi

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