Skip to main content

label_debug/
label_debug.rs

1use uxn_tal::{Assembler, AssemblerError};
2
3fn main() -> Result<(), AssemblerError> {
4    let source = r#"
5        |0100 @start
6        ;data LDA2
7        BRK
8        @data #1234
9    "#;
10
11    let mut assembler = Assembler::new();
12    let rom = assembler.assemble(source, Some("label_debug.rs".to_owned()))?;
13
14    println!("ROM bytes ({} total):", rom.len());
15    for (i, &byte) in rom.iter().enumerate() {
16        print!("{:02x} ", byte);
17        if (i + 1) % 8 == 0 {
18            println!();
19        }
20    }
21    if rom.len() % 8 != 0 {
22        println!();
23    }
24
25    println!("\nDecoded:");
26    println!("rom[0] = 0x{:02x} (should be LIT2 = 0xa0)", rom[0]);
27    println!("rom[1] = 0x{:02x} (address high byte)", rom[1]);
28    println!("rom[2] = 0x{:02x} (address low byte)", rom[2]);
29
30    let addr = ((rom[1] as u16) << 8) | (rom[2] as u16);
31    println!("Address = 0x{:04x}", addr);
32
33    Ok(())
34}