From: Daniel Kirschten Date: Wed, 13 Nov 2019 12:07:07 +0000 (+0100) Subject: Added short titles for MPM columns X-Git-Url: https://mograsim.net/gitweb/?p=Mograsim.git;a=commitdiff_plain;h=733574abd1dd4e453e79aab9152a2f55533834a4 Added short titles for MPM columns --- diff --git a/plugins/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/machine/Am2900MicroInstructionDefinition.java b/plugins/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/machine/Am2900MicroInstructionDefinition.java index dc149c89..c2272bd9 100644 --- a/plugins/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/machine/Am2900MicroInstructionDefinition.java +++ b/plugins/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/machine/Am2900MicroInstructionDefinition.java @@ -80,6 +80,10 @@ public class Am2900MicroInstructionDefinition implements MicroInstructionDefinit dbus, am2904CarryInstructions, am2904ShiftInstructions, hL, hL, am2904StatusInstructions, ccen, am2910Instructions, constant_12bit, hL, hE, hI, hE, hL, rW }; + private static final String[] paramTitle = { "IE", "I", "KMUX", "K", "01 Src", "01 Func", "01 Dest", "01 RA", "01 ASel", "01 RB", + "01 BSel", "_ABus", "_DBus", "04 Cin", "04 Shift", "04 _CE\u00b5", "_CEM", "04 Op", "10 _CCEN", "10 I", "D", "BZ _LD", "BZ _ED", + "BZ _INC", "BZ _EA", "IR _LD", "_MWE" }; + private static final String[] paramDesc = { "Allow interrupts?", "Interrupt instructions; omitted for simplicity", "Get D-input from data bus/constant value", "Constant value", "Operand sources for ALU operation", "ALU operation", "Destination of ALU calculation", "Register for A-operand", "Get A-operand from instruction register/micro instruction?", @@ -102,6 +106,12 @@ public class Am2900MicroInstructionDefinition implements MicroInstructionDefinit return classes[index]; } + @Override + public Optional getParameterTitle(int index) + { + return Optional.of(paramTitle[index]); + } + @Override public Optional getParameterDescription(int index) { diff --git a/plugins/net.mograsim.machine/src/net/mograsim/machine/mi/MicroInstructionDefinition.java b/plugins/net.mograsim.machine/src/net/mograsim/machine/mi/MicroInstructionDefinition.java index e5e34481..4054bb8b 100644 --- a/plugins/net.mograsim.machine/src/net/mograsim/machine/mi/MicroInstructionDefinition.java +++ b/plugins/net.mograsim.machine/src/net/mograsim/machine/mi/MicroInstructionDefinition.java @@ -48,5 +48,7 @@ public interface MicroInstructionDefinition return new StandardMicroInstruction(params); } + public Optional getParameterTitle(int index); + public Optional getParameterDescription(int index); } \ No newline at end of file diff --git a/plugins/net.mograsim.plugin.core/src/net/mograsim/plugin/MainPreferencePage.java b/plugins/net.mograsim.plugin.core/src/net/mograsim/plugin/MainPreferencePage.java index 87e2334b..79a18f14 100644 --- a/plugins/net.mograsim.plugin.core/src/net/mograsim/plugin/MainPreferencePage.java +++ b/plugins/net.mograsim.plugin.core/src/net/mograsim/plugin/MainPreferencePage.java @@ -34,8 +34,8 @@ public class MainPreferencePage extends FieldEditorPreferencePage implements IWo addField(new ComboFieldEditor("net.mograsim.logic.model.button.action", "Mouse button for actions", MOUSE_BUTTONS, parent)); addField(new ComboFieldEditor("net.mograsim.logic.model.button.drag", "Mouse button for dragging", MOUSE_BUTTONS, parent)); addField(new ComboFieldEditor("net.mograsim.logic.model.button.zoom", "Mouse button for zooming", MOUSE_BUTTONS, parent)); - addField(new BooleanFieldEditor("net.mograsim.plugin.core.editors.mpm.descriptionascolumnname", - "Use the MPM column description as table header", parent)); + addField(new BooleanFieldEditor("net.mograsim.plugin.core.editors.mpm.bitsascolumnname", + "Use the raw bit indices of MPM columns as column titles in the MPM editor", parent)); // TODO add other preferences } } \ No newline at end of file diff --git a/plugins/net.mograsim.plugin.core/src/net/mograsim/plugin/tables/mi/InstructionTable.java b/plugins/net.mograsim.plugin.core/src/net/mograsim/plugin/tables/mi/InstructionTable.java index 2632f392..81e0f16e 100644 --- a/plugins/net.mograsim.plugin.core/src/net/mograsim/plugin/tables/mi/InstructionTable.java +++ b/plugins/net.mograsim.plugin.core/src/net/mograsim/plugin/tables/mi/InstructionTable.java @@ -132,19 +132,14 @@ public class InstructionTable int startBit = bit - 1; int endBit = bit = bit - classes[i].getExpectedBits(); - String description = miDef.getParameterDescription(i).orElse(null); + String columnTitle; String bitString = startBit == endBit ? Integer.toString(startBit) : startBit + "..." + endBit; - String columnTitle, columnTooltip; - if (useDescriptionAsColumnTitle(description)) - { - columnTitle = description; - columnTooltip = bitString; - } else - { + if (Preferences.current().getBoolean("net.mograsim.plugin.core.editors.mpm.bitsascolumnname")) columnTitle = bitString; - columnTooltip = description; - } + else + columnTitle = miDef.getParameterTitle(i).orElse(bitString); columnTitles[i] = columnTitle; + String columnTooltip = miDef.getParameterDescription(i).orElse(null); col = createTableViewerColumn(columnTitle, columnTooltip); columns[i + 1] = col; @@ -175,11 +170,6 @@ public class InstructionTable viewer.getTable().setVisible(true); } - private static boolean useDescriptionAsColumnTitle(String description) - { - return description != null && Preferences.current().getBoolean("net.mograsim.plugin.core.editors.mpm.descriptionascolumnname"); - } - public void bindMicroInstructionMemory(MicroInstructionMemory memory) { this.memory = memory; diff --git a/plugins/net.mograsim.preferences/src/net/mograsim/preferences/DefaultPreferences.java b/plugins/net.mograsim.preferences/src/net/mograsim/preferences/DefaultPreferences.java index b6180f2b..1f6820dd 100644 --- a/plugins/net.mograsim.preferences/src/net/mograsim/preferences/DefaultPreferences.java +++ b/plugins/net.mograsim.preferences/src/net/mograsim/preferences/DefaultPreferences.java @@ -13,7 +13,7 @@ public class DefaultPreferences extends Preferences return true; case "net.mograsim.logic.model.debug.openhlsshell": return false; - case "net.mograsim.plugin.core.editors.mpm.descriptionascolumnname": + case "net.mograsim.plugin.core.editors.mpm.bitsascolumnname": return false; default: throw new IllegalArgumentException("Unknown boolean preference name: " + name);