42 lines
1.6 KiB
C++
42 lines
1.6 KiB
C++
#include "status-opcode-handler-container.h"
|
|
|
|
namespace emu_6502 {
|
|
StatusOpcodeHandlerContainer::StatusOpcodeHandlerContainer() {
|
|
handlers.insert({Op::CLC, [this](Machine& machine) { clc(machine); }});
|
|
handlers.insert({Op::CLD, [this](Machine& machine) { cld(machine); }});
|
|
handlers.insert({Op::CLI, [this](Machine& machine) { cli(machine); }});
|
|
handlers.insert({Op::CLV, [this](Machine& machine) { clv(machine); }});
|
|
|
|
handlers.insert({Op::SEC, [this](Machine& machine) { sec(machine); }});
|
|
handlers.insert({Op::SED, [this](Machine& machine) { sed(machine); }});
|
|
handlers.insert({Op::SEI, [this](Machine& machine) { sei(machine); }});
|
|
}
|
|
|
|
void StatusOpcodeHandlerContainer::clc(Machine& machine) {
|
|
machine.get_cpu().get_ps().set_carry(false);
|
|
}
|
|
|
|
void StatusOpcodeHandlerContainer::cld(Machine& machine) {
|
|
machine.get_cpu().get_ps().set_decimal(false);
|
|
}
|
|
|
|
void StatusOpcodeHandlerContainer::cli(Machine& machine) {
|
|
machine.get_cpu().get_ps().set_interupt_disable(false);
|
|
}
|
|
|
|
void StatusOpcodeHandlerContainer::clv(Machine& machine) {
|
|
machine.get_cpu().get_ps().set_overflow(false);
|
|
}
|
|
|
|
void StatusOpcodeHandlerContainer::sec(Machine& machine) {
|
|
machine.get_cpu().get_ps().set_carry(true);
|
|
}
|
|
|
|
void StatusOpcodeHandlerContainer::sed(Machine& machine) {
|
|
machine.get_cpu().get_ps().set_decimal(true);
|
|
}
|
|
|
|
void StatusOpcodeHandlerContainer::sei(Machine& machine) {
|
|
machine.get_cpu().get_ps().set_interupt_disable(true);
|
|
}
|
|
} |