diff --git a/src/main/dig/FullAdderCLA.dig b/src/main/dig/FullAdderCLA.dig
index bc66c542d..453a09763 100644
--- a/src/main/dig/FullAdderCLA.dig
+++ b/src/main/dig/FullAdderCLA.dig
@@ -1,5 +1,12 @@
+ 1
+
+
+ Width
+ 4
+
+
In
@@ -9,7 +16,7 @@
C_i-1
-
+
0
@@ -24,31 +31,31 @@
1
-
+
0
Or
-
+
0
And
-
+
0
XOr
-
+
0
XOr
-
+
0
@@ -59,7 +66,7 @@
A1
-
+
0
@@ -70,7 +77,7 @@
S0
-
+
0
@@ -81,7 +88,7 @@
A2
-
+
0
@@ -96,43 +103,43 @@
1
-
+
0
Or
-
+
0
And
-
+
0
And
-
+
0
Or
-
+
0
XOr
-
+
0
XOr
-
+
0
@@ -143,13 +150,13 @@
S1
-
+
0
And
-
+
0
@@ -160,7 +167,7 @@
3
-
+
0
@@ -171,13 +178,13 @@
3
-
+
0
XOr
-
+
0
@@ -188,7 +195,7 @@
S2
-
+
0
@@ -199,7 +206,7 @@
B0
-
+
0
@@ -214,31 +221,31 @@
1
-
+
0
Or
-
+
0
And
-
+
0
XOr
-
+
0
And
-
+
0
@@ -249,7 +256,7 @@
3
-
+
0
@@ -260,7 +267,7 @@
4
-
+
0
@@ -271,7 +278,7 @@
4
-
+
0
@@ -286,7 +293,7 @@
1
-
+
0
@@ -297,31 +304,31 @@
B3
-
+
0
Or
-
+
0
And
-
+
0
XOr
-
+
0
XOr
-
+
0
@@ -332,13 +339,13 @@
S3
-
+
0
And
-
+
0
@@ -349,7 +356,7 @@
5
-
+
0
@@ -360,7 +367,7 @@
C_i
-
+
0
@@ -371,7 +378,7 @@
3
-
+
0
@@ -382,7 +389,7 @@
4
-
+
0
@@ -393,694 +400,690 @@
5
-
+
0
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/dig/mult.dig b/src/main/dig/mult.dig
new file mode 100644
index 000000000..86fc1dad0
--- /dev/null
+++ b/src/main/dig/mult.dig
@@ -0,0 +1,909 @@
+
+
+ 1
+
+
+ Width
+ 4
+
+
+
+
+ In
+
+
+ Label
+ P_0
+
+
+
+ 0
+
+
+ In
+
+
+ Label
+ P_1
+
+
+
+ 0
+
+
+ In
+
+
+ Label
+ P_2
+
+
+
+ 0
+
+
+ In
+
+
+ Label
+ P_3
+
+
+
+ 0
+
+
+ And
+
+
+ 0
+
+
+ And
+
+
+ 0
+
+
+ And
+
+
+ 0
+
+
+ And
+
+
+ 0
+
+
+ In
+
+
+ Label
+ Q_0
+
+
+
+ 0
+
+
+ Out
+
+
+ Label
+ S_0
+
+
+
+ 0
+
+
+ FullAdderCLA.dig
+
+
+ 0
+
+
+ Const
+
+
+ Value
+ 0
+
+
+
+ 0
+
+
+ And
+
+
+ 0
+
+
+ And
+
+
+ 0
+
+
+ And
+
+
+ 0
+
+
+ And
+
+
+ 0
+
+
+ In
+
+
+ Label
+ Q_1
+
+
+
+ 0
+
+
+ Out
+
+
+ Label
+ S_1
+
+
+
+ 0
+
+
+ FullAdderCLA.dig
+
+
+ 0
+
+
+ Const
+
+
+ Value
+ 0
+
+
+
+ 0
+
+
+ Out
+
+
+ Label
+ S_2
+
+
+
+ 0
+
+
+ And
+
+
+ 0
+
+
+ And
+
+
+ 0
+
+
+ And
+
+
+ 0
+
+
+ And
+
+
+ 0
+
+
+ In
+
+
+ Label
+ Q_2
+
+
+
+ 0
+
+
+ FullAdderCLA.dig
+
+
+ 0
+
+
+ Const
+
+
+ Value
+ 0
+
+
+
+ 0
+
+
+ And
+
+
+ 0
+
+
+ And
+
+
+ 0
+
+
+ And
+
+
+ 0
+
+
+ And
+
+
+ 0
+
+
+ In
+
+
+ Label
+ Q_3
+
+
+
+ 0
+
+
+ Out
+
+
+ Label
+ S_3
+
+
+
+ 0
+
+
+ Out
+
+
+ Label
+ S_4
+
+
+
+ 0
+
+
+ Out
+
+
+ Label
+ S_5
+
+
+
+ 0
+
+
+ Out
+
+
+ Label
+ S_6
+
+
+
+ 0
+
+
+ Out
+
+
+ Label
+ S_7
+
+
+
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/dig/multTest.dig b/src/main/dig/multTest.dig
new file mode 100644
index 000000000..c9ac27475
--- /dev/null
+++ b/src/main/dig/multTest.dig
@@ -0,0 +1,248 @@
+
+
+ 1
+
+
+ mult.dig
+
+
+ 0
+
+
+ Seven-Seg-Hex
+
+
+ 0
+
+
+ Seven-Seg-Hex
+
+
+ 0
+
+
+ Seven-Seg-Hex
+
+
+ 0
+
+
+ Seven-Seg-Hex
+
+
+ 0
+
+
+ In
+
+
+ Label
+ P
+
+
+ Bits
+ 4
+
+
+ Default
+ 4
+
+
+
+ 0
+
+
+ Splitter
+
+
+ Input Splitting
+ 4
+
+
+ Output Splitting
+ 1*4
+
+
+
+ 0
+
+
+ Splitter
+
+
+ Input Splitting
+ 4
+
+
+ Output Splitting
+ 1*4
+
+
+
+ 0
+
+
+ In
+
+
+ Label
+ Q
+
+
+ Bits
+ 4
+
+
+ Default
+ 9
+
+
+
+ 0
+
+
+ Splitter
+
+
+ Input Splitting
+ 1*4
+
+
+ Output Splitting
+ 4
+
+
+
+ 0
+
+
+ Splitter
+
+
+ Input Splitting
+ 1*4
+
+
+ Output Splitting
+ 4
+
+
+
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/java/de/neemann/digital/gui/components/CircuitComponent.java b/src/main/java/de/neemann/digital/gui/components/CircuitComponent.java
index fc7176c79..8ad32ee6f 100644
--- a/src/main/java/de/neemann/digital/gui/components/CircuitComponent.java
+++ b/src/main/java/de/neemann/digital/gui/components/CircuitComponent.java
@@ -55,6 +55,7 @@ public class CircuitComponent extends JComponent {
private final MouseControllerMoveSelected mouseMoveSelected;
private final MouseControllerCopySelected mouseCopySelected;
private final MouseController mouseRun;
+ private final Cursor moveCursor;
private Circuit circuit;
private MouseController activeMouseController;
@@ -96,13 +97,14 @@ public class CircuitComponent extends JComponent {
});
Cursor normalCursor = new Cursor(Cursor.DEFAULT_CURSOR);
+ moveCursor = new Cursor(Cursor.MOVE_CURSOR);
mouseNormal = new MouseControllerNormal(normalCursor);
mouseInsertElement = new MouseControllerInsertElement(normalCursor);
mouseMoveElement = new MouseControllerMoveElement(normalCursor);
mouseWire = new MouseControllerWire(normalCursor);
mouseSelect = new MouseControllerSelect(new Cursor(Cursor.CROSSHAIR_CURSOR));
- mouseMoveSelected = new MouseControllerMoveSelected(new Cursor(Cursor.MOVE_CURSOR));
- mouseCopySelected = new MouseControllerCopySelected(new Cursor(Cursor.MOVE_CURSOR));
+ mouseMoveSelected = new MouseControllerMoveSelected(moveCursor);
+ mouseCopySelected = new MouseControllerCopySelected(moveCursor);
mouseRun = new MouseControllerRun(normalCursor);
setCircuit(aCircuit);
@@ -564,6 +566,7 @@ public class CircuitComponent extends JComponent {
@Override
void released(MouseEvent e) {
wasReleased = true;
+ setCursor(moveCursor);
}
@Override