Day_05用结构体 从内存中 读取配置信息

结构体声明

struct BOOTINFO
{
	char cCyls;
	char cLeds;
	char cVmode;
	char cReserve;

	short sScrnx;
	short sScrny;

	unsigned char * pVram;
};

新增代码

void HariMain(void)
{
	unsigned char *pAdd;
	int nXsize ;
	int nYsize;


	struct BOOTINFO *pBootIf = (struct BOOTINFO *)0x0ff0;

	init_palette();  //设定调色板

	//从内存中获取规格

	nXsize = pBootIf->sScrnx;
	nYsize = pBootIf->sScrny;
	pAdd = pBootIf->pVram;


	Init_Screen(pAdd, nXsize,  nYsize);



	for (;;) 
	{
		io_hlt();
	}
}

把显示画面背景的部分 独立了出来

void Init_Screen(unsigned char *pAdd, int nXsize, int nYsize)
{
	DrawBoxFillColor8(pAdd, nXsize, COL8_LightDarkBlue,  0,         0,          nXsize -  1, nYsize - 29);
	DrawBoxFillColor8(pAdd, nXsize, COL8_BigGrey,  0,         nYsize - 28, nXsize -  1, nYsize - 28);
	DrawBoxFillColor8(pAdd, nXsize, COL8_WHITE,  0,         nYsize - 27, nXsize -  1, nYsize - 27);
	DrawBoxFillColor8(pAdd, nXsize, COL8_BigGrey,  0,         nYsize - 26, nXsize -  1, nYsize -  1);

	DrawBoxFillColor8(pAdd, nXsize, COL8_WHITE,  3,         nYsize - 24, 59,         nYsize - 24);
	DrawBoxFillColor8(pAdd, nXsize, COL8_WHITE,  2,         nYsize - 24,  2,         nYsize -  4);
	DrawBoxFillColor8(pAdd, nXsize, COL8_DarkGrey,  3,         nYsize -  4, 59,         nYsize -  4);
	DrawBoxFillColor8(pAdd, nXsize, COL8_DarkGrey, 59,         nYsize - 23, 59,         nYsize -  5);
	DrawBoxFillColor8(pAdd, nXsize, COL8_BLACK,  2,         nYsize -  3, 59,         nYsize -  3);
	DrawBoxFillColor8(pAdd, nXsize, COL8_BLACK, 60,         nYsize - 24, 60,         nYsize -  3);

	DrawBoxFillColor8(pAdd, nXsize, COL8_DarkGrey, nXsize - 47, nYsize - 24, nXsize -  4, nYsize - 24);
	DrawBoxFillColor8(pAdd, nXsize, COL8_DarkGrey, nXsize - 47, nYsize - 23, nXsize - 47, nYsize -  4);
	DrawBoxFillColor8(pAdd, nXsize, COL8_WHITE, nXsize - 47, nYsize -  3, nXsize -  4, nYsize -  3);
	DrawBoxFillColor8(pAdd, nXsize, COL8_WHITE, nXsize -  3, nYsize - 24, nXsize -  3, nYsize -  3);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值