Make disassembly available from the checking code.

This commit is contained in:
Adrian Conlon 2024-01-11 09:17:59 +00:00
parent 6d7fc70810
commit 63e958e069
2 changed files with 10 additions and 4 deletions

View File

@ -186,9 +186,13 @@ void checker_t::pushCurrentMessage() {
os().str("");
}
void checker_t::disassemble(uint16_t address) {
std::string checker_t::disassemble(uint16_t address) {
return m_disassembler.disassemble(address);
}
void checker_t::add_disassembly(uint16_t address) {
try {
os() << m_disassembler.disassemble(address);
os() << disassemble(address);
}
catch (const std::domain_error& error) {
os() << "Disassembly problem: " << error.what();
@ -220,7 +224,7 @@ void checker_t::check(test_t test) {
if (invalid() && implemented()) {
disassemble(pc);
add_disassembly(pc);
const auto final = test.final();
raise("PC", final.pc(), cpu.PC().word);

View File

@ -56,7 +56,7 @@ private:
void addActualReadCycle(EightBit::register16_t address, uint8_t value);
void addActualWriteCycle(EightBit::register16_t address, uint8_t value);
void disassemble(uint16_t address);
void add_disassembly(uint16_t address);
template<class T>
void dumpCycle(const uint16_t address, const uint8_t value, const T action) {
@ -91,5 +91,7 @@ public:
void initialise();
[[nodiscard]] std::string disassemble(uint16_t address);
void check(test_t test);
};