GameBoy Emulator 1
Game Boy emulator core and tooling
Loading...
Searching...
No Matches
op_04.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_b_b(ProcessingUnit& cpu, MMU& mmu) // 0x40
11{
12 cpu.reg(ProcessingUnit::Register::B) = cpu.reg(ProcessingUnit::Register::B);
13
14 return totalMachineCycles(1);
15}
16
17int op_ld_b_c(ProcessingUnit& cpu, MMU& mmu) // 0x41
18{
19 cpu.reg(ProcessingUnit::Register::B) = cpu.reg(ProcessingUnit::Register::C);
20
21 return totalMachineCycles(1);
22}
23
24int op_ld_b_d(ProcessingUnit& cpu, MMU& mmu) // 0x42
25{
26 cpu.reg(ProcessingUnit::Register::B) = cpu.reg(ProcessingUnit::Register::D);
27
28 return totalMachineCycles(1);
29}
30
31int op_ld_b_e(ProcessingUnit& cpu, MMU& mmu) // 0x43
32{
33 cpu.reg(ProcessingUnit::Register::B) = cpu.reg(ProcessingUnit::Register::E);
34
35 return totalMachineCycles(1);
36}
37
38int op_ld_b_h(ProcessingUnit& cpu, MMU& mmu) // 0x44
39{
40 cpu.reg(ProcessingUnit::Register::B) = cpu.reg(ProcessingUnit::Register::H);
41
42 return totalMachineCycles(1);
43}
44
45int op_ld_b_l(ProcessingUnit& cpu, MMU& mmu) // 0x45
46{
47 cpu.reg(ProcessingUnit::Register::B) = cpu.reg(ProcessingUnit::Register::L);
48
49 return totalMachineCycles(1);
50}
51
52int op_ld_b_hl(ProcessingUnit& cpu, MMU& mmu) // 0x46
53{
54 cpu.reg(ProcessingUnit::Register::B) = mmu.read(cpu.get_hl());
55
56 return totalMachineCycles(2);
57}
58
59int op_ld_b_a(ProcessingUnit& cpu, MMU& mmu) // 0x47
60{
61 cpu.reg(ProcessingUnit::Register::B) = cpu.reg(ProcessingUnit::Register::A);
62
63 return totalMachineCycles(1);
64}
65
66int op_ld_c_b(ProcessingUnit& cpu, MMU& mmu) // 0x48
67{
68 cpu.reg(ProcessingUnit::Register::C) = cpu.reg(ProcessingUnit::Register::B);
69
70 return totalMachineCycles(1);
71}
72
73int op_ld_c_c(ProcessingUnit& cpu, MMU& mmu) // 0x49
74{
75 cpu.reg(ProcessingUnit::Register::C) = cpu.reg(ProcessingUnit::Register::C);
76
77 return totalMachineCycles(1);
78}
79
80int op_ld_c_d(ProcessingUnit& cpu, MMU& mmu) // 0x4A
81{
82 cpu.reg(ProcessingUnit::Register::C) = cpu.reg(ProcessingUnit::Register::D);
83
84 return totalMachineCycles(1);
85}
86
87int op_ld_c_e(ProcessingUnit& cpu, MMU& mmu) // 0x4B
88{
89 cpu.reg(ProcessingUnit::Register::C) = cpu.reg(ProcessingUnit::Register::E);
90
91 return totalMachineCycles(1);
92}
93
94int op_ld_c_h(ProcessingUnit& cpu, MMU& mmu) // 0x4C
95{
96 cpu.reg(ProcessingUnit::Register::C) = cpu.reg(ProcessingUnit::Register::H);
97
98 return totalMachineCycles(1);
99}
100
101int op_ld_c_l(ProcessingUnit& cpu, MMU& mmu) // 0x4D
102{
103 cpu.reg(ProcessingUnit::Register::C) = cpu.reg(ProcessingUnit::Register::L);
104
105 return totalMachineCycles(1);
106}
107
108int op_ld_c_hl(ProcessingUnit& cpu, MMU& mmu) // 0x4E
109{
110 cpu.reg(ProcessingUnit::Register::C) = mmu.read(cpu.get_hl());
111
112 return totalMachineCycles(2);
113}
114
115int op_ld_c_a_4f(ProcessingUnit& cpu, MMU& mmu) // 0x4F
116{
117 cpu.reg(ProcessingUnit::Register::C) = cpu.reg(ProcessingUnit::Register::A);
118
119 return totalMachineCycles(1);
120}
Definition mmu.hpp:12