--- /dev/null
+mograsim version: 0.1.3
+{
+ "width": 35.0,
+ "height": 270.0,
+ "interfacePins": [
+ {
+ "location": {
+ "x": 0.0,
+ "y": 45.0
+ },
+ "name": "_MAP",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 255.0
+ },
+ "name": "_CCEN",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 265.0
+ },
+ "name": "C",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 95.0
+ },
+ "name": "D",
+ "logicWidth": 12
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 55.0
+ },
+ "name": "_CI",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 65.0
+ },
+ "name": "_FULL",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 85.0
+ },
+ "name": "_RLD",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 75.0
+ },
+ "name": "I",
+ "logicWidth": 4
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 115.0
+ },
+ "name": "Y",
+ "logicWidth": 12
+ },
+ {
+ "location": {
+ "x": 35.0,
+ "y": 65.0
+ },
+ "name": "_PL",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 105.0
+ },
+ "name": "_VECT",
+ "logicWidth": 1
+ },
+ {
+ "location": {
+ "x": 0.0,
+ "y": 85.0
+ },
+ "name": "_CC",
+ "logicWidth": 1
+ }
+ ],
+ "submodel": {
+ "innerScale": 0.2,
+ "subComps": [],
+ "innerWires": []
+ },
+ "symbolRendererSnippetID": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
+ "symbolRendererParams": {
+ "centerText": "GUIAm2901",
+ "centerTextHeight": 5.0,
+ "horizontalComponentCenter": 17.5,
+ "pinLabelHeight": 3.5,
+ "pinLabelMargin": 0.5
+ },
+ "outlineRendererSnippetID": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer",
+ "highLevelStateHandlerSnippetID": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.StandardHighLevelStateHandler",
+ "highLevelStateHandlerParams": {
+ "subcomponentHighLevelStates": {},
+ "atomicHighLevelStates": {}
+ }
+}
\ No newline at end of file
import net.mograsim.logic.model.model.ViewModelModifiable;
import net.mograsim.logic.model.model.components.atomic.SimpleRectangularHardcodedGUIComponent;
import net.mograsim.logic.model.model.wires.Pin;
+import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator;
import net.mograsim.logic.model.snippets.symbolrenderers.PinNamesSymbolRenderer.PinNamesParams.Position;
public class GUIdff12 extends SimpleRectangularHardcodedGUIComponent
return QC;
}
+
+ static
+ {
+ IndirectGUIComponentCreator.setComponentSupplier(GUIdff12.class.getCanonicalName(), (m, p, n) -> new GUIdff12(m, n));
+ }
}
\ No newline at end of file
import net.mograsim.logic.model.model.ViewModelModifiable;
import net.mograsim.logic.model.model.components.atomic.SimpleRectangularHardcodedGUIComponent;
import net.mograsim.logic.model.model.wires.Pin;
+import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator;
import net.mograsim.logic.model.snippets.symbolrenderers.PinNamesSymbolRenderer.PinNamesParams.Position;
public class GUIinc12 extends SimpleRectangularHardcodedGUIComponent
return null;
}
+ static
+ {
+ IndirectGUIComponentCreator.setComponentSupplier(GUIinc12.class.getCanonicalName(), (m, p, n) -> new GUIinc12(m, n));
+ }
}
\ No newline at end of file
package net.mograsim.logic.model.am2900.components;
+import static net.mograsim.logic.core.types.Bit.ONE;
+import static net.mograsim.logic.core.types.Bit.U;
+import static net.mograsim.logic.core.types.Bit.X;
+import static net.mograsim.logic.core.types.Bit.Z;
+import static net.mograsim.logic.core.types.Bit.ZERO;
+
import java.util.Map;
import net.mograsim.logic.core.types.Bit;
import net.mograsim.logic.core.types.BitVector;
-
-import static net.mograsim.logic.core.types.Bit.*;
import net.mograsim.logic.core.wires.Wire.ReadEnd;
import net.mograsim.logic.core.wires.Wire.ReadWriteEnd;
import net.mograsim.logic.model.model.ViewModelModifiable;
import net.mograsim.logic.model.model.components.atomic.SimpleRectangularHardcodedGUIComponent;
import net.mograsim.logic.model.model.wires.Pin;
+import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator;
import net.mograsim.logic.model.snippets.symbolrenderers.PinNamesSymbolRenderer.PinNamesParams.Position;
public class GUImux4_12 extends SimpleRectangularHardcodedGUIComponent
readWriteEnds.get("Y").feedSignals(YVal);
return null;
}
+
+ static
+ {
+ IndirectGUIComponentCreator.setComponentSupplier(GUImux4_12.class.getCanonicalName(), (m, p, n) -> new GUImux4_12(m, n));
+ }
}
\ No newline at end of file
import net.mograsim.logic.model.model.ViewModelModifiable;
import net.mograsim.logic.model.model.components.atomic.SimpleRectangularHardcodedGUIComponent;
import net.mograsim.logic.model.model.wires.Pin;
+import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator;
import net.mograsim.logic.model.snippets.symbolrenderers.PinNamesSymbolRenderer.PinNamesParams.Position;
public class GUInor12 extends SimpleRectangularHardcodedGUIComponent
return X;
return ONE;
}
+
+ static
+ {
+ IndirectGUIComponentCreator.setComponentSupplier(GUInor12.class.getCanonicalName(), (m, p, n) -> new GUInor12(m, n));
+ }
}
\ No newline at end of file
package net.mograsim.logic.model.am2900.components;
-import static net.mograsim.logic.core.types.Bit.*;
+import static net.mograsim.logic.core.types.Bit.ONE;
+import static net.mograsim.logic.core.types.Bit.U;
+import static net.mograsim.logic.core.types.Bit.X;
+import static net.mograsim.logic.core.types.Bit.Z;
+import static net.mograsim.logic.core.types.Bit.ZERO;
import java.util.Arrays;
import java.util.Map;
import net.mograsim.logic.model.model.ViewModelModifiable;
import net.mograsim.logic.model.model.components.atomic.SimpleRectangularHardcodedGUIComponent;
import net.mograsim.logic.model.model.wires.Pin;
+import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator;
import net.mograsim.logic.model.snippets.symbolrenderers.PinNamesSymbolRenderer.PinNamesParams.Position;
public class GUIram5_12 extends SimpleRectangularHardcodedGUIComponent
// TODO maybe this is the wrong way around
return (bits[0] == ONE ? 4 : 0) + (bits[1] == ONE ? 2 : 0) + (bits[2] == ONE ? 1 : 0);
}
+
+ static
+ {
+ IndirectGUIComponentCreator.setComponentSupplier(GUIram5_12.class.getCanonicalName(), (m, p, n) -> new GUIram5_12(m, n));
+ }
}
\ No newline at end of file
import net.mograsim.logic.model.model.ViewModelModifiable;
import net.mograsim.logic.model.model.components.atomic.SimpleRectangularHardcodedGUIComponent;
import net.mograsim.logic.model.model.wires.Pin;
+import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator;
import net.mograsim.logic.model.snippets.symbolrenderers.PinNamesSymbolRenderer.PinNamesParams.Position;
public class GUIAm2910InstrPLA extends SimpleRectangularHardcodedGUIComponent
}
return null;
}
+
+ static
+ {
+ IndirectGUIComponentCreator.setComponentSupplier(GUIAm2910InstrPLA.class.getCanonicalName(),
+ (m, p, n) -> new GUIAm2910InstrPLA(m, n));
+ }
}
\ No newline at end of file
import net.mograsim.logic.model.model.ViewModelModifiable;
import net.mograsim.logic.model.model.components.atomic.SimpleRectangularHardcodedGUIComponent;
import net.mograsim.logic.model.model.wires.Pin;
+import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator;
import net.mograsim.logic.model.snippets.symbolrenderers.PinNamesSymbolRenderer.PinNamesParams.Position;
public class GUIAm2910RegCntr extends SimpleRectangularHardcodedGUIComponent
return QC;
}
+
+ static
+ {
+ IndirectGUIComponentCreator.setComponentSupplier(GUIAm2910RegCntr.class.getCanonicalName(),
+ (m, p, n) -> new GUIAm2910RegCntr(m, n));
+ }
}
\ No newline at end of file
package net.mograsim.logic.model.am2900.components.am2910;
+import static net.mograsim.logic.core.types.Bit.ONE;
+import static net.mograsim.logic.core.types.Bit.U;
+import static net.mograsim.logic.core.types.Bit.X;
+import static net.mograsim.logic.core.types.Bit.ZERO;
+
import java.util.Map;
-import static net.mograsim.logic.core.types.Bit.*;
import net.mograsim.logic.core.types.Bit;
import net.mograsim.logic.core.types.BitVector;
import net.mograsim.logic.model.model.ViewModelModifiable;
import net.mograsim.logic.model.model.components.atomic.SimpleRectangularHardcodedGUIComponent;
import net.mograsim.logic.model.model.wires.Pin;
+import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator;
import net.mograsim.logic.model.snippets.symbolrenderers.PinNamesSymbolRenderer.PinNamesParams.Position;
public class GUIAm2910SP extends SimpleRectangularHardcodedGUIComponent
// TODO maybe this is the wrong way around
return BitVector.of((i & 0b100) > 0 ? ONE : ZERO, (i & 0b10) > 0 ? ONE : ZERO, (i & 0b1) > 0 ? ONE : ZERO);
}
+
+ static
+ {
+ IndirectGUIComponentCreator.setComponentSupplier(GUIAm2910SP.class.getCanonicalName(), (m, p, n) -> new GUIAm2910SP(m, n));
+ }
}
\ No newline at end of file
net.mograsim.logic.model.editor.states,
net.mograsim.logic.model.editor.ui
Require-Bundle: net.mograsim.logic.model;bundle-version="0.1.0",
- net.mograsim.preferences;bundle-version="0.1.0"
+ net.mograsim.preferences;bundle-version="0.1.0",
+ net.mograsim.logic.model.am2900;bundle-version="0.1.0"
Bundle-RequiredExecutionEnvironment: JavaSE-11
Automatic-Module-Name: net.mograsim.logic.model.editor
Bundle-Vendor: Mograsim Team
ComponentSupplier componentSupplier = componentSuppliers.get(className);
if (componentSupplier != null)
return componentSupplier.create(model, params, name);
+ throw new IllegalArgumentException("Component supplier not found for ID " + id + " (resolved: " + resolvedID + ")");
} else
// we know id has to start with "file:" here
// because standardComponentIDs only contains strings starting with "class:" or "file:"
"GUIsel2_4": "file:components/GUIsel2_4.json",
"GUIsel3_4": "file:components/GUIsel3_4.json",
"GUIxor": "file:components/GUIxor.json",
+ "GUIAm2910InstrPLA": "class:net.mograsim.logic.model.am2900.components.am2910.GUIAm2910InstrPLA",
+ "GUIAm2910RegCntr": "class:net.mograsim.logic.model.am2900.components.am2910.GUIAm2910RegCntr",
+ "GUIAm2910SP": "class:net.mograsim.logic.model.am2900.components.am2910.GUIAm2910SP",
+ "GUIdff12": "class:net.mograsim.logic.model.am2900.components.GUIdff12",
+ "GUIinc12": "class:net.mograsim.logic.model.am2900.components.GUIinc12",
+ "GUImux4_12": "class:net.mograsim.logic.model.am2900.components.GUImux4_12",
+ "GUInor12": "class:net.mograsim.logic.model.am2900.components.GUInor12",
+ "GUIram5_12": "class:net.mograsim.logic.model.am2900.components.GUIram5_12",
"WireCrossPoint": "class:net.mograsim.logic.model.model.wires.WireCrossPoint"
}
\ No newline at end of file