Added methods to set and get the complete micro-/makro-status
[Mograsim.git] / net.mograsim.logic.model.am2900 / test / net / mograsim / logic / model / am2900 / am2904 / TestableAm2904Impl.java
index 2e84000..03e9d5b 100644 (file)
@@ -208,6 +208,12 @@ public class TestableAm2904Impl implements TestableAm2904
                am2904.setHighLevelState(regToStateID(r), bv);
        }
 
+       @Override
+       public void setDirectly(CompleteStatus r, String z_c_n_ovr)
+       {
+               am2904.setHighLevelState(regToStateID(r), BitVector.parse(z_c_n_ovr));
+       }
+
        @Override
        public String getC0()
        {
@@ -262,11 +268,25 @@ public class TestableAm2904Impl implements TestableAm2904
                return bv.getMSBit(r.ordinal() % 4).getSymbol();
        }
 
+       @Override
+       public String getDirectly(CompleteStatus r)
+       {
+               var bv = (BitVector) am2904.getHighLevelState(regToStateID(r));
+               return bv.toString();
+       }
+
        private static String regToStateID(Register r)
        {
-               if (r.ordinal() > 3)
-                       return "msr.q";
-               return "musr.q";
+               if (r.ordinal() < 4)
+                       return "musr.q";
+               return "msr.q";
+       }
+
+       private static String regToStateID(CompleteStatus r)
+       {
+               if (r == CompleteStatus.micro)
+                       return "musr.q";
+               return "msr.q";
        }
 
        @Override