X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=net.mograsim.logic.model.am2900%2Ftest%2Fnet%2Fmograsim%2Flogic%2Fmodel%2Fam2900%2Fam2904%2FTestableAm2904Impl.java;fp=net.mograsim.logic.model.am2900%2Ftest%2Fnet%2Fmograsim%2Flogic%2Fmodel%2Fam2900%2Fam2904%2FTestableAm2904Impl.java;h=0000000000000000000000000000000000000000;hb=7d05144c25daa53e60fc9ed9fd503546a86567f8;hp=b43f130e570da85c8dcf948e06f10a626e31d711;hpb=8bed58cd47f4e53a0a83e066d38864aa6875502f;p=Mograsim.git diff --git a/net.mograsim.logic.model.am2900/test/net/mograsim/logic/model/am2900/am2904/TestableAm2904Impl.java b/net.mograsim.logic.model.am2900/test/net/mograsim/logic/model/am2900/am2904/TestableAm2904Impl.java deleted file mode 100644 index b43f130e..00000000 --- a/net.mograsim.logic.model.am2900/test/net/mograsim/logic/model/am2900/am2904/TestableAm2904Impl.java +++ /dev/null @@ -1,293 +0,0 @@ -package net.mograsim.logic.model.am2900.am2904; - -import net.mograsim.logic.core.components.CoreBitDisplay; -import net.mograsim.logic.core.components.CoreManualSwitch; -import net.mograsim.logic.core.types.Bit; -import net.mograsim.logic.core.types.BitVector; -import net.mograsim.logic.model.am2900.util.SwitchWithDisplay; -import net.mograsim.logic.model.am2900.util.TestEnvironmentHelper; -import net.mograsim.logic.model.am2900.util.TestEnvironmentHelper.DebugState; -import net.mograsim.logic.model.model.components.ModelComponent; - -public class TestableAm2904Impl implements TestableAm2904 -{ - - private ModelComponent am2904; - private CoreManualSwitch I_5_0; - private CoreManualSwitch I_6_9; - private CoreManualSwitch I_10; - private CoreManualSwitch I_11_12; - private CoreManualSwitch C; - private CoreManualSwitch Cx; - private CoreManualSwitch IC, IN, IOVR, IZ; - private CoreManualSwitch _CEM, _CEmu; - private CoreManualSwitch _EC, _EN, _EOVR, _EZ; - private CoreManualSwitch _OECT, _OEY; - private CoreManualSwitch _SE; - private CoreBitDisplay C0; - private CoreBitDisplay CT; - private SwitchWithDisplay SIO0, SIOn, QIO0, QIOn; - private SwitchWithDisplay YC, YN, YOVR, YZ; - - private final TestEnvironmentHelper testHelper = new TestEnvironmentHelper(this, - "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/am2904/TestableAm2904.json"); - - @Override - public void setup() - { - testHelper.setup(DebugState.NO_DEBUG); - } - - @Override - public Result run() - { - return testHelper.run(); - } - - @Override - public void clockOn(boolean isClockOn) - { - if (isClockOn) - C.switchFullOn(); - else - C.switchFullOff(); - } - - @Override - public void setInstruction(Am2904_Inst inst) - { - I_5_0.setState(BitVector.from(inst.ordinal(), 6)); - } - - @Override - public void setShiftCode(String val_4_bit) - { - I_6_9.setState(BitVector.parse(val_4_bit)); - } - - @Override - public void setI10(Am2904_ShiftDir dir) - { - I_10.setState(BitVector.from(dir.ordinal(), 1)); - } - - @Override - public void setCarry(Am2904_Carry carry) - { - I_11_12.setState(BitVector.from(carry.ordinal(), 2)); - } - - @Override - public void setCX(String val_1_bit) - { - Cx.setState(BitVector.parse(val_1_bit)); - } - - @Override - public void setY(String z_c_n_ovr) - { - var bv = BitVector.parse(z_c_n_ovr); - // correct order apparently unknown, most likely Z-C-N-OVR - YZ.setState(bv.getLSBit(3).toVector()); - YC.setState(bv.getLSBit(2).toVector()); - YN.setState(bv.getLSBit(1).toVector()); - YOVR.setState(bv.getLSBit(0).toVector()); - } - - @Override - public void setIZ(String val_1_bit) - { - IZ.setState(BitVector.parse(val_1_bit)); - } - - @Override - public void setIC(String val_1_bit) - { - IC.setState(BitVector.parse(val_1_bit)); - } - - @Override - public void setIOVR(String val_1_bit) - { - IOVR.setState(BitVector.parse(val_1_bit)); - } - - @Override - public void setIN(String val_1_bit) - { - IN.setState(BitVector.parse(val_1_bit)); - } - - @Override - public void set_CEM(String val_1_bit) - { - _CEM.setState(BitVector.parse(val_1_bit)); - } - - @Override - public void set_CEµ(String val_1_bit) - { - _CEmu.setState(BitVector.parse(val_1_bit)); - } - - @Override - public void set_OEY(String val_1_bit) - { - _OEY.setState(BitVector.parse(val_1_bit)); - } - - @Override - public void set_OECT(String val_1_bit) - { - _OECT.setState(BitVector.parse(val_1_bit)); - } - - @Override - public void set_SE(String val_1_bit) - { - _SE.setState(BitVector.parse(val_1_bit)); - } - - @Override - public void set_EZ(String val_1_bit) - { - _EZ.setState(BitVector.parse(val_1_bit)); - } - - @Override - public void set_EC(String val_1_bit) - { - _EC.setState(BitVector.parse(val_1_bit)); - } - - @Override - public void set_EOVR(String val_1_bit) - { - _EOVR.setState(BitVector.parse(val_1_bit)); - } - - @Override - public void set_EN(String val_1_bit) - { - _EN.setState(BitVector.parse(val_1_bit)); - } - - @Override - public void setSIO0(String val_1_bit) - { - SIO0.setState(BitVector.parse(val_1_bit)); - } - - @Override - public void setSIO3(String val_1_bit) - { - SIOn.setState(BitVector.parse(val_1_bit)); - } - - @Override - public void setQIO0(String val_1_bit) - { - QIO0.setState(BitVector.parse(val_1_bit)); - } - - @Override - public void setQIO3(String val_1_bit) - { - QIOn.setState(BitVector.parse(val_1_bit)); - } - - @Override - public void setDirectly(Register r, String val_1_bit) - { - var bv = (BitVector) am2904.getHighLevelState(regToStateID(r)); - bv = bv.withBitChanged(r.ordinal() % 4, b -> Bit.parse(val_1_bit)); - 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() - { - return C0.getDisplayedValue().toString(); - } - - @Override - public String getCT() - { - return CT.getDisplayedValue().toString(); - } - - @Override - public String getY() - { - // correct order apparently unknown, most likely Z-C-N-OVR - var y3 = YZ.getDisplayedValue(); - var y2 = YC.getDisplayedValue(); - var y1 = YN.getDisplayedValue(); - var y0 = YOVR.getDisplayedValue(); - return y3.concat(y2).concat(y1).concat(y0).toString(); - } - - @Override - public String getSIO0() - { - return SIO0.getDisplayedValue().toString(); - } - - @Override - public String getSIO3() - { - return SIOn.getDisplayedValue().toString(); - } - - @Override - public String getQIO0() - { - return QIO0.getDisplayedValue().toString(); - } - - @Override - public String getQIO3() - { - return QIOn.getDisplayedValue().toString(); - } - - @Override - public String getDirectly(Register r) - { - var bv = (BitVector) am2904.getHighLevelState(regToStateID(r)); - 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() < 4) - return "musr.q"; - return "msr.q"; - } - - private static String regToStateID(CompleteStatus r) - { - if (r == CompleteStatus.micro) - return "musr.q"; - return "msr.q"; - } - - @Override - public TestEnvironmentHelper getTestEnvironmentHelper() - { - return testHelper; - } -}