mirror of
https://github.com/cc65/cc65.git
synced 2024-12-28 22:30:12 +00:00
Atari: implement clock_getres()
This commit is contained in:
parent
6dc7309e50
commit
df3c43bede
@ -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
|
||||
|
51
libsrc/atari/getres.s
Normal file
51
libsrc/atari/getres.s
Normal file
@ -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
|
@ -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"
|
||||
|
Loading…
Reference in New Issue
Block a user