iz80 0.5.1

Z80 and 8080 emulator
Documentation
use iz80::*;

#[test]
fn test_serialization_deserialization() {
    let mut cpu = Cpu::new();

    cpu.registers().set8(Reg8::A, 0x12);
    cpu.registers().set8(Reg8::F, 0x23);
    cpu.registers().set8(Reg8::B, 0x34);
    cpu.registers().set8(Reg8::C, 0x56);
    cpu.registers().set8(Reg8::D, 0x78);
    cpu.registers().set8(Reg8::E, 0x9a);
    cpu.registers().set8(Reg8::H, 0xbc);
    cpu.registers().set8(Reg8::L, 0xde);
    cpu.registers().set8(Reg8::I, 0xf0);
    cpu.registers().set8(Reg8::R, 0x12);
    cpu.registers().set8(Reg8::IXH, 0x34);
    cpu.registers().set8(Reg8::IXL, 0x56);
    cpu.registers().set8(Reg8::IYH, 0x78);
    cpu.registers().set8(Reg8::IYL, 0x9a);
    cpu.registers().set8(Reg8::SPH, 0xbc);
    cpu.registers().set8(Reg8::SPL, 0xde);
    cpu.registers().set_pc(0xabcd);


    let serialized = cpu.serialize();
    let mut cpu2 = Cpu::new();
    let result = cpu2.deserialize(&serialized);

    assert!(result.is_ok());

    assert_eq!(0x12, cpu2.registers().get8(Reg8::A), "Bad serialization of register A");
    assert_eq!(0x23, cpu2.registers().get8(Reg8::F), "Bad serialization of register F");
    assert_eq!(0x34, cpu2.registers().get8(Reg8::B), "Bad serialization of register B");
    assert_eq!(0x56, cpu2.registers().get8(Reg8::C), "Bad serialization of register C");
    assert_eq!(0x78, cpu2.registers().get8(Reg8::D), "Bad serialization of register D");
    assert_eq!(0x9a, cpu2.registers().get8(Reg8::E), "Bad serialization of register E");
    assert_eq!(0xbc, cpu2.registers().get8(Reg8::H), "Bad serialization of register H");
    assert_eq!(0xde, cpu2.registers().get8(Reg8::L), "Bad serialization of register L");
    assert_eq!(0xf0, cpu2.registers().get8(Reg8::I), "Bad serialization of register I");
    assert_eq!(0x12, cpu2.registers().get8(Reg8::R), "Bad serialization of register R");
    assert_eq!(0x34, cpu2.registers().get8(Reg8::IXH), "Bad serialization of register IXH");
    assert_eq!(0x56, cpu2.registers().get8(Reg8::IXL), "Bad serialization of register IXL");
    assert_eq!(0x78, cpu2.registers().get8(Reg8::IYH), "Bad serialization of register IYH");
    assert_eq!(0x9a, cpu2.registers().get8(Reg8::IYL), "Bad serialization of register IYL");
    assert_eq!(0xbc, cpu2.registers().get8(Reg8::SPH), "Bad serialization of register SPH");
    assert_eq!(0xde, cpu2.registers().get8(Reg8::SPL), "Bad serialization of register SPL");
    assert_eq!(0xabcd, cpu2.registers().pc(), "Bad serialization of register PC");
 
}