generate_loop4000/
generate_loop4000.rs1use cpclib_asm::assembler::visit_tokens_all_passes_with_options;
2use cpclib_asm::preamble::parse_z80_with_context_builder;
3use cpclib_sna::Snapshot;
4
5fn build_sna(code: &str) -> Snapshot {
6 let listing =
7 parse_z80_with_context_builder(code, Default::default()).expect("Unable to parse z80 code");
8 let (_, env) = visit_tokens_all_passes_with_options(&listing, Default::default())
9 .expect("Unable to assemble z80 code");
10 let sna = env.sna().clone();
11
12 sna
13}
14
15fn main() {
16 eprintln!("Launch snapshots generation for manual testing in emulators.");
17
18 let asm = "
19 org 0x4000
20 run $
21 jp $
22 ";
23
24 let sna = build_sna(asm);
25 sna.save("/tmp/loop4000_v3.sna", cpclib_sna::SnapshotVersion::V3);
26 sna.save("/tmp/loop4000_v2.sna", cpclib_sna::SnapshotVersion::V2);
27
28 assert_eq!(sna.get_byte(0x4000), 0xC3);
29 assert_eq!(sna.get_byte(0x4001), 0x00);
30 assert_eq!(sna.get_byte(0x4002), 0x40);
31
32 eprintln!("Everything went fine.");
33}