diff --git a/InstructionSets/M50740/Executor.cpp b/InstructionSets/M50740/Executor.cpp index e557067fa..75ef85fef 100644 --- a/InstructionSets/M50740/Executor.cpp +++ b/InstructionSets/M50740/Executor.cpp @@ -349,8 +349,8 @@ template void Executor::perform(uint8_t *operand [[maybe_u // TODO: // - // BRK, STP, - // ADC, SBC, BIT + // BRK, STP + // ADC, SBC case Operation::ASL: carry_flag_ = *operand >> 7; @@ -380,6 +380,12 @@ template void Executor::perform(uint8_t *operand [[maybe_u *operand = uint8_t((*operand >> 4) | (*operand << 4)); break; + case Operation::BIT: + zero_result_ = *operand & a_; + negative_result_ = *operand; + overflow_result_ = uint8_t(*operand << 1); + break; + /* Operations affected by the index mode flag: ADC, AND, CMP, EOR, LDA, ORA, and SBC. */