Krolyxon
Commit 57bbca6

Branches

Tags

Refs →

bench51srcmain.rs

41 lines · 772 B · Rust

1mod assembler;
2mod cpu;
3mod instructions;
4mod memory;
5
6use std::io;
7
8use cpu::CPU;
9use memory::Memory;
10use clap::Parser;
11use crate::assembler::assembler;
12
13#[derive(Parser, Debug)]
14#[command(version, about, long_about = None)]
15struct Args {
16 #[arg(short, long)]
17 filename: String,
18}
19
20
21fn main() {
22 let args = Args::parse();
23
24 let mut cpu = CPU::default();
25 let mut mem = Memory::new();
26
27 let asm = std::fs::read_to_string(args.filename).unwrap();
28 let program = assembler(&asm);
29
30 for (i, byte) in program.iter().enumerate() {
31 mem.write(i as u16, *byte);
32 }
33
34 while !cpu.halted {
35 cpu.debug_instr(&mem);
36 cpu.step(&mut mem);
37
38 let mut buf = String::new();
39 io::stdin().read_line(&mut buf).unwrap();
40 }
41}