--- previous/src/ioMem.c 2018/04/24 19:25:38 1.1.1.2 +++ previous/src/ioMem.c 2018/04/24 19:29:59 1.1.1.4 @@ -66,7 +66,11 @@ void IoMem_Init(void) /* Set default IO access handler (-> bus error) */ IoMem_SetBusErrorRegion(0x02000000, 0x0201FFFF); - pInterceptAccessFuncs=IoMemTable_NEXT; + if (ConfigureParams.System.bTurbo) { + pInterceptAccessFuncs = IoMemTable_Turbo; + } else { + pInterceptAccessFuncs = IoMemTable_NEXT; + } /* Now set the correct handlers */ for (addr=0x02000000; addr <= 0x0201FFFF; addr++) @@ -384,7 +388,8 @@ void IoMem_lput(uaecptr addr, uae_u32 va void IoMem_BusErrorEvenReadAccess(void) { nBusErrorAccesses += 1; - IoMem[IoAccessCurrentAddress& IO_SEG_MASK] = 0xff; + // IoMem[IoAccessCurrentAddress& IO_SEG_MASK] = 0xff; + Log_Printf(LOG_WARN,"Bus error $%08x PC=$%08x %s at %d", IoAccessCurrentAddress,regs.pc,__FILE__,__LINE__); } /** @@ -394,7 +399,8 @@ void IoMem_BusErrorEvenReadAccess(void) void IoMem_BusErrorOddReadAccess(void) { nBusErrorAccesses += 1; - IoMem[IoAccessCurrentAddress& IO_SEG_MASK] = 0xff; + // IoMem[IoAccessCurrentAddress& IO_SEG_MASK] = 0xff; + Log_Printf(LOG_WARN,"Bus error $%08x PC=$%08x %s at %d", IoAccessCurrentAddress,regs.pc,__FILE__,__LINE__); } /*-------------------------------------------------------------------------*/ @@ -404,6 +410,7 @@ void IoMem_BusErrorOddReadAccess(void) void IoMem_BusErrorEvenWriteAccess(void) { nBusErrorAccesses += 1; + Log_Printf(LOG_WARN,"Bus error $%08x PC=$%08x %s at %d", IoAccessCurrentAddress,regs.pc,__FILE__,__LINE__); } /** @@ -413,6 +420,7 @@ void IoMem_BusErrorEvenWriteAccess(void) void IoMem_BusErrorOddWriteAccess(void) { nBusErrorAccesses += 1; + Log_Printf(LOG_WARN,"Bus error $%08x PC=$%08x %s at %d", IoAccessCurrentAddress,regs.pc,__FILE__,__LINE__); } @@ -434,26 +442,7 @@ void IoMem_VoidRead(void) IoMem[a & IO_SEG_MASK] = 0xff; } } -} - -/*-------------------------------------------------------------------------*/ -/** - * This is the same function as IoMem_VoidRead, but for IO registers that - * return 0x00 instead of 0xff when read (this is the case for some video - * registers on STE, Falcon, ...) - */ -void IoMem_VoidRead_00(void) -{ - Uint32 a; - - /* handler is probably called only once, so we have to take care of the neighbour "void IO registers" */ - for (a = IoAccessBaseAddress; a < IoAccessBaseAddress + nIoMemAccessSize; a++) - { - if (pInterceptReadTable[a - 0xff8000] == IoMem_VoidRead_00) - { - IoMem[a] = 0x00; - } - } + Log_Printf(LOG_WARN,"IO read at $%08x PC=$%08x\n", IoAccessCurrentAddress,regs.pc); } /*-------------------------------------------------------------------------*/ @@ -465,6 +454,7 @@ void IoMem_VoidRead_00(void) void IoMem_VoidWrite(void) { /* Nothing... */ + Log_Printf(LOG_WARN,"IO write at $%08x PC=$%08x\n", IoAccessCurrentAddress,regs.pc); }