43 lines
864 B
C++
43 lines
864 B
C++
#include <foot-emulator.h>
|
|
|
|
#include <iostream>
|
|
|
|
inline foot::Emulator run_instruction(uint32_t instruction)
|
|
{
|
|
foot::Emulator emu;
|
|
emu.memory_at(0) = instruction & 0xFFFF;
|
|
emu.memory_at(1) = (instruction >> 16) & 0xFFFF;
|
|
|
|
emu.run_instruction();
|
|
|
|
return emu;
|
|
}
|
|
|
|
inline foot::Emulator run_instructions(const std::vector<uint32_t>& instructions)
|
|
{
|
|
foot::Emulator emu;
|
|
for (int i = 0; i < instructions.size(); i++)
|
|
{
|
|
emu.memory_at(i * 2) = instructions[i] & 0xFFFF;
|
|
emu.memory_at(i * 2 + 1) = (instructions[i] >> 16) & 0xFFFF;
|
|
}
|
|
|
|
for (int i = 0; i < instructions.size(); i++)
|
|
{
|
|
emu.run_instruction();
|
|
}
|
|
|
|
return emu;
|
|
}
|
|
|
|
inline bool check(uint16_t expected, uint16_t actual)
|
|
{
|
|
if (actual != expected)
|
|
{
|
|
std::cout << std::hex << "Expected " << expected << ", got " << actual << ".\n";
|
|
return false;
|
|
}
|
|
|
|
return true;
|
|
}
|