Exemplo n.º 1
0
/*
 * Get physical memory size
 */
unsigned int
pc98_getmemsize(unsigned int *base, unsigned int *ext)
{
	unsigned int under16, over16;

	/* available conventional memory size */
	*base = ((PC98_SYSTEM_PARAMETER(0x501) & 7) + 1) * 128;

	/* available protected memory size under 16MB */
	under16 = PC98_SYSTEM_PARAMETER(0x401) * 128 + 1024;
#ifdef EPSON_MEMWIN
	if (pc98_machine_type & M_EPSON_PC98) {
		if (under16 > (15 * 1024))
			/* chop under16 memory to 15MB */
			under16 = 15 * 1024;
		init_epson_memwin();
	}
#endif

	/* available protected memory size over 16MB / 1MB */
	over16  = PC98_SYSTEM_PARAMETER(0x594);
	over16 += PC98_SYSTEM_PARAMETER(0x595) * 256;

	if (over16 > 0)
		*ext = (16 + over16) * 1024 - 1024;
	else
		*ext = under16 - 1024;

	return (under16);
}
Exemplo n.º 2
0
/*
 * Get physical memory size
 */
void
pc98_getmemsize(void)
{
    unsigned char under16, over16;

    /* available protected memory size under 16MB / 128KB */
    under16 = PC98_SYSTEM_PARAMETER(0x401);
    /* available protected memory size over 16MB / 1MB */
    over16 = PC98_SYSTEM_PARAMETER(0x594);
    /* add conventional memory size (1024KB / 128KB = 8) */
    under16 += 8;

    Maxmem = Maxmem_under16M = under16 * 128 * 1024 / PAGE_SIZE;
    Maxmem += (over16 * 1024 * 1024 / PAGE_SIZE);
#ifdef EPSON_MEMWIN
    init_epson_memwin();
#endif
}