PCem
view src/linux-time.c @ 154:d0d530adce12
Initial port to Linux (using Allegro).
64-bit fixes.
Some changes to aid portability.
A few other tweaks.
| author | TomW |
|---|---|
| date | Thu Sep 04 21:07:24 2014 +0100 |
| parents | |
| children |
line source
1 #include <sys/time.h>
2 #include <time.h>
3 #include "ibm.h"
4 #include "nvr.h"
6 void time_get(char *nvrram)
7 {
8 int c,d;
9 uint8_t baknvr[10];
10 time_t cur_time;
11 struct tm cur_time_tm;
13 memcpy(baknvr,nvrram,10);
15 cur_time = time(NULL);
16 localtime_r(&cur_time, &cur_time_tm);
18 d = cur_time_tm.tm_sec % 10;
19 c = cur_time_tm.tm_sec / 10;
20 nvrram[0] = d | (c << 4);
21 d = cur_time_tm.tm_min % 10;
22 c = cur_time_tm.tm_min / 10;
23 nvrram[2] = d | (c << 4);
24 d = cur_time_tm.tm_hour % 10;
25 c = cur_time_tm.tm_hour / 10;
26 nvrram[4] = d | (c << 4);
27 d = cur_time_tm.tm_wday % 10;
28 c = cur_time_tm.tm_wday / 10;
29 nvrram[6] = d | (c << 4);
30 d = cur_time_tm.tm_mday % 10;
31 c = cur_time_tm.tm_mday / 10;
32 nvrram[7] = d | (c << 4);
33 d = cur_time_tm.tm_mon % 10;
34 c = cur_time_tm.tm_mon / 10;
35 nvrram[8] = d | (c << 4);
36 d = cur_time_tm.tm_year % 10;
37 c = (cur_time_tm.tm_year / 10) % 10;
38 nvrram[9] = d | (c << 4);
39 if (baknvr[0] != nvrram[0] ||
40 baknvr[2] != nvrram[2] ||
41 baknvr[4] != nvrram[4] ||
42 baknvr[6] != nvrram[6] ||
43 baknvr[7] != nvrram[7] ||
44 baknvr[8] != nvrram[8] ||
45 baknvr[9] != nvrram[9])
46 nvrram[0xA] |= 0x80;
47 }
