diff --git a/src/main/dig/combinatorial/FullAdder.svg b/src/main/dig/combinatorial/FullAdder.svg
new file mode 100644
index 000000000..efa9bf56d
--- /dev/null
+++ b/src/main/dig/combinatorial/FullAdder.svg
@@ -0,0 +1,122 @@
+
+
diff --git a/src/main/dig/combinatorial/FullSub.dig b/src/main/dig/combinatorial/FullSub.dig
index 9830471e8..beb6d5d3f 100644
--- a/src/main/dig/combinatorial/FullSub.dig
+++ b/src/main/dig/combinatorial/FullSub.dig
@@ -2,10 +2,134 @@
1
+
+ shapeType
+ CUSTOM
+
Width
4
+
+ customShape
+
+
+
+ BO_{i-1}
+
+
+ false
+
+
+
+ BO_i
+
+
+ false
+
+
+
+ A_i
+
+
+ false
+
+
+
+ S_i
+
+
+ false
+
+
+
+ B_i
+
+
+ false
+
+
+
+
+
+
+ 4
+ false
+
+ 0
+ 0
+ 0
+ 255
+
+
+
+
+
+ A_i
+ LEFTBOTTOM
+ 18
+
+ 128
+ 128
+ 128
+ 255
+
+
+
+
+
+ B_i
+ LEFTBOTTOM
+ 18
+
+ 128
+ 128
+ 128
+ 255
+
+
+
+
+
+ BO_{i-1}
+ LEFTBOTTOM
+ 18
+
+ 128
+ 128
+ 128
+ 255
+
+
+
+
+
+ BO_i
+ RIGHTBOTTOM
+ 18
+
+ 128
+ 128
+ 128
+ 255
+
+
+
+
+
+ S_i
+ RIGHTBOTTOM
+ 18
+
+ 128
+ 128
+ 128
+ 255
+
+
+
+
+
@@ -13,7 +137,7 @@
Label
- $A_i$
+ A_i
@@ -23,7 +147,7 @@
Label
- $B_i$
+ B_i
@@ -33,7 +157,7 @@
Label
- $BO_{i-1}$
+ BO_{i-1}
@@ -53,7 +177,7 @@
Label
- $BO_i$
+ BO_i
@@ -68,7 +192,7 @@
Label
- $S_i$
+ S_i
@@ -79,7 +203,7 @@
Testdata
- A_i B_i BO_i-1 BO_i S_i
+ A_i B_i BO_{i-1} BO_i S_i
0 0 0 0 0
0 0 1 1 1
0 1 0 1 1
diff --git a/src/main/dig/combinatorial/FullSub.svg b/src/main/dig/combinatorial/FullSub.svg
new file mode 100644
index 000000000..2aab20db8
--- /dev/null
+++ b/src/main/dig/combinatorial/FullSub.svg
@@ -0,0 +1,114 @@
+
+
diff --git a/src/main/dig/combinatorial/FullSubRC.dig b/src/main/dig/combinatorial/FullSubRC.dig
index dfe97ac4d..37f409326 100644
--- a/src/main/dig/combinatorial/FullSubRC.dig
+++ b/src/main/dig/combinatorial/FullSubRC.dig
@@ -6,162 +6,210 @@
Out
+
+ rotation
+
+
Label
- $S_0$
+ S_0
-
+
In
+
+ rotation
+
+
Label
- $A_0$
+ A_0
-
+
In
+
+ rotation
+
+
Label
- $B_0$
+ B_0
-
+
+
+
+ Out
+
+
+ rotation
+
+
+
+ Label
+ S_1
+
+
+
+
+
+ In
+
+
+ rotation
+
+
+
+ Label
+ A_1
+
+
+
+
+
+ In
+
+
+ rotation
+
+
+
+ Label
+ B_1
+
+
+
+
+
+ Out
+
+
+ rotation
+
+
+
+ Label
+ S_2
+
+
+
+
+
+ In
+
+
+ rotation
+
+
+
+ Label
+ A_2
+
+
+
+
+
+ In
+
+
+ rotation
+
+
+
+ Label
+ B_2
+
+
+
+
+
+ Out
+
+
+ rotation
+
+
+
+ Label
+ S_3
+
+
+
+
+
+ In
+
+
+ rotation
+
+
+
+ Label
+ A_3
+
+
+
+
+
+ In
+
+
+ rotation
+
+
+
+ Label
+ B_3
+
+
+
Out
Label
- $S_1$
+ C
-
+
In
Label
- $A_1$
+ C_{-1}
-
-
-
- In
-
-
- Label
- $B_1$
-
-
-
-
-
- Out
-
-
- Label
- $S_2$
-
-
-
-
-
- In
-
-
- Label
- $A_2$
-
-
-
-
-
- In
-
-
- Label
- $B_2$
-
-
-
-
-
- Out
-
-
- Label
- $S_3$
-
-
-
-
-
- In
-
-
- Label
- $A_3$
-
-
-
-
-
- In
-
-
- Label
- $B_3$
-
-
-
-
-
- Out
-
-
- Label
- $C$
-
-
-
-
-
- In
-
-
- Label
- $C_{-1}$
-
-
-
+
FullSub.dig
-
+
FullSub.dig
-
+
FullSub.dig
-
+
FullSub.dig
-
+
Testcase
@@ -170,180 +218,84 @@
Testdata
# complete test of all 512 possible additions
-C_-1 A_3 A_2 A_1 A_0 B_3 B_2 B_1 B_0 C S_3 S_2 S_1 S_0
+C_{-1} A_3 A_2 A_1 A_0 B_3 B_2 B_1 B_0 C S_3 S_2 S_1 S_0
repeat(256) 0 bits(4,n>>4) bits(4,n) bits(5,(n>>4)-(n&15))
repeat(256) 1 bits(4,n>>4) bits(4,n) bits(5,(n>>4)-(n&15)-1)
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
\ No newline at end of file