X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=net.mograsim.machine%2Fsrc%2Fnet%2Fmograsim%2Fmachine%2Fstandard%2Fmemory%2FModelMemoryWA.java;h=2b4f905538903965ae5bc597473ff88f64ed7d93;hb=fef6208422d970ce5929750595a8b52f01d91be7;hp=8f40ceda3d62ee18f07835ec3553a1544d010192;hpb=552986fd8718d5f2db00802015fdd1ecd58a5a2f;p=Mograsim.git 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 index 8f40ceda..2b4f9055 100644 --- a/net.mograsim.machine/src/net/mograsim/machine/standard/memory/ModelMemoryWA.java +++ b/net.mograsim.machine/src/net/mograsim/machine/standard/memory/ModelMemoryWA.java @@ -2,9 +2,8 @@ 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.ViewModelModifiable; +import net.mograsim.logic.model.model.LogicModelModifiable; import net.mograsim.logic.model.model.components.ModelComponent; -import net.mograsim.logic.model.model.components.atomic.ModelAndGate; import net.mograsim.logic.model.model.wires.Pin; import net.mograsim.logic.model.model.wires.PinUsage; import net.mograsim.logic.model.modeladapter.LogicCoreAdapter; @@ -12,8 +11,8 @@ 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.CenteredTextSymbolRenderer; -import net.mograsim.logic.model.snippets.symbolrenderers.CenteredTextSymbolRenderer.CenteredTextParams; +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; @@ -26,22 +25,27 @@ public class ModelMemoryWA extends ModelComponent private Renderer symbolRenderer; private Renderer outlineRenderer; - public ModelMemoryWA(ViewModelModifiable model, MainMemoryDefinition definition, String name) + public ModelMemoryWA(LogicModelModifiable model, MainMemoryDefinition definition, String name) { - super(model, name); + super(model, name, false); this.definition = definition; - CenteredTextParams renderer1Params = new CenteredTextParams(); - renderer1Params.text = "RAM"; - renderer1Params.fontHeight = 24; - this.symbolRenderer = new CenteredTextSymbolRenderer(this, renderer1Params); + 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(this, "A", definition.getMemoryAddressBits(), PinUsage.INPUT, 0, 10)); - addPin(dataPin = new Pin(this, "D", definition.getCellWidth(), PinUsage.TRISTATE, 0, 30)); - addPin(rWPin = new Pin(this, "RW", 1, PinUsage.INPUT, 0, 50)); + 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)); + + init(); } public Pin getAddressPin() @@ -101,7 +105,7 @@ public class ModelMemoryWA extends ModelComponent static { LogicCoreAdapter.addComponentAdapter(new WordAddressableMemoryAdapter()); - IndirectModelComponentCreator.setComponentSupplier(ModelAndGate.class.getCanonicalName(), (m, p, n) -> + 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);