ReactOS 0.4.16-dev-2234-gabd201b
pc98rtc.c File Reference
#include <freeldr.h>
Include dependency graph for pc98rtc.c:

Go to the source code of this file.

Functions

static UCHAR BCD_INT (_In_ UCHAR Bcd)
 
TIMEINFOPc98GetTime (VOID)
 

Function Documentation

◆ BCD_INT()

static UCHAR BCD_INT ( _In_ UCHAR  Bcd)
static

Definition at line 12 of file pc98rtc.c.

14{
15 return ((Bcd & 0xF0) >> 4) * 10 + (Bcd & 0x0F);
16}

Referenced by Pc98GetTime().

◆ Pc98GetTime()

TIMEINFO * Pc98GetTime ( VOID  )

Definition at line 19 of file pc98rtc.c.

20{
21 static TIMEINFO TimeInfo;
22 REGS Regs;
23 UCHAR SysTime[6];
24
25 /* Int 1Ch AH=00h
26 * TIMER BIOS - Read system time
27 *
28 * Call with:
29 * ES:BX -> data buffer
30 */
31 Regs.b.ah = 0x00;
32 Regs.w.es = ((ULONG_PTR)SysTime) >> 4;
33 Regs.w.bx = ((ULONG_PTR)SysTime) & 0x0F;
34 Int386(0x1C, &Regs, &Regs);
35
36 TimeInfo.Year = BCD_INT(SysTime[0]);
37 TimeInfo.Month = BCD_INT(SysTime[1] >> 4);
38 TimeInfo.Day = BCD_INT(SysTime[2]);
39 TimeInfo.Hour = BCD_INT(SysTime[3]);
40 TimeInfo.Minute = BCD_INT(SysTime[4]);
41 TimeInfo.Second = BCD_INT(SysTime[5]);
42 if (TimeInfo.Year >= 80)
43 TimeInfo.Year += 1900;
44 else
45 TimeInfo.Year += 2000;
46
47 return &TimeInfo;
48}
#define ULONG_PTR
Definition: config.h:101
static UCHAR BCD_INT(_In_ UCHAR Bcd)
Definition: pc98rtc.c:12
int __cdecl Int386(int ivec, REGS *in, REGS *out)
unsigned char ah
Definition: pcbios.h:134
unsigned short es
Definition: pcbios.h:123
unsigned short bx
Definition: pcbios.h:114
Definition: fw.h:10
USHORT Month
Definition: fw.h:12
USHORT Day
Definition: fw.h:13
USHORT Minute
Definition: fw.h:15
USHORT Hour
Definition: fw.h:14
USHORT Second
Definition: fw.h:16
USHORT Year
Definition: fw.h:11
Definition: pcbios.h:161
BYTEREGS b
Definition: pcbios.h:165
WORDREGS w
Definition: pcbios.h:164
unsigned char UCHAR
Definition: xmlstorage.h:181

Referenced by MachInit().