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

📄 hmc.c

📁 nucleus_arm.rar
💻 C
字号:
#include <support.h>
#include <video/graphic.h>
#include <video/graph.h>

#define HMC_UNKNOWN 0x00
#define HMC_304     0x10
#define HMC_314     0x20

unsigned int hmc_chip, hmc_mem;

char hmc_test(void)
{
	/*  if testinx(SEQ,0xE7) and testinx(SEQ,0xEE) then */
	if (testinx2(SEQ_I, 0xE7, 0x7F) && testinx2(SEQ_I, 0xEE, 0xF1))
	{
		if (rdinx(SEQ_I, 0xE7) & 0x10)
			hmc_mem = 512;
		if (testinx(SEQ_I, 0xE7) && testinx(SEQ_I, 0xEE))
			hmc_chip = HMC_304;
		else
			hmc_chip = HMC_314;
		return 1;
        }
	return 0;
}

unsigned int hmc_chiptype(void)
{
	return hmc_chip;
}

unsigned int hmc_memory(void)
{
	return hmc_mem;
}

char * hmc_get_name(void)
{
	switch(hmc_chip)
	{
		case HMC_304: return  "HMC HM86304";
		case HMC_314: return  "HMC HM86314";
	}
	return "HMC Unknown";
}

void hmc_setbank(unsigned int bank)
{
	if (current_bank == bank)
 		return;
	current_bank = bank;
	if (mem_mode == _p8)
		modinx(SEQ_I, 0xEE, 0x70, bank << 4);
}

GraphicDriver hmc_driver =
{
	hmc_chiptype,
	hmc_get_name,
	hmc_memory,
	NULL,
	NULL,
	hmc_setbank
};

char Check_HMC(GraphicDriver * driver)
{
	*driver = hmc_driver;
	return (hmc_test());
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -