]> git.sur5r.net Git - cc65/commitdiff
Fixed the system banking in the cbm510 and the cbm610 targets' versions of clock_gett...
authorGreg King <gregdk@users.sf.net>
Sun, 19 Aug 2018 21:12:54 +0000 (17:12 -0400)
committerGreg King <gregdk@users.sf.net>
Sun, 19 Aug 2018 21:12:54 +0000 (17:12 -0400)
Their library function calls must run in the execution bank.

libsrc/cbm510/gettime.s
libsrc/cbm510/settime.s
libsrc/cbm610/gettime.s
libsrc/cbm610/settime.s

index 5a0a172e499a0dbf522594b24a3841470f9d8a71..c767c1f338ba0bcaa89e512bd88b0fd8e12493bd 100644 (file)
@@ -1,7 +1,8 @@
 ;
-; Stefan Haubenthal, 2009-07-27
-; Ullrich von Bassewitz, 2009-09-24
-; Oliver Schmidt, 2018-08-14
+; 2009-07-27, Stefan Haubenthal
+; 2009-09-24, Ullrich von Bassewitz
+; 2018-08-18, Oliver Schmidt
+; 2018-08-19, Greg King
 ;
 ; int clock_gettime (clockid_t clk_id, struct timespec *tp);
 ;
 
 .proc   _clock_gettime
 
-        jsr     sys_bank
         jsr     pushax
         jsr     pushax
 
+        jsr     sys_bank
         ldy     #CIA::TODHR
         lda     (cia2),y
         sed
         lda     (cia2),y
         jsr     BCD2dec
         sta     TM + tm::tm_sec
+        ldy     #CIA::TOD10
+        lda     (cia2),y
+        jsr     restore_bank
+        pha
         lda     #<TM
         ldx     #>TM
         jsr     _mktime
 
         jsr     load_tenth
         jsr     pusheax
-        ldy     #CIA::TOD10
-        lda     (cia2),y
+        pla
         ldx     #>$0000
         jsr     tosmul0ax
 
         ldy     #timespec::tv_nsec
         jsr     steaxspidx      ; Pops address pushed by 1. pushax
 
-        jsr     incsp1
-
-        lda     #0
+        lda     #$00
         tax
-        jmp     restore_bank
+        jmp     incsp1
 
 .endproc
 
index 0c377eb63c9e6ad95d362318ad637d3a2a1c0931..6eb08a1acf93cbac0fe57491e407ecffd29b1e72 100644 (file)
@@ -1,5 +1,6 @@
 ;
-; 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);
 ;
@@ -20,7 +21,6 @@
 
 .proc   _clock_settime
 
-        jsr     sys_bank
         jsr     pushax
 
         .assert timespec::tv_sec = 0, error
@@ -33,6 +33,7 @@
         dey
         bpl     @L1
 
+        jsr     sys_bank
         lda     TM + tm::tm_hour
         jsr     dec2BCD
         tax                     ; Force flags
@@ -55,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
 
index 7adf5a14d91573b1fff55f600695ec7ec1b8dd9f..4c66f7747643057326b0cb4f2e0e9423851bd732 100644 (file)
@@ -1,7 +1,8 @@
 ;
-; Stefan Haubenthal, 2009-07-27
-; Ullrich von Bassewitz, 2009-09-24
-; Oliver Schmidt, 2018-08-14
+; 2009-07-27, Stefan Haubenthal
+; 2009-09-24, Ullrich von Bassewitz
+; 2018-08-18, Oliver Schmidt
+; 2018-08-19, Greg King
 ;
 ; int clock_gettime (clockid_t clk_id, struct timespec *tp);
 ;
 
 .proc   _clock_gettime
 
-        jsr     sys_bank
         jsr     pushax
         jsr     pushax
 
+        jsr     sys_bank
         ldy     #CIA::TODHR
         lda     (cia),y
         sed
         lda     (cia),y
         jsr     BCD2dec
         sta     TM + tm::tm_sec
+        ldy     #CIA::TOD10
+        lda     (cia),y
+        jsr     restore_bank
+        pha
         lda     #<TM
         ldx     #>TM
         jsr     _mktime
 
         jsr     load_tenth
         jsr     pusheax
-        ldy     #CIA::TOD10
-        lda     (cia),y
+        pla
         ldx     #>$0000
         jsr     tosmul0ax
 
         ldy     #timespec::tv_nsec
         jsr     steaxspidx      ; Pops address pushed by 1. pushax
 
-        jsr     incsp1
-
-        lda     #0
+        lda     #$00
         tax
-        jmp     restore_bank
+        jmp     incsp1
 
 .endproc
 
index a42f451cf56bfd95fdb3797e18ecfdbcfae7322d..3d2a24af98888e6aad5eb92e32d56fc3f7fa604d 100644 (file)
@@ -1,5 +1,6 @@
 ;
-; 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);
 ;
@@ -20,7 +21,6 @@
 
 .proc   _clock_settime
 
-        jsr     sys_bank
         jsr     pushax
 
         .assert timespec::tv_sec = 0, error
@@ -33,6 +33,7 @@
         dey
         bpl     @L1
 
+        jsr     sys_bank
         lda     TM + tm::tm_hour
         jsr     dec2BCD
         tax                     ; Force flags
@@ -55,6 +56,7 @@
         jsr     dec2BCD
         ldy     #CIA::TODSEC
         sta     (cia),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     (cia),y
+        jsr     restore_bank
 
-        jsr     incsp3
-
-        lda     #0
+        lda     #$00
         tax
-        jmp     restore_bank
+        jmp     incsp3
 
 .endproc