chip-eight 0.1.5

A chip 8 interpreter/emulator with no display or input implemented. Input and display are instead provided by traits for the user to implement on any input or display device
Documentation
pub const FONT_ADDR: usize = 0x50;
pub const BIG_FONT_ADDR: usize = 0x50 << 1;

pub const FONT: [u8; 80] = [
    0xF0, 0x90, 0x90, 0x90, 0xF0, // 0
    0x20, 0x60, 0x20, 0x20, 0x70, // 1
    0xF0, 0x10, 0xF0, 0x80, 0xF0, // 2
    0xF0, 0x10, 0xF0, 0x10, 0xF0, // 3
    0x90, 0x90, 0xF0, 0x10, 0x10, // 4
    0xF0, 0x80, 0xF0, 0x10, 0xF0, // 5
    0xF0, 0x80, 0xF0, 0x90, 0xF0, // 6
    0xF0, 0x10, 0x20, 0x40, 0x40, // 7
    0xF0, 0x90, 0xF0, 0x90, 0xF0, // 8
    0xF0, 0x90, 0xF0, 0x10, 0xF0, // 9
    0xF0, 0x90, 0xF0, 0x90, 0x90, // A
    0xE0, 0x90, 0xE0, 0x90, 0xE0, // B
    0xF0, 0x80, 0x80, 0x80, 0xF0, // C
    0xE0, 0x90, 0x90, 0x90, 0xE0, // D
    0xF0, 0x80, 0xF0, 0x80, 0xF0, // E
    0xF0, 0x80, 0xF0, 0x80, 0x80, // F
];

#[rustfmt::skip]
pub const BIG_FONT: [u8; 160] = [
    // 0
    0b00111100,
    0b01100110,
    0b11000011,
    0b11000011,
    0b11000011,
    0b11000011,
    0b11000011,
    0b11000011,
    0b01100110,
    0b00111100,

    // 1
    0b00011000,
    0b00111000,
    0b01111000,
    0b00111000,
    0b00111000,
    0b00111000,
    0b00111000,
    0b00111000,
    0b11111111,
    0b11111111,

    // 2
    0b11111111,
    0b11111111,
    0b00000011,
    0b00000011,
    0b11111111,
    0b11111111,
    0b11000000,
    0b11000000,
    0b11111111,
    0b11111111,

    // 3
    0b11111111,
    0b11111111,
    0b00000011,
    0b00000011,
    0b11111111,
    0b11111111,
    0b00000011,
    0b00000011,
    0b11111111,
    0b11111111,
    
    // 4
    0b11000011,
    0b11000011,
    0b11000011,
    0b11000011,
    0b11111111,
    0b11111111,
    0b00000011,
    0b00000011,
    0b00000011,
    0b00000011,

    // 5
    0b11111111,
    0b11111111,
    0b11000000,
    0b11000000,
    0b11111111,
    0b11111111,
    0b00000011,
    0b00000011,
    0b11111111,
    0b11111111,

    // 6
    0b11111111,
    0b11111111,
    0b11000000,
    0b11000000,
    0b11111111,
    0b11111111,
    0b11000011,
    0b11000011,
    0b11111111,
    0b11111111,

    // 7
    0b11111111,
    0b11111111,
    0b00000011,
    0b00000011,
    0b00000011,
    0b00000011,
    0b00000011,
    0b00000011,
    0b00000011,
    0b00000011,

    // 8
    0b11111111,
    0b11111111,
    0b11000011,
    0b11000011,
    0b11111111,
    0b11111111,
    0b11000011,
    0b11000011,
    0b11111111,
    0b11111111,

    // 9
    0b11111111,
    0b11111111,
    0b11000011,
    0b11000011,
    0b11111111,
    0b11111111,
    0b00000011,
    0b00000011,
    0b11111111,
    0b11111111,

    // A
    0b11111111,
    0b11111111,
    0b11000011,
    0b11000011,
    0b11111111,
    0b11111111,
    0b11000011,
    0b11000011,
    0b11000011,
    0b11000011,

    // B
    0b11111100,
    0b11111110,
    0b11000011,
    0b11000110,
    0b11111110,
    0b11111110,
    0b11000110,
    0b11000011,
    0b11111110,
    0b11111100,

    // C
    0b11111111,
    0b11111111,
    0b11000000,
    0b11000000,
    0b11000000,
    0b11000000,
    0b11000000,
    0b11000000,
    0b11111111,
    0b11111111,

    // D
    0b11111100,
    0b11111110,
    0b11000110,
    0b11000011,
    0b11000011,
    0b11000011,
    0b11000011,
    0b11000110,
    0b11111110,
    0b11111100,

    // E
    0b11111111,
    0b11111110,
    0b11000000,
    0b11000000,
    0b11111111,
    0b11111111,
    0b11000000,
    0b11000000,
    0b11111111,
    0b11111111,

    // F
    0b11111111,
    0b11111110,
    0b11000000,
    0b11000000,
    0b11111111,
    0b11111111,
    0b11000000,
    0b11000000,
    0b11000000,
    0b11000000,
];