diff options
author | 2013-11-01 16:54:15 +0000 | |
---|---|---|
committer | 2013-11-01 16:54:15 +0000 | |
commit | 4d6f21861bb5c09bc356211ba66671d55ec771ff (patch) | |
tree | 0fbc55d4a46e91ee77fca455415625e8f85a90a8 /src/emu | |
parent | f1d1476fb56345d70c347990fbbba2242992cd26 (diff) |
i286: fix trap flag (nw)
Diffstat (limited to 'src/emu')
-rw-r--r-- | src/emu/cpu/i86/i286.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/emu/cpu/i86/i286.c b/src/emu/cpu/i86/i286.c index 31e7029b7ca..3e4da97a90c 100644 --- a/src/emu/cpu/i86/i286.c +++ b/src/emu/cpu/i86/i286.c @@ -586,7 +586,7 @@ void i80286_cpu_device::switch_task(UINT16 ntask, int type) m_tr.base = BASE(ndesc); m_tr.rights = RIGHTS(ndesc); - ExpandFlags(ntss[TSS_FLAG]); + load_flags(ntss[TSS_FLAG], 0); m_regs.w[AX] = ntss[TSS_AX]; m_regs.w[CX] = ntss[TSS_CX]; m_regs.w[DX] = ntss[TSS_DX]; @@ -1847,6 +1847,9 @@ void i80286_cpu_device::load_flags(UINT16 flags, int cpl) else if(!PM) (flags &= ~0xf000); ExpandFlags(flags); + + if(m_TF) + m_fire_trap = 1; } UINT16 i80286_cpu_device::far_return(int iret, int bytes) |