source: Deliverables/D4.1/Test.ml @ 796

Last change on this file since 796 was 451, checked in by mulligan, 9 years ago

Removed more debugging stuff from Test.ml.

File size: 1.3 KB
Line 
1open BitVectors;;
2open ASMInterpret;;
3open Util;;
4open IntelHex;;
5open Pretty;;
6
7let hex = IntelHex.intel_hex_of_file Sys.argv.(1) in
8let mem = IntelHex.process_intel_hex hex in
9let status = ASMInterpret.load_mem mem ASMInterpret.initialize in
10(* Nicolas, see here for example of exporting HEX: *)
11let _ = file_of_intel_hex "hex_test_out.hex" (pack_exported_code_memory 12 114 status.code_memory) in
12let observe status =
13 let pc = status.ASMInterpret.pc in
14 let instr,_,_ = ASMInterpret.fetch status.ASMInterpret.code_memory pc in
15   let _ = prerr_string (BitVectors.hex_string_of_vect pc) in
16   let _ = prerr_endline (": " ^ pp_instruction instr) in
17     prerr_endline <*> string_of_status $ status
18in
19(* DPM: for debugging! *)
20let mem_pretty_print status =
21  let rec aux status pc =
22    let instr, pc', cost = ASMInterpret.fetch status.ASMInterpret.code_memory pc in
23      prerr_string $ ((hex_string_of_vect pc) ^ ": ");
24      prerr_string $ (pp_instruction instr) ^ " ";
25      prerr_endline $ string_of_int cost;
26      if int_of_vect pc' > 200 then (* DPM: hardcoded on a case-by-case basis *)
27        ()
28      else
29        aux status pc'
30  in
31    aux status status.ASMInterpret.pc;
32    prerr_endline "-------------------------------------"
33in
34 mem_pretty_print status;
35 ASMInterpret.execute observe status
36;;
Note: See TracBrowser for help on using the repository browser.