diff options
author | 2011-05-20 16:13:02 +0000 | |
---|---|---|
committer | 2011-05-20 16:13:02 +0000 | |
commit | f2a42ffe4d36314e2ca1145ff31285a7ce38fee5 (patch) | |
tree | a769870fd1e333d85b2c4e1d2f18327bde921ae3 /src/emu/cpu/i86/instr286.c | |
parent | 0235cef53428e55e4cb96309f0724be88f8074ca (diff) |
i286 - Fix for protected mode, ibm5170 no errors anymore by Carl (no whatsnew)
Diffstat (limited to 'src/emu/cpu/i86/instr286.c')
-rw-r--r-- | src/emu/cpu/i86/instr286.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/emu/cpu/i86/instr286.c b/src/emu/cpu/i86/instr286.c index afa7da48be2..24264b51552 100644 --- a/src/emu/cpu/i86/instr286.c +++ b/src/emu/cpu/i86/instr286.c @@ -487,7 +487,8 @@ static void PREFIX286(_0fpre)(i8086_state *cpustate) r = RIGHTS(desc); if (DPL(r)>=PMAX(RPL(tmp),CPL)) { cpustate->ZeroVal = 0; - RegWord(ModRM) = RIGHTS(desc); + // rights are expected to be in upper byte + RegWord(ModRM) = r << 8; } else cpustate->ZeroVal = 1; @@ -574,11 +575,11 @@ static void PREFIX286(_arpl)(i8086_state *cpustate) /* 0x63 */ if (RPL(tmp)<RPL(source)) { - cpustate->ZeroVal = 1; + cpustate->ZeroVal = 0; PutbackRMWord(ModRM, IDXTBL(tmp)|RPL(source)); } else - cpustate->ZeroVal = 0; + cpustate->ZeroVal = 1; } static void i80286_load_flags(i8086_state *cpustate, int flags, int cpl) |