Merge branch 'machines-are-launch-configs' into development
[Mograsim.git] / plugins / net.mograsim.machine / src / net / mograsim / machine / Machine.java
1 package net.mograsim.machine;
2
3 import net.mograsim.logic.core.components.CoreClock;
4 import net.mograsim.logic.core.timeline.Timeline;
5 import net.mograsim.logic.core.types.BitVector;
6 import net.mograsim.logic.model.model.LogicModel;
7 import net.mograsim.machine.mi.AssignableMicroInstructionMemory;
8 import net.mograsim.machine.standard.memory.AssignableMainMemory;
9
10 public interface Machine
11 {
12         MachineDefinition getDefinition();
13
14         void reset();
15
16         LogicModel getModel();
17
18         CoreClock getClock();
19
20         BitVector getRegister(Register r);
21
22         void setRegister(Register r, BitVector value);
23
24         Timeline getTimeline();
25
26         AssignableMainMemory getMainMemory();
27
28         AssignableMicroInstructionMemory getMicroInstructionMemory();
29
30         void addActiveMicroInstructionChangedListener(ActiveMicroInstructionChangedListener listener);
31
32         void removeActiveMicroInstructionChangedListener(ActiveMicroInstructionChangedListener listener);
33
34         long getActiveMicroInstructionAddress();
35
36         public interface ActiveMicroInstructionChangedListener
37         {
38                 public void instructionChanged(long oldAddress, long newAddress);
39         }
40 }