LC: fixed INC to only write-enable LC for 65C02 (#700)
This commit is contained in:
parent
df4ed7b964
commit
8a55e35e2d
1 changed files with 5 additions and 3 deletions
|
@ -106,6 +106,9 @@ BYTE __stdcall LanguageCardUnit::IO(WORD PC, WORD uAddr, BYTE bWrite, BYTE uValu
|
||||||
// GH#700: INC $C083/C08B (RMW) to write enable the LC
|
// GH#700: INC $C083/C08B (RMW) to write enable the LC
|
||||||
bool LanguageCardUnit::IsOpcodeRMWabs(WORD addr)
|
bool LanguageCardUnit::IsOpcodeRMWabs(WORD addr)
|
||||||
{
|
{
|
||||||
|
if (GetMainCpu() != CPU_65C02)
|
||||||
|
return false;
|
||||||
|
|
||||||
BYTE param1 = mem[(regs.pc - 2) & 0xffff];
|
BYTE param1 = mem[(regs.pc - 2) & 0xffff];
|
||||||
BYTE param2 = mem[(regs.pc - 1) & 0xffff];
|
BYTE param2 = mem[(regs.pc - 1) & 0xffff];
|
||||||
if (param1 != (addr & 0xff) || param2 != 0xC0)
|
if (param1 != (addr & 0xff) || param2 != 0xC0)
|
||||||
|
@ -120,9 +123,8 @@ bool LanguageCardUnit::IsOpcodeRMWabs(WORD addr)
|
||||||
opcode == 0x0E) // ASL abs
|
opcode == 0x0E) // ASL abs
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
if ((GetMainCpu() == CPU_65C02) && (
|
if (opcode == 0x1C || // TRB abs
|
||||||
opcode == 0x1C || // TRB abs
|
opcode == 0x0C) // TSB abs
|
||||||
opcode == 0x0C)) // TSB abs
|
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
|
Loading…
Add table
Reference in a new issue