use c64_assembler::builder::ApplicationBuilder;
use c64_assembler::builder::InstructionBuilder;
use c64_assembler::builder::ModuleBuilder;
use c64_assembler::generator::Generator;
use c64_assembler::generator::{print_hexdump, ProgramGenerator};
use c64_assembler::validator::AssemblerResult;
fn main() -> AssemblerResult<()> {
let zeropage_fe = "ADDRESS_ZEROPAGE_FE";
let address_c000 = "ADDRESS_C000";
let application = ApplicationBuilder::default()
.name("Defines example")
.define_address(address_c000, 0xC000)
.define_address(zeropage_fe, 0xFE)
.module(
ModuleBuilder::default()
.name("main")
.instructions(
InstructionBuilder::default()
.lda_addr(address_c000)
.lda_addr(zeropage_fe)
.build(),
)
.build(),
)
.build()?;
let bytes = ProgramGenerator::default().generate(application)?;
print_hexdump(&bytes);
Ok(())
}