label_debug/
label_debug.rs1use 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}