aboutsummaryrefslogtreecommitdiff
path: root/src/main.rs
blob: 811e0cf1f674303f240237cbfd0d2e814bd28f3a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
mod assembler;
mod cpu;
mod instructions;
mod memory;

use cpu::CPU;
use memory::Memory;

use crate::assembler::assembler;

fn main() {
    let mut cpu = CPU::default();
    let mut mem = Memory::new();

    let asm = std::fs::read_to_string("program.asm").unwrap();
    let program = assembler(&asm);

    for (i, byte) in program.iter().enumerate() {
        mem.write(i as u16, *byte);
    }

    while !cpu.halted {
        cpu.step(&mut mem);
        println!("{:?}", cpu);
    }
}