⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 time_init.c

📁 阿基米德操作系统的源代码
💻 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 + -