fix disassembly when $ed, $dd & $fd prefixes are used but the instruction is not valid. [smf]

This commit is contained in:
smf- 2018-01-13 23:03:23 +00:00
parent 32156813c0
commit 05e59cf6aa

View File

@ -416,6 +416,8 @@ offs_t z80_disassembler::disassemble(std::ostream &stream, offs_t pc, const data
break; break;
case 0xed: case 0xed:
d = &mnemonic_ed[opcodes.r8(pos++)]; d = &mnemonic_ed[opcodes.r8(pos++)];
if (d->mnemonic == zDB)
pos--;
break; break;
case 0xdd: case 0xdd:
{ {
@ -428,7 +430,11 @@ offs_t z80_disassembler::disassemble(std::ostream &stream, offs_t pc, const data
d = &mnemonic_xx_cb[op1]; d = &mnemonic_xx_cb[op1];
} }
else else
{
d = &mnemonic_xx[op1]; d = &mnemonic_xx[op1];
if (d->mnemonic == zDB)
pos--;
}
break; break;
} }
case 0xfd: case 0xfd:
@ -442,7 +448,11 @@ offs_t z80_disassembler::disassemble(std::ostream &stream, offs_t pc, const data
d = &mnemonic_xx_cb[op1]; d = &mnemonic_xx_cb[op1];
} }
else else
{
d = &mnemonic_xx[op1]; d = &mnemonic_xx[op1];
if (d->mnemonic == zDB)
pos--;
}
break; break;
} }
default: default: