mirror of https://github.com/stella-emu/stella.git
fix poke access counter offset
add a few more bank switching types
This commit is contained in:
parent
a015cd9082
commit
e91bc140cd
|
@ -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<Device::AccessFlags[]>(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";
|
||||
|
||||
|
|
|
@ -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};
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue