From 63b28c33e02beac79bf24a34f658038fdf12196d Mon Sep 17 00:00:00 2001 From: Daniel Kirschten Date: Mon, 2 Sep 2019 14:02:23 +0200 Subject: [PATCH] Changed GUIMerger/Splitter read end array order; removed resolved TODO --- .../src/net/mograsim/logic/core/wires/Wire.java | 2 +- .../logic/model/model/components/atomic/GUIMerger.java | 4 ++-- .../logic/model/model/components/atomic/GUISplitter.java | 4 ++-- .../src/net/mograsim/logic/model/model/wires/Pin.java | 1 - .../model/modeladapter/componentadapters/MergerAdapter.java | 4 ++-- .../model/modeladapter/componentadapters/SplitterAdapter.java | 4 ++-- 6 files changed, 9 insertions(+), 10 deletions(-) diff --git a/net.mograsim.logic.core/src/net/mograsim/logic/core/wires/Wire.java b/net.mograsim.logic.core/src/net/mograsim/logic/core/wires/Wire.java index 4063d78f..15755ae9 100644 --- a/net.mograsim.logic.core/src/net/mograsim/logic/core/wires/Wire.java +++ b/net.mograsim.logic.core/src/net/mograsim/logic/core/wires/Wire.java @@ -637,7 +637,7 @@ public class Wire * @param bitA The bit of {@link Wire} a to be fused * @param bitB The bit of {@link Wire} b to be fused */ - private static void fuse(Wire a, Wire b, int bitA, int bitB) + public static void fuse(Wire a, Wire b, int bitA, int bitB) { if (bitA >= a.width) throw new IllegalArgumentException("No bit " + bitA + " in " + a + " (width " + a.width + ")"); diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/GUIMerger.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/GUIMerger.java index 313a51a6..d8ef0152 100644 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/GUIMerger.java +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/GUIMerger.java @@ -57,8 +57,8 @@ public class GUIMerger extends GUIComponent gc.setForeground(ColorManager.current().toColor(c)); double outLineY = posY + (logicWidth - 1) * heightPerPin / 2; gc.drawLine(posX + width / 2, outLineY, posX + width, outLineY); - double inputHeight = posY + (logicWidth - 1) * heightPerPin; - for (int i = 0; i < logicWidth; i++, inputHeight -= 10) + double inputHeight = posY; + for (int i = 0; i < logicWidth; i++, inputHeight += 10) { c = BitVectorFormatter.formatAsColor(inputEnds[i]); if (c != null) diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/GUISplitter.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/GUISplitter.java index 9527279d..6da46580 100644 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/GUISplitter.java +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/GUISplitter.java @@ -57,8 +57,8 @@ public class GUISplitter extends GUIComponent gc.setForeground(ColorManager.current().toColor(c)); double inLineY = posY + (logicWidth - 1) * heightPerPin / 2; gc.drawLine(posX, inLineY, posX + width / 2, inLineY); - double outputHeight = posY + (logicWidth - 1) * heightPerPin; - for (int i = 0; i < logicWidth; i++, outputHeight -= 10) + double outputHeight = posY; + for (int i = 0; i < logicWidth; i++, outputHeight += 10) { c = BitVectorFormatter.formatAsColor(outputEnds[i]); if (c != null) diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/wires/Pin.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/wires/Pin.java index 5f6504c5..0c63d389 100644 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/wires/Pin.java +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/wires/Pin.java @@ -18,7 +18,6 @@ import net.mograsim.logic.model.model.components.GUIComponent; */ public class Pin { - // TODO introduce input/output/tristate hints /** * The {@link GUIComponent} this pin belongs to. */ diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/componentadapters/MergerAdapter.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/componentadapters/MergerAdapter.java index e5e44300..cb3057e5 100644 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/componentadapters/MergerAdapter.java +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/componentadapters/MergerAdapter.java @@ -25,8 +25,8 @@ public class MergerAdapter implements ComponentAdapter ReadEnd[] inputEnds = new ReadEnd[guiComponent.logicWidth]; for (int i = 0; i < guiComponent.logicWidth; i++) { - Wire input = logicWiresPerPin.get(guiComponent.getPin("I" + i)); - Wire.fuse(input, output, 0, guiComponent.logicWidth - 1 - i, 1); + Wire input = logicWiresPerPin.get(guiComponent.getPin("I" + (guiComponent.logicWidth - 1 - i))); + Wire.fuse(input, output, 0, i); inputEnds[i] = input.createReadOnlyEnd(); } guiComponent.setLogicModelBinding(inputEnds, output.createReadOnlyEnd()); diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/componentadapters/SplitterAdapter.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/componentadapters/SplitterAdapter.java index 1a5a50e9..57cad511 100644 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/componentadapters/SplitterAdapter.java +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/componentadapters/SplitterAdapter.java @@ -25,8 +25,8 @@ public class SplitterAdapter implements ComponentAdapter ReadEnd[] outputEnds = new ReadEnd[guiComponent.logicWidth]; for (int i = 0; i < guiComponent.logicWidth; i++) { - Wire output = logicWiresPerPin.get(guiComponent.getPin("O" + i)); - Wire.fuse(input, output, guiComponent.logicWidth - 1 - i, 0, 1); + Wire output = logicWiresPerPin.get(guiComponent.getPin("O" + (guiComponent.logicWidth - 1 - i))); + Wire.fuse(input, output, i, 0); outputEnds[i] = output.createReadOnlyEnd(); } guiComponent.setLogicModelBinding(input.createReadOnlyEnd(), outputEnds); -- 2.17.1