From c6c9aa4e5f3e5a01fcb9ccabf6dbd2f6da277650 Mon Sep 17 00:00:00 2001 From: Miquel Sabaté Solà Date: Mon, 15 Jul 2024 08:55:57 +0200 Subject: Add the notion of mapping MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Mappings and segments are fundamental blocks on how code is distributed both on the actual ROM File and in the memory layout. Signed-off-by: Miquel Sabaté Solà --- crates/nasm/src/main.rs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'crates/nasm/src/main.rs') diff --git a/crates/nasm/src/main.rs b/crates/nasm/src/main.rs index 9f26417..579ec02 100644 --- a/crates/nasm/src/main.rs +++ b/crates/nasm/src/main.rs @@ -3,6 +3,8 @@ use clap::Parser as ClapParser; use std::fs::File; use std::io::{self, Read, Write}; use xixanta::assembler::Assembler; +use xixanta::instruction::Fill; +use xixanta::mapping::Segment; /// Assembler for the 6502 microprocessor that targets the NES. #[derive(ClapParser, Debug)] @@ -30,7 +32,13 @@ struct Args { fn main() -> Result<()> { let args = Args::parse(); - let mut assembler = Assembler::new(); + // TODO: provide a handier way for this. + let mut assembler = Assembler::new(vec![Segment { + name: String::from("CODE"), + start: 0x00, + size: 0x10000, + fill_value: Some(Fill { value: 0x00 }), + }]); // Select the input stream. let input: Box = match args.file { -- cgit v1.2.3