adding memory read
This commit is contained in:
20
src/main.rs
20
src/main.rs
@ -1,3 +1,5 @@
|
|||||||
|
const PC_START: u16 = 0x3000;
|
||||||
|
|
||||||
#[allow(dead_code)]
|
#[allow(dead_code)]
|
||||||
enum Registers {
|
enum Registers {
|
||||||
R0 = 0,
|
R0 = 0,
|
||||||
@ -41,7 +43,21 @@ enum ConditionFlags {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
let _memory:[u16; 1 << 16];
|
let _memory:[u16; 1 << 16] = [0; 1 << 16];
|
||||||
let _registers:[u16; Registers::COUNT as usize];
|
let mut registers:[u16; Registers::COUNT as usize] = [0; Registers::COUNT as usize];
|
||||||
|
|
||||||
|
registers[Registers::COND as usize] = ConditionFlags::ZERO as u16;
|
||||||
|
registers[Registers::PC as usize] = PC_START;
|
||||||
|
|
||||||
|
// set running state
|
||||||
|
let mut running:bool = true;
|
||||||
|
while running {
|
||||||
|
let index: u16 = registers[Registers::PC as usize];
|
||||||
|
let mut instr:u16 = _memory[index as usize];
|
||||||
|
registers[Registers::PC as usize] += 1;
|
||||||
|
match instr >> 12 {
|
||||||
|
op if op == Opcodes::ADD as u16 => todo!(),
|
||||||
|
_ => todo!(),
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user