Fixed bugs; and, improved the efficiency of some pce library functions.
This commit is contained in:
committed by
Oliver Schmidt
parent
959eff34a3
commit
39694d0aaa
@@ -2,32 +2,39 @@
|
||||
; clock_t clock (void);
|
||||
;
|
||||
|
||||
.export _clock
|
||||
.constructor initclock
|
||||
.export _clock
|
||||
|
||||
.forceimport ticktock ; make sure that tickcount changes
|
||||
.importzp sreg
|
||||
|
||||
.include "extzp.inc"
|
||||
|
||||
.proc _clock
|
||||
lda tickcount+3
|
||||
sta sreg+1
|
||||
lda tickcount+2
|
||||
sta sreg
|
||||
ldx tickcount+1
|
||||
lda tickcount
|
||||
rts
|
||||
.endproc
|
||||
.importzp tickcount, sreg
|
||||
|
||||
|
||||
; Make the process clock start at zero.
|
||||
|
||||
.segment "ONCE"
|
||||
initclock:
|
||||
lda #0
|
||||
ldx #3
|
||||
@lp: sta tickcount,x
|
||||
ldx #4 - 1
|
||||
@lp: stz tickcount,x
|
||||
dex
|
||||
bpl @lp
|
||||
rts
|
||||
|
||||
; ------------------------------------------------------------------------
|
||||
.code
|
||||
|
||||
; This function might be interrupted while it is reading the several bytes of
|
||||
; the clock. They are read again if that happens. (We do not want to stop
|
||||
; interrupts because that might cause glitches in interrupt-driven graphics
|
||||
; and sound.)
|
||||
|
||||
.proc _clock
|
||||
lda tickcount
|
||||
ldy tickcount+3
|
||||
sty sreg+1
|
||||
ldy tickcount+2
|
||||
sty sreg
|
||||
ldx tickcount+1
|
||||
cmp tickcount
|
||||
bne _clock ; clock changed; reread it
|
||||
rts
|
||||
.endproc
|
||||
|
||||
Reference in New Issue
Block a user