diff options
Diffstat (limited to 'src/emu/cpu/i386/i386.c')
-rw-r--r-- | src/emu/cpu/i386/i386.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/emu/cpu/i386/i386.c b/src/emu/cpu/i386/i386.c index 800575911db..b9593ddfed7 100644 --- a/src/emu/cpu/i386/i386.c +++ b/src/emu/cpu/i386/i386.c @@ -763,6 +763,15 @@ void i386_device::i386_trap(int irq, int irq_gate, int trap_level) logerror("IRQ (%08x): Software IRQ - gate DPL is less than CPL.\n",m_pc); FAULT_EXP(FAULT_GP,entry+2) } + if(V8086_MODE) + { + if((!m_IOP1 || !m_IOP2) && (m_opcode != 0xcc)) + { + logerror("IRQ (%08x): Is in Virtual 8086 mode and IOPL != 3.\n",m_pc); + FAULT(FAULT_GP,0) + } + + } } if((flags & 0x0080) == 0) |