summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
author Miodrag Milanovic <mmicko@gmail.com>2011-05-20 16:13:02 +0000
committer Miodrag Milanovic <mmicko@gmail.com>2011-05-20 16:13:02 +0000
commitf2a42ffe4d36314e2ca1145ff31285a7ce38fee5 (patch)
treea769870fd1e333d85b2c4e1d2f18327bde921ae3 /src
parent0235cef53428e55e4cb96309f0724be88f8074ca (diff)
i286 - Fix for protected mode, ibm5170 no errors anymore by Carl (no whatsnew)
Diffstat (limited to 'src')
-rw-r--r--src/emu/cpu/i86/instr286.c7
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)