]> git.sur5r.net Git - cc65/blobdiff - libsrc/cbm510/settime.s
Updated to use cbm_kernal.inc. Whitespace cleanups
[cc65] / libsrc / cbm510 / settime.s
index 6e425eaffefd3a7f3d16530a2292d5cab15e142c..08de7915a297038ad3c66bb0cd710e507f0443ee 100644 (file)
@@ -1,7 +1,8 @@
 ;
-; Oliver Schmidt, 16.8.2018
+; 2018-08-18, Oliver Schmidt
+; 2018-08-19, Greg King
 ;
-; int clock_settime (clockid_t clk_id, const struct timespec *tp);
+; int __fastcall__ clock_settime (clockid_t clk_id, const struct timespec *tp);
 ;
 
         .include        "time.inc"
@@ -20,9 +21,9 @@
 
 .proc   _clock_settime
 
-        jsr     sys_bank
         jsr     pushax
 
+        .assert timespec::tv_sec = 0, error
         jsr     _localtime
         sta     ptr1
         stx     ptr1+1
@@ -32,6 +33,7 @@
         dey
         bpl     @L1
 
+        jsr     sys_bank
         lda     TM + tm::tm_hour
         jsr     dec2BCD
         tax                     ; Force flags
@@ -54,6 +56,7 @@
         jsr     dec2BCD
         ldy     #CIA::TODSEC
         sta     (cia2),y
+        jsr     restore_bank
 
         jsr     ldax0sp
         ldy     #3+timespec::tv_nsec
         jsr     pusheax
         jsr     load_tenth
         jsr     tosdiveax
+
+        jsr     sys_bank
         ldy     #CIA::TOD10
         sta     (cia2),y
+        jsr     restore_bank
 
-        jsr     incsp3
-
-        lda     #0
+        lda     #$00
         tax
-        jmp     restore_bank
+        jmp     incsp3
 
 .endproc