diff --git a/main.cpp b/main.cpp index 73cd60a..926e55e 100644 --- a/main.cpp +++ b/main.cpp @@ -131,6 +131,9 @@ int run_cpu_validation(console *const cnsl, const std::string & filename) for(int i=0; i<4; i++) c->set_stackpointer(i, get_register_value(before, format("stack-%d", i))); + b->getMMU()->setMMR1(get_register_value(before, "mmr1")); + b->getMMU()->setMMR2(get_register_value(before, "mmr2")); + // registers for(int set=0; set<2; set++) { for(int i=0; i<6; i++) @@ -170,6 +173,9 @@ int run_cpu_validation(console *const cnsl, const std::string & filename) for(int i=0; i<4; i++) cur_n_errors += !compare_values(cnsl, c->get_stackpointer(i), get_register_value(after, format("stack-%d", i)), format("Stack pointer %d", i)); + cur_n_errors += !compare_values(cnsl, b->getMMU()->getMMR1(), get_register_value(after, "mmr1"), "MMR1"); + cur_n_errors += !compare_values(cnsl, b->getMMU()->getMMR2(), get_register_value(after, "mmr2"), "MMR2"); + for(int set=0; set<2; set++) { for(int i=0; i<6; i++) cur_n_errors += !compare_values(cnsl, c->lowlevel_register_get(set, i), get_register_value(after, format("reg-%d.%d", i, set)), format("Register %d", i)); diff --git a/mmu.cpp b/mmu.cpp index d34a345..b3766f0 100644 --- a/mmu.cpp +++ b/mmu.cpp @@ -126,6 +126,11 @@ void mmu::clearMMR0Bit(const int bit) MMR0 &= ~(1 << bit); } +void mmu::setMMR1(const uint16_t value) +{ + MMR1 = value; +} + void mmu::setMMR2(const uint16_t value) { MMR2 = value;