C64 Türkiye sayı 8, sayfa 5

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 5

C64 TÜRKİYE #8 5 lda #<text2 ldy #>text2 jsr $ab1e lda #<text3 ldy #>text3 jsr $ab1e

Ekrana birşeyler yazdırıyoruz ve asıl bölüme geçiyoruz. dumper lda #$10 sta line

Ekranda bir seferde kaç satır gösterileceğini ayarlıyoruz. line_dump lda #$20 jsr $ffd2 lda $fc jsr mem_to_scr lda $fb jsr mem_to_scr lda #$3a jsr $ffd2 lda #$20 jsr $ffd2

Önce bir adet "boşluk" basıyoruz. Programın başında girdiğimiz adresin önce HIGH baytını, sonrada LOW baytını hex olarak ekrana yazdırıyoruz. Son olarak ":" ve "boşluk" karakterlerini basıyoruz one_line_dump ldy #$00 loop1 lda ($fb),y sta temp_scr,y jsr mem_to_scr lda #$20 jsr $ffd2 iny cpy #$08 bne loop1

Bu bölümde bir satıra hex dump yapıyoruz. Y registerini sıfırlayıp bayt sayacı olarak kullanıyoruz. LDA komutuyla hafızadan o anki baytı alıyoruz ve geçici olarak saklıyoruz. Hafızadan okuduğumuz baytı JSR komutuyla HEX formatlı olarak ekrana yazdırıyoruz. Ekrana bir baytı yazdırdıktan sonra bir adet "boşluk" basıyoruz. Y registerini (bayt sayacı) 1 arttırıp 8 ile karşılaştırıyoruz. 8 olmadıysa hafızadaki bir sonraki bayt için LOOP1 etiketli yere sıçrıyoruz. 8 olduysa program aşağıdan devam ediyor. ascii ldy #$00 ascii_dump lda temp_scr,y cmp #$20 bcc no_ascii cmp #$60 bcs no_ascii .byte $2c no_ascii lda #$2e jsr $ffd2 iny cpy #$08 bne ascii_dump

Burada ise daha önce hafızadan okuyup geçici olarak sakladığımız baytların varsa ascii karşılığını ekrana yazdırıyoruz. İlk olarak Y registerini sayaç olarak kullanmak üzere sıfırlıyoruz. Sakladığımız ilk baytı alıyoruz. Önce "boşluk" karakterinden küçük olup olmadığını kontrol ediyoruz. Eğer küçükse "no_ascii" yazan yere gidiyoruz ve ekrana

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