📄 time_init.c
字号:
////////////////////////////////////////////////////////////////////////////////
#include "general.h"
#include "inb_outb_1.h"
#include "cmos_read.h"
#include "bcd_to_bin.h"
#include "hd_info_struct.h"
#include "dir_entry.h"
#include "msdos_dir_entry.h"
#include "d_inode.h"
#include "m_inode.h"
#include "buffer_head.h"
#include "fat_cache.h"
#include "file.h"
#include "hd_request_struct.h"
#include "super_block.h"
#include "common_head.h"
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
void time_init(void)
{
do {
current_datetime_sec = CMOS_READ(0);
current_datetime_min = CMOS_READ(2);
current_datetime_hour = CMOS_READ(4);
current_datetime_mday = CMOS_READ(7);
current_datetime_mon = CMOS_READ(8);
current_datetime_year = CMOS_READ(9);
current_datetime_100Y = CMOS_READ(50);
} while (current_datetime_sec != CMOS_READ(0));
BCD_TO_BIN(current_datetime_sec);
BCD_TO_BIN(current_datetime_min);
BCD_TO_BIN(current_datetime_hour);
BCD_TO_BIN(current_datetime_mday);
BCD_TO_BIN(current_datetime_mon);
BCD_TO_BIN(current_datetime_year);
BCD_TO_BIN(current_datetime_100Y);
current_datetime_mday--;
current_datetime_mon--;
leapyear_flag = 1;
if ((current_datetime_year & 0x03) || ((current_datetime_100Y == 21) && (current_datetime_year == 00)))
leapyear_flag = 0;
current_monthdays = month_days[current_datetime_mon];
if (current_datetime_mon == 1)
current_monthdays = current_monthdays + leapyear_flag;
sys_datetime = 0;
sys_datetime_s = current_datetime_sec & 0x01;
sys_datetime_ms = 0;
file_datetime = ((current_datetime_100Y * 100 + current_datetime_year - 1980) << 25)|
((current_datetime_mon + 1) << 21) |
((current_datetime_mday + 1) << 16) |
(current_datetime_hour << 11) |
(current_datetime_min << 5) |
(current_datetime_sec >> 1);
return;
}
////////////////////////////////////////////////////////////////////////////////
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -