C64 Türkiye sayı 6, sayfa 11

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 11

lda #$08 ; VIC’in scroll registerine sta $d016 ; normal değerini yaz. wait lda $d012 ; Raster registerini oku. bne wait ; “0” oluncaya kadar bekle. jsr scroll ; Scroll rutinini git. jmp $febc ; İnterrupt rutininden çık.

scroll dec xpos ; Kayma miktarını 1 azalt bpl exit ; Sonuç pozitif ise (0-127 arasındaysa) çık. lda #$07 ; Negatif ise (128-255 arasındaysa) sta xpos ; kayma miktarını 7 yap ldx #$00 ; Karakter sayacı=0 scr lda $0451,x ; Ekrandaki karakterleri sta $0450,x ; sola kaydır inx ; sayacı 1 arttır. cpx #$27 ; 39 oldumu? bne scr ; olmadıysa tekrarla tbase lda text0 ; hafızadan yeni karakter değerini oku bne nextchar ; Okunan değer 0 (yazı sonu) değilse git lda #<text0 ; Hafızadaki yazının ldx #>text0 ; başlangıç adresini sta tbase+1 ; programdaki karakter okuma stx tbase+2 ; kısmına yaz rts ; ana rutine geri dön

nextchar sta $0477 ; yeni karakteri 39. Sütuna yaz. inc tbase+1 ; karakter okuma adresinin LO byte’ını 1 arttır. bne exit ; 0 olmadıysa çık. inc tbase+2 ; olduysa HI byte’ı 1 arttır. exit rts ; Ana rutine geri dön.

text0 .scrl "iste karsinizda 1x1 scroll rutini 2003 hades.. " .byte 0 ; Bu sayı yazı sonunu gösterir ve mutlaka olmalıdır.

colortab .byte 0,2,10,7,1,7,10,2,0,006,0,2,10,7,1,7,10,2,0 ;renk tablosu delaytab .byte 6,8,08,1,7,8,8,8,9,117,8,8,8,8,9,8,7,1,9,1 ;gecikme tablosu xpos .byte 7 ; kayma miktarı

.end

Ve işte karşınızda 1x1 “text scroll” ve “color raster” programının ekran görüntüsü.....

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