Fixed a bug in Am2900; created dlatch8/80; relayouted some components
[Mograsim.git] / net.mograsim.machine / src / net / mograsim / machine / mi / MicroInstruction.java
index d88a8ef..d45c277 100644 (file)
@@ -4,27 +4,29 @@ import net.mograsim.logic.core.types.BitVector;
 import net.mograsim.machine.mi.parameters.MicroInstructionParameter;
 import net.mograsim.machine.mi.parameters.Mnemonic;
 
-public interface MicroInstruction {
-       
+public interface MicroInstruction
+{
+
        public MicroInstructionParameter getParameter(int index);
+
        public void setParameter(int index, MicroInstructionParameter param);
-       
+
        /**
         * @return The amount of {@link Mnemonic}s, the instruction is composed of
         */
        public int getSize();
-       
-       public static MicroInstruction create(MicroInstructionParameter... parameters)
+
+       public static MicroInstruction create(Runnable updateCallback, MicroInstructionParameter... parameters)
        {
-               return new StandardMicroInstruction(parameters);
+               return new StandardMicroInstruction(updateCallback, parameters);
        }
-       
+
        default BitVector toBitVector()
        {
                BitVector vector = BitVector.of();
                int size = getSize();
-               for(int i = 0; i < size; i++)
-                       vector.concat(getParameter(i).getValue());
+               for (int i = 0; i < size; i++)
+                       vector = vector.concat(getParameter(i).getValue());
                return vector;
        }
 }