net.mograsim.logic.model.am2900.machine,
net.mograsim.logic.model.am2900.machine.registers,
net.mograsim.logic.model.am2900.machine.registers.am2901,
+ net.mograsim.logic.model.am2900.machine.registers.am2904,
+ net.mograsim.logic.model.am2900.machine.registers.am2904.msr,
+ net.mograsim.logic.model.am2900.machine.registers.am2904.musr,
net.mograsim.logic.model.examples
Bundle-RequiredExecutionEnvironment: JavaSE-11
Require-Bundle: org.eclipse.osgi,
import java.util.List;
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.model.LogicModelModifiable;
import net.mograsim.machine.ISASchema;
import net.mograsim.machine.MachineDefinition;
unsortedRegisters = Collections.unmodifiableList(unsortedRegistersModifiable);
List<RegisterGroup> registerGroupsModifiable = new ArrayList<>();
registerGroupsModifiable.add(Am2901RegisterGroup.instance);
- // TODO Am2904, Am2910
+ registerGroupsModifiable.add(Am2904RegisterGroup.instance);
+ // TODO Am2910
registerGroups = Collections.unmodifiableList(registerGroupsModifiable);
}
--- /dev/null
+package net.mograsim.logic.model.am2900.machine.registers.am2904;
+
+import net.mograsim.logic.model.am2900.machine.registers.am2904.msr.MSRRegisterGroup;
+import net.mograsim.logic.model.am2900.machine.registers.am2904.musr.muSRRegisterGroup;
+import net.mograsim.machine.registers.SimpleRegisterGroup;
+
+public class Am2904RegisterGroup extends SimpleRegisterGroup
+{
+ public static final Am2904RegisterGroup instance = new Am2904RegisterGroup();
+
+ private Am2904RegisterGroup()
+ {
+ super("Am2904", MSRRegisterGroup.instance, muSRRegisterGroup.instance);
+ }
+}
\ No newline at end of file
--- /dev/null
+package net.mograsim.logic.model.am2900.machine.registers.am2904.msr;
+
+import net.mograsim.logic.model.am2900.machine.registers.Am2900Register;
+import net.mograsim.machine.registers.HighLevelStateBasedRegister;
+
+public class MCRegister extends HighLevelStateBasedRegister implements Am2900Register
+{
+ public static final MCRegister instance = new MCRegister();
+
+ private MCRegister()
+ {
+ super("C", "am2904.msr.q2", 1);
+ }
+}
\ No newline at end of file
--- /dev/null
+package net.mograsim.logic.model.am2900.machine.registers.am2904.msr;
+
+import net.mograsim.logic.model.am2900.machine.registers.Am2900Register;
+import net.mograsim.machine.registers.HighLevelStateBasedRegister;
+
+public class MNRegister extends HighLevelStateBasedRegister implements Am2900Register
+{
+ public static final MNRegister instance = new MNRegister();
+
+ private MNRegister()
+ {
+ super("N", "am2904.msr.q3", 1);
+ }
+}
\ No newline at end of file
--- /dev/null
+package net.mograsim.logic.model.am2900.machine.registers.am2904.msr;
+
+import net.mograsim.logic.model.am2900.machine.registers.Am2900Register;
+import net.mograsim.machine.registers.HighLevelStateBasedRegister;
+
+public class MOVRRegister extends HighLevelStateBasedRegister implements Am2900Register
+{
+ public static final MOVRRegister instance = new MOVRRegister();
+
+ private MOVRRegister()
+ {
+ super("OVR", "am2904.msr.q4", 1);
+ }
+}
\ No newline at end of file
--- /dev/null
+package net.mograsim.logic.model.am2900.machine.registers.am2904.msr;
+
+import net.mograsim.logic.model.am2900.machine.registers.Am2900Register;
+import net.mograsim.machine.registers.HighLevelStateBasedRegister;
+
+public class MSRRegister extends HighLevelStateBasedRegister implements Am2900Register
+{
+ public static final MSRRegister instance = new MSRRegister();
+
+ private MSRRegister()
+ {
+ super("MSR", "am2904.msr.q", 4);
+ }
+}
\ No newline at end of file
--- /dev/null
+package net.mograsim.logic.model.am2900.machine.registers.am2904.msr;
+
+import net.mograsim.machine.registers.SimpleRegisterGroup;
+
+public class MSRRegisterGroup extends SimpleRegisterGroup
+{
+ public static final MSRRegisterGroup instance = new MSRRegisterGroup();
+
+ private MSRRegisterGroup()
+ {
+ super("MSR", MSRRegister.instance, MZRegister.instance, MCRegister.instance, MNRegister.instance, MOVRRegister.instance);
+ }
+}
\ No newline at end of file
--- /dev/null
+package net.mograsim.logic.model.am2900.machine.registers.am2904.msr;
+
+import net.mograsim.logic.model.am2900.machine.registers.Am2900Register;
+import net.mograsim.machine.registers.HighLevelStateBasedRegister;
+
+public class MZRegister extends HighLevelStateBasedRegister implements Am2900Register
+{
+ public static final MZRegister instance = new MZRegister();
+
+ private MZRegister()
+ {
+ super("Z", "am2904.msr.q1", 1);
+ }
+}
\ No newline at end of file
--- /dev/null
+package net.mograsim.logic.model.am2900.machine.registers.am2904.musr;
+
+import net.mograsim.logic.model.am2900.machine.registers.Am2900Register;
+import net.mograsim.machine.registers.HighLevelStateBasedRegister;
+
+public class muCRegister extends HighLevelStateBasedRegister implements Am2900Register
+{
+ public static final muCRegister instance = new muCRegister();
+
+ private muCRegister()
+ {
+ super("C", "am2904.musr.q2", 1);
+ }
+}
\ No newline at end of file
--- /dev/null
+package net.mograsim.logic.model.am2900.machine.registers.am2904.musr;
+
+import net.mograsim.logic.model.am2900.machine.registers.Am2900Register;
+import net.mograsim.machine.registers.HighLevelStateBasedRegister;
+
+public class muNRegister extends HighLevelStateBasedRegister implements Am2900Register
+{
+ public static final muNRegister instance = new muNRegister();
+
+ private muNRegister()
+ {
+ super("N", "am2904.musr.q3", 1);
+ }
+}
\ No newline at end of file
--- /dev/null
+package net.mograsim.logic.model.am2900.machine.registers.am2904.musr;
+
+import net.mograsim.logic.model.am2900.machine.registers.Am2900Register;
+import net.mograsim.machine.registers.HighLevelStateBasedRegister;
+
+public class muOVRRegister extends HighLevelStateBasedRegister implements Am2900Register
+{
+ public static final muOVRRegister instance = new muOVRRegister();
+
+ private muOVRRegister()
+ {
+ super("OVR", "am2904.musr.q4", 1);
+ }
+}
\ No newline at end of file
--- /dev/null
+package net.mograsim.logic.model.am2900.machine.registers.am2904.musr;
+
+import net.mograsim.logic.model.am2900.machine.registers.Am2900Register;
+import net.mograsim.machine.registers.HighLevelStateBasedRegister;
+
+public class muSRRegister extends HighLevelStateBasedRegister implements Am2900Register
+{
+ public static final muSRRegister instance = new muSRRegister();
+
+ private muSRRegister()
+ {
+ super("\u00b5SR", "am2904.musr.q", 4); // 00b5 = micro symbol
+ }
+}
\ No newline at end of file
--- /dev/null
+package net.mograsim.logic.model.am2900.machine.registers.am2904.musr;
+
+import net.mograsim.machine.registers.SimpleRegisterGroup;
+
+public class muSRRegisterGroup extends SimpleRegisterGroup
+{
+ public static final muSRRegisterGroup instance = new muSRRegisterGroup();
+
+ private muSRRegisterGroup()
+ {
+ super("\u00b5SR", muSRRegister.instance, muZRegister.instance, muCRegister.instance, muNRegister.instance, muOVRRegister.instance);
+ // 00b5 = micro symbol
+ }
+}
\ No newline at end of file
--- /dev/null
+package net.mograsim.logic.model.am2900.machine.registers.am2904.musr;
+
+import net.mograsim.logic.model.am2900.machine.registers.Am2900Register;
+import net.mograsim.machine.registers.HighLevelStateBasedRegister;
+
+public class muZRegister extends HighLevelStateBasedRegister implements Am2900Register
+{
+ public static final muZRegister instance = new muZRegister();
+
+ private muZRegister()
+ {
+ super("Z", "am2904.musr.q1", 1);
+ }
+}
\ No newline at end of file