Commodore sayı 63, sayfa 24

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 24

Sta Lda

Sta Sta Lda

Lda

Lda Sta LDa Sta Lda Sta Lda Sta Lda Sta Lda Sta Lda

Sta Lda Sta Cli Jmp

$01 ; teyp de çalış- sın #$1F ; oluşacak inter- rupt türü $DCOD $DDOD $DDCOD ; Bu registerleri okuyarak $DDOD ; aktif hale ge- tiriyoruz # $68 ; $DCO4 ; Timer'ları # ; ayarla $DCOS ; # $90 ; Tape IRO'nun $DCOD ; aktif hale getir $FFFE ; IRO başlangıç ; adresi #$7B $FEFFA ; NMI'ı Bir BTI # $03 ; gösterecek şe- kilde $FFFB ; ayarla $00 ; sinyali $02 ; sıfırla $03DD

Yüklemeye giriş için gerekli tüm adresler ayarlandı.

02F3 Lda Sta Lda Sta Lmp 0300 word

# $03 $0302 # S$A4 $0303 $FF84 $E300,$02AB ; autostart adre- si

Burası sadece yüklemenin sonunda gelinen etrafı toparlama rutini.

Flame 0351

$0364

— “*isim Pha

Tya Pha Lda $DCOS Lday #$19 Sty $DCO3 Eor # $02 Lsr Lsr Rol Lda — $A9 Becc Hitgot Bes Exit

;Kullanılacak ; registerleri ; Stack'e at ; Timer'ı al ; Timer'ı yeni- den ; başlat

; Bit'in değerini ; CARRY'ye al ; Bayt'ı bayta al ; Bayt'ı al ; bayt tamam- landı bayt tamamlan- madı

Interrupt'ın girişinde, bit'i alıp, gerekli bayta ekliyoruz. Bayt tamamlanmadıysa, interrupt'tan çıkıyoruz. Tamamlandıysa:

Bitgot

Cmp # Bne Exit Lda #$16 Sta $0365

; Senkronizas- yon? ; hayır ; evet ; rutin 1'i göster

Burada oldukça etkili bir hile kullanılmış. $0364'teki Bcc'nin ikinci baytının değeriyle oynanarak, teypten bayt okunduğunda yapılan işlemler değiştiriliyor.

Ex 1

Exit

Lda — #$FE

Sta $A9 Lda $DCOD

Pla Tay Pla Rti

; Gelecek baytın bitişini ; anlamak için ; İnterrupt'ı te- mizle

Ve interrupt'ı terk edip asıl programa dönüyoruz.

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