Bu sayfadaki yazılar
Sayfanın metni
Sayfa 120
.xhisisifir tax and #$f8 tay lda oraTablosu,x ora ($f0),y sta ($f0),y rts
!align 255,0,0 oraTablosu
!for i,32 {
!byte %10000000
!byte %01000000
!byte %00100000
!byte %00010000
!byte %00001000
!byte %00000100
!byte %00000010
!byte %00000001
!align 255,0,0 ekranLo
!for i,25 {
!for j,8 {
!byte (VIC_HARITASI+(320*(i-1))+(j-1))&255
!align 255,0,0 ekranHi
!for i,25 {
!for j,8 {
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 121
!byte (VIC_HARITASI+(320*(i-1))+(j-1))>>8
* = VIC_HARITASI
!fill $1f40, 0
Programın Çıktısı:
Bu örnekte dikkat edilmesi gereken bir nokta var. (Bakın ekranın ortasında duruyor :))
; Ana Rutin ldy #0 ; x koordinatı 9.bit lda #160 ; x koordinatı ldx #100 ; y koordinatı jsr noktakoy ; ekrana nokta bas
Öncelikle bu bölümde gördüğünüz register isimleri kafanızı karıştırmasın. Yani "ldx" komutu x koordinatı değerini taşır şeklinde düşünmeyin. Aksine yanlarında açıklamaları olduğu gibi ldx ile 0-199 arasındaki y koordinatı değerini y register'ına yüklüyoruz. ldy ve lda ise x koordinatı değerlerini içeriyor. Peki burada 9 biti nasıl kullandık? y registerının en sağdaki biti (0. bit) a registerının 9. biti anlamına geliyor. Yani x'e 300 gibi 255'ten büyük bir değer vermemiz gerektiğinde bunu öncelikle 9 bitlik bir ifade şeklinde yazmalıyız.
300 = %100101100