1 package net.mograsim.logic.model.am2900.am2910;
3 import net.mograsim.logic.core.components.BitDisplay;
4 import net.mograsim.logic.core.components.ManualSwitch;
5 import net.mograsim.logic.core.timeline.Timeline;
6 import net.mograsim.logic.core.types.BitVector;
7 import net.mograsim.logic.model.am2900.TestEnvironmentHelper;
8 import net.mograsim.logic.model.am2900.TestEnvironmentHelper.DebugState;
9 import net.mograsim.logic.model.model.components.GUIComponent;
11 public class TestableAm2910Impl implements TestableAm2910
14 private GUIComponent am2901;
15 private Timeline timeline;
16 private ManualSwitch I;
17 private ManualSwitch C;
18 private ManualSwitch CI;
19 private ManualSwitch D;
20 private ManualSwitch _CC;
21 private ManualSwitch _CCEN;
22 private ManualSwitch _RLD;
23 private ManualSwitch _OE;
24 private BitDisplay _FULL;
26 private BitDisplay _PL, _MAP, _VECT;
28 private final TestEnvironmentHelper testHelper = new TestEnvironmentHelper(this, "file:components/am2910/GUIAm2910.json");
33 testHelper.setup(DebugState.NO_DEBUG);
39 return testHelper.run();
43 public void clockOn(boolean isClockOn)
52 public void setInstruction(Am2910_Inst inst)
54 I.setState(BitVector.from(inst.ordinal(), 4));
58 public void set_CCEN(String val_1_bit)
60 _CCEN.setState(BitVector.parse(val_1_bit));
64 public void setD(String val_12_bit)
66 D.setState(BitVector.parse(val_12_bit));
70 public void set_CC(String val_1_bit)
72 _CC.setState(BitVector.parse(val_1_bit));
76 public void setCI(String val_1_bit)
78 CI.setState(BitVector.parse(val_1_bit));
82 public void set_RLD(String val_1_bit)
84 _RLD.setState(BitVector.parse(val_1_bit));
88 public void set_OE(String val_1_bit)
90 _OE.setState(BitVector.parse(val_1_bit));
94 public void setDirectly(Register r, String val_X_bit)
96 am2901.setHighLevelState(regToStateID(r), BitVector.parse(val_X_bit));
102 return Y.getDisplayedValue().toString();
106 public String get_FULL()
108 return _FULL.getDisplayedValue().toString();
112 public String get_PL()
114 return _PL.getDisplayedValue().toString();
118 public String get_MAP()
120 return _MAP.getDisplayedValue().toString();
124 public String get_VECT()
126 return _VECT.getDisplayedValue().toString();
130 public String getDirectly(Register r)
132 return am2901.getHighLevelState(regToStateID(r)).toString();
135 private static String regToStateID(Register r)
144 return "stack.c" + BitVector.from(r.ordinal(), 3);
152 throw new IllegalArgumentException("unknown: " + r);