asmodeus_shared 0.1.0

Shared utilities and types for the Asmodeus Machine W ecosystem
Documentation
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub struct AddressingModeBits;

impl AddressingModeBits {
    pub const DIRECT: u8 = 0b000;
    pub const IMMEDIATE: u8 = 0b001;
    pub const INDIRECT: u8 = 0b010;
    pub const MULTIPLE_INDIRECT: u8 = 0b011;
    pub const REGISTER: u8 = 0b100;
    pub const REGISTER_INDIRECT: u8 = 0b101;
    pub const BASE_REGISTER: u8 = 0b110;
    pub const RELATIVE: u8 = 0b111;
}

pub mod addressing_mode_bits {
    pub const DIRECT: u8 = 0b000;
    pub const IMMEDIATE: u8 = 0b001;
    pub const INDIRECT: u8 = 0b010;
    pub const MULTIPLE_INDIRECT: u8 = 0b011;
    pub const REGISTER: u8 = 0b100;
    pub const REGISTER_INDIRECT: u8 = 0b101;
    pub const BASE_REGISTER: u8 = 0b110;
    pub const RELATIVE: u8 = 0b111;
}

pub fn is_valid_addressing_mode(mode: u8) -> bool {
    mode <= 7
}

pub fn is_valid_register(register: u8) -> bool {
    register <= 7
}