clock.h
字号:
PRIVATE long time_to_second(struct t_bios_time * time);PUBLIC void InitClock();PRIVATE void ClockInterrupt();PRIVATE void SetTime();PUBLIC void OutCommand(t_8 Command);PUBLIC int InResult();PUBLIC void detect_floppy_drives();PRIVATE void GetTime();PUBLIC void initClock();/*********************************************************************/extern int printk(const char * fmt, ...);//klibextern char * strcpy(char * strDest,const char * strSrc);//klib/*********************************************************************/#define TIMER0 0x40
#define TIMER_MODE 0x43
#define RATE_GENERATOR 0x34
#define TIMER_FREQ 1193182L
#define TIMER_MODE 0x43
#define TIMER0 0x40
#define TIMER_FREQ 1193182L
#define HZ 100
#define LATCH (TIMER_FREQ / HZ)
#define LATCH_COUNT 0x00
#define TIMER_COUNT ((unsigned)(TIMER_FREQ / HZ))
#define RTC_SECOND 0
#define RTC_SECOND_ALRAM 1
#define RTC_MINUTE 2
#define RTC_MINUTE_ALRAM 3
#define RTC_HOUR 4
#define RTC_HOUR_ALRAM 5
#define RTC_DAY_OF_WEEK 6
#define RTC_DAY_OF_MONTH 7
#define RTC_MONTH 8
#define RTC_YEAR 9
#define RTC_REG_A 10
#define RTC_REG_B 11
#define RTC_REG_C 12
#define RTC_REG_D 13
#define RTC_CENTURY 0x32
#define BCD_TO_BIN(val) (val = (val & 0x0f) + ((val >> 4) * 10))
#define BIN_TO_BCD(val) (val = ((val / 10) << 4) + (val % 10))
#define MINUTE 60
#define HOUR (MINUTE * 60)
#define DAY (HOUR * 24)
#define YEAR (DAY * 365)#define DIR 0x40
#define READYY 0x80
#define BUSY 0x10
#define STATUS 0x3f4
#define outb(value,port) __asm__ ("outb %%al,%%dx"::"a" (value),"d" (port))
#define inb(port) ({ unsigned char _v; __asm__ volatile ("inb %%dx,%%al":"=a" (_v):"d" (port)); _v; })
#define outb_p(value,port) __asm__ ("outb %%al,%%dx\n" "\tjmp 1f\n" "1:\tjmp 1f\n" "1:"::"a" (value),"d" (port))
#define inb_p(port) ({ unsigned char _v; __asm__ volatile ("inb %%dx,%%al\n" "\tjmp 1f\n" "1:\tjmp 1f\n" "1:":"=a" (_v):"d" (port)); _v; })
#define CMOS_READ(addr) ({outb_p(addr | 0x80, 0x70);inb_p(0x71);})
long volatile timer_count;
long volatile boot_time;
struct t_bios_time bios_time;
t_32 RealTime=0;
/* the months of leap year */
static int month[12] = {
0,
DAY * (31),
DAY * (31 + 29),
DAY * (31 + 29 + 31),
DAY * (31 + 29 + 31 + 30),
DAY * (31 + 29 + 31 + 30 + 31),
DAY * (31 + 29 + 31 + 30 + 31 + 30),
DAY * (31 + 29 + 31 + 30 + 31 + 30 + 31),
DAY * (31 + 29 + 31 + 30 + 31 + 30 + 31 + 31),
DAY * (31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + 30),
DAY * (31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31),
DAY * (31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30),
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -