Fixed a bug in Am2900; created dlatch8/80; relayouted some components
[Mograsim.git] / net.mograsim.machine / src / net / mograsim / machine / mi / StandardMicroInstruction.java
1 package net.mograsim.machine.mi;
2
3 import net.mograsim.machine.mi.parameters.MicroInstructionParameter;
4
5 class StandardMicroInstruction implements MicroInstruction
6 {
7         private final Runnable updateCallback;
8         private MicroInstructionParameter[] parameters;
9
10         StandardMicroInstruction(Runnable updateCallback, MicroInstructionParameter... parameters)
11         {
12                 this.updateCallback = updateCallback;
13                 this.parameters = parameters;
14         }
15
16         /**
17          * @throws IndexOutOfBoundsException
18          */
19         @Override
20         public MicroInstructionParameter getParameter(int index)
21         {
22                 return parameters[index];
23         }
24
25         @Override
26         public int getSize()
27         {
28                 return parameters.length;
29         }
30
31         /**
32          * @throws IndexOutOfBoundsException
33          */
34         @Override
35         public void setParameter(int index, MicroInstructionParameter param)
36         {
37                 parameters[index] = param;
38                 updateCallback.run();
39         }
40
41 }