diff --git a/tests/test_memory_register.cpp b/tests/test_memory_register.cpp new file mode 100644 index 0000000..364bbf1 --- /dev/null +++ b/tests/test_memory_register.cpp @@ -0,0 +1,25 @@ +#include "doctest.h" + +#include +#include +#include +#include + +TEST_CASE("IE controllable via bus") +{ + u8 test_ram[] = { + 0x3E, 0xFF, // LD A, $0xFF + 0xE0, 0xFF, // LDH [FF:FF], A + }; + + Bus b; + Cpu cpu(&b); + + b.map_device(0x0000, 0x0004, new RAM(test_ram, 0x4, true)); + b.map_device(0xFFFF, 0xFFFF, new BoundRegister(cpu.state.IE)); + + cpu.step(); + cpu.step(); + + CHECK(cpu.state.IE == 0xFF); +}