diff --git a/src/emucore/Cart.cxx b/src/emucore/Cart.cxx index beb76855d..f85850ba2 100644 --- a/src/emucore/Cart.cxx +++ b/src/emucore/Cart.cxx @@ -126,6 +126,7 @@ void Cartridge::pokeRAM(uInt8& dest, uInt16 address, uInt8 value) // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void Cartridge::createRomAccessArrays(size_t size) { + myAccessSize = uInt32(size); #ifdef DEBUGGER_SUPPORT myRomAccessBase = make_unique(size); std::fill_n(myRomAccessBase.get(), size, Device::ROW); @@ -142,11 +143,8 @@ void Cartridge::createRomAccessArrays(size_t size) string Cartridge::getAccessCounters() const { ostringstream out; - size_t romSize; uInt32 offset = 0; - getImage(romSize); - for(uInt16 bank = 0; bank < bankCount(); ++bank) { uInt16 origin = bankOrigin(bank); @@ -165,7 +163,7 @@ string Cartridge::getAccessCounters() const for(uInt16 addr = 0; addr < bankSize; ++addr) { out << Common::Base::HEX4 << (addr | origin) << "," - << Common::Base::toString(myRomAccessCounter[offset + addr + romSize], Common::Base::Fmt::_10_8) << ", "; + << Common::Base::toString(myRomAccessCounter[offset + addr + myAccessSize], Common::Base::Fmt::_10_8) << ", "; } out << "\n"; diff --git a/src/emucore/Cart.hxx b/src/emucore/Cart.hxx index dda0684fd..ce7d66a8b 100644 --- a/src/emucore/Cart.hxx +++ b/src/emucore/Cart.hxx @@ -357,6 +357,9 @@ class Cartridge : public Device // Contains address of illegal RAM write access or 0 uInt16 myRamWriteAccess{0}; + // Total size of ROM access area (might include RAM too) + uInt32 myAccessSize; + private: // The startup bank to use (where to look for the reset vector address) uInt16 myStartBank{0}; diff --git a/src/emucore/Cart2K.cxx b/src/emucore/Cart2K.cxx index 2a66a15ce..ee9f2b334 100644 --- a/src/emucore/Cart2K.cxx +++ b/src/emucore/Cart2K.cxx @@ -78,7 +78,7 @@ void Cartridge2K::install(System& system) access.directPeekBase = &myImage[addr & myMask]; access.romAccessBase = &myRomAccessBase[addr & myMask]; access.romPeekCounter = &myRomAccessCounter[addr & myMask]; - access.romPokeCounter = &myRomAccessCounter[(addr & myMask) + mySize]; + access.romPokeCounter = &myRomAccessCounter[(addr & myMask) + myAccessSize]; mySystem->setPageAccess(addr, access); } } diff --git a/src/emucore/Cart3E.cxx b/src/emucore/Cart3E.cxx index f9fb495e0..15084b53e 100644 --- a/src/emucore/Cart3E.cxx +++ b/src/emucore/Cart3E.cxx @@ -61,7 +61,7 @@ void Cartridge3E::install(System& system) access.directPeekBase = &myImage[(mySize - 2048) + (addr & 0x07FF)]; access.romAccessBase = &myRomAccessBase[(mySize - 2048) + (addr & 0x07FF)]; access.romPeekCounter = &myRomAccessCounter[(mySize - 2048) + (addr & 0x07FF)]; - access.romPokeCounter = &myRomAccessCounter[(mySize - 2048) + (addr & 0x07FF) + mySize]; + access.romPokeCounter = &myRomAccessCounter[(mySize - 2048) + (addr & 0x07FF) + myAccessSize]; mySystem->setPageAccess(addr, access); } @@ -162,7 +162,7 @@ bool Cartridge3E::bank(uInt16 bank) access.directPeekBase = &myImage[offset + (addr & 0x07FF)]; access.romAccessBase = &myRomAccessBase[offset + (addr & 0x07FF)]; access.romPeekCounter = &myRomAccessCounter[offset + (addr & 0x07FF)]; - access.romPokeCounter = &myRomAccessCounter[offset + (addr & 0x07FF) + mySize]; + access.romPokeCounter = &myRomAccessCounter[offset + (addr & 0x07FF) + myAccessSize]; mySystem->setPageAccess(addr, access); } } @@ -183,7 +183,7 @@ bool Cartridge3E::bank(uInt16 bank) access.directPeekBase = &myRAM[offset + (addr & 0x03FF)]; access.romAccessBase = &myRomAccessBase[mySize + offset + (addr & 0x03FF)]; access.romPeekCounter = &myRomAccessCounter[mySize + offset + (addr & 0x03FF)]; - access.romPokeCounter = &myRomAccessCounter[mySize + offset + (addr & 0x03FF) + mySize]; + access.romPokeCounter = &myRomAccessCounter[mySize + offset + (addr & 0x03FF) + myAccessSize]; mySystem->setPageAccess(addr, access); } @@ -197,7 +197,7 @@ bool Cartridge3E::bank(uInt16 bank) { access.romAccessBase = &myRomAccessBase[mySize + offset + (addr & 0x03FF)]; access.romPeekCounter = &myRomAccessCounter[mySize + offset + (addr & 0x03FF)]; - access.romPokeCounter = &myRomAccessCounter[mySize + offset + (addr & 0x03FF) + mySize]; + access.romPokeCounter = &myRomAccessCounter[mySize + offset + (addr & 0x03FF) + myAccessSize]; mySystem->setPageAccess(addr, access); } } diff --git a/src/emucore/Cart3F.cxx b/src/emucore/Cart3F.cxx index 796a1cd88..2989e88ff 100644 --- a/src/emucore/Cart3F.cxx +++ b/src/emucore/Cart3F.cxx @@ -59,7 +59,7 @@ void Cartridge3F::install(System& system) access.directPeekBase = &myImage[(mySize - 2048) + (addr & 0x07FF)]; access.romAccessBase = &myRomAccessBase[(mySize - 2048) + (addr & 0x07FF)]; access.romPeekCounter = &myRomAccessCounter[(mySize - 2048) + (addr & 0x07FF)]; - access.romPokeCounter = &myRomAccessCounter[(mySize - 2048) + (addr & 0x07FF) + mySize]; + access.romPokeCounter = &myRomAccessCounter[(mySize - 2048) + (addr & 0x07FF) + myAccessSize]; mySystem->setPageAccess(addr, access); } @@ -121,7 +121,7 @@ bool Cartridge3F::bank(uInt16 bank) access.directPeekBase = &myImage[offset + (addr & 0x07FF)]; access.romAccessBase = &myRomAccessBase[offset + (addr & 0x07FF)]; access.romPeekCounter = &myRomAccessCounter[offset + (addr & 0x07FF)]; - access.romPokeCounter = &myRomAccessCounter[offset + (addr & 0x07FF) + mySize]; + access.romPokeCounter = &myRomAccessCounter[offset + (addr & 0x07FF) + myAccessSize]; mySystem->setPageAccess(addr, access); } return myBankChanged = true; diff --git a/src/emucore/Cart4K.cxx b/src/emucore/Cart4K.cxx index af88dd1f9..4f4aab979 100644 --- a/src/emucore/Cart4K.cxx +++ b/src/emucore/Cart4K.cxx @@ -48,7 +48,7 @@ void Cartridge4K::install(System& system) access.directPeekBase = &myImage[addr & 0x0FFF]; access.romAccessBase = &myRomAccessBase[addr & 0x0FFF]; access.romPeekCounter = &myRomAccessCounter[addr & 0x0FFF]; - access.romPokeCounter = &myRomAccessCounter[(addr & 0x0FFF) + myImage.size()]; + access.romPokeCounter = &myRomAccessCounter[(addr & 0x0FFF) + myAccessSize]; mySystem->setPageAccess(addr, access); } } diff --git a/src/emucore/CartBUS.cxx b/src/emucore/CartBUS.cxx index c88db05fe..2c2cd803a 100644 --- a/src/emucore/CartBUS.cxx +++ b/src/emucore/CartBUS.cxx @@ -444,7 +444,7 @@ bool CartridgeBUS::bank(uInt16 bank) { access.romAccessBase = &myRomAccessBase[myBankOffset + (addr & 0x0FFF)]; access.romPeekCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF)]; - access.romPokeCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF) + myImage.size()]; + access.romPokeCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF) + 28_KB]; mySystem->setPageAccess(addr, access); } return myBankChanged = true; diff --git a/src/emucore/CartCDF.cxx b/src/emucore/CartCDF.cxx index 6bd8d3578..b182634a3 100644 --- a/src/emucore/CartCDF.cxx +++ b/src/emucore/CartCDF.cxx @@ -417,7 +417,7 @@ bool CartridgeCDF::bank(uInt16 bank) { access.romAccessBase = &myRomAccessBase[myBankOffset + (addr & 0x0FFF)]; access.romPeekCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF)]; - access.romPokeCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF) + myImage.size()]; + access.romPokeCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF) + 28_KB]; mySystem->setPageAccess(addr, access); } return myBankChanged = true; diff --git a/src/emucore/CartCM.cxx b/src/emucore/CartCM.cxx index 3b3d35fa9..5fa6dff3d 100644 --- a/src/emucore/CartCM.cxx +++ b/src/emucore/CartCM.cxx @@ -121,7 +121,7 @@ bool CartridgeCM::bank(uInt16 bank) access.directPeekBase = &myImage[myBankOffset + (addr & 0x0FFF)]; access.romAccessBase = &myRomAccessBase[myBankOffset + (addr & 0x0FFF)]; access.romPeekCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF)]; - access.romPokeCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF) + myImage.size()]; + access.romPokeCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF) + myAccessSize]; mySystem->setPageAccess(addr, access); } @@ -135,14 +135,14 @@ bool CartridgeCM::bank(uInt16 bank) access.directPeekBase = &myImage[myBankOffset + (addr & 0x0FFF)]; access.romAccessBase = &myRomAccessBase[myBankOffset + (addr & 0x0FFF)]; access.romPeekCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF)]; - access.romPokeCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF) + myImage.size()]; + access.romPokeCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF) + myAccessSize]; } else { access.directPeekBase = &myRAM[addr & 0x7FF]; access.romAccessBase = &myRomAccessBase[myBankOffset + (addr & 0x07FF)]; access.romPeekCounter = &myRomAccessCounter[myBankOffset + (addr & 0x07FF)]; - access.romPokeCounter = &myRomAccessCounter[myBankOffset + (addr & 0x07FF) + myImage.size()]; + access.romPokeCounter = &myRomAccessCounter[myBankOffset + (addr & 0x07FF) + myAccessSize]; } if((mySWCHA & 0x30) == 0x20) diff --git a/src/emucore/CartCTY.cxx b/src/emucore/CartCTY.cxx index 2c72e9030..1536b64e0 100644 --- a/src/emucore/CartCTY.cxx +++ b/src/emucore/CartCTY.cxx @@ -242,7 +242,7 @@ bool CartridgeCTY::bank(uInt16 bank) { access.romAccessBase = &myRomAccessBase[myBankOffset + (addr & 0x0FFF)]; access.romPeekCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF)]; - access.romPokeCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF) + myImage.size()]; + access.romPokeCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF) + myAccessSize]; mySystem->setPageAccess(addr, access); } return myBankChanged = true; diff --git a/src/emucore/CartCV.cxx b/src/emucore/CartCV.cxx index cb77d7790..42c74a808 100644 --- a/src/emucore/CartCV.cxx +++ b/src/emucore/CartCV.cxx @@ -69,6 +69,8 @@ void CartridgeCV::install(System& system) { access.directPeekBase = &myImage[addr & 0x07FF]; access.romAccessBase = &myRomAccessBase[addr & 0x07FF]; + access.romPeekCounter = &myRomAccessCounter[addr & 0x07FF]; + access.romPokeCounter = &myRomAccessCounter[(addr & 0x07FF) + myAccessSize]; mySystem->setPageAccess(addr, access); } @@ -88,6 +90,8 @@ void CartridgeCV::install(System& system) { access.directPeekBase = &myRAM[addr & 0x03FF]; access.romAccessBase = &myRomAccessBase[2048 + (addr & 0x03FF)]; + access.romPeekCounter = &myRomAccessCounter[2048 + (addr & 0x03FF)]; + access.romPokeCounter = &myRomAccessCounter[2048 + (addr & 0x03FF) + myAccessSize]; mySystem->setPageAccess(addr, access); } } diff --git a/src/emucore/CartCVPlus.cxx b/src/emucore/CartCVPlus.cxx index 86fb25d8b..a3258e53c 100644 --- a/src/emucore/CartCVPlus.cxx +++ b/src/emucore/CartCVPlus.cxx @@ -63,6 +63,8 @@ void CartridgeCVPlus::install(System& system) for(uInt16 addr = 0x1400; addr < 0x1800; addr += System::PAGE_SIZE) { access.romAccessBase = &myRomAccessBase[mySize + (addr & 0x03FF)]; + access.romPeekCounter = &myRomAccessCounter[mySize + (addr & 0x03FF)]; + access.romPokeCounter = &myRomAccessCounter[mySize + (addr & 0x03FF) + myAccessSize]; mySystem->setPageAccess(addr, access); } @@ -72,6 +74,8 @@ void CartridgeCVPlus::install(System& system) { access.directPeekBase = &myRAM[addr & 0x03FF]; access.romAccessBase = &myRomAccessBase[mySize + (addr & 0x03FF)]; + access.romPeekCounter = &myRomAccessCounter[mySize + (addr & 0x03FF)]; + access.romPokeCounter = &myRomAccessCounter[mySize + (addr & 0x03FF) + myAccessSize]; mySystem->setPageAccess(addr, access); } diff --git a/src/emucore/CartDF.cxx b/src/emucore/CartDF.cxx index 556d51bf6..b43bc0837 100644 --- a/src/emucore/CartDF.cxx +++ b/src/emucore/CartDF.cxx @@ -85,6 +85,8 @@ bool CartridgeDF::bank(uInt16 bank) addr += System::PAGE_SIZE) { access.romAccessBase = &myRomAccessBase[myBankOffset + (addr & 0x0FFF)]; + access.romPeekCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF)]; + access.romPokeCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF) + myAccessSize]; mySystem->setPageAccess(addr, access); } @@ -94,6 +96,8 @@ bool CartridgeDF::bank(uInt16 bank) { access.directPeekBase = &myImage[myBankOffset + (addr & 0x0FFF)]; access.romAccessBase = &myRomAccessBase[myBankOffset + (addr & 0x0FFF)]; + access.romPeekCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF)]; + access.romPokeCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF) + myAccessSize]; mySystem->setPageAccess(addr, access); } return myBankChanged = true; diff --git a/src/emucore/CartDFSC.cxx b/src/emucore/CartDFSC.cxx index 993bbf226..3661459fa 100644 --- a/src/emucore/CartDFSC.cxx +++ b/src/emucore/CartDFSC.cxx @@ -52,6 +52,8 @@ void CartridgeDFSC::install(System& system) for(uInt16 addr = 0x1000; addr < 0x1080; addr += System::PAGE_SIZE) { access.romAccessBase = &myRomAccessBase[addr & 0x007F]; + access.romPeekCounter = &myRomAccessCounter[addr & 0x007F]; + access.romPokeCounter = &myRomAccessCounter[(addr & 0x007F) + myAccessSize]; mySystem->setPageAccess(addr, access); } @@ -61,6 +63,8 @@ void CartridgeDFSC::install(System& system) { access.directPeekBase = &myRAM[addr & 0x007F]; access.romAccessBase = &myRomAccessBase[0x80 + (addr & 0x007F)]; + access.romPeekCounter = &myRomAccessCounter[0x80 + (addr & 0x007F)]; + access.romPokeCounter = &myRomAccessCounter[0x80 + (addr & 0x007F) + myAccessSize]; mySystem->setPageAccess(addr, access); } @@ -128,6 +132,8 @@ bool CartridgeDFSC::bank(uInt16 bank) addr += System::PAGE_SIZE) { access.romAccessBase = &myRomAccessBase[myBankOffset + (addr & 0x0FFF)]; + access.romPeekCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF)]; + access.romPokeCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF) + myAccessSize]; mySystem->setPageAccess(addr, access); } @@ -137,6 +143,8 @@ bool CartridgeDFSC::bank(uInt16 bank) { access.directPeekBase = &myImage[myBankOffset + (addr & 0x0FFF)]; access.romAccessBase = &myRomAccessBase[myBankOffset + (addr & 0x0FFF)]; + access.romPeekCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF)]; + access.romPokeCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF) + myAccessSize]; mySystem->setPageAccess(addr, access); } return myBankChanged = true; diff --git a/src/emucore/CartDPC.cxx b/src/emucore/CartDPC.cxx index 1fbec9791..808e658d4 100644 --- a/src/emucore/CartDPC.cxx +++ b/src/emucore/CartDPC.cxx @@ -375,7 +375,7 @@ bool CartridgeDPC::bank(uInt16 bank) { access.romAccessBase = &myRomAccessBase[myBankOffset + (addr & 0x0FFF)]; access.romPeekCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF)]; - access.romPokeCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF) + myImage.size()]; + access.romPokeCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF) + myAccessSize]; mySystem->setPageAccess(addr, access); } @@ -386,7 +386,7 @@ bool CartridgeDPC::bank(uInt16 bank) access.directPeekBase = &myProgramImage[myBankOffset + (addr & 0x0FFF)]; access.romAccessBase = &myRomAccessBase[myBankOffset + (addr & 0x0FFF)]; access.romPeekCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF)]; - access.romPokeCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF) + myImage.size()]; + access.romPokeCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF) + myAccessSize]; mySystem->setPageAccess(addr, access); } return myBankChanged = true; diff --git a/src/emucore/CartDPCPlus.cxx b/src/emucore/CartDPCPlus.cxx index 50cdeab39..0761eeb19 100644 --- a/src/emucore/CartDPCPlus.cxx +++ b/src/emucore/CartDPCPlus.cxx @@ -606,7 +606,7 @@ bool CartridgeDPCPlus::bank(uInt16 bank) { access.romAccessBase = &myRomAccessBase[myBankOffset + (addr & 0x0FFF)]; access.romPeekCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF)]; - access.romPokeCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF) + myImage.size()]; + access.romPokeCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF) + 24_KB]; mySystem->setPageAccess(addr, access); } return myBankChanged = true; diff --git a/src/emucore/CartE0.cxx b/src/emucore/CartE0.cxx index 051ff8870..ff3a9b52c 100644 --- a/src/emucore/CartE0.cxx +++ b/src/emucore/CartE0.cxx @@ -63,7 +63,7 @@ void CartridgeE0::install(System& system) access.directPeekBase = &myImage[0x1C00 + (addr & 0x03FF)]; access.romAccessBase = &myRomAccessBase[0x1C00 + (addr & 0x03FF)]; access.romPeekCounter = &myRomAccessCounter[0x1C00 + (addr & 0x03FF)]; - access.romPokeCounter = &myRomAccessCounter[0x1C00 + (addr & 0x03FF) + myImage.size()]; + access.romPokeCounter = &myRomAccessCounter[0x1C00 + (addr & 0x03FF) + myAccessSize]; mySystem->setPageAccess(addr, access); } @@ -71,7 +71,7 @@ void CartridgeE0::install(System& system) access.directPeekBase = nullptr; access.romAccessBase = &myRomAccessBase[0x1FC0]; // TJ: is this the correct address (or 0x1FE0)? access.romPeekCounter = &myRomAccessCounter[0x1FC0]; - access.romPokeCounter = &myRomAccessCounter[0x1FC0 + myImage.size()]; + access.romPokeCounter = &myRomAccessCounter[0x1FC0 + myAccessSize]; access.type = System::PageAccessType::READ; for(uInt16 addr = (0x1FE0 & ~System::PAGE_MASK); addr < 0x2000; addr += System::PAGE_SIZE) @@ -150,7 +150,7 @@ void CartridgeE0::segmentZero(uInt16 slice) access.directPeekBase = &myImage[offset + (addr & 0x03FF)]; access.romAccessBase = &myRomAccessBase[offset + (addr & 0x03FF)]; access.romPeekCounter = &myRomAccessCounter[offset + (addr & 0x03FF)]; - access.romPokeCounter = &myRomAccessCounter[offset + (addr & 0x03FF) + myImage.size()]; + access.romPokeCounter = &myRomAccessCounter[offset + (addr & 0x03FF) + myAccessSize]; mySystem->setPageAccess(addr, access); } myBankChanged = true; @@ -173,7 +173,7 @@ void CartridgeE0::segmentOne(uInt16 slice) access.directPeekBase = &myImage[offset + (addr & 0x03FF)]; access.romAccessBase = &myRomAccessBase[offset + (addr & 0x03FF)]; access.romPeekCounter = &myRomAccessCounter[offset + (addr & 0x03FF)]; - access.romPokeCounter = &myRomAccessCounter[offset + (addr & 0x03FF) + myImage.size()]; + access.romPokeCounter = &myRomAccessCounter[offset + (addr & 0x03FF) + myAccessSize]; mySystem->setPageAccess(addr, access); } myBankChanged = true; @@ -196,7 +196,7 @@ void CartridgeE0::segmentTwo(uInt16 slice) access.directPeekBase = &myImage[offset + (addr & 0x03FF)]; access.romAccessBase = &myRomAccessBase[offset + (addr & 0x03FF)]; access.romPeekCounter = &myRomAccessCounter[offset + (addr & 0x03FF)]; - access.romPokeCounter = &myRomAccessCounter[offset + (addr & 0x03FF) + myImage.size()]; + access.romPokeCounter = &myRomAccessCounter[offset + (addr & 0x03FF) + myAccessSize]; mySystem->setPageAccess(addr, access); } myBankChanged = true; diff --git a/src/emucore/CartEF.cxx b/src/emucore/CartEF.cxx index 43901c916..16635200b 100644 --- a/src/emucore/CartEF.cxx +++ b/src/emucore/CartEF.cxx @@ -86,7 +86,7 @@ bool CartridgeEF::bank(uInt16 bank) { access.romAccessBase = &myRomAccessBase[myBankOffset + (addr & 0x0FFF)]; access.romPeekCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF)]; - access.romPokeCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF) + myImage.size()]; + access.romPokeCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF) + myAccessSize]; mySystem->setPageAccess(addr, access); } @@ -97,7 +97,7 @@ bool CartridgeEF::bank(uInt16 bank) access.directPeekBase = &myImage[myBankOffset + (addr & 0x0FFF)]; access.romAccessBase = &myRomAccessBase[myBankOffset + (addr & 0x0FFF)]; access.romPeekCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF)]; - access.romPokeCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF) + myImage.size()]; + access.romPokeCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF) + myAccessSize]; mySystem->setPageAccess(addr, access); } return myBankChanged = true; diff --git a/src/emucore/CartEFSC.cxx b/src/emucore/CartEFSC.cxx index b2fd87032..3502be7a0 100644 --- a/src/emucore/CartEFSC.cxx +++ b/src/emucore/CartEFSC.cxx @@ -53,7 +53,7 @@ void CartridgeEFSC::install(System& system) { access.romAccessBase = &myRomAccessBase[addr & 0x007F]; access.romPeekCounter = &myRomAccessCounter[addr & 0x007F]; - access.romPokeCounter = &myRomAccessCounter[(addr & 0x007F) + myImage.size()]; + access.romPokeCounter = &myRomAccessCounter[(addr & 0x007F) + myAccessSize]; mySystem->setPageAccess(addr, access); } @@ -64,7 +64,7 @@ void CartridgeEFSC::install(System& system) access.directPeekBase = &myRAM[addr & 0x007F]; access.romAccessBase = &myRomAccessBase[0x80 + (addr & 0x007F)]; access.romPeekCounter = &myRomAccessCounter[0x80 + (addr & 0x007F)]; - access.romPokeCounter = &myRomAccessCounter[0x80 + (addr & 0x007F) + myImage.size()]; + access.romPokeCounter = &myRomAccessCounter[0x80 + (addr & 0x007F) + myAccessSize]; mySystem->setPageAccess(addr, access); } @@ -133,7 +133,7 @@ bool CartridgeEFSC::bank(uInt16 bank) { access.romAccessBase = &myRomAccessBase[myBankOffset + (addr & 0x0FFF)]; access.romPeekCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF)]; - access.romPokeCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF) + myImage.size()]; + access.romPokeCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF) + myAccessSize]; mySystem->setPageAccess(addr, access); } @@ -144,7 +144,7 @@ bool CartridgeEFSC::bank(uInt16 bank) access.directPeekBase = &myImage[myBankOffset + (addr & 0x0FFF)]; access.romAccessBase = &myRomAccessBase[myBankOffset + (addr & 0x0FFF)]; access.romPeekCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF)]; - access.romPokeCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF) + myImage.size()]; + access.romPokeCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF) + myAccessSize]; mySystem->setPageAccess(addr, access); } return myBankChanged = true; diff --git a/src/emucore/CartF0.cxx b/src/emucore/CartF0.cxx index fc6061d22..a69c3c8ed 100644 --- a/src/emucore/CartF0.cxx +++ b/src/emucore/CartF0.cxx @@ -92,6 +92,8 @@ bool CartridgeF0::bank(uInt16 bank) addr += System::PAGE_SIZE) { access.romAccessBase = &myRomAccessBase[myBankOffset + (addr & 0x0FFF)]; + access.romPeekCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF)]; + access.romPokeCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF) + myAccessSize]; mySystem->setPageAccess(addr, access); } @@ -102,7 +104,7 @@ bool CartridgeF0::bank(uInt16 bank) access.directPeekBase = &myImage[myBankOffset + (addr & 0x0FFF)]; access.romAccessBase = &myRomAccessBase[myBankOffset + (addr & 0x0FFF)]; access.romPeekCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF)]; - access.romPokeCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF) + myImage.size()]; + access.romPokeCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF) + myAccessSize]; mySystem->setPageAccess(addr, access); } diff --git a/src/emucore/CartF4.cxx b/src/emucore/CartF4.cxx index d377ecedc..8111bb1a0 100644 --- a/src/emucore/CartF4.cxx +++ b/src/emucore/CartF4.cxx @@ -90,7 +90,7 @@ bool CartridgeF4::bank(uInt16 bank) { access.romAccessBase = &myRomAccessBase[myBankOffset + (addr & 0x0FFF)]; access.romPeekCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF)]; - access.romPokeCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF) + myImage.size()]; + access.romPokeCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF) + myAccessSize]; mySystem->setPageAccess(addr, access); } @@ -101,7 +101,7 @@ bool CartridgeF4::bank(uInt16 bank) access.directPeekBase = &myImage[myBankOffset + (addr & 0x0FFF)]; access.romAccessBase = &myRomAccessBase[myBankOffset + (addr & 0x0FFF)]; access.romPeekCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF)]; - access.romPokeCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF) + myImage.size()]; + access.romPokeCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF) + myAccessSize]; mySystem->setPageAccess(addr, access); } return myBankChanged = true; diff --git a/src/emucore/CartF4SC.cxx b/src/emucore/CartF4SC.cxx index 580dded30..24496b161 100644 --- a/src/emucore/CartF4SC.cxx +++ b/src/emucore/CartF4SC.cxx @@ -53,7 +53,7 @@ void CartridgeF4SC::install(System& system) { access.romAccessBase = &myRomAccessBase[addr & 0x007F]; access.romPeekCounter = &myRomAccessCounter[addr & 0x007F]; - access.romPokeCounter = &myRomAccessCounter[(addr & 0x07F) + myImage.size()]; + access.romPokeCounter = &myRomAccessCounter[(addr & 0x07F) + myAccessSize]; mySystem->setPageAccess(addr, access); } @@ -64,7 +64,7 @@ void CartridgeF4SC::install(System& system) access.directPeekBase = &myRAM[addr & 0x007F]; access.romAccessBase = &myRomAccessBase[0x80 + (addr & 0x007F)]; access.romPeekCounter = &myRomAccessCounter[0x80 + (addr & 0x007F)]; - access.romPokeCounter = &myRomAccessCounter[0x80 + (addr & 0x007F) + myImage.size()]; + access.romPokeCounter = &myRomAccessCounter[0x80 + (addr & 0x007F) + myAccessSize]; mySystem->setPageAccess(addr, access); } @@ -133,7 +133,7 @@ bool CartridgeF4SC::bank(uInt16 bank) { access.romAccessBase = &myRomAccessBase[myBankOffset + (addr & 0x0FFF)]; access.romPeekCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF)]; - access.romPokeCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF) + myImage.size()]; + access.romPokeCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF) + myAccessSize]; mySystem->setPageAccess(addr, access); } @@ -144,7 +144,7 @@ bool CartridgeF4SC::bank(uInt16 bank) access.directPeekBase = &myImage[myBankOffset + (addr & 0x0FFF)]; access.romAccessBase = &myRomAccessBase[myBankOffset + (addr & 0x0FFF)]; access.romPeekCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF)]; - access.romPokeCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF) + myImage.size()]; + access.romPokeCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF) + myAccessSize]; mySystem->setPageAccess(addr, access); } return myBankChanged = true; diff --git a/src/emucore/CartF6.cxx b/src/emucore/CartF6.cxx index 5a263498e..a7a8dec2b 100644 --- a/src/emucore/CartF6.cxx +++ b/src/emucore/CartF6.cxx @@ -130,7 +130,7 @@ bool CartridgeF6::bank(uInt16 bank) { access.romAccessBase = &myRomAccessBase[myBankOffset + (addr & 0x0FFF)]; access.romPeekCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF)]; - access.romPokeCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF) + myImage.size()]; + access.romPokeCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF) + myAccessSize]; mySystem->setPageAccess(addr, access); } @@ -141,7 +141,7 @@ bool CartridgeF6::bank(uInt16 bank) access.directPeekBase = &myImage[myBankOffset + (addr & 0x0FFF)]; access.romAccessBase = &myRomAccessBase[myBankOffset + (addr & 0x0FFF)]; access.romPeekCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF)]; - access.romPokeCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF) + myImage.size()]; + access.romPokeCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF) + myAccessSize]; mySystem->setPageAccess(addr, access); } return myBankChanged = true; diff --git a/src/emucore/CartF6SC.cxx b/src/emucore/CartF6SC.cxx index b6b0e3659..60b998182 100644 --- a/src/emucore/CartF6SC.cxx +++ b/src/emucore/CartF6SC.cxx @@ -53,7 +53,7 @@ void CartridgeF6SC::install(System& system) { access.romAccessBase = &myRomAccessBase[addr & 0x007F]; access.romPeekCounter = &myRomAccessCounter[addr & 0x007F]; - access.romPokeCounter = &myRomAccessCounter[(addr & 0x07F) + myImage.size()]; + access.romPokeCounter = &myRomAccessCounter[(addr & 0x07F) + myAccessSize]; mySystem->setPageAccess(addr, access); } @@ -64,7 +64,7 @@ void CartridgeF6SC::install(System& system) access.directPeekBase = &myRAM[addr & 0x007F]; access.romAccessBase = &myRomAccessBase[0x80 + (addr & 0x007F)]; access.romPeekCounter = &myRomAccessCounter[0x80 + (addr & 0x007F)]; - access.romPokeCounter = &myRomAccessCounter[0x80 + (addr & 0x007F) + myImage.size()]; + access.romPokeCounter = &myRomAccessCounter[0x80 + (addr & 0x007F) + myAccessSize]; mySystem->setPageAccess(addr, access); } @@ -173,7 +173,7 @@ bool CartridgeF6SC::bank(uInt16 bank) { access.romAccessBase = &myRomAccessBase[myBankOffset + (addr & 0x0FFF)]; access.romPeekCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF)]; - access.romPokeCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF) + myImage.size()]; + access.romPokeCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF) + myAccessSize]; mySystem->setPageAccess(addr, access); } @@ -184,7 +184,7 @@ bool CartridgeF6SC::bank(uInt16 bank) access.directPeekBase = &myImage[myBankOffset + (addr & 0x0FFF)]; access.romAccessBase = &myRomAccessBase[myBankOffset + (addr & 0x0FFF)]; access.romPeekCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF)]; - access.romPokeCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF) + myImage.size()]; + access.romPokeCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF) + myAccessSize]; mySystem->setPageAccess(addr, access); } return myBankChanged = true; diff --git a/src/emucore/CartF8.cxx b/src/emucore/CartF8.cxx index 66b42af70..b23ed802e 100644 --- a/src/emucore/CartF8.cxx +++ b/src/emucore/CartF8.cxx @@ -111,7 +111,7 @@ bool CartridgeF8::bank(uInt16 bank) { access.romAccessBase = &myRomAccessBase[myBankOffset + (addr & 0x0FFF)]; access.romPeekCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF)]; - access.romPokeCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF) + myImage.size()]; + access.romPokeCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF) + myAccessSize]; mySystem->setPageAccess(addr, access); } @@ -121,8 +121,8 @@ bool CartridgeF8::bank(uInt16 bank) { access.directPeekBase = &myImage[myBankOffset + (addr & 0x0FFF)]; access.romAccessBase = &myRomAccessBase[myBankOffset + (addr & 0x0FFF)]; - access.romPeekCounter = &myRomAccessCounter[addr & 0x0FFF]; - access.romPokeCounter = &myRomAccessCounter[addr & 0x0FFF + myImage.size()]; + access.romPeekCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF)]; + access.romPokeCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF) + myAccessSize]; mySystem->setPageAccess(addr, access); } return myBankChanged = true; diff --git a/src/emucore/CartF8SC.cxx b/src/emucore/CartF8SC.cxx index 4b367a4bc..c885a9c83 100644 --- a/src/emucore/CartF8SC.cxx +++ b/src/emucore/CartF8SC.cxx @@ -53,7 +53,7 @@ void CartridgeF8SC::install(System& system) { access.romAccessBase = &myRomAccessBase[addr & 0x007F]; access.romPeekCounter = &myRomAccessCounter[addr & 0x007F]; - access.romPokeCounter = &myRomAccessCounter[(addr & 0x07F) + myImage.size()]; + access.romPokeCounter = &myRomAccessCounter[(addr & 0x07F) + myAccessSize]; mySystem->setPageAccess(addr, access); } @@ -64,7 +64,7 @@ void CartridgeF8SC::install(System& system) access.directPeekBase = &myRAM[addr & 0x007F]; access.romAccessBase = &myRomAccessBase[0x80 + (addr & 0x007F)]; access.romPeekCounter = &myRomAccessCounter[0x80 + (addr & 0x007F)]; - access.romPokeCounter = &myRomAccessCounter[0x80 + (addr & 0x007F) + myImage.size()]; + access.romPokeCounter = &myRomAccessCounter[0x80 + (addr & 0x007F) + myAccessSize]; mySystem->setPageAccess(addr, access); } @@ -153,7 +153,7 @@ bool CartridgeF8SC::bank(uInt16 bank) { access.romAccessBase = &myRomAccessBase[myBankOffset + (addr & 0x0FFF)]; access.romPeekCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF)]; - access.romPokeCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF) + myImage.size()]; + access.romPokeCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF) + myAccessSize]; mySystem->setPageAccess(addr, access); } @@ -164,7 +164,7 @@ bool CartridgeF8SC::bank(uInt16 bank) access.directPeekBase = &myImage[myBankOffset + (addr & 0x0FFF)]; access.romAccessBase = &myRomAccessBase[myBankOffset + (addr & 0x0FFF)]; access.romPeekCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF)]; - access.romPokeCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF) + myImage.size()]; + access.romPokeCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF) + myAccessSize]; mySystem->setPageAccess(addr, access); } return myBankChanged = true; diff --git a/src/emucore/CartFA.cxx b/src/emucore/CartFA.cxx index eb9f1809b..5a4ecb6bd 100644 --- a/src/emucore/CartFA.cxx +++ b/src/emucore/CartFA.cxx @@ -53,7 +53,7 @@ void CartridgeFA::install(System& system) { access.romAccessBase = &myRomAccessBase[addr & 0x00FF]; access.romPeekCounter = &myRomAccessCounter[addr & 0x00FF]; - access.romPokeCounter = &myRomAccessCounter[(addr & 0x00FF) + myImage.size()]; + access.romPokeCounter = &myRomAccessCounter[(addr & 0x00FF) + myAccessSize]; mySystem->setPageAccess(addr, access); } @@ -64,7 +64,7 @@ void CartridgeFA::install(System& system) access.directPeekBase = &myRAM[addr & 0x00FF]; access.romAccessBase = &myRomAccessBase[0x100 + (addr & 0x00FF)]; access.romPeekCounter = &myRomAccessCounter[0x100 + (addr & 0x00FF)]; - access.romPokeCounter = &myRomAccessCounter[0x100 + (addr & 0x00FF) + myImage.size()]; + access.romPokeCounter = &myRomAccessCounter[0x100 + (addr & 0x00FF) + myAccessSize]; mySystem->setPageAccess(addr, access); } @@ -163,7 +163,7 @@ bool CartridgeFA::bank(uInt16 bank) { access.romAccessBase = &myRomAccessBase[myBankOffset + (addr & 0x0FFF)]; access.romPeekCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF)]; - access.romPokeCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF) + myImage.size()]; + access.romPokeCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF) + myAccessSize]; mySystem->setPageAccess(addr, access); } @@ -174,7 +174,7 @@ bool CartridgeFA::bank(uInt16 bank) access.directPeekBase = &myImage[myBankOffset + (addr & 0x0FFF)]; access.romAccessBase = &myRomAccessBase[myBankOffset + (addr & 0x0FFF)]; access.romPeekCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF)]; - access.romPokeCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF) + myImage.size()]; + access.romPokeCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF) + myAccessSize]; mySystem->setPageAccess(addr, access); } return myBankChanged = true; diff --git a/src/emucore/CartFA2.cxx b/src/emucore/CartFA2.cxx index 134c9d86b..1630f216e 100644 --- a/src/emucore/CartFA2.cxx +++ b/src/emucore/CartFA2.cxx @@ -63,7 +63,7 @@ void CartridgeFA2::install(System& system) { access.romAccessBase = &myRomAccessBase[addr & 0x00FF]; access.romPeekCounter = &myRomAccessCounter[addr & 0x00FF]; - access.romPokeCounter = &myRomAccessCounter[(addr & 0x00FF) + myImage.size()]; + access.romPokeCounter = &myRomAccessCounter[(addr & 0x00FF) + myAccessSize]; mySystem->setPageAccess(addr, access); } @@ -75,7 +75,7 @@ void CartridgeFA2::install(System& system) access.directPeekBase = &myRAM[addr & 0x00FF]; access.romAccessBase = &myRomAccessBase[0x100 + (addr & 0x00FF)]; access.romPeekCounter = &myRomAccessCounter[0x100 + (addr & 0x00FF)]; - access.romPokeCounter = &myRomAccessCounter[0x100 + (addr & 0x00FF) + myImage.size()]; + access.romPokeCounter = &myRomAccessCounter[0x100 + (addr & 0x00FF) + myAccessSize]; mySystem->setPageAccess(addr, access); } @@ -228,7 +228,7 @@ bool CartridgeFA2::bank(uInt16 bank) { access.romAccessBase = &myRomAccessBase[myBankOffset + (addr & 0x0FFF)]; access.romPeekCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF)]; - access.romPokeCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF) + myImage.size()]; + access.romPokeCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF) + myAccessSize]; mySystem->setPageAccess(addr, access); } @@ -239,7 +239,7 @@ bool CartridgeFA2::bank(uInt16 bank) access.directPeekBase = &myImage[myBankOffset + (addr & 0x0FFF)]; access.romAccessBase = &myRomAccessBase[myBankOffset + (addr & 0x0FFF)]; access.romPeekCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF)]; - access.romPokeCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF) + myImage.size()]; + access.romPokeCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF) + myAccessSize]; mySystem->setPageAccess(addr, access); } return myBankChanged = true; diff --git a/src/emucore/CartFC.cxx b/src/emucore/CartFC.cxx index 113d259c3..565e577cf 100644 --- a/src/emucore/CartFC.cxx +++ b/src/emucore/CartFC.cxx @@ -115,7 +115,7 @@ bool CartridgeFC::bank(uInt16 bank) { access.romAccessBase = &myRomAccessBase[myBankOffset + (addr & 0x0FFF)]; access.romPeekCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF)]; - access.romPokeCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF) + myImage.size()]; + access.romPokeCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF) + myAccessSize]; mySystem->setPageAccess(addr, access); } @@ -126,7 +126,7 @@ bool CartridgeFC::bank(uInt16 bank) access.directPeekBase = &myImage[myBankOffset + (addr & 0x0FFF)]; access.romAccessBase = &myRomAccessBase[myBankOffset + (addr & 0x0FFF)]; access.romPeekCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF)]; - access.romPokeCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF) + myImage.size()]; + access.romPokeCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF) + myAccessSize]; mySystem->setPageAccess(addr, access); } myCurrentBank = myTargetBank; diff --git a/src/emucore/CartFE.cxx b/src/emucore/CartFE.cxx index eaa17bc4d..36cfa7c84 100644 --- a/src/emucore/CartFE.cxx +++ b/src/emucore/CartFE.cxx @@ -107,8 +107,8 @@ bool CartridgeFE::bank(uInt16 bank) for(uInt16 addr = 0x1000; addr < 0x2000; addr += System::PAGE_SIZE) { access.romAccessBase = &myRomAccessBase[myBankOffset + (addr & 0x0FFF)]; - access.romPeekCounter = &myRomAccessCounter[addr & 0x0FFF]; - access.romPokeCounter = &myRomAccessCounter[addr & 0x0FFF + myImage.size()]; + access.romPeekCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF)]; + access.romPokeCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF) + myAccessSize]; mySystem->setPageAccess(addr, access); } diff --git a/src/emucore/CartMDM.cxx b/src/emucore/CartMDM.cxx index a3b0a0a6c..4c69f7c7c 100644 --- a/src/emucore/CartMDM.cxx +++ b/src/emucore/CartMDM.cxx @@ -112,6 +112,8 @@ bool CartridgeMDM::bank(uInt16 bank) { access.directPeekBase = &myImage[myBankOffset + (addr & 0x0FFF)]; access.romAccessBase = &myRomAccessBase[myBankOffset + (addr & 0x0FFF)]; + access.romPeekCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF)]; + access.romPokeCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF) + myAccessSize]; mySystem->setPageAccess(addr, access); } diff --git a/src/emucore/CartMNetwork.cxx b/src/emucore/CartMNetwork.cxx index e9a3a5e45..c5ff0cfab 100644 --- a/src/emucore/CartMNetwork.cxx +++ b/src/emucore/CartMNetwork.cxx @@ -71,6 +71,8 @@ void CartridgeMNetwork::setAccess(uInt16 addrFrom, uInt16 size, else if(type == System::PageAccessType::WRITE) // all RAM writes mapped to ::poke() access.directPokeBase = nullptr; access.romAccessBase = &myRomAccessBase[codeOffset + (addr & addrMask)]; + access.romPeekCounter = &myRomAccessCounter[codeOffset + (addr & addrMask)]; + access.romPokeCounter = &myRomAccessCounter[codeOffset + (addr & addrMask) + myAccessSize]; mySystem->setPageAccess(addr, access); } } @@ -87,6 +89,8 @@ void CartridgeMNetwork::install(System& system) addr += System::PAGE_SIZE) { access.romAccessBase = &myRomAccessBase[0x1fc0]; + access.romPeekCounter = &myRomAccessCounter[0x1fc0]; + access.romPokeCounter = &myRomAccessCounter[0x1fc0 + myAccessSize]; mySystem->setPageAccess(addr, access); } /*setAccess(0x1FE0 & ~System::PAGE_MASK, System::PAGE_SIZE, diff --git a/src/emucore/CartSB.cxx b/src/emucore/CartSB.cxx index 34db0cca1..44ff9381f 100644 --- a/src/emucore/CartSB.cxx +++ b/src/emucore/CartSB.cxx @@ -122,6 +122,8 @@ bool CartridgeSB::bank(uInt16 bank) { access.directPeekBase = &myImage[myBankOffset + (addr & 0x0FFF)]; access.romAccessBase = &myRomAccessBase[myBankOffset + (addr & 0x0FFF)]; + access.romPeekCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF)]; + access.romPokeCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF) + myAccessSize]; mySystem->setPageAccess(addr, access); } return myBankChanged = true; diff --git a/src/emucore/CartUA.cxx b/src/emucore/CartUA.cxx index ed2bd80bf..bfa1321bb 100644 --- a/src/emucore/CartUA.cxx +++ b/src/emucore/CartUA.cxx @@ -137,7 +137,7 @@ bool CartridgeUA::bank(uInt16 bank) access.directPeekBase = &myImage[myBankOffset + (addr & 0x0FFF)]; access.romAccessBase = &myRomAccessBase[myBankOffset + (addr & 0x0FFF)]; access.romPeekCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF)]; - access.romPokeCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF) + myImage.size()]; + access.romPokeCounter = &myRomAccessCounter[myBankOffset + (addr & 0x0FFF) + myAccessSize]; mySystem->setPageAccess(addr, access); } return myBankChanged = true; diff --git a/src/emucore/CartWD.cxx b/src/emucore/CartWD.cxx index 62b5a6c17..c6373fa05 100644 --- a/src/emucore/CartWD.cxx +++ b/src/emucore/CartWD.cxx @@ -65,7 +65,7 @@ void CartridgeWD::install(System& system) read.directPeekBase = &myRAM[addr & 0x003F]; read.romAccessBase = &myRomAccessBase[addr & 0x003F]; read.romPeekCounter = &myRomAccessCounter[addr & 0x003F]; - read.romPokeCounter = &myRomAccessCounter[(addr & 0x003F) + myImage.size()]; + read.romPokeCounter = &myRomAccessCounter[(addr & 0x003F) + 8_KB]; mySystem->setPageAccess(addr, read); } @@ -77,7 +77,7 @@ void CartridgeWD::install(System& system) { write.romAccessBase = &myRomAccessBase[addr & 0x003F]; write.romPeekCounter = &myRomAccessCounter[addr & 0x003F]; - write.romPokeCounter = &myRomAccessCounter[(addr & 0x003F) + myImage.size()]; + write.romPokeCounter = &myRomAccessCounter[(addr & 0x003F) + 8_KB]; mySystem->setPageAccess(addr, write); } @@ -183,7 +183,7 @@ void CartridgeWD::segmentZero(uInt8 slice) { access.romAccessBase = &myRomAccessBase[offset + (addr & 0x03FF)]; access.romPeekCounter = &myRomAccessCounter[offset + (addr & 0x03FF)]; - access.romPokeCounter = &myRomAccessCounter[offset + (addr & 0x03FF) + myImage.size()]; + access.romPokeCounter = &myRomAccessCounter[offset + (addr & 0x03FF) + 8_KB]; mySystem->setPageAccess(addr, access); } myOffset[0] = offset; @@ -199,7 +199,7 @@ void CartridgeWD::segmentOne(uInt8 slice) { access.romAccessBase = &myRomAccessBase[offset + (addr & 0x03FF)]; access.romPeekCounter = &myRomAccessCounter[offset + (addr & 0x03FF)]; - access.romPokeCounter = &myRomAccessCounter[offset + (addr & 0x03FF) + myImage.size()]; + access.romPokeCounter = &myRomAccessCounter[offset + (addr & 0x03FF) + 8_KB]; mySystem->setPageAccess(addr, access); } myOffset[1] = offset; @@ -215,7 +215,7 @@ void CartridgeWD::segmentTwo(uInt8 slice) { access.romAccessBase = &myRomAccessBase[offset + (addr & 0x03FF)]; access.romPeekCounter = &myRomAccessCounter[offset + (addr & 0x03FF)]; - access.romPokeCounter = &myRomAccessCounter[offset + (addr & 0x03FF) + myImage.size()]; + access.romPokeCounter = &myRomAccessCounter[offset + (addr & 0x03FF) + 8_KB]; mySystem->setPageAccess(addr, access); } myOffset[2] = offset; @@ -237,7 +237,7 @@ void CartridgeWD::segmentThree(uInt8 slice) { access.romAccessBase = &myRomAccessBase[offset + (addr & 0x03FF)]; access.romPeekCounter = &myRomAccessCounter[offset + (addr & 0x03FF)]; - access.romPokeCounter = &myRomAccessCounter[offset + (addr & 0x03FF) + myImage.size()]; + access.romPokeCounter = &myRomAccessCounter[offset + (addr & 0x03FF) + 8_KB]; mySystem->setPageAccess(addr, access); } myOffset[3] = offset; diff --git a/src/emucore/CartX07.cxx b/src/emucore/CartX07.cxx index 49fc30e0f..96bf5e4ed 100644 --- a/src/emucore/CartX07.cxx +++ b/src/emucore/CartX07.cxx @@ -117,7 +117,7 @@ bool CartridgeX07::bank(uInt16 bank) access.directPeekBase = &myImage[offset + (addr & 0x0FFF)]; access.romAccessBase = &myRomAccessBase[offset + (addr & 0x0FFF)]; access.romPeekCounter = &myRomAccessCounter[offset + (addr & 0x0FFF)]; - access.romPokeCounter = &myRomAccessCounter[offset + (addr & 0x0FFF) + myImage.size()]; + access.romPokeCounter = &myRomAccessCounter[offset + (addr & 0x0FFF) + myAccessSize]; mySystem->setPageAccess(addr, access); } return myBankChanged = true;