generate_loop4000/
generate_loop4000.rs

1use 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}