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=cbc65b8639533d92ac68bfae8a60289ac338a47a;hb=13befb68923c540a13cfe5b5b28bf0f7ddf5c41b;hp=3469b2db4c244949aad7badbfbba39f36a4eaec2;hpb=2968b327788769a1248f6e7c14d1c7ba86457ff2;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 3469b2db..cbc65b86 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 @@ -4,7 +4,12 @@ import java.util.ArrayList; import java.util.Collections; 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; @@ -15,8 +20,10 @@ import net.mograsim.machine.registers.RegisterGroup; //(used for detecting installed machines in plugin.core) 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 AM2900_TEACHING_MACHINE_ID = "Am2900Simple"; + public static final String AM2900_EXPERT_MACHINE_ID = "Am2900Strict"; + public static final String AM2900_TEACHING_DESCRIPTION = "Am2900Teaching\nTODO Description"; + public static final String AM2900_EXPERT_DESCRIPTION = "Am2900Expert\nTODO Description"; public static final List unsortedRegisters; public static final List registerGroups; @@ -24,25 +31,34 @@ public class AbstractAm2900MachineDefinition implements MachineDefinition static { List unsortedRegistersModifiable = new ArrayList<>(); - // TODO MIR, IR, PC/BZ... + unsortedRegistersModifiable.add(muInstrRegister.instance); + unsortedRegistersModifiable.add(InstrRegister.instance); + unsortedRegistersModifiable.add(PCRegister.instance); unsortedRegisters = Collections.unmodifiableList(unsortedRegistersModifiable); List registerGroupsModifiable = new ArrayList<>(); registerGroupsModifiable.add(Am2901RegisterGroup.instance); - // TODO Am2904, Am2910 + registerGroupsModifiable.add(Am2904RegisterGroup.instance); + registerGroupsModifiable.add(Am2910RegisterGroup.instance); registerGroups = Collections.unmodifiableList(registerGroupsModifiable); } - public final boolean strict; + public final boolean expert; - protected AbstractAm2900MachineDefinition(boolean strict) + protected AbstractAm2900MachineDefinition(boolean expert) { - this.strict = strict; + this.expert = expert; } @Override public String getId() { - return strict ? STRICT_AM2900_MACHINE_ID : SIMPLE_AM2900_MACHINE_ID; + return expert ? AM2900_EXPERT_MACHINE_ID : AM2900_TEACHING_MACHINE_ID; + } + + @Override + public String getDescription() + { + return expert ? AM2900_EXPERT_DESCRIPTION : AM2900_TEACHING_DESCRIPTION; } @Override @@ -90,14 +106,14 @@ public class AbstractAm2900MachineDefinition implements MachineDefinition @Override public int hashCode() { - return strict ? 12345 : 54321; + return expert ? 12345 : 54321; } @Override public boolean equals(Object obj) { return obj != null && obj instanceof AbstractAm2900MachineDefinition - && ((AbstractAm2900MachineDefinition) obj).strict == this.strict; + && ((AbstractAm2900MachineDefinition) obj).expert == this.expert; } @Override