mod common;
use common::{HaltReason, TestHarness, run_to_halt};
use mc6809_core::Cpu;
const BINARY: &[u8] = include_bytes!("../asm/mc6809_test.bin");
#[test]
fn mc6809_integration() {
let mut system = TestHarness::new();
system.load(BINARY, 0x0000);
let mut cpu = Cpu::new();
cpu.reset(&mut system);
match run_to_halt(&mut cpu, &mut system) {
HaltReason::Pass(_) => {}
HaltReason::Fail(test_num) => {
panic!(
"Assembly test {:02} FAILED (PC={:#06X}, cycles={})",
test_num,
cpu.registers().pc,
cpu.cycles(),
);
}
HaltReason::CycleLimit => {
panic!(
"Cycle limit exceeded without pass/fail signal (PC={:#06X})",
cpu.registers().pc,
);
}
}
}