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

Last change on this file since 143 was 143, checked in by sacerdot, 10 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.