C64 Türkiye sayı 5, sayfa 22

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 22

ldx #$00 ;sayacı sıfırlayalım loop1 lda temp0,x ;kopyaladığımız değerleri ekranın sta $07c0,x ;en alt satırına yazalım. lda temp1,x ;Aynı işi renk belleği sta $dbc0,x ;için de yapalım. inx ;sayacı 1 arttır cpx #$28 ;40 oldu mu? bne loop1 ;olmadıysa tekrarla son rts ;evet oldu. Öyleyse çıkalım. temp0 =son+1 temp1 =temp0+40 .end Eğer bu efekti $EA8A adresini kullanmadan yapsaydık oldukça uzun bir program yazmak zorunda kalacaktık. ADRES : $FFF0 (65520) GÖREVİ : Kursör pozisyonunu ayarlama / okuma Romda öyle rutinler vardır ki sizleri birçok işten kurtarır. Birazdan anlatacağımız bu rutinde bunlardan biridir. Bir program yazmaya başladınız ve ekranın 12. Satır 10. Sütun pozisyonundan başlayan 10 harflik bir yazı yazmanız gerekiyor. Bu işlemi normalde iki şekilde yapabilirsiniz. Birinci olarak ekranın ilgili pozisyonunun ekran belleği adresini öğrenip yazınızı ekran kodu olarak yazdırırsınız. İkincisi kursörü önce en üst köşeye alırsınız. Daha sonra “return” tuşunun kodunu kullanarak kursörü istediğiniz satıra getirirsiniz. Yazacağınız yazıya biraz “boşluk” karakteri ekleyerek istediğiniz pozisyona yazmış olusunuz. İkisinden birini tercih edin. Birinci seçenekte ekran belleğinin adresleriyle uğraşırsınız. İkinci seçenekte ise fazladan byte kullanarak programınızı uzatırsınız. Aranızda “Başka bir alternatif yok mu ?” diye soranlar olabilir. Evet var. KERNAL ROM’da, işletim sistemi rutinleri için sıçrama tablosu denilen ve Rom’un son 128 byte’ında yer alan, direct ve indirect jump komutlarından oluşan bir bölge vardır. Bu bölgenin $FFF0 adresi tam bize göredir. Ekranın istediğiniz yerine bir yazı yazmak için yapmanız gereken işlemler şunlardır. Önce “carry” bitini sıfırlayın. Sonra X registerine satır numarasını, Y registerine süttun değerini yükleyin. En son olarak bir JSR komutuyla rutini çağırın. Böylece kursörün pozisyonunu ayarlamış olduk. Daha sonra ise geçen sayıda tanıtmış olduğumuz $AB1E adresini kullanarak yazıyı ekrana yazdırın. İsterseniz buraya kadar yazdıklarımızla ilgili örnekler verelim. Yazımız 10. Satır 5. Sütunda olsun. İlk önce doğrudan ekran adresi vererek bu yazıyı yazdıralım. Bu arada ufak bir not düşelim. Vereceğimiz örneklerde satır ve sütun numaraları “0” dan başlamaktadır. Program yazarken buna dikkat edin. POZİSYON = EKRAN BELLEĞİ BAŞLANGIÇ + SATIR * 40 + SÜTUN formülüne göre adresi hesaplayalım. EKRAN BELLEĞİ BAŞLANGIÇ ADRESİ = 1024 POZİSYON = 1024 + 10*40 + 5 = 1024 + 400 + 5 = 1429 ($0595) Şimdi yazıyı yazdıralım. ldx #$00 loop0 lda text,x sta $0595,x inx cpx #$0b bne loop0 rts text .scrl “c64 turkiye”

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