diff --git a/InstructionSets/x86/Implementation/PerformImplementation.hpp b/InstructionSets/x86/Implementation/PerformImplementation.hpp index dfbcfd72d..d1e4c0810 100644 --- a/InstructionSets/x86/Implementation/PerformImplementation.hpp +++ b/InstructionSets/x86/Implementation/PerformImplementation.hpp @@ -610,6 +610,9 @@ void cwd(IntT &dx, IntT ax) { inline void clc(Status &status) { status.carry = 0; } inline void cld(Status &status) { status.direction = 0; } inline void cli(Status &status) { status.interrupt = 0; } // TODO: quite a bit more in protected mode. +inline void stc(Status &status) { status.carry = 1; } +inline void std(Status &status) { status.direction = 1; } +inline void sti(Status &status) { status.interrupt = 1; } // TODO: quite a bit more in protected mode. inline void cmc(Status &status) { status.carry = !status.carry; } } @@ -731,6 +734,9 @@ template < case Operation::CLC: Primitive::clc(status); return; case Operation::CLD: Primitive::cld(status); return; case Operation::CLI: Primitive::cli(status); return; + case Operation::STC: Primitive::stc(status); return; + case Operation::STD: Primitive::std(status); return; + case Operation::STI: Primitive::sti(status); return; case Operation::CMC: Primitive::cmc(status); return; } diff --git a/InstructionSets/x86/Instruction.hpp b/InstructionSets/x86/Instruction.hpp index d948fd88f..9c93e53e2 100644 --- a/InstructionSets/x86/Instruction.hpp +++ b/InstructionSets/x86/Instruction.hpp @@ -195,7 +195,7 @@ enum class Operation: uint8_t { CLI, /// Set carry flag. STC, - /// Set decimal flag. + /// Set direction flag. STD, /// Set interrupt flag. STI, diff --git a/OSBindings/Mac/Clock SignalTests/8088Tests.mm b/OSBindings/Mac/Clock SignalTests/8088Tests.mm index d9bf0bdaa..c8d68a34b 100644 --- a/OSBindings/Mac/Clock SignalTests/8088Tests.mm +++ b/OSBindings/Mac/Clock SignalTests/8088Tests.mm @@ -330,6 +330,9 @@ struct FailedExecution { @"F8.json.gz", // CLC @"FC.json.gz", // CLD @"FA.json.gz", // CLI + @"F9.json.gz", // STC + @"FD.json.gz", // STD + @"FB.json.gz", // STI @"F5.json.gz", // CMC ]];