]> git.sur5r.net Git - cc65/commitdiff
Atari: implement clock_getres()
authorChristian Groessler <chris@groessler.org>
Thu, 27 Sep 2018 18:22:21 +0000 (20:22 +0200)
committerOliver Schmidt <ol.sc@web.de>
Fri, 28 Sep 2018 07:47:20 +0000 (09:47 +0200)
libsrc/apple2/getres.s
libsrc/atari/getres.s [new file with mode: 0644]
libsrc/cbm/getres.s

index 777a5df3fb46176490e97f95a7cced349f10790f..6441671cc7f9b6808c48bb49ce2148834b784d54 100644 (file)
@@ -1,7 +1,7 @@
 ;
 ; Oliver Schmidt, 15.08.2018
 ;
-; int clock_getres (clockid_t clk_id, struct timespec *res);
+; int __fastcall__ clock_getres (clockid_t clk_id, struct timespec *res);
 ;
 
         .import         __dos_type
diff --git a/libsrc/atari/getres.s b/libsrc/atari/getres.s
new file mode 100644 (file)
index 0000000..f2e4874
--- /dev/null
@@ -0,0 +1,51 @@
+;
+; Oliver Schmidt, 15.8.2018
+; Christian Groessler, 27.9.2018
+;
+; int __fastcall__ clock_getres (clockid_t clk_id, struct timespec *res);
+;
+
+        .include        "atari.inc"
+        .include        "time.inc"
+        .include        "errno.inc"
+
+        .importzp       ptr1
+        .import         incsp1, return0, __dos_type
+
+;----------------------------------------------------------------------------
+.code
+
+_clock_getres:
+        sta     ptr1
+        stx     ptr1+1
+
+        ; Cleanup stack
+        jsr     incsp1
+
+        ; Check for SpartaDOS-X 4.40 or newer
+        ldy     #SPARTADOS
+        cpy     __dos_type
+        bne     enosys
+        ldy     SDX_VERSION
+        cpy     #$44
+        bcc     enosys
+
+        ldy     #.sizeof(timespec)-1
+@L1:    lda     time,y
+        sta     (ptr1),y
+        dey
+        bpl     @L1
+
+        jmp     return0
+
+enosys: lda     #ENOSYS
+
+        ; Set __errno
+        jmp     __directerrno
+
+;----------------------------------------------------------------------------
+; timespec struct with tv_sec set to 1 second
+.rodata
+
+time:   .dword  1
+        .dword  0
index d216a1b6a2b1202613f1bc103ee1bd133a775773..998bac9f6f75c489cf42ec49f8ec904acda790ef 100644 (file)
@@ -1,7 +1,7 @@
 ;
 ; Oliver Schmidt, 15.8.2018
 ;
-; int clock_getres (clockid_t clk_id, struct timespec *res);
+; int __fastcall__ clock_getres (clockid_t clk_id, struct timespec *res);
 ;
 
         .include        "time.inc"