i386: fix segment present check for calls to a TSS

This commit is contained in:
mahlemiut 2014-10-28 12:05:44 +13:00
parent 8da3b4f1ef
commit e4ff6e038d

View File

@ -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)