From a771e136c6bd81e1c544ea577bf768d077ce35a8 Mon Sep 17 00:00:00 2001 From: mahlemiut Date: Thu, 12 Jan 2012 08:11:18 +0000 Subject: [PATCH] i386: Fixed setting of IF flag when interrupts are triggered in virtual 8086 mode. (no whatsnew) --- src/emu/cpu/i386/i386.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/emu/cpu/i386/i386.c b/src/emu/cpu/i386/i386.c index 63e91cecd2b..6d54afbd1af 100644 --- a/src/emu/cpu/i386/i386.c +++ b/src/emu/cpu/i386/i386.c @@ -613,7 +613,7 @@ static void i386_trap(i386_state *cpustate,int irq, int irq_gate, int trap_level tempflags = get_flags(cpustate); cpustate->VM = 0; cpustate->TF = 0; - if(irq_gate == 1) + if(type == 0x0e || type == 0x06) cpustate->IF = 0; tempSS = cpustate->sreg[SS].selector; tempESP = REG32(ESP); @@ -2241,7 +2241,7 @@ static void i386_protected_mode_iret(i386_state* cpustate, int operand32) //SSDPL = (stack.flags >> 5) & 0x03; /* Return to v86 mode */ - popmessage("IRET (%08x): Returning to Virtual 8086 mode.",cpustate->pc); + logerror("IRET (%08x): Returning to Virtual 8086 mode.\n",cpustate->pc); // Should these be done at this point? The 386 programmers' reference is a bit confusing about this /* if(RPL != 3) {