extern crate signal_hook;
use lc3_vm::hardware;
use lc3_vm::sys::terminal;
use std::env;
use std::error::Error;
use std::process;
fn main() -> Result<(), Box<Error>> {
terminal::spawn_control_c_handler()?;
match lc3_vm::handle_args(env::args()) {
Ok(mem) => {
hardware::execute_program(mem);
terminal::restore_terminal_settings();
Ok(())
}
Err(_) => {
terminal::restore_terminal_settings();
process::exit(1)
}
}
}