--- np2/i286c/memory.c 2003/12/01 10:45:46 1.7 +++ np2/i286c/memory.c 2003/12/03 07:59:57 1.9 @@ -9,7 +9,9 @@ #define USE_HIMEM -// #define MEMORY_DEBUG +#if defined(TRACE) +#define MEMORY_DEBUG +#endif // ---- write byte @@ -592,10 +594,18 @@ static REG16 MEMCALL egcw_rd(UINT32 addr static REG16 MEMCALL emmcw_rd(UINT32 address) { - BYTE *ptr; +const BYTE *ptr; + REG16 ret; - ptr = extmem.pageptr[(address >> 14) & 3] + LOW14(address); - return(LOADINTELWORD(ptr)); + if ((address & 0x3fff) != 0x3fff) { + ptr = extmem.pageptr[(address >> 14) & 3] + LOW14(address); + return(LOADINTELWORD(ptr)); + } + else { + ret = extmem.pageptr[(address >> 14) & 3][0x3fff]; + ret += extmem.pageptr[((address + 1) >> 14) & 3][0] << 8; + return(ret); + } } static REG16 MEMCALL i286w_itf(UINT32 address) {