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 const u8 newValue = cpu.reg(ProcessingUnit::Register::B);
13 const u16 addr = cpu.get_hl();
14 mmu.write(addr, newValue);
16 return totalMachineCycles(2);
21 const u8 newValue = cpu.reg(ProcessingUnit::Register::C);
22 const u16 addr = cpu.get_hl();
23 mmu.write(addr, newValue);
25 return totalMachineCycles(2);
30 const u8 newValue = cpu.reg(ProcessingUnit::Register::D);
31 const u16 addr = cpu.get_hl();
32 mmu.write(addr, newValue);
34 return totalMachineCycles(2);
39 const u8 newValue = cpu.reg(ProcessingUnit::Register::E);
40 const u16 addr = cpu.get_hl();
41 mmu.write(addr, newValue);
43 return totalMachineCycles(2);
48 const u8 newValue = cpu.reg(ProcessingUnit::Register::H);
49 const u16 addr = cpu.get_hl();
50 mmu.write(addr, newValue);
52 return totalMachineCycles(2);
57 const u8 newValue = cpu.reg(ProcessingUnit::Register::L);
58 const u16 addr = cpu.get_hl();
59 mmu.write(addr, newValue);
61 return totalMachineCycles(2);
67 return totalMachineCycles(1);
72 const u8 newValue = cpu.reg(ProcessingUnit::Register::A);
73 const u16 addr = cpu.get_hl();
74 mmu.write(addr, newValue);
76 return totalMachineCycles(2);
81 cpu.reg(ProcessingUnit::Register::A) = cpu.reg(ProcessingUnit::Register::B);
83 return totalMachineCycles(1);
88 cpu.reg(ProcessingUnit::Register::A) = cpu.reg(ProcessingUnit::Register::C);
90 return totalMachineCycles(1);
95 cpu.reg(ProcessingUnit::Register::A) = cpu.reg(ProcessingUnit::Register::D);
97 return totalMachineCycles(1);
102 cpu.reg(ProcessingUnit::Register::A) = cpu.reg(ProcessingUnit::Register::E);
104 return totalMachineCycles(1);
109 cpu.reg(ProcessingUnit::Register::A) = cpu.reg(ProcessingUnit::Register::H);
111 return totalMachineCycles(1);
116 cpu.reg(ProcessingUnit::Register::A) = cpu.reg(ProcessingUnit::Register::L);
118 return totalMachineCycles(1);
123 cpu.reg(ProcessingUnit::Register::A) = mmu.read(cpu.get_hl());
125 return totalMachineCycles(2);
130 cpu.reg(ProcessingUnit::Register::A) = cpu.reg(ProcessingUnit::Register::A);
132 return totalMachineCycles(1);