--- np2/i286a/i286a.c 2004/01/25 06:01:31 1.10 +++ np2/i286a/i286a.c 2004/01/25 07:53:08 1.12 @@ -115,7 +115,10 @@ void i286a_shut(void) { void i286a_setextsize(UINT32 size) { if (CPU_EXTMEMSIZE != size) { - _MFREE(CPU_EXTMEM); + if (CPU_EXTMEM) { + _MFREE(CPU_EXTMEM); + CPU_EXTMEM = NULL; + } if (size) { CPU_EXTMEM = (BYTE *)_MALLOC(size + 16, "EXTMEM"); if (CPU_EXTMEM == NULL) { @@ -124,10 +127,10 @@ void i286a_setextsize(UINT32 size) { } CPU_EXTMEMSIZE = size; } - i286core.e.ems[0] = mem + 0xc0000; - i286core.e.ems[1] = mem + 0xc4000; - i286core.e.ems[2] = mem + 0xc8000; - i286core.e.ems[3] = mem + 0xcc000; + i286acore.e.ems[0] = mem + 0xc0000; + i286acore.e.ems[1] = mem + 0xc4000; + i286acore.e.ems[2] = mem + 0xc8000; + i286acore.e.ems[3] = mem + 0xcc000; } void i286a_setemm(UINT frame, UINT32 addr) { @@ -144,7 +147,7 @@ void i286a_setemm(UINT frame, UINT32 add else { ptr = mem + 0xc0000 + (frame << 14); } - i286core.e.ems[frame] = ptr; + i286acore.e.ems[frame] = ptr; }