C64 Türkiye sayı 8, sayfa 11
Sayfanın metni

Sayfa 11

C64 TÜRKİYE #8 11 dec move_cnt bne dir lda max_move sta move_cnt lda dir eor #$20 sta dir

Hareket sayacını bir azaltıyoruz ve sıfır olmadıysa "dir" yazan yere gidiyoruz. Sıfır ise hareket sayacını tekrar yüklüyoruz. “EOR” ile hareket yönünü değiştiriyoruz. cmp #$ee beq drx

Hareket yönünü kontrol ediyoruz. Eğer "INC" komutu ise (yani hareket soldan sağa ise) "drx" yazan yere gidiyoruz. lda get_tx+1 clc adc #$0e sta get_tx+1 bcc cont inc get_tx+2

Eğer "DEC" ise (yani sağdan sola ise) ekrana basılacak yeni yazının adresini hesaplayıp programdaki yerine yazıyoruz. Hesaplama sırasında elde biti "1" olduysa yazıların alınacağı adresin yüksek baytını 1 arttırıyoruz. Değilse aşağıda devam ediyoruz. cont dec text_cnt bne get_text lda max_text sta text_cnt lda #<text1 ldx #>text1 sta get_tx+1 stx get_tx+2

Ekranda gösterilecek yazı sayacını 1 azaltıyoruz. Sıfır olmadıysa "get_text" bölümüne gidiyoruz. Eğer sıfır olduysa Text sayacını ayarlıyoruz ve ilk yazının adresini programda ilgili yere yazıyoruz. get_text ldx #$00 get_tx lda text1,x sta $040d,x inx cpx #$0e bne get_tx

Bu kısımda ekrana yazı yazıyoruz. drx lda col+1 eor color sta col+1

Yukarıdaki komutlarla renk belleği için kullanacağımız değeri siyah/sarı şeklinde değiştiriyoruz. dir inc $d000 lda $d000 sec sbc #$10 lsr lsr lsr

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