GameBoy Emulator 1
Game Boy emulator core and tooling
Loading...
Searching...
No Matches
op_06.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_h_b(ProcessingUnit& cpu, MMU& mmu) // 0x60
11{
12 cpu.reg(ProcessingUnit::Register::H) = cpu.reg(ProcessingUnit::Register::B);
13
14 return totalMachineCycles(1);
15}
16
17int op_ld_h_c(ProcessingUnit& cpu, MMU& mmu) // 0x61
18{
19 cpu.reg(ProcessingUnit::Register::H) = cpu.reg(ProcessingUnit::Register::C);
20
21 return totalMachineCycles(1);
22}
23
24int op_ld_h_d(ProcessingUnit& cpu, MMU& mmu) // 0x62
25{
26 cpu.reg(ProcessingUnit::Register::H) = cpu.reg(ProcessingUnit::Register::D);
27
28 return totalMachineCycles(1);
29}
30
31int op_ld_h_e(ProcessingUnit& cpu, MMU& mmu) // 0x63
32{
33 cpu.reg(ProcessingUnit::Register::H) = cpu.reg(ProcessingUnit::Register::E);
34
35 return totalMachineCycles(1);
36}
37
38int op_ld_h_h(ProcessingUnit& cpu, MMU& mmu) // 0x64
39{
40 cpu.reg(ProcessingUnit::Register::H) = cpu.reg(ProcessingUnit::Register::H);
41
42 return totalMachineCycles(1);
43}
44
45int op_ld_h_l(ProcessingUnit& cpu, MMU& mmu) // 0x65
46{
47 cpu.reg(ProcessingUnit::Register::H) = cpu.reg(ProcessingUnit::Register::L);
48
49 return totalMachineCycles(1);
50}
51
52int op_ld_h_hl(ProcessingUnit& cpu, MMU& mmu) // 0x66
53{
54 cpu.reg(ProcessingUnit::Register::H) = mmu.read(cpu.get_hl());
55
56 return totalMachineCycles(2);
57}
58
59int op_ld_h_a(ProcessingUnit& cpu, MMU& mmu) // 0x67
60{
61 cpu.reg(ProcessingUnit::Register::H) = cpu.reg(ProcessingUnit::Register::A);
62
63 return totalMachineCycles(1);
64}
65
66int op_ld_l_b(ProcessingUnit& cpu, MMU& mmu) // 0x68
67{
68 cpu.reg(ProcessingUnit::Register::L) = cpu.reg(ProcessingUnit::Register::B);
69
70 return totalMachineCycles(1);
71}
72
73int op_ld_l_c(ProcessingUnit& cpu, MMU& mmu) // 0x69
74{
75 cpu.reg(ProcessingUnit::Register::L) = cpu.reg(ProcessingUnit::Register::C);
76
77 return totalMachineCycles(1);
78}
79
80int op_ld_l_d(ProcessingUnit& cpu, MMU& mmu) // 0x6A
81{
82 cpu.reg(ProcessingUnit::Register::L) = cpu.reg(ProcessingUnit::Register::D);
83
84 return totalMachineCycles(1);
85}
86
87int op_ld_l_e(ProcessingUnit& cpu, MMU& mmu) // 0x6B
88{
89 cpu.reg(ProcessingUnit::Register::L) = cpu.reg(ProcessingUnit::Register::E);
90
91 return totalMachineCycles(1);
92}
93
94int op_ld_l_h(ProcessingUnit& cpu, MMU& mmu) // 0x6C
95{
96 cpu.reg(ProcessingUnit::Register::L) = cpu.reg(ProcessingUnit::Register::H);
97
98 return totalMachineCycles(1);
99}
100
101int op_ld_l_l(ProcessingUnit& cpu, MMU& mmu) // 0x6D
102{
103 cpu.reg(ProcessingUnit::Register::L) = cpu.reg(ProcessingUnit::Register::L);
104
105 return totalMachineCycles(1);
106}
107
108int op_ld_l_hl(ProcessingUnit& cpu, MMU& mmu) // 0x6E
109{
110 cpu.reg(ProcessingUnit::Register::L) = mmu.read(cpu.get_hl());
111
112 return totalMachineCycles(2);
113}
114
115int op_ld_l_a(ProcessingUnit& cpu, MMU& mmu) // 0x6F
116{
117 cpu.reg(ProcessingUnit::Register::L) = cpu.reg(ProcessingUnit::Register::A);
118
119 return totalMachineCycles(1);
120}
Definition mmu.hpp:12