aboutsummaryrefslogtreecommitdiff
path: root/crates/nasm/src/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/nasm/src/main.rs')
-rw-r--r--crates/nasm/src/main.rs21
1 files changed, 8 insertions, 13 deletions
diff --git a/crates/nasm/src/main.rs b/crates/nasm/src/main.rs
index 0c754e3..c93dda0 100644
--- a/crates/nasm/src/main.rs
+++ b/crates/nasm/src/main.rs
@@ -4,7 +4,7 @@ use std::fs::File;
use std::io::{self, Read, Write};
use std::path::Path;
use xixanta::assembler::Assembler;
-use xixanta::mapping::{Mapping, EMPTY, NROM, NROM65, UXROM};
+use xixanta::mapping::get_mapping_configuration;
/// Assembler for the 6502 microprocessor that targets the NES/Famicom.
#[derive(ClapParser, Debug)]
@@ -76,18 +76,13 @@ fn main() -> Result<()> {
};
// Select the linker configuration.
- let mapping: Vec<Mapping> = match args.config {
- Some(c) => match c.to_lowercase().as_str() {
- "empty" => EMPTY.to_vec(),
- "nrom" => NROM.to_vec(),
- "nrom65" => NROM65.to_vec(),
- "uxrom" | "unrom" => UXROM.to_vec(),
- _ => {
- println!("Unknown linker configuration '{}'", c);
- std::process::exit(1);
- }
- },
- None => NROM.to_vec(),
+ let config = args.config.unwrap_or("nrom".to_string());
+ let mapping = match get_mapping_configuration(&config) {
+ Ok(cfg) => cfg,
+ Err(e) => {
+ eprintln!("error: {}", e);
+ std::process::exit(1);
+ }
};
// And assemble.