Fixed bugs; and, improved the efficiency of some pce library functions.

This commit is contained in:
Greg King
2015-11-26 15:06:20 -05:00
committed by Oliver Schmidt
parent 959eff34a3
commit 39694d0aaa
16 changed files with 158 additions and 229 deletions

View File

@@ -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