1#include "../../../../../include/ProcessingUnit.hpp"
2#include "../../../../../include/opcodes.hpp"
3#include "../../../../../include/mmu.hpp"
5constexpr int machine_cycles = 4;
6#define totalMachineCycles(n) ((n) * machine_cycles)
8#define DUMMY(name) int name(ProcessingUnit&, MMU&) { return totalMachineCycles(1); }
12 cpu.reg(ProcessingUnit::Register::D) = cpu.reg(ProcessingUnit::Register::B);
14 return totalMachineCycles(1);
19 cpu.reg(ProcessingUnit::Register::D) = cpu.reg(ProcessingUnit::Register::C);
21 return totalMachineCycles(1);
26 cpu.reg(ProcessingUnit::Register::D) = cpu.reg(ProcessingUnit::Register::D);
28 return totalMachineCycles(1);
33 cpu.reg(ProcessingUnit::Register::D) = cpu.reg(ProcessingUnit::Register::E);
35 return totalMachineCycles(1);
40 cpu.reg(ProcessingUnit::Register::D) = cpu.reg(ProcessingUnit::Register::H);
42 return totalMachineCycles(1);
47 cpu.reg(ProcessingUnit::Register::D) = cpu.reg(ProcessingUnit::Register::L);
49 return totalMachineCycles(1);
54 cpu.reg(ProcessingUnit::Register::D) = mmu.read(cpu.get_hl());
56 return totalMachineCycles(2);
61 cpu.reg(ProcessingUnit::Register::D) = cpu.reg(ProcessingUnit::Register::A);
63 return totalMachineCycles(1);
68 cpu.reg(ProcessingUnit::Register::E) = cpu.reg(ProcessingUnit::Register::B);
70 return totalMachineCycles(1);
75 cpu.reg(ProcessingUnit::Register::E) = cpu.reg(ProcessingUnit::Register::C);
77 return totalMachineCycles(1);
82 cpu.reg(ProcessingUnit::Register::E) = cpu.reg(ProcessingUnit::Register::D);
84 return totalMachineCycles(1);
89 cpu.reg(ProcessingUnit::Register::E) = cpu.reg(ProcessingUnit::Register::E);
91 return totalMachineCycles(1);
96 cpu.reg(ProcessingUnit::Register::E) = cpu.reg(ProcessingUnit::Register::H);
98 return totalMachineCycles(1);
103 cpu.reg(ProcessingUnit::Register::E) = cpu.reg(ProcessingUnit::Register::L);
105 return totalMachineCycles(1);
110 cpu.reg(ProcessingUnit::Register::E) = mmu.read(cpu.get_hl());
112 return totalMachineCycles(2);
117 cpu.reg(ProcessingUnit::Register::E) = cpu.reg(ProcessingUnit::Register::A);
119 return totalMachineCycles(1);