X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=plugins%2Fnet.mograsim.logic.model.am2900%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fmodel%2Fam2900%2Fmachine%2FAbstractAm2900MachineDefinition.java;h=da843922df7f4f3c8b80fb966dea7f99c7414651;hb=edfa6a2a24048ef0507cb0e2d89e7f1cb9b23c4e;hp=37d931536371c6b97881ae5e579bc5f5268c1e77;hpb=5145372e475b764b56745909726ba64749e067b0;p=Mograsim.git diff --git a/plugins/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/machine/AbstractAm2900MachineDefinition.java b/plugins/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/machine/AbstractAm2900MachineDefinition.java index 37d93153..da843922 100644 --- a/plugins/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/machine/AbstractAm2900MachineDefinition.java +++ b/plugins/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/machine/AbstractAm2900MachineDefinition.java @@ -1,15 +1,20 @@ package net.mograsim.logic.model.am2900.machine; +import java.util.ArrayList; import java.util.Collections; -import java.util.HashSet; -import java.util.Set; - -import net.mograsim.logic.model.am2900.machine.registers.NumberedRegister; -import net.mograsim.logic.model.am2900.machine.registers.QRegister; +import java.util.List; + +import net.mograsim.logic.model.am2900.machine.registers.InstrRegister; +import net.mograsim.logic.model.am2900.machine.registers.PCRegister; +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; import net.mograsim.logic.model.model.LogicModelModifiable; import net.mograsim.machine.ISASchema; import net.mograsim.machine.MachineDefinition; -import net.mograsim.machine.Register; +import net.mograsim.machine.registers.Register; +import net.mograsim.machine.registers.RegisterGroup; //we can't use the Singleton pattern here because a MachineDefinition needs a public parameterless constructor //(used for detecting installed machines in plugin.core) @@ -17,15 +22,24 @@ public class AbstractAm2900MachineDefinition implements MachineDefinition { public static final String SIMPLE_AM2900_MACHINE_ID = "Am2900Simple"; public static final String STRICT_AM2900_MACHINE_ID = "Am2900Strict"; + public static final String SIMPLE_AM2900_DESCRIPTION = "Am2900Simple\nTODO Description"; + public static final String STRICT_AM2900_DESCRIPTION = "Am2900Strict\nTODO Description"; - public static final Set allRegisters; + public static final List unsortedRegisters; + public static final List registerGroups; static { - Set allRegistersModifiable = new HashSet<>(); - allRegistersModifiable.add(QRegister.instance); - allRegistersModifiable.addAll(NumberedRegister.instancesCorrectOrder); - allRegisters = Collections.unmodifiableSet(allRegistersModifiable); + List unsortedRegistersModifiable = new ArrayList<>(); + unsortedRegistersModifiable.add(muInstrRegister.instance); + unsortedRegistersModifiable.add(InstrRegister.instance); + unsortedRegistersModifiable.add(PCRegister.instance); + unsortedRegisters = Collections.unmodifiableList(unsortedRegistersModifiable); + List registerGroupsModifiable = new ArrayList<>(); + registerGroupsModifiable.add(Am2901RegisterGroup.instance); + registerGroupsModifiable.add(Am2904RegisterGroup.instance); + registerGroupsModifiable.add(Am2910RegisterGroup.instance); + registerGroups = Collections.unmodifiableList(registerGroupsModifiable); } public final boolean strict; @@ -41,6 +55,12 @@ public class AbstractAm2900MachineDefinition implements MachineDefinition return strict ? STRICT_AM2900_MACHINE_ID : SIMPLE_AM2900_MACHINE_ID; } + @Override + public String getDescription() + { + return strict ? STRICT_AM2900_DESCRIPTION : SIMPLE_AM2900_DESCRIPTION; + } + @Override public Am2900Machine createNew() { @@ -60,9 +80,15 @@ public class AbstractAm2900MachineDefinition implements MachineDefinition } @Override - public Set getRegisters() + public List getUnsortedRegisters() + { + return unsortedRegisters; + } + + @Override + public List getRegisterGroups() { - return allRegisters; + return registerGroups; } @Override