; ; A small program to demonstrate how to sync to the raster counter. ; This code assumes that there are 63 cycles per raster line. ; ; Michiel Boland 2 Nov 2004 rc = $d012 ; raster counter ec = $d020 ; exterior color .org $c000 - 2 .word start start: lda rc ; Wait for next line. l0: cmp rc ; We are now off by at most 7 cycles. beq l0 jsr delay ; Delay 50 cycles lda rc cmp rc ; If rc hasn't increased yet, add bne l1 ; 4 more cycles. bit 0 nop l1: jsr delay lda rc cmp rc ; Add 2 cycles if needed. beq l2 l2: beq l3 l3: jsr delay lda rc cmp rc beq l4 ; Add 1 cycle if needed. l4: inc ec ; Sync complete. jmp start delay: ldy #7 l5: dey bne l5 nop rts