2 ; Oliver Schmidt, 14.08.2018
4 ; int __fastcall__ clock_gettime (clockid_t clk_id, struct timespec *tp);
7 .import pushax, steaxspidx, incsp1, incsp3, return0
10 .include "zeropage.inc"
17 ; Clear tv_nsec (+ tv_sec)
21 ldy #.sizeof(timespec)-1
37 bcs :+ ; No, leave alone
38 adc #100 ; Move 19xx to 20xx
39 : sta TM + tm::tm_year
42 plp ; Restore month msb
48 beq erange ; [1..12] allows for validity check
50 dey ; Move [1..12] to [0..11]
81 jsr incsp3 ; Preserves A
87 oserr: jsr incsp3 ; Preserves A