allow booting bootrom

This commit is contained in:
Alex Janka 2023-01-16 14:43:11 +11:00
parent bbc05c48c7
commit ca839d9375

View file

@ -17,6 +17,10 @@ struct Args {
/// BootROM path /// BootROM path
#[arg(short, long)] #[arg(short, long)]
bootrom: String, bootrom: String,
/// Just run BootROM
#[arg(long)]
run_bootrom: bool,
} }
type Address = u16; type Address = u16;
@ -156,10 +160,18 @@ fn main() {
let args = Args::parse(); let args = Args::parse();
let rom: ROM = fs::read(args.rom).expect("Could not load ROM"); let rom: ROM = fs::read(args.rom).expect("Could not load ROM");
let _bootrom: ROM = fs::read(args.bootrom).expect("Could not load BootROM"); let bootrom: ROM = fs::read(args.bootrom).expect("Could not load BootROM");
let mut state = State::default();
let run_rom = if args.run_bootrom {
state.pc = Register { as_u16: 0x0 };
bootrom
} else {
rom
};
let mut cpu = CPU { let mut cpu = CPU {
memory: Memory::init(rom), memory: Memory::init(run_rom),
state: State::default(), state,
}; };
loop { loop {
cpu.exec_next(); cpu.exec_next();