Skip to main content

minimal_test/
minimal_test.rs

1use uxn_tal::Assembler;
2
3fn main() {
4    // This should put 0x0102 (address of data) at position 0x0100
5    let source = r#"
6        |0100
7        ;data
8        @data #42
9    "#;
10
11    let mut assembler = Assembler::new();
12    let rom = assembler
13        .assemble(source, Some("minimal_test".to_owned()))
14        .expect("Assembly failed");
15
16    println!("ROM length: {}", rom.len());
17    println!("Expected: data reference at 0x100, value #42 at 0x102");
18
19    if rom.len() > 0x102 {
20        println!("rom[0x100] = 0x{:02x} (should be 0x01)", rom[0x100]);
21        println!("rom[0x101] = 0x{:02x} (should be 0x02)", rom[0x101]);
22        println!("rom[0x102] = 0x{:02x} (should be 0x42)", rom[0x102]);
23
24        let addr = ((rom[0x100] as u16) << 8) | (rom[0x101] as u16);
25        println!("Address stored: 0x{:04x}", addr);
26    }
27}