Krolyxon
Commit 1fc09b9

Branches

Tags

Refs →

bench51srcmain.rs

36 lines · 670 B · Rust

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