summaryrefslogtreecommitdiff
path: root/lib/nes/cpu.hh
diff options
context:
space:
mode:
Diffstat (limited to 'lib/nes/cpu.hh')
-rw-r--r--lib/nes/cpu.hh13
1 files changed, 7 insertions, 6 deletions
diff --git a/lib/nes/cpu.hh b/lib/nes/cpu.hh
index 431cdf2..d5bc032 100644
--- a/lib/nes/cpu.hh
+++ b/lib/nes/cpu.hh
@@ -2,12 +2,13 @@
#include "nes/util/cycle-count.hh"
#include "nes/util/address.hh"
+#include "nes/util/status.hh"
namespace nes
{
class ppu;
class controller;
- class mapper;
+ class cartridge;
struct snapshot;
class cpu
@@ -17,7 +18,7 @@ namespace nes
cycle_count current_cycles_;
ppu& ppu_;
- mapper& mapper_;
+ cartridge& cartridge_;
controller& controller_1_;
controller& controller_2_;
std::uint8_t ram_[ram_size]{};
@@ -128,7 +129,7 @@ namespace nes
};
public:
- explicit cpu(ppu&, mapper&, controller& controller_1, controller& controller_2);
+ explicit cpu(ppu&, cartridge&, controller& controller_1, controller& controller_2);
cpu(cpu const&) = delete;
cpu(cpu&&) = delete;
@@ -139,7 +140,7 @@ namespace nes
auto build_snapshot(snapshot&) -> void;
auto stall_cycles(cycle_count) -> void;
auto trigger_nmi() -> void;
- auto step() -> void;
+ auto step() -> status;
auto is_nmi_pending() const -> bool { return nmi_pending_; } // XXX: Debugging
// Memory access
@@ -153,9 +154,9 @@ namespace nes
// Instructions
#define DEFINE_SIMPLE_INSTRUCTION(name) \
- auto run_##name() -> void;
+ auto run_##name() -> status;
#define DEFINE_OPERAND_INSTRUCTION(name) \
- template<addressing_mode Mode> auto run_##name() -> void;
+ template<addressing_mode Mode> auto run_##name() -> status;
DEFINE_OPERAND_INSTRUCTION(brk)
DEFINE_OPERAND_INSTRUCTION(ora)