Commodore sayı 66, sayfa 45

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 45

Program 2: Sei Lda #$00 Sta $DCOE Lda #$7F Sta $DCOD Lda #$01 Sta $DOLA Lda #$Raster Sta $DO12

Sta $0315 Cli Döngü Jmp Döngü

Yukarıdaki program parçacığını kullanarak, Raster adlı satıra gelince Adres adlı adrese sıçranmasını sağlayabilirsiniz. Şimdi de yazdığımız onca komutun ne işe yaradığını anlatayım: $DC0D-$DC0E adreslerinin değerlerini, zamanlama interrupt'larını engelleyecek şekilde ayarlıyoruz (Sayı 56'ya bakarak bu konuda ayrıntılı bilgi alabilirsiniz). $D01A'ya verdiğimiz $01 değeri ise sadece raster interrupt'ı istediğimizi söylüyor bilgisayara. Daha sonra istediğimiz raster satırının değerini (örnekte Raster) $D012 adresine yazıyoruz. Mesela interrupt'ın $0A0 satırında yapılmasını istiyorsak, örnekteki Raster yerine $A0 yazmamız gerekir. $D011 adresinin son bitini 1 veya sıfır yaparak da 9. bitin değerini ayarlıyoruz. Ora #$80 komutunu kullanırsak son bit 1, And #$7F kullanırsak son bit sıfır olur ('8. bitin değerini sıfırla, geri kalanlarını olduğu gibi kullan' anlamına gelir bu komut). $0A0 satırı için burada And #$7F kullanmamız gerekir. Daha sonra da $0314-$0315'e Adres değerini alçak-yüksek bayt formatında yazıyoruz (<Adres: Adres'in alçak baytı, >Adres: Adres'in yüksek baytı, Adres=$C080 ise <Adres=$80, >Adres=$C0 olur). Cli komutuyla interrupt'ları açtığımız andan itibaren, her $00A0 raster satırına gelindiğinde yapılan iş (JMP Döngü) bırakılır, ve $C080 adresine sıçranır.

Kİ Bir

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