diff --git a/src/main/dig/sequential/D.dig b/src/main/dig/sequential/D.dig
new file mode 100644
index 000000000..6d03e1d13
--- /dev/null
+++ b/src/main/dig/sequential/D.dig
@@ -0,0 +1,178 @@
+
+
+ 1
+
+
+ NOr
+
+
+ 0
+
+
+ NOr
+
+
+ 0
+
+
+ In
+
+
+ Label
+ D
+
+
+
+ 0
+
+
+ In
+
+
+ Label
+ C
+
+
+
+ 0
+
+
+ Out
+
+
+ Label
+ Q
+
+
+
+ 0
+
+
+ Out
+
+
+ Label
+ ~Q
+
+
+
+ 0
+
+
+ And
+
+
+ 0
+
+
+ And
+
+
+ 0
+
+
+ Not
+
+
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/dig/sequential/D_MS.dig b/src/main/dig/sequential/D_MS.dig
new file mode 100644
index 000000000..cf68516e8
--- /dev/null
+++ b/src/main/dig/sequential/D_MS.dig
@@ -0,0 +1,301 @@
+
+
+ 1
+
+
+ NOr
+
+
+ 0
+
+
+ NOr
+
+
+ 0
+
+
+ In
+
+
+ Label
+ D
+
+
+
+ 0
+
+
+ In
+
+
+ Label
+ C
+
+
+
+ 0
+
+
+ And
+
+
+ 0
+
+
+ And
+
+
+ 0
+
+
+ Not
+
+
+ rotation
+
+
+
+
+ 3
+
+
+ Out
+
+
+ Label
+ Q
+
+
+
+ 0
+
+
+ NOr
+
+
+ 0
+
+
+ NOr
+
+
+ 0
+
+
+ And
+
+
+ 0
+
+
+ And
+
+
+ 0
+
+
+ Not
+
+
+ 0
+
+
+ Out
+
+
+ Label
+ ~Q
+
+
+
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/dig/sequential/D_T.dig b/src/main/dig/sequential/D_T.dig
new file mode 100644
index 000000000..0cca6d8a6
--- /dev/null
+++ b/src/main/dig/sequential/D_T.dig
@@ -0,0 +1,224 @@
+
+
+ 1
+
+
+ NOr
+
+
+ 0
+
+
+ NOr
+
+
+ 0
+
+
+ In
+
+
+ Label
+ D
+
+
+
+ 0
+
+
+ In
+
+
+ Label
+ C
+
+
+
+ 0
+
+
+ Out
+
+
+ Label
+ Q
+
+
+
+ 0
+
+
+ Out
+
+
+ Label
+ ~Q
+
+
+
+ 0
+
+
+ And
+
+
+ 0
+
+
+ And
+
+
+ 0
+
+
+ Not
+
+
+ 0
+
+
+ And
+
+
+ 0
+
+
+ Delay
+
+
+ 0
+
+
+ Not
+
+
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/dig/sequential/JK-T.dig b/src/main/dig/sequential/JK-T.dig
new file mode 100644
index 000000000..31870a11c
--- /dev/null
+++ b/src/main/dig/sequential/JK-T.dig
@@ -0,0 +1,275 @@
+
+
+ 1
+
+
+ And
+
+
+ 0
+
+
+ Not
+
+
+ 0
+
+
+ And
+
+
+ Inputs
+ 3
+
+
+
+ 0
+
+
+ And
+
+
+ Inputs
+ 3
+
+
+
+ 0
+
+
+ NOr
+
+
+ 0
+
+
+ NOr
+
+
+ 0
+
+
+ In
+
+
+ Label
+ J
+
+
+ Default
+ 1
+
+
+
+ 0
+
+
+ Out
+
+
+ Label
+ Q
+
+
+
+ 0
+
+
+ Out
+
+
+ Label
+ ~Q
+
+
+
+ 0
+
+
+ Delay
+
+
+ 0
+
+
+ In
+
+
+ Label
+ C
+
+
+
+ 0
+
+
+ In
+
+
+ Label
+ K
+
+
+ Default
+ 1
+
+
+
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ C
+ J
+ K
+ Dif
+ Q
+ ~Q
+
+
\ No newline at end of file
diff --git a/src/main/dig/sequential/JK_MS.dig b/src/main/dig/sequential/JK_MS.dig
new file mode 100644
index 000000000..3164bf358
--- /dev/null
+++ b/src/main/dig/sequential/JK_MS.dig
@@ -0,0 +1,346 @@
+
+
+ 1
+
+
+ And
+
+
+ Inputs
+ 3
+
+
+
+ 0
+
+
+ And
+
+
+ Inputs
+ 3
+
+
+
+ 0
+
+
+ Not
+
+
+ 0
+
+
+ In
+
+
+ Label
+ J
+
+
+ Default
+ 1
+
+
+
+ 0
+
+
+ In
+
+
+ Label
+ C
+
+
+
+ 0
+
+
+ NOr
+
+
+ 0
+
+
+ NOr
+
+
+ 0
+
+
+ And
+
+
+ 0
+
+
+ And
+
+
+ 0
+
+
+ NOr
+
+
+ 0
+
+
+ NOr
+
+
+ 0
+
+
+ Out
+
+
+ Label
+ Q
+
+
+
+ 0
+
+
+ Out
+
+
+ Label
+ ~Q
+
+
+
+ 0
+
+
+ In
+
+
+ Label
+ K
+
+
+ Default
+ 1
+
+
+
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ C
+ J
+ K
+ Q
+ ~Q
+
+
\ No newline at end of file
diff --git a/src/main/dig/sequential/RS.dig b/src/main/dig/sequential/RS.dig
new file mode 100644
index 000000000..d187bd3a7
--- /dev/null
+++ b/src/main/dig/sequential/RS.dig
@@ -0,0 +1,119 @@
+
+
+
+
+ NOr
+
+
+ 0
+
+
+ NOr
+
+
+ 0
+
+
+ In
+
+
+ Label
+ R
+
+
+
+ 0
+
+
+ In
+
+
+ Label
+ S
+
+
+
+ 0
+
+
+ Out
+
+
+ Label
+ Q
+
+
+
+ 0
+
+
+ Out
+
+
+ Label
+ ~Q
+
+
+
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/dig/sequential/RS_C.dig b/src/main/dig/sequential/RS_C.dig
new file mode 100644
index 000000000..ca5e49b16
--- /dev/null
+++ b/src/main/dig/sequential/RS_C.dig
@@ -0,0 +1,171 @@
+
+
+ 1
+
+
+ NOr
+
+
+ 0
+
+
+ NOr
+
+
+ 0
+
+
+ In
+
+
+ Label
+ S
+
+
+
+ 0
+
+
+ In
+
+
+ Label
+ C
+
+
+
+ 0
+
+
+ Out
+
+
+ Label
+ Q
+
+
+
+ 0
+
+
+ Out
+
+
+ Label
+ ~Q
+
+
+
+ 0
+
+
+ And
+
+
+ 0
+
+
+ And
+
+
+ 0
+
+
+ In
+
+
+ Label
+ R
+
+
+
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/dig/sequential/RS_MS.dig b/src/main/dig/sequential/RS_MS.dig
new file mode 100644
index 000000000..193ffc603
--- /dev/null
+++ b/src/main/dig/sequential/RS_MS.dig
@@ -0,0 +1,289 @@
+
+
+ 1
+
+
+ NOr
+
+
+ 0
+
+
+ NOr
+
+
+ 0
+
+
+ In
+
+
+ Label
+ S
+
+
+
+ 0
+
+
+ In
+
+
+ Label
+ C
+
+
+
+ 0
+
+
+ Out
+
+
+ Label
+ Q
+
+
+
+ 0
+
+
+ Out
+
+
+ Label
+ ~Q
+
+
+
+ 0
+
+
+ And
+
+
+ 0
+
+
+ And
+
+
+ 0
+
+
+ In
+
+
+ Label
+ R
+
+
+
+ 0
+
+
+ NOr
+
+
+ 0
+
+
+ NOr
+
+
+ 0
+
+
+ And
+
+
+ 0
+
+
+ And
+
+
+ 0
+
+
+ Not
+
+
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/dig/sequential/RS_MS_Simp.dig b/src/main/dig/sequential/RS_MS_Simp.dig
new file mode 100644
index 000000000..563fd82a4
--- /dev/null
+++ b/src/main/dig/sequential/RS_MS_Simp.dig
@@ -0,0 +1,149 @@
+
+
+ 1
+
+
+ In
+
+
+ Label
+ R
+
+
+
+ 0
+
+
+ In
+
+
+ Label
+ C
+
+
+
+ 0
+
+
+ Out
+
+
+ Label
+ Q
+
+
+
+ 0
+
+
+ Out
+
+
+ Label
+ ~Q
+
+
+
+ 0
+
+
+ In
+
+
+ Label
+ S
+
+
+
+ 0
+
+
+ RS_C.dig
+
+
+ 0
+
+
+ RS_C.dig
+
+
+ 0
+
+
+ Not
+
+
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/dig/sequential/multip_D_notWorking.dig b/src/main/dig/sequential/multip_D_notWorking.dig
new file mode 100644
index 000000000..1b1df2a30
--- /dev/null
+++ b/src/main/dig/sequential/multip_D_notWorking.dig
@@ -0,0 +1,411 @@
+
+
+ 1
+
+
+ NOr
+
+
+ 0
+
+
+ NOr
+
+
+ 0
+
+
+ In
+
+
+ Label
+ D
+
+
+
+ 0
+
+
+ In
+
+
+ Label
+ C
+
+
+
+ 0
+
+
+ And
+
+
+ 0
+
+
+ And
+
+
+ 0
+
+
+ Not
+
+
+ 0
+
+
+ NOr
+
+
+ 0
+
+
+ NOr
+
+
+ 0
+
+
+ Out
+
+
+ Label
+ Q
+
+
+
+ 0
+
+
+ And
+
+
+ 0
+
+
+ And
+
+
+ 0
+
+
+ Not
+
+
+ 0
+
+
+ NOr
+
+
+ 0
+
+
+ NOr
+
+
+ 0
+
+
+ And
+
+
+ 0
+
+
+ And
+
+
+ 0
+
+
+ Not
+
+
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/dig/sequential/multip_D_working.dig b/src/main/dig/sequential/multip_D_working.dig
new file mode 100644
index 000000000..c7f743db0
--- /dev/null
+++ b/src/main/dig/sequential/multip_D_working.dig
@@ -0,0 +1,96 @@
+
+
+ 1
+
+
+ D_MS.dig
+
+
+ 0
+
+
+ D_MS.dig
+
+
+ 0
+
+
+ D_MS.dig
+
+
+ 0
+
+
+ In
+
+
+ 0
+
+
+ Out
+
+
+ 0
+
+
+ In
+
+
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/dig/sequential/multip_D_working_T.dig b/src/main/dig/sequential/multip_D_working_T.dig
new file mode 100644
index 000000000..429fadc13
--- /dev/null
+++ b/src/main/dig/sequential/multip_D_working_T.dig
@@ -0,0 +1,96 @@
+
+
+ 1
+
+
+ In
+
+
+ 0
+
+
+ Out
+
+
+ 0
+
+
+ In
+
+
+ 0
+
+
+ D_T.dig
+
+
+ 0
+
+
+ D_T.dig
+
+
+ 0
+
+
+ D_T.dig
+
+
+ 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 e6ce8f14e..f4eab8aad 100644
--- a/src/main/java/de/neemann/digital/gui/components/CircuitComponent.java
+++ b/src/main/java/de/neemann/digital/gui/components/CircuitComponent.java
@@ -11,7 +11,6 @@ import de.neemann.digital.draw.elements.Wire;
import de.neemann.digital.draw.graphics.*;
import de.neemann.digital.draw.library.ElementLibrary;
import de.neemann.digital.draw.shapes.Drawable;
-import de.neemann.digital.draw.shapes.GenericShape;
import de.neemann.digital.draw.shapes.ShapeFactory;
import de.neemann.digital.gui.LibrarySelector;
import de.neemann.digital.gui.Main;
@@ -35,6 +34,8 @@ import java.util.Arrays;
import java.util.Collection;
import java.util.HashSet;
+import static de.neemann.digital.draw.shapes.GenericShape.SIZE;
+
/**
* @author hneemann
*/
@@ -227,8 +228,8 @@ public class CircuitComponent extends JComponent {
}
private Vector raster(Vector pos) {
- return new Vector((int) Math.round((double) pos.x / GenericShape.SIZE) * GenericShape.SIZE,
- (int) Math.round((double) pos.y / GenericShape.SIZE) * GenericShape.SIZE);
+ return new Vector((int) Math.round((double) pos.x / SIZE) * SIZE,
+ (int) Math.round((double) pos.y / SIZE) * SIZE);
}
/**
@@ -250,8 +251,8 @@ public class CircuitComponent extends JComponent {
if (gr.getMin() != null) {
Vector delta = gr.getMax().sub(gr.getMin());
- double sx = ((double) getWidth()) / delta.x * 0.75;
- double sy = ((double) getHeight()) / delta.y * 0.95;
+ double sx = ((double) getWidth()) / (delta.x + SIZE * 8);
+ double sy = ((double) getHeight()) / (delta.y + SIZE);
double s = Math.min(sx, sy);
transform.setToScale(s, s); // set Scaling
@@ -482,6 +483,7 @@ public class CircuitComponent extends JComponent {
void moved(MouseEvent e) {
Vector pos = getPosVector(e);
visualElement.setPos(raster(pos.add(delta)));
+ circuit.modified();
repaint();
}