import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator;
import net.mograsim.machine.Machine;
import net.mograsim.machine.MachineDefinition;
+import net.mograsim.machine.MainMemory;
import net.mograsim.machine.Register;
+import net.mograsim.machine.mi.MicroInstructionMemory;
+import net.mograsim.machine.mi.StandardMicroInstructionMemory;
+import net.mograsim.machine.standard.memory.WordAddressableMemory;
public class Am2900Machine implements Machine
{
private ViewModelModifiable viewModel;
private Timeline timeline;
private Clock clock;
+ private MainMemory mainMemory;
+ private MicroInstructionMemory instMemory;
public Am2900Machine(Am2900MachineDefinition am2900MachineDefinition)
{
this.machineDefinition = am2900MachineDefinition;
viewModel = new ViewModelModifiable();
- IndirectGUIComponentCreator.createComponent(viewModel, "resource:Am2900Loader:/components/GUIAm2900.json");
+ IndirectGUIComponentCreator.createComponent(viewModel,
+ "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/GUIAm2900.json");
LogicModelParameters params = new LogicModelParameters();
params.gateProcessTime = 50;
params.wireTravelTime = 10;
timeline = ViewLogicModelAdapter.convert(viewModel, params);
+
+ mainMemory = new WordAddressableMemory(am2900MachineDefinition.getMainMemoryDefinition());
+ instMemory = new StandardMicroInstructionMemory(am2900MachineDefinition.getMicroInstructionMemoryDefinition());
}
@Override
}
+ @Override
+ public MainMemory getMainMemory()
+ {
+ return mainMemory;
+ }
+
+ @Override
+ public MicroInstructionMemory getMicroInstructionMemory()
+ {
+ return instMemory;
+ }
+
}