yes!
This commit is contained in:
@@ -1,17 +0,0 @@
|
||||
#include <rp6502.h>
|
||||
#include <time.h>
|
||||
|
||||
int clock_gettimezone (time_t time, clockid_t clock_id, struct _timezone* tz)
|
||||
{
|
||||
int ax;
|
||||
ria_set_ax (clock_id);
|
||||
ria_push_long (time);
|
||||
ax = ria_call_int (RIA_OP_CLOCK_GETTIMEZONE);
|
||||
if (ax >= 0) {
|
||||
char i;
|
||||
for (i = 0; i < sizeof (struct _timezone); i++) {
|
||||
((char*)tz)[i] = ria_pop_char ();
|
||||
}
|
||||
}
|
||||
return ax;
|
||||
}
|
||||
12
libsrc/rp6502/localtime.s
Normal file
12
libsrc/rp6502/localtime.s
Normal file
@@ -0,0 +1,12 @@
|
||||
;
|
||||
; struct tm* __fastcall__ localtime (const time_t* timep);
|
||||
;
|
||||
|
||||
.export _localtime
|
||||
|
||||
.import __localtime
|
||||
|
||||
|
||||
;--------------------------------------------------------------------------
|
||||
|
||||
_localtime = __localtime
|
||||
31
libsrc/rp6502/localtime_.c
Normal file
31
libsrc/rp6502/localtime_.c
Normal file
@@ -0,0 +1,31 @@
|
||||
#include <rp6502.h>
|
||||
#include <time.h>
|
||||
#include <stdbool.h>
|
||||
|
||||
static bool tzset_set = false;
|
||||
|
||||
struct tm* __fastcall__ _time_t_to_tm (const time_t t);
|
||||
|
||||
struct tm* __fastcall__ _localtime (const time_t* timep)
|
||||
{
|
||||
long time = *timep;
|
||||
struct tm* tm;
|
||||
ria_set_axsreg (*timep);
|
||||
time += ria_call_long (RIA_OP_TZQUERY);
|
||||
tm = _time_t_to_tm (time);
|
||||
tm->tm_isdst = ria_pop_char ();
|
||||
if (!tzset_set) { tzset (); }
|
||||
return tm;
|
||||
}
|
||||
|
||||
void tzset (void)
|
||||
{
|
||||
int ax = ria_call_int (RIA_OP_TZSET);
|
||||
if (ax >= 0) {
|
||||
char i;
|
||||
for (i = 0; i < sizeof (struct _timezone); i++) {
|
||||
((char*)&_tz)[i] = ria_pop_char ();
|
||||
}
|
||||
tzset_set = true;
|
||||
}
|
||||
}
|
||||
@@ -1,26 +0,0 @@
|
||||
; tzset_time.s
|
||||
;
|
||||
; This file is part of
|
||||
; cc65 - a freeware C compiler for 6502 based systems
|
||||
;
|
||||
; https://cc65.github.io
|
||||
;
|
||||
; See "LICENSE" file for legal information.
|
||||
;
|
||||
; void __fastcall__ tzset_time (time_t* time);
|
||||
;
|
||||
|
||||
.export _tzset_time
|
||||
.import _clock_gettimezone, __tz
|
||||
.import pushax, ldax0sp, ldeaxi, pusheax, pusha, incsp2
|
||||
.include "time.inc"
|
||||
|
||||
|
||||
_tzset_time:
|
||||
jsr ldeaxi
|
||||
jsr pusheax
|
||||
lda #CLOCK_REALTIME
|
||||
jsr pusha
|
||||
lda #<(__tz)
|
||||
ldx #>(__tz)
|
||||
jmp _clock_gettimezone
|
||||
Reference in New Issue
Block a user