more types for partial fix for issue #537 (RAM writes to read port)

This commit is contained in:
thrust26 2019-09-15 11:52:43 +02:00
parent 15426a31e0
commit 4b0f255b8d
4 changed files with 53 additions and 8 deletions

View File

@ -98,8 +98,19 @@ bool CartridgeDFSC::poke(uInt16 address, uInt8 value)
return false;
}
pokeRAM(myRAM[address & 0x007F], pokeAddress, value);
return true;
if(!(address & 0x080))
{
pokeRAM(myRAM[address & 0x007F], pokeAddress, value);
return true;
}
else
{
// Writing to the read port should be ignored, but (TODO) trigger a break if option enabled
uInt8 dummy;
pokeRAM(dummy, pokeAddress, value);
return false;
}
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

View File

@ -128,8 +128,19 @@ bool CartridgeFA::poke(uInt16 address, uInt8 value)
break;
}
pokeRAM(myRAM[address & 0x00FF], address, value);
return true;
if (!(address & 0x100))
{
pokeRAM(myRAM[address & 0x00FF], address, value);
return true;
}
else
{
// Writing to the read port should be ignored, but (TODO) trigger a break if option enabled
uInt8 dummy;
pokeRAM(dummy, address, value);
return false;
}
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

View File

@ -195,8 +195,19 @@ bool CartridgeFA2::poke(uInt16 address, uInt8 value)
break;
}
pokeRAM(myRAM[address & 0x00FF], address, value);
return true;
if(!(address & 0x100))
{
pokeRAM(myRAM[address & 0x00FF], address, value);
return true;
}
else
{
// Writing to the read port should be ignored, but (TODO) trigger a break if option enabled
uInt8 dummy;
pokeRAM(dummy, address, value);
return false;
}
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

View File

@ -129,9 +129,21 @@ bool CartridgeWD::poke(uInt16 address, uInt8 value)
if(!(address & 0x1000)) // TIA addresses
return mySystem->tia().poke(address, value);
else
pokeRAM(myRAM[address & 0x003F], address, value);
{
if(address & 0x040)
{
pokeRAM(myRAM[address & 0x003F], address, value);
return true;
}
else
{
// Writing to the read port should be ignored, but (TODO) trigger a break if option enabled
uInt8 dummy;
return true;
pokeRAM(dummy, address, value);
return false;
}
}
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -