Finishing addressing modes

This commit is contained in:
AnonymusRaccoon
2020-02-11 13:52:44 +01:00
parent fe04834731
commit 40d7ef1c39
3 changed files with 40 additions and 0 deletions
+24
View File
@@ -257,4 +257,28 @@ Test(AddrMode, DirectIndirectLong)
auto addr = pair.second.cpu->_getDirectIndirectLongAddr();
cr_assert_eq(addr, 0x8801EF, "Returned address was %x but was expecting 0x8801EF.", addr);
cr_assert_eq(pair.second.cpu->_registers.pac, 0x808001);
}
Test(AddrMode, StackRelative)
{
auto pair = Init();
pair.second.cpu->_registers.pac = 0x808000;
pair.second.cartridge->_data[0] = 0x06;
pair.second.cpu->_registers.s = 0x1010;
auto addr = pair.second.cpu->_getStackRelativeAddr();
cr_assert_eq(addr, 0x1016, "Returned address was %x but was expecting 0x1016.", addr);
cr_assert_eq(pair.second.cpu->_registers.pac, 0x808001);
}
Test(AddrMode, StackRelativeIndirectIndexed)
{
auto pair = Init();
pair.second.cpu->_registers.pac = 0x808000;
pair.second.cartridge->_data[0] = 0x06;
pair.second.cpu->_registers.s = 0x1010;
pair.second.cpu->_registers.y = 0x5;
pair.second.cpu->_registers.dbr = 0x88;
auto addr = pair.second.cpu->_getStackRelativeIndirectIndexedAddr();
cr_assert_eq(addr, 0x88101B, "Returned address was %x but was expecting 0x88101B.", addr);
cr_assert_eq(pair.second.cpu->_registers.pac, 0x808001);
}