;
.include "time.inc"
- .include "zeropage.inc"
- .include "mli.inc"
+ .include "zeropage.inc"
+ .include "mli.inc"
__systime:
- ; Update time
- lda #GET_TIME_CALL
- ldx #GET_TIME_COUNT
- jsr callmli
- bcs err
-
- lda DATELO+1
- lsr
- php ; Save month msb
- cmp #70 ; Year < 70?
- bcs :+ ; No, leave alone
- adc #100 ; Move 19xx to 20xx
-: sta TM + tm::tm_year
- lda DATELO
- tax ; Save day
- plp ; Restore month msb
- ror
- lsr
- lsr
- lsr
- lsr
- beq err ; [1..12] allows for validity check
- tay
- dey ; Move [1..12] to [0..11]
- sty TM + tm::tm_mon
- txa ; Restore day
- and #%00011111
- sta TM + tm::tm_mday
-
- lda TIMELO+1
- sta TM + tm::tm_hour
- lda TIMELO
- sta TM + tm::tm_min
-
- lda #<TM
- ldx #>TM
- jmp _mktime
-
-err: lda #$FF
- tax
- sta sreg
- sta sreg+1
- rts ; Return -1
-
- .bss
-
-TM: .tag tm
+ ; Update time
+ lda #GET_TIME_CALL
+ ldx #GET_TIME_COUNT
+ jsr callmli
+ bcs err
+
+ lda DATELO+1
+ lsr
+ php ; Save month msb
+ cmp #70 ; Year < 70?
+ bcs :+ ; No, leave alone
+ adc #100 ; Move 19xx to 20xx
+: sta TM + tm::tm_year
+ lda DATELO
+ tax ; Save day
+ plp ; Restore month msb
+ ror
+ lsr
+ lsr
+ lsr
+ lsr
+ beq err ; [1..12] allows for validity check
+ tay
+ dey ; Move [1..12] to [0..11]
+ sty TM + tm::tm_mon
+ txa ; Restore day
+ and #%00011111
+ sta TM + tm::tm_mday
+
+ lda TIMELO+1
+ sta TM + tm::tm_hour
+ lda TIMELO
+ sta TM + tm::tm_min
+
+ lda #<TM
+ ldx #>TM
+ jmp _mktime
+
+err: lda #$FF
+ tax
+ sta sreg
+ sta sreg+1
+ rts ; Return -1
+
+ .bss
+
+TM: .tag tm