X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=plugins%2Fnet.mograsim.machine%2Fsrc%2Fnet%2Fmograsim%2Fmachine%2FMachineDefinition.java;h=a379c06fd122af4fed968a26731a9b35679f96b6;hb=f098cd47d06be0cc654532a5fad0e5e89f0ef93c;hp=8f1ee265b4d7c4450a31acda1d54e8a9a18bda08;hpb=4c2b7a2100e55b5e4bf59666b9684d5a996bd0fb;p=Mograsim.git diff --git a/plugins/net.mograsim.machine/src/net/mograsim/machine/MachineDefinition.java b/plugins/net.mograsim.machine/src/net/mograsim/machine/MachineDefinition.java index 8f1ee265..a379c06f 100644 --- a/plugins/net.mograsim.machine/src/net/mograsim/machine/MachineDefinition.java +++ b/plugins/net.mograsim.machine/src/net/mograsim/machine/MachineDefinition.java @@ -1,8 +1,11 @@ package net.mograsim.machine; -import java.util.Set; +import java.util.List; +import net.mograsim.machine.mi.MPROMDefinition; import net.mograsim.machine.mi.MicroInstructionMemoryDefinition; +import net.mograsim.machine.registers.Register; +import net.mograsim.machine.registers.RegisterGroup; public interface MachineDefinition { @@ -15,6 +18,13 @@ public interface MachineDefinition */ String getId(); + /** + * Returns a human-readable description of the machine definition. + * + * @author Daniel Kirschten + */ + String getDescription(); + /** * Creates a new instance of the machine * @@ -32,12 +42,20 @@ public interface MachineDefinition ISASchema getISASchema(); /** - * Returns a set of all {@link Register}s present in the machine. + * Returns a set of all {@link Register}s present in the machine that are not part of a register group. * * @return all registers present in the machine. * @author Christian Femers */ - Set getRegisters(); + List getUnsortedRegisters(); + + /** + * Returns a set of all RegisterGroups that the machine contains + * + * @return all register groups present in the machine. + * @author Christian Femers + */ + List getRegisterGroups(); /** * The number of bits used by the machine to address main memory. Note that this should be the number of bits used in the CPU, not a @@ -64,4 +82,13 @@ public interface MachineDefinition */ MicroInstructionMemoryDefinition getMicroInstructionMemoryDefinition(); + /** + * Returns the definition of the machines instruction memory. + * + * @return the {@link InstructionMemoryDefinition} that defines the instruction memory. + * + * @author Daniel Kirschten + */ + MPROMDefinition getMPROMDefinition(); + }