Krolyxon
Commit 4251847

Branches

Tags

Refs →

bench51srcmain.rs

43 lines · 817 B · Rust

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