[SOFT386]

Implement CMC instruction.


svn path=/branches/ntvdm/; revision=59892
This commit is contained in:
Aleksandar Andrejevic 2013-08-29 22:18:28 +00:00
parent 3925c4a3d8
commit 7ecbd63471
2 changed files with 28 additions and 1 deletions

View file

@ -269,7 +269,7 @@ Soft386OpcodeHandlers[SOFT386_NUM_OPCODE_HANDLERS] =
Soft386OpcodePrefix,
Soft386OpcodePrefix,
Soft386OpcodeHalt,
NULL, // TODO: OPCODE 0xF5 NOT SUPPORTED
Soft386OpcodeComplCarry,
NULL, // TODO: OPCODE 0xF6 NOT SUPPORTED
NULL, // TODO: OPCODE 0xF7 NOT SUPPORTED
Soft386OpcodeClearCarry,
@ -780,6 +780,25 @@ Soft386OpcodeSetCarry(PSOFT386_STATE State, UCHAR Opcode)
return TRUE;
}
BOOLEAN
FASTCALL
Soft386OpcodeComplCarry(PSOFT386_STATE State, UCHAR Opcode)
{
/* Make sure this is the right instruction */
ASSERT(Opcode == 0xF5);
/* No prefixes allowed */
if (State->PrefixFlags)
{
Soft386Exception(State, SOFT386_EXCEPTION_UD);
return FALSE;
}
/* Toggle CF and return success */
State->Flags.Cf = !State->Flags.Cf;
return TRUE;
}
BOOLEAN
FASTCALL
Soft386OpcodeClearInt(PSOFT386_STATE State, UCHAR Opcode)

View file

@ -103,6 +103,14 @@ Soft386OpcodeSetCarry
UCHAR Opcode
);
BOOLEAN
FASTCALL
Soft386OpcodeComplCarry
(
PSOFT386_STATE State,
UCHAR Opcode
);
BOOLEAN
FASTCALL
Soft386OpcodeClearInt