GameBoy Emulator 1
Game Boy emulator core and tooling
Loading...
Searching...
No Matches
op_05.cpp
1#include "../../../../../include/ProcessingUnit.hpp"
2#include "../../../../../include/opcodes.hpp"
3#include "../../../../../include/mmu.hpp"
4
5constexpr int machine_cycles = 4;
6#define totalMachineCycles(n) ((n) * machine_cycles)
7
8#define DUMMY(name) int name(ProcessingUnit&, MMU&) { return totalMachineCycles(1); }
9
10int op_ld_d_b(ProcessingUnit& cpu, MMU& mmu) // 0x50
11{
12 cpu.reg(ProcessingUnit::Register::D) = cpu.reg(ProcessingUnit::Register::B);
13
14 return totalMachineCycles(1);
15}
16
17int op_ld_d_c(ProcessingUnit& cpu, MMU& mmu) // 0x51
18{
19 cpu.reg(ProcessingUnit::Register::D) = cpu.reg(ProcessingUnit::Register::C);
20
21 return totalMachineCycles(1);
22}
23
24int op_ld_d_d(ProcessingUnit& cpu, MMU& mmu) // 0x52
25{
26 cpu.reg(ProcessingUnit::Register::D) = cpu.reg(ProcessingUnit::Register::D);
27
28 return totalMachineCycles(1);
29}
30
31int op_ld_d_e(ProcessingUnit& cpu, MMU& mmu) // 0x53
32{
33 cpu.reg(ProcessingUnit::Register::D) = cpu.reg(ProcessingUnit::Register::E);
34
35 return totalMachineCycles(1);
36}
37
38int op_ld_d_h(ProcessingUnit& cpu, MMU& mmu) // 0x54
39{
40 cpu.reg(ProcessingUnit::Register::D) = cpu.reg(ProcessingUnit::Register::H);
41
42 return totalMachineCycles(1);
43}
44
45int op_ld_d_l(ProcessingUnit& cpu, MMU& mmu) // 0x55
46{
47 cpu.reg(ProcessingUnit::Register::D) = cpu.reg(ProcessingUnit::Register::L);
48
49 return totalMachineCycles(1);
50}
51
52int op_ld_d_hl(ProcessingUnit& cpu, MMU& mmu) // 0x56
53{
54 cpu.reg(ProcessingUnit::Register::D) = mmu.read(cpu.get_hl());
55
56 return totalMachineCycles(2);
57}
58
59int op_ld_d_a(ProcessingUnit& cpu, MMU& mmu) // 0x57
60{
61 cpu.reg(ProcessingUnit::Register::D) = cpu.reg(ProcessingUnit::Register::A);
62
63 return totalMachineCycles(1);
64}
65
66int op_ld_e_b(ProcessingUnit& cpu, MMU& mmu) // 0x58
67{
68 cpu.reg(ProcessingUnit::Register::E) = cpu.reg(ProcessingUnit::Register::B);
69
70 return totalMachineCycles(1);
71}
72
73int op_ld_e_c(ProcessingUnit& cpu, MMU& mmu) // 0x59
74{
75 cpu.reg(ProcessingUnit::Register::E) = cpu.reg(ProcessingUnit::Register::C);
76
77 return totalMachineCycles(1);
78}
79
80int op_ld_e_d(ProcessingUnit& cpu, MMU& mmu) // 0x5A
81{
82 cpu.reg(ProcessingUnit::Register::E) = cpu.reg(ProcessingUnit::Register::D);
83
84 return totalMachineCycles(1);
85}
86
87int op_ld_e_e(ProcessingUnit& cpu, MMU& mmu) // 0x5B
88{
89 cpu.reg(ProcessingUnit::Register::E) = cpu.reg(ProcessingUnit::Register::E);
90
91 return totalMachineCycles(1);
92}
93
94int op_ld_e_h(ProcessingUnit& cpu, MMU& mmu) // 0x5C
95{
96 cpu.reg(ProcessingUnit::Register::E) = cpu.reg(ProcessingUnit::Register::H);
97
98 return totalMachineCycles(1);
99}
100
101int op_ld_e_l(ProcessingUnit& cpu, MMU& mmu) // 0x5D
102{
103 cpu.reg(ProcessingUnit::Register::E) = cpu.reg(ProcessingUnit::Register::L);
104
105 return totalMachineCycles(1);
106}
107
108int op_ld_e_hl(ProcessingUnit& cpu, MMU& mmu) // 0x5E
109{
110 cpu.reg(ProcessingUnit::Register::E) = mmu.read(cpu.get_hl());
111
112 return totalMachineCycles(2);
113}
114
115int op_ld_e_a(ProcessingUnit& cpu, MMU& mmu) // 0x5F
116{
117 cpu.reg(ProcessingUnit::Register::E) = cpu.reg(ProcessingUnit::Register::A);
118
119 return totalMachineCycles(1);
120}
Definition mmu.hpp:12