Added Am2900 MainMemory and MicroInstructionMemory Core/Model Components
[Mograsim.git] / net.mograsim.machine / src / net / mograsim / machine / standard / memory / ModelMemoryWA.java
diff --git a/net.mograsim.machine/src/net/mograsim/machine/standard/memory/ModelMemoryWA.java b/net.mograsim.machine/src/net/mograsim/machine/standard/memory/ModelMemoryWA.java
deleted file mode 100644 (file)
index 20f27fb..0000000
+++ /dev/null
@@ -1,128 +0,0 @@
-package net.mograsim.machine.standard.memory;
-
-import net.haspamelodica.swt.helper.gcs.GeneralGC;
-import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle;
-import net.mograsim.logic.model.model.LogicModelModifiable;
-import net.mograsim.logic.model.model.components.ModelComponent;
-import net.mograsim.logic.model.model.wires.Pin;
-import net.mograsim.logic.model.model.wires.PinUsage;
-import net.mograsim.logic.model.modeladapter.LogicCoreAdapter;
-import net.mograsim.logic.model.serializing.IdentifyParams;
-import net.mograsim.logic.model.serializing.IndirectModelComponentCreator;
-import net.mograsim.logic.model.snippets.Renderer;
-import net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer;
-import net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer;
-import net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer.SimpleRectangularLikeParams;
-import net.mograsim.logic.model.util.JsonHandler;
-import net.mograsim.machine.MainMemoryDefinition;
-
-public class ModelMemoryWA extends ModelComponent
-{
-       private final MainMemoryDefinition              definition;
-       private final Pin                                               addrPin, dataPin, rWPin, clock;
-       private CoreWordAddressableMemory               memory;
-       private final static int                                width   = 100, height = 300;
-       private Renderer                                                symbolRenderer;
-       private Renderer                                                outlineRenderer;
-
-       public ModelMemoryWA(LogicModelModifiable model, MainMemoryDefinition definition, String name)
-       {
-               super(model, name, false);
-               this.definition = definition;
-
-               SimpleRectangularLikeParams rendererParams = new SimpleRectangularLikeParams();
-               rendererParams.centerText = "RAM";
-               rendererParams.centerTextHeight = 24;
-               rendererParams.horizontalComponentCenter = width / 100;
-               rendererParams.pinLabelHeight = 17.5;
-               rendererParams.pinLabelMargin = 2.5;
-               this.symbolRenderer = new SimpleRectangularLikeSymbolRenderer(this, rendererParams);
-               this.outlineRenderer = new DefaultOutlineRenderer(this);
-
-               setSize(width, height);
-               //TODO check the usages
-               addPin(addrPin = new Pin(model, this, "A", definition.getMemoryAddressBits(), PinUsage.INPUT, 0, 10));
-               addPin(dataPin = new Pin(model, this, "D", definition.getCellWidth(), PinUsage.TRISTATE, 0, 30));
-               addPin(rWPin = new Pin(model, this, "RW", 1, PinUsage.INPUT, 0, 50));
-               addPin(clock = new Pin(model, this, "C", 1, PinUsage.INPUT, 0, 70));
-               
-               init();
-       }
-
-       public Pin getAddressPin()
-       {
-               return addrPin;
-       }
-
-       public Pin getDataPin()
-       {
-               return dataPin;
-       }
-
-       public Pin getReadWritePin()
-       {
-               return rWPin;
-       }
-       
-       public Pin getClockPin()
-       {
-               return clock;
-       }
-
-       public void setCoreModelBinding(CoreWordAddressableMemory memory)
-       {
-               this.memory = memory;
-       }
-
-       public MainMemoryDefinition getDefinition()
-       {
-               return definition;
-       }
-
-       public CoreWordAddressableMemory getMemory()
-       {
-               return memory;
-       }
-
-       @Override
-       public void render(GeneralGC gc, Rectangle visibleRegion)
-       {
-               symbolRenderer.render(gc, visibleRegion);
-               outlineRenderer.render(gc, visibleRegion);
-       }
-
-       @Override
-       public String getIDForSerializing(IdentifyParams idParams)
-       {
-               return "MemoryWA";
-       }
-
-       @Override
-       public ModelMemoryWAParams getParamsForSerializing(IdentifyParams idParams)
-       {
-               ModelMemoryWAParams params = new ModelMemoryWAParams();
-               params.addrBits = definition.getMemoryAddressBits();
-               params.cellWidth = definition.getCellWidth();
-               params.minAddr = definition.getMinimalAddress();
-               params.maxAddr = definition.getMaximalAddress();
-               return params;
-       }
-
-       static
-       {
-               LogicCoreAdapter.addComponentAdapter(new WordAddressableMemoryAdapter());
-               IndirectModelComponentCreator.setComponentSupplier(ModelMemoryWA.class.getCanonicalName(), (m, p, n) ->
-               {
-                       ModelMemoryWAParams params = JsonHandler.fromJsonTree(p, ModelMemoryWAParams.class);
-                       return new ModelMemoryWA(m, MainMemoryDefinition.create(params.addrBits, params.cellWidth, params.minAddr, params.maxAddr), n);
-               });
-       }
-
-       public static class ModelMemoryWAParams
-       {
-               public int      addrBits;
-               public int      cellWidth;
-               public long     minAddr;
-               public long     maxAddr;
-       }
-}