--- xmil/io/memio.c 2004/08/08 17:45:52 1.2 +++ xmil/io/memio.c 2004/08/20 23:01:16 1.4 @@ -4,49 +4,56 @@ #include "iocore.h" + UINT8 biosmem[0x8000]; +#if defined(SUPPORT_BANKMEM) + UINT8 bankmem[16][0x8000]; +#endif + + void memio_update(void) { -#if defined(SUPPORT_EMS) - if (memio.ems & 0x10) { +#if defined(SUPPORT_BANKMEM) + if (memio.bank & 0x10) { #endif if (!memio.ram) { - RAM0r = mBIOS; - RAM0w = mMAIN; + z80core.e.memread = biosmem; } else { - RAM0r = RAM0w = mMAIN; + z80core.e.memread = mainmem; } -#if defined(SUPPORT_EMS) + z80core.e.memwrite = mainmem; +#if defined(SUPPORT_BANKMEM) } else { - RAM0r = RAM0w = mBANK[memio.ems & 15]; + z80core.e.memread = bankmem[memio.bank & 15]; + z80core.e.memwrite = bankmem[memio.bank & 15]; } #endif } -#if defined(SUPPORT_EMS) -void IOOUTCALL memio_ems_o(UINT port, REG8 dat) { +#if defined(SUPPORT_BANKMEM) +void IOOUTCALL memio_bank_o(UINT port, REG8 dat) { - memio.ems = dat; + memio.bank = dat; memio_update(); (void)port; } -REG8 IOINPCALL memio_ems_i(UINT port) { +REG8 IOINPCALL memio_bank_i(UINT port) { (void)port; - return(memio.ems); + return(memio.bank); } #endif void IOOUTCALL memio_rom(UINT port, REG8 dat) { memio.ram = 0x00; -#if defined(SUPPORT_EMS) - if (memio.ems & 0x10) { +#if defined(SUPPORT_BANKMEM) + if (memio.bank & 0x10) { #endif - RAM0r = mBIOS; -#if defined(SUPPORT_EMS) + z80core.e.memread = biosmem; +#if defined(SUPPORT_BANKMEM) } #endif (void)port; @@ -56,11 +63,11 @@ void IOOUTCALL memio_rom(UINT port, REG8 void IOOUTCALL memio_ram(UINT port, REG8 dat) { memio.ram = 0x10; -#if defined(SUPPORT_EMS) - if (memio.ems & 0x10) { +#if defined(SUPPORT_BANKMEM) + if (memio.bank & 0x10) { #endif - RAM0r = mMAIN; -#if defined(SUPPORT_EMS) + z80core.e.memread = mainmem; +#if defined(SUPPORT_BANKMEM) } #endif (void)port; @@ -73,8 +80,8 @@ void IOOUTCALL memio_ram(UINT port, REG8 void memio_reset(void) { memio.ram = 0x00; -#if defined(SUPPORT_EMS) - memio.ems = 0x78; +#if defined(SUPPORT_BANKMEM) + memio.bank = 0x78; #endif memio_update(); }