source: Deliverables/D4.1/Series8051.ml @ 93

Last change on this file since 93 was 84, checked in by mulligan, 10 years ago

Lots of work on tidying up code.

File size: 1.8 KB
Line 
1open "Bit.ml";;
2open "Nibble.ml";;
3open "Byte.ml";;
4open "Byte7.ml";;
5open "Word.ml";;
6
7module type 8051_SERIES =
8sig
9  type bit
10  type nibble
11  type byte
12  type byte7
13  type word
14
15  type sfr
16
17  type code_memory
18  type low_internal_ram
19  type high_internal_ram
20  type external_ram
21
22  type processor_status
23  type program_counter
24
25  type asm_instruction =
26
27  type program = asm_instruction list
28  type bit_instruction = byte
29
30  val power_up: processor_status
31end;;
32
33module 8051_Series (Bit: BIT)
34                   (Nibble: NIBBLE
35                      with type bit    = Bit.bit)
36                   (Byte: BYTE
37                      with type bit    = Bit.bit
38                      and  type nibble = Nibble.nibble)
39                   (Byte7: BYTE7
40                      with type bit    = Bit.bit
41                      and  type nibble = Nibble.nibble)
42                   (Word: WORD
43                      with type bit    = Bit.bit
44                      and  type nibble = Nibble.nibble
45                      and  type byte   = Byte.byte)
46                   (SpecialFunctionRegister: SFR
47                      with type bit    = Bit.bit
48                      and  type byte   = Byte.byte): 8051_SERIES =
49struct
50  type bit = Bit.bit
51  type nibble = Nibble.nibble
52  type byte = Byte.byte
53  type byte7 = Byte.byte7
54  type word = Word.word
55
56  type sfr = SpecialFunctionRegister.sfr
57
58  type code_memory = word Map.Make (struct type t = byte7 let compare = Pervasives.compare end)
59  type low_internal_ram = Map.Make (struct type t = byte7 let compare = Pervasives.compare end)
60  type high_internal_ram = Map.Make (struct type t = byte7 let compare = Pervasives.compare end)
61  type external_ram = Map.Make (struct type t = byte7 let compare = Pervasives.compare end)
62
63  type processor_status = {
64    program_counter: word;
65    sfr: sfr;
66   
67  }
68end;;
Note: See TracBrowser for help on using the repository browser.