From e4ff6e038d1e7c87f22f9af25ff23cddbf9c11d5 Mon Sep 17 00:00:00 2001 From: mahlemiut Date: Tue, 28 Oct 2014 12:05:44 +1300 Subject: [PATCH] i386: fix segment present check for calls to a TSS --- 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 5b66594f22b..9eb94381ae8 100644 --- a/src/emu/cpu/i386/i386.c +++ b/src/emu/cpu/i386/i386.c @@ -1727,9 +1727,9 @@ void i386_device::i386_protected_mode_call(UINT16 seg, UINT32 off, int indirect, logerror("CALL: TSS: TSS is busy.\n"); FAULT(FAULT_TS,selector & ~0x03) // #TS(selector) } - if(desc.flags & 0x0080) + if((desc.flags & 0x0080) == 0) { - logerror("CALL: TSS: Segment is not present.\n"); + logerror("CALL: TSS: Segment %02x is not present.\n",selector); FAULT(FAULT_NP,selector & ~0x03) // #NP(selector) } if(desc.flags & 0x08)