1
0
mirror of https://github.com/cc65/cc65.git synced 2024-06-28 19:29:53 +00:00

The CIA TOD needs a write to the 1/10 sec register to start. Shortened the

code by using initialized data.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4224 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
uz 2009-09-24 19:40:36 +00:00
parent 5c5d01d84a
commit 83be732983
2 changed files with 62 additions and 16 deletions

View File

@ -12,17 +12,15 @@
.include "time.inc"
.include "c128.inc"
.importzp tmp1, tmp2
.constructor initsystime
.importzp tmp1, tmp2
;----------------------------------------------------------------------------
.code
; Jan 1st 1970, CIA #1 TOD
.proc __systime
lda #70
sta TM + tm::tm_year
lda #1
sta TM + tm::tm_mday
lda CIA1_TODHR
bpl AM
and #%01111111
@ -59,6 +57,31 @@ BCD2dec:tax
.endproc
.bss
;----------------------------------------------------------------------------
; Constructor that writes to the 1/10 sec register of the TOD to kick it
; into action. If this is not done, the clock hangs. We will read the register
; and write it again, ignoring a possible change in between.
.proc initsystime
lda CIA1_TOD10
sta CIA1_TOD10
rts
.endproc
;----------------------------------------------------------------------------
; TM struct with date set to 1970-01-01
.data
TM: .word 0 ; tm_sec
.word 0 ; tm_min
.word 0 ; tm_hour
.word 1 ; tm_mday
.word 0 ; tm_mon
.word 70 ; tm_year
.word 0 ; tm_wday
.word 0 ; tm_yday
.word 0 ; tm_isdst
TM: .tag tm

View File

@ -12,17 +12,15 @@
.include "time.inc"
.include "c64.inc"
.importzp tmp1, tmp2
.constructor initsystime
.importzp tmp1, tmp2
;----------------------------------------------------------------------------
.code
; Jan 1st 1970, CIA #1 TOD
.proc __systime
lda #70
sta TM + tm::tm_year
lda #1
sta TM + tm::tm_mday
lda CIA1_TODHR
bpl AM
and #%01111111
@ -59,6 +57,31 @@ BCD2dec:tax
.endproc
.bss
;----------------------------------------------------------------------------
; Constructor that writes to the 1/10 sec register of the TOD to kick it
; into action. If this is not done, the clock hangs. We will read the register
; and write it again, ignoring a possible change in between.
.proc initsystime
lda CIA1_TOD10
sta CIA1_TOD10
rts
.endproc
;----------------------------------------------------------------------------
; TM struct with date set to 1970-01-01
.data
TM: .word 0 ; tm_sec
.word 0 ; tm_min
.word 0 ; tm_hour
.word 1 ; tm_mday
.word 0 ; tm_mon
.word 70 ; tm_year
.word 0 ; tm_wday
.word 0 ; tm_yday
.word 0 ; tm_isdst
TM: .tag tm