#![no_std]
include!("./bindings.rs");
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn lda_imm() {
unsafe {
let state = initAndResetChip();
assert!(!state.is_null());
memory[0xFFFC] = 0x00;
memory[0xFFFD] = 0x02;
memory[0x0200] = 0xA9;
memory[0x0201] = 0xEF;
let sp = readSP(state);
for _ in 0..9 {
step(state);
step(state);
}
assert_eq!(readSP(state), sp - 3);
assert_eq!(readPC(state), 0x0200);
let x = readX(state);
let y = readY(state);
step(state);
step(state);
assert_eq!(readIR(state), 0xA9);
assert_eq!(readRW(state), 1);
assert_eq!(readAddressBus(state), 0x201);
assert_eq!(readDataBus(state), 0xEF);
step(state);
step(state);
assert_eq!(readA(state), 0xEF);
assert_eq!(readX(state), x);
assert_eq!(readY(state), y);
assert_eq!(readP(state) & 0x02, 0);
assert_eq!(cycle, 22);
destroyChip(state);
}
}
}