diff options
author | 2011-05-30 14:25:35 +0000 | |
---|---|---|
committer | 2011-05-30 14:25:35 +0000 | |
commit | 73323f655d5d81332b36f109781b5b9dbac7c939 (patch) | |
tree | 1d208a6f2d80e44cfa48bee492d6d13dabb346c0 /src/emu/cpu/i86 | |
parent | c3d6f724537ffb11b16cfdb8d948ca77d5dac4ba (diff) |
idectrl - implemented verify no retry command [Carl]
i86 - Fixed imul instruction [Carl]
Diffstat (limited to 'src/emu/cpu/i86')
-rw-r--r-- | src/emu/cpu/i86/instr186.c | 2 | ||||
-rw-r--r-- | src/emu/cpu/i86/instr286.c | 4 |
2 files changed, 3 insertions, 3 deletions
diff --git a/src/emu/cpu/i86/instr186.c b/src/emu/cpu/i86/instr186.c index 6dbf28902e2..4ab64b35bf5 100644 --- a/src/emu/cpu/i86/instr186.c +++ b/src/emu/cpu/i86/instr186.c @@ -68,7 +68,7 @@ static void PREFIX186(_imul_d16)(i8086_state *cpustate) /* Opcode 0x69 */ { DEF_r16w(dst,src); unsigned src2=FETCH; - src+=(FETCH<<8); + src2+=(FETCH<<8); ICOUNT -= (ModRM >= 0xc0) ? timing.imul_rri16 : timing.imul_rmi16; diff --git a/src/emu/cpu/i86/instr286.c b/src/emu/cpu/i86/instr286.c index 4b947b05daf..7151735e246 100644 --- a/src/emu/cpu/i86/instr286.c +++ b/src/emu/cpu/i86/instr286.c @@ -510,7 +510,7 @@ static void PREFIX286(_0fpre)(i8086_state *cpustate) desc[2] = ReadWord(addr+4); r = RIGHTS(desc); if (SEGDESC(r) || (GATE(r) != LDTDESC)) throw TRAP(GENERAL_PROTECTION_FAULT,IDXTBL(sel)); - if (!PRES(r)) TRAP(SEG_NOT_PRESENT,IDXTBL(sel)); + if (!PRES(r)) throw TRAP(SEG_NOT_PRESENT,IDXTBL(sel)); } else { desc[0] = 0; desc[1] = 0; @@ -530,7 +530,7 @@ static void PREFIX286(_0fpre)(i8086_state *cpustate) desc[2] = ReadWord(addr+4); r = RIGHTS(desc); if (SEGDESC(r) || (GATE(r) != TSSDESCIDLE)) throw TRAP(GENERAL_PROTECTION_FAULT,IDXTBL(sel)); - if (!PRES(r)) TRAP(SEG_NOT_PRESENT,IDXTBL(sel)); + if (!PRES(r)) throw TRAP(SEG_NOT_PRESENT,IDXTBL(sel)); desc[2] |= 0x200; // mark busy WriteWord(addr+4, desc[2]); cpustate->tr.sel=sel; |