import java.util.Collections;
import java.util.List;
+import net.mograsim.logic.model.am2900.machine.registers.muInstrRegister;
import net.mograsim.logic.model.am2900.machine.registers.am2901.Am2901RegisterGroup;
import net.mograsim.logic.model.am2900.machine.registers.am2904.Am2904RegisterGroup;
import net.mograsim.logic.model.am2900.machine.registers.am2910.Am2910RegisterGroup;
static
{
List<Register> unsortedRegistersModifiable = new ArrayList<>();
- // TODO MIR, IR, PC/BZ...
+ unsortedRegistersModifiable.add(muInstrRegister.instance);
+ // TODO IR, PC/BZ...
unsortedRegisters = Collections.unmodifiableList(unsortedRegistersModifiable);
List<RegisterGroup> registerGroupsModifiable = new ArrayList<>();
registerGroupsModifiable.add(Am2901RegisterGroup.instance);
import net.mograsim.logic.core.types.Bit;
import net.mograsim.logic.core.types.BitVector;
import net.mograsim.logic.model.am2900.machine.registers.Am2900Register;
+import net.mograsim.logic.model.am2900.machine.registers.muInstrRegister;
import net.mograsim.logic.model.model.LogicModel;
import net.mograsim.logic.model.model.LogicModelModifiable;
import net.mograsim.logic.model.model.components.ModelComponent;
private void setRegistersToZero(List<Register> registers)
{
for (Register r : registers)
- setRegister(r, BitVector.of(Bit.ZERO, r.getWidth()));
+ if (r != muInstrRegister.instance)// don't reset; sometimes causes a glitch
+ setRegister(r, BitVector.of(Bit.ZERO, r.getWidth()));
}
private void setRegisterGroupToZero(List<RegisterGroup> registerGroups)
--- /dev/null
+package net.mograsim.logic.model.am2900.machine.registers;
+
+import net.mograsim.logic.model.am2900.machine.registers.Am2900Register;
+import net.mograsim.machine.registers.HighLevelStateBasedRegister;
+
+public class muInstrRegister extends HighLevelStateBasedRegister implements Am2900Register
+{
+ public static final muInstrRegister instance = new muInstrRegister();
+
+ private muInstrRegister()
+ {
+ super("\u00b5IR", "muir_2.q", 80);// 00b5 = micro symbol
+ }
+}
\ No newline at end of file