start implementing time utils
This commit is contained in:
+21
@@ -12,3 +12,24 @@ void outportb(uint16 _port, uint8 _data)
|
||||
{
|
||||
__asm__ __volatile__ ("outb %1, %0" : : "dN" (_port), "a" (_data));
|
||||
}
|
||||
|
||||
uint8_t get_rtc(uint8_t reg)
|
||||
{
|
||||
uint8_t nmi_disable_bit = 0;
|
||||
outb(0x70, (nmi_disable_bit << 7) | reg);
|
||||
uint8_t result = inb(0x71);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
void get_fancy_datetime()
|
||||
{
|
||||
uint8_t century = get_rtc(0x32);
|
||||
uint8_t year = get_rtc(0x09);
|
||||
uint8_t month = get_rtc(0x08);
|
||||
uint8_t day_of_month = get_rtc(0x07);
|
||||
uint8_t hour = get_rtc(0x04);
|
||||
uint8_t minute = get_rtc(0x02);
|
||||
uint8_t second = get_rtc(0x00);
|
||||
printf("%X-%X-%X%X %X:%X:%X\n", day_of_month, month, century, year, hour, minute, second);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user