use std::borrow::ToOwned; use std::clone::Clone; use std::net::ToSocketAddrs; use std::string::ToString; pub const CHIP8_REGISTER_COUNT: i32 = 16; pub const CHIP8_MEMORY_SIZE: i32 = 4096i32; pub const CHIP8_VIDEO_WIDTH: i32 = 64i32; pub const CHIP8_VIDEO_HEIGHT: i32 = 32i32; pub const CHIP8_VIDEO_MEMORY: usize = (CHIP8_VIDEO_HEIGHT * CHIP8_VIDEO_WIDTH) as usize; pub const CHIP8_ROM_SIZE: usize = 512; pub const LABEL_QUIRK_CHIP8: &str = "Chip8"; pub const LABEL_QUIRK_XOCHIP: &str = "XO Chip"; pub const LABEL_QUIRK_SCHIP: &str = "SChip-Modern"; pub const BASE_ROOT: &'static str = &(env!("CARGO_MANIFEST_DIR")); pub const RESOURCES_ROOT: &'static str = concat!(env!("CARGO_MANIFEST_DIR"), "/../resources"); pub const TESTS_ROOT: &'static str = concat!(env!("CARGO_MANIFEST_DIR"), "/../resources/test"); pub const TEST_ROM_ROOT: &'static str =concat!(env!("CARGO_MANIFEST_DIR"), "/../resources/test/roms"); pub const CHIP8_KEYBOARD: [[u8; 4]; 4] = [ [0x01, 0x02, 0x03, 0x0C], [0x04, 0x05, 0x06, 0x0D], [0x07, 0x08, 0x09, 0x0E], [0x0A, 0x00, 0x0B, 0x0F], ]; pub const SCHIP_VIDEO_HEIGHT: i32 = 64; pub const SCHIP_VIDEO_WIDTH: i32 = 128; pub const SCHIP_VIDE_MEMORY: usize = (SCHIP_VIDEO_HEIGHT * SCHIP_VIDEO_WIDTH) as usize; pub const INST_ADDI: &str = "ADDI"; pub const INST_ADD: &str = "ADD"; pub const INST_ADDR: &str = "ADDR"; pub const INST_AND: &str = "AND"; pub const INST_CLS: &str = "CLS"; pub const INST_CALL: &str = "CALL"; pub const INST_DRW: &str = "DRW"; pub const INST_EXIT: &str = "EXIT"; pub const INST_JPA: &str = "JPA"; pub const INST_JPI: &str = "JPI"; pub const INST_JPX: &str = "JPX"; pub const INST_BCD: &str = "BCD"; pub const INST_LDD: &str = "LDD"; pub const INST_LDF: &str = "LDF"; pub const INST_LDF2: &str = "LDF2"; pub const INST_LDIA: &str = "LDIA"; pub const INST_LDIX: &str = "LDIX"; pub const INST_LIDR: &str = "LIDR"; pub const INST_LDIS: &str = "LDIS"; pub const INST_LDR: &str = "LDR"; pub const INST_LDRD: &str = "LDRD"; pub const INST_LDRI: &str = "LDRI"; pub const INST_LDRK: &str = "LDRK"; pub const INST_LDRY: &str = "LDRY"; pub const INST_OR: &str = "OR"; pub const INST_RET: &str = "RET"; pub const INST_RND: &str = "RND"; pub const INST_SCD: &str = "SCD"; pub const INST_SCR: &str = "SCR"; pub const INST_SCL: &str = "SCL"; pub const INST_SEX: &str = "SEX"; pub const INST_SEY: &str = "SEY"; pub const INST_SHL: &str = "SHL"; pub const INST_SHR: &str = "SHR"; pub const INST_SKP: &str = "SKP"; pub const INST_SKNP: &str = "SKNP"; pub const INST_SNEB: &str = "SNEB"; pub const INST_SNEY: &str = "SNEY"; pub const INST_STR: &str = "STR"; pub const INST_SUB: &str = "SUB"; pub const INST_SUBC: &str = "SUBC"; pub const INST_SYS: &str = "SYS"; pub const INST_LOW: &str = "LOW"; pub const INST_HIGH: &str = "HIGH"; pub const INST_ORY: &str = "ORY"; pub const INST_SCU: &str = "SCU"; /// Data Word /// Data to be loaded to memory for application use pub const INST_DW: &str = "DW"; pub const XXXXERRORINSTRUCTION_ENCODED: u16 = 0x0000; pub const CHIP8_PROGRAM_LOAD_OFFSET: i32 = 0x200; pub const CHIP8FONT_0: [u8; 5] = [0xF0, 0x90, 0x90, 0x90, 0xF0]; pub const CHIP8FONT_1: [u8; 5] = [0x20, 0x60, 0x20, 0x20, 0x70]; pub const CHIP8FONT_2: [u8; 5] = [0xF0, 0x10, 0xF0, 0x80, 0xF0]; pub const CHIP8FONT_3: [u8; 5] = [0xF0, 0x10, 0xF0, 0x10, 0xF0]; pub const CHIP8FONT_4: [u8; 5] = [0x90, 0x90, 0xF0, 0x10, 0x10]; pub const CHIP8FONT_5: [u8; 5] = [0xF0, 0x80, 0xF0, 0x10, 0xF0]; pub const CHIP8FONT_6: [u8; 5] = [0xF0, 0x80, 0xF0, 0x90, 0xF0]; pub const CHIP8FONT_7: [u8; 5] = [0xF0, 0x10, 0x20, 0x40, 0x40]; pub const CHIP8FONT_8: [u8; 5] = [0xF0, 0x90, 0xF0, 0x90, 0xF0]; pub const CHIP8FONT_9: [u8; 5] = [0xF0, 0x90, 0xF0, 0x10, 0xF0]; pub const CHIP8FONT_A: [u8; 5] = [0xF0, 0x90, 0xF0, 0x90, 0x90]; pub const CHIP8FONT_B: [u8; 5] = [0xE0, 0x90, 0xE0, 0x90, 0xE0]; pub const CHIP8FONT_C: [u8; 5] = [0xF0, 0x80, 0x80, 0x80, 0xF0]; pub const CHIP8FONT_D: [u8; 5] = [0xE0, 0x90, 0x90, 0x90, 0xE0]; pub const CHIP8FONT_E: [u8; 5] = [0xF0, 0x80, 0xF0, 0x80, 0xF0]; pub const CHIP8FONT_F: [u8; 5] = [0xF0, 0x80, 0xF0, 0x80, 0x80]; pub const SCHIPFONT_OFFSET: u32 = 0x81; pub const SCHIPFONT_0: [u8; 0x0A] = [0xF0, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0xF0]; pub const SCHIPFONT_1: [u8; 0x0A] = [0x20, 0x60, 0xA0, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x70]; pub const SCHIPFONT_2: [u8; 0x0A] = [0xF0, 0x10, 0x10, 0x10, 0xF0, 0x80, 0x80, 0x80, 0x80, 0xF0]; pub const SCHIPFONT_3: [u8; 0x0A] = [0xF0, 0x10, 0x10, 0x10, 0xF0, 0x10, 0x10, 0x10, 0x10, 0xF0]; pub const SCHIPFONT_4: [u8; 0x0A] = [0x90, 0x90, 0x90, 0x90, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x10]; pub const SCHIPFONT_5: [u8; 0x0A] = [0xF0, 0x80, 0x80, 0x80, 0xF0, 0x10, 0x10, 0x10, 0x10, 0xF0]; pub const SCHIPFONT_6: [u8; 0x0A] = [0xF0, 0x80, 0x80, 0x80, 0xF0, 0x90, 0x90, 0x90, 0x90, 0xF0]; pub const SCHIPFONT_7: [u8; 0x0A] = [0xF0, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10]; pub const SCHIPFONT_8: [u8; 0x0A] = [0xF0, 0x90, 0x90, 0x90, 0xF0, 0x90, 0x90, 0x90, 0x90, 0xF0]; pub const SCHIPFONT_9: [u8; 0x0A] = [0xF0, 0x90, 0x90, 0x90, 0xF0, 0x10, 0x10, 0x10, 0x10, 0xF0]; pub const SCHIPFONT_A: [u8; 0x0A] = [0xF0, 0x90, 0x90, 0x90, 0xF0, 0x90, 0x90, 0x90, 0x90, 0x90]; pub const SCHIPFONT_B: [u8; 0x0A] = [0xE0, 0x90, 0x90, 0x90, 0xE0, 0x90, 0x90, 0x90, 0x90, 0xE0]; pub const SCHIPFONT_C: [u8; 0x0A] = [0xF0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0xF0]; pub const SCHIPFONT_D: [u8; 0x0A] = [0xE0, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0xE0]; pub const SCHIPFONT_E: [u8; 0x0A] = [0xF0, 0x80, 0x80, 0x80, 0xF0, 0x80, 0x80, 0x80, 0x80, 0xF0]; pub const SCHIPFONT_F: [u8; 0x0A] = [0xF0, 0x80, 0x80, 0x80, 0xF0, 0x80, 0x80, 0x80, 0x80, 0x80];