Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- chktimer ;Timer vector cannot be in ZP.
- ;If timer vector MSB is 0, RTS.
- ;Checks timer, JSR if reached.
- lda timervec+2
- beq timerexit
- lda jiffyhi
- cmp timer+2
- bcc timerexit ;Not reached
- bne timervec ;Reached
- lda jiffymi
- cmp timer+1
- bcc timerexit ;Not reached
- bne timervec ;Reached
- lda jiffylo
- cmp timer+0
- bcc timerexit ;Not reached
- timervec jsr $00 ;Self-modifying
- bcs timerexit
- lda #0
- sta timervec+2 ;Clear the timer
- timerexit
- rts
- timer .byte 0,0,0
- settimer ;Copy ZP Vector to JSR's addr
- lda $fb
- sta timervec+1
- lda $fc
- sta timervec+2
- ;Write .X.Y relative time.
- stx timer+0
- sty timer+1
- clc
- ;Add current Jiffy Time.
- lda jiffylo
- adc timer+0
- sta timer+0
- lda jiffymi
- adc timer+1
- sta timer+1
- lda jiffyhi
- adc #0
- sta timer+2
- rts
- ;AMAZINGLY, Assembles to just 88 bytes.
- ;abcdefghijklmnopqrstuvwxyz
- ;abcdefghijklmnopqrstuvwxyz
- ;abcdefghijklmnopqrstuvwxyz
- ;abcdefghi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement