debug_devices/
debug_devices.rs1use uxn_tal::{Assembler, AssemblerError};
2
3fn main() -> Result<(), AssemblerError> {
4 let all_devices_test = r#"
9 |0100
10
11 ( Try writing 'A' to various device ports )
12 #41 #10 DEO ( device 0x10 )
13 #42 #11 DEO ( device 0x11 )
14 #43 #12 DEO ( device 0x12 )
15 #44 #18 DEO ( device 0x18 )
16 #45 #19 DEO ( device 0x19 )
17
18 ( Force system halt with different pattern )
19 #ff #00 DEO ( try to write to system device )
20
21 BRK
22 "#;
23
24 let mut assembler = Assembler::new();
25 let rom = assembler.assemble(all_devices_test, Default::default())?;
26 std::fs::write("all_devices_test.rom", &rom)?;
27
28 println!("Created all_devices_test.rom");
29 println!("This tries multiple device ports: 0x10, 0x11, 0x12, 0x18, 0x19");
30
31 let immediate_exit = r#"
33 |0100
34 BRK
35 "#;
36
37 let mut assembler2 = Assembler::new();
38 let rom2 = assembler2.assemble(immediate_exit, Default::default())?;
39 std::fs::write("immediate_exit.rom", &rom2)?;
40
41 println!("Created immediate_exit.rom - should exit immediately");
42
43 let error_test = r#"
45 |0100
46 #ff DEO ( try invalid instruction - missing device )
47 BRK
48 "#;
49
50 let mut assembler3 = Assembler::new();
51 let rom3 = assembler3.assemble(error_test, Default::default())?;
52 std::fs::write("error_test.rom", &rom3)?;
53
54 println!("Created error_test.rom - should cause an error");
55
56 Ok(())
57}