dustbox 0.0.1

PC x86 emulator with the goal of easily running MS-DOS games on Windows, macOS and Linux.
Documentation
use crate::memory::mmu::MemoryAddress;

#[test]
fn can_handle_real_mode_addressing() {
    let ma = MemoryAddress::RealSegmentOffset(0xC000, 0x0000);
    assert_eq!(0xC_0000, ma.value());
    assert_eq!(0xC000, ma.segment());
    assert_eq!(0x0000, ma.offset());

    assert_eq!(0x86FF, MemoryAddress::RealSegmentOffset(0x085F, 0x10F).value());
    assert_eq!(0x8700, MemoryAddress::RealSegmentOffset(0x085F, 0x110).value());
}

#[test]
fn can_convert_to_long_pair() {
    let ma = MemoryAddress::LongSegmentOffset(0xC000, 0x0000);
    assert_eq!(0xC000_0000, ma.value());
    assert_eq!(0xC000, ma.segment());
    assert_eq!(0x0000, ma.offset());
}

#[test]
fn resolve_real_addressing() {
    let ma1 = MemoryAddress::RealSegmentOffset(0x0000, 0x046C);
    let ma2 = MemoryAddress::RealSegmentOffset(0x0040, 0x006C);
    assert_eq!(ma1.value(), ma2.value());
}