source: Deliverables/D4.1/ASMInterpret.mli @ 143

Last change on this file since 143 was 143, checked in by sacerdot, 9 years ago

More SFRs (8052 ones were missing).
SFR catalogation (is that fully correct?).

File size: 1.7 KB
Line 
1open BitVectors;;
2open Physical;;
3
4exception CodeTooLarge
5
6type time = int;;
7type line = [`P0 | `P1 ];; (* ??? *)
8type continuation =
9unit (*
10 [`In of time * line * byte * continuation] option *
11 [`Out of (time -> line -> byte -> continuation) ]
12*)
13
14type status = private
15 { code_memory: WordMap.map;        (* can be reduced *)
16   low_internal_ram: Byte7Map.map;
17   high_internal_ram: Byte7Map.map;
18   external_ram: WordMap.map;       (* can be reduced *)
19
20   pc: word;
21
22   (* sfr *)
23   p0: byte;
24   sp: byte;
25   dpl: byte;
26   dph: byte;
27   pcon: byte;
28   tcon: byte;
29   tmod: byte;
30   tl0: byte;
31   tl1: byte;
32   th0: byte;
33   th1: byte;
34   p1: byte;
35   scon: byte;
36   sbuf: byte;
37   p2: byte;
38   ie: byte;
39   p3: byte;
40   ip: byte;
41   psw: byte;
42   acc: byte;
43   b: byte;
44   t2con: byte; (* 8052 only *)
45   rcap2l: byte; (* 8052 only *)
46   rcap2h: byte; (* 8052 only *)
47   tl2: byte; (* 8052 only *)
48   th2: byte; (* 8052 only *)
49
50   clock: time;
51   timer0: word;
52   timer1: word;
53   timer2: word;  (* can be missing *)
54   io: continuation
55 }
56
57module IntMap: Map.S with type key = int
58
59val assembly:
60 ASM.labelled_instruction list -> BitVectors.byte list (*ASM.instruction list * symbol_table *) * string IntMap.t
61
62(*
63val link:
64 (ASM.instruction list * symbol_table * cost_map) list -> BitVectors.byte list
65*)
66
67val initialize: status
68
69val load_mem: Physical.WordMap.map -> status -> status
70val load: BitVectors.byte list -> status -> status
71
72exception Halt  (* to be raised to stop execution *)
73
74(* the callback function is used to observe the execution
75   trace; it can raise Hold to stop execution. Otherwise
76   the processor never halts. *)
77val execute: (status -> unit) -> status -> status
78
79val fetch: Physical.WordMap.map -> word -> ASM.instruction * word * int
Note: See TracBrowser for help on using the repository browser.