diff --git a/src/main/dig/cmos/eprom.dig b/src/main/dig/cmos/eprom.dig
new file mode 100644
index 000000000..7885cb30d
--- /dev/null
+++ b/src/main/dig/cmos/eprom.dig
@@ -0,0 +1,911 @@
+
+
+ 1
+
+
+
+ Decoder
+
+
+ Selector Bits
+ 2
+
+
+
+
+
+ Splitter
+
+
+ Input Splitting
+ 1,1
+
+
+ Output Splitting
+ 2
+
+
+
+
+
+ In
+
+
+ Label
+ A_0
+
+
+
+
+
+ In
+
+
+ Label
+ A_1
+
+
+
+
+
+ PullUp
+
+
+
+
+ PullUp
+
+
+
+
+ PullUp
+
+
+
+
+ PullUp
+
+
+
+
+ Decoder
+
+
+ Selector Bits
+ 2
+
+
+
+
+
+ Splitter
+
+
+ Input Splitting
+ 1,1
+
+
+ Output Splitting
+ 2
+
+
+
+
+
+ In
+
+
+ Label
+ A_2
+
+
+
+
+
+ In
+
+
+ Label
+ A_3
+
+
+
+
+
+ NFET
+
+
+
+
+ NFET
+
+
+
+
+ NFET
+
+
+
+
+ NFET
+
+
+
+
+ Out
+
+
+ Label
+ Q
+
+
+
+
+
+ Ground
+
+
+
+
+ Ground
+
+
+
+
+ Ground
+
+
+
+
+ Ground
+
+
+
+
+ Ground
+
+
+
+
+ Ground
+
+
+
+
+ Ground
+
+
+
+
+ Ground
+
+
+
+
+ Ground
+
+
+
+
+ Ground
+
+
+
+
+ Ground
+
+
+
+
+ Ground
+
+
+
+
+ Ground
+
+
+
+
+ Ground
+
+
+
+
+ Testcase
+
+
+ Testdata
+
+ A_0 A_1 A_2 A_3 Q
+ 0 0 0 0 0
+ 0 0 0 1 0
+ 0 0 1 0 0
+ 0 0 1 1 0
+ 0 1 0 0 0
+ 0 1 0 1 0
+ 0 1 1 0 1
+ 0 1 1 1 0
+ 1 0 0 0 0
+ 1 0 0 1 1
+ 1 0 1 0 0
+ 1 0 1 1 0
+ 1 1 0 0 0
+ 1 1 0 1 0
+ 1 1 1 0 0
+ 1 1 1 1 0
+
+
+
+
+
+
+
+ Driver
+
+
+ flipSelPos
+ true
+
+
+
+
+
+ In
+
+
+ Label
+ CS
+
+
+ Default
+ 1
+
+
+
+
+
+ Ground
+
+
+
+
+ Ground
+
+
+
+
+ FGNFET
+
+
+
+
+ FGNFET
+
+
+
+
+ FGNFET
+
+
+
+
+ FGNFET
+
+
+
+
+ FGNFET
+
+
+
+
+ FGNFET
+
+
+
+
+ FGNFET
+
+
+ Blown
+ true
+
+
+
+
+
+ FGNFET
+
+
+
+
+ FGNFET
+
+
+
+
+ FGNFET
+
+
+
+
+ FGNFET
+
+
+ Blown
+ true
+
+
+
+
+
+ FGNFET
+
+
+
+
+ FGNFET
+
+
+
+
+ FGNFET
+
+
+
+
+ FGNFET
+
+
+
+
+ FGNFET
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/dig/cmos/openDrainOut.dig b/src/main/dig/cmos/openDrainBus.dig
similarity index 54%
rename from src/main/dig/cmos/openDrainOut.dig
rename to src/main/dig/cmos/openDrainBus.dig
index 7382f8500..d3b118ccd 100644
--- a/src/main/dig/cmos/openDrainOut.dig
+++ b/src/main/dig/cmos/openDrainBus.dig
@@ -4,88 +4,53 @@
NFET
-
-
-
-
- In
Label
- A
+ T1
-
+
Ground
-
+
NFET
-
-
-
-
- In
Label
- B
+ T2
-
+
Ground
-
+
NFET
-
-
-
-
- In
Label
- C
+ T3
-
+
Ground
-
-
-
- NFET
-
-
-
-
- In
-
-
- Label
- D
-
-
-
-
-
- Ground
-
-
+
PullUp
-
+
Out
@@ -95,7 +60,37 @@
Y
-
+
+
+
+ In
+
+
+ Label
+ C
+
+
+
+
+
+ In
+
+
+ Label
+ B
+
+
+
+
+
+ In
+
+
+ Label
+ A
+
+
+
Testcase
@@ -103,102 +98,85 @@
Testdata
- A B C D Y
-0 0 0 0 1
-0 0 0 1 0
-0 0 1 0 0
-0 0 1 1 0
-0 1 0 0 0
-0 1 0 1 0
-0 1 1 0 0
-0 1 1 1 0
-1 0 0 0 0
-1 0 0 1 0
-1 0 1 0 0
-1 0 1 1 0
-1 1 0 0 0
-1 1 0 1 0
-1 1 1 0 0
-1 1 1 1 0
+ A B C Y
+0 0 0 1
+0 0 1 0
+0 1 0 0
+0 1 1 0
+1 0 0 0
+1 0 1 0
+1 1 0 0
+1 1 1 0
-
+
+
+
+ Text
+
+
+ Label
+ $R$
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
\ No newline at end of file
diff --git a/src/main/dig/cmos/prom.dig b/src/main/dig/cmos/prom.dig
new file mode 100644
index 000000000..d30c603f2
--- /dev/null
+++ b/src/main/dig/cmos/prom.dig
@@ -0,0 +1,1133 @@
+
+
+ 1
+
+
+
+ Decoder
+
+
+ Selector Bits
+ 2
+
+
+
+
+
+ Splitter
+
+
+ Input Splitting
+ 1,1
+
+
+ Output Splitting
+ 2
+
+
+
+
+
+ In
+
+
+ Label
+ A_0
+
+
+
+
+
+ In
+
+
+ Label
+ A_1
+
+
+
+
+
+ PullUp
+
+
+
+
+ NFET
+
+
+
+
+ NFET
+
+
+
+
+ NFET
+
+
+
+
+ NFET
+
+
+
+
+ PullUp
+
+
+
+
+ NFET
+
+
+
+
+ NFET
+
+
+
+
+ NFET
+
+
+
+
+ PullUp
+
+
+
+
+ NFET
+
+
+
+
+ NFET
+
+
+
+
+ NFET
+
+
+
+
+ PullUp
+
+
+
+
+ NFET
+
+
+
+
+ NFET
+
+
+
+
+ NFET
+
+
+
+
+ NFET
+
+
+
+
+ Decoder
+
+
+ Selector Bits
+ 2
+
+
+
+
+
+ Splitter
+
+
+ Input Splitting
+ 1,1
+
+
+ Output Splitting
+ 2
+
+
+
+
+
+ In
+
+
+ Label
+ A_2
+
+
+
+
+
+ In
+
+
+ Label
+ A_3
+
+
+
+
+
+ NFET
+
+
+
+
+ NFET
+
+
+
+
+ NFET
+
+
+
+
+ NFET
+
+
+
+
+ Out
+
+
+ Label
+ Q
+
+
+
+
+
+ Ground
+
+
+
+
+ Ground
+
+
+
+
+ Ground
+
+
+
+
+ Ground
+
+
+
+
+ Ground
+
+
+
+
+ Ground
+
+
+
+
+ Ground
+
+
+
+
+ Ground
+
+
+
+
+ Ground
+
+
+
+
+ Ground
+
+
+
+
+ Ground
+
+
+
+
+ Ground
+
+
+
+
+ Ground
+
+
+
+
+ Ground
+
+
+
+
+ Testcase
+
+
+ Testdata
+
+ A_0 A_1 A_2 A_3 Q
+ 0 0 0 0 0
+ 0 0 0 1 0
+ 0 0 1 0 0
+ 0 0 1 1 0
+ 0 1 0 0 0
+ 0 1 0 1 0
+ 0 1 1 0 1
+ 0 1 1 1 0
+ 1 0 0 0 0
+ 1 0 0 1 1
+ 1 0 1 0 0
+ 1 0 1 1 0
+ 1 1 0 0 0
+ 1 1 0 1 0
+ 1 1 1 0 0
+ 1 1 1 1 0
+
+
+
+
+
+
+
+ Driver
+
+
+ flipSelPos
+ true
+
+
+
+
+
+ In
+
+
+ Label
+ CS
+
+
+ Default
+ 1
+
+
+
+
+
+ NFET
+
+
+
+
+ Ground
+
+
+
+
+ NFET
+
+
+
+
+ Ground
+
+
+
+
+ DiodeBackward
+
+
+ rotation
+
+
+
+
+
+
+ DiodeBackward
+
+
+ rotation
+
+
+
+
+
+
+ DiodeBackward
+
+
+ rotation
+
+
+
+
+
+
+ DiodeBackward
+
+
+ rotation
+
+
+
+
+
+
+ DiodeBackward
+
+
+ rotation
+
+
+
+
+
+
+ DiodeBackward
+
+
+ rotation
+
+
+
+
+
+
+ DiodeBackward
+
+
+ rotation
+
+
+
+ Blown
+ true
+
+
+
+
+
+ DiodeBackward
+
+
+ rotation
+
+
+
+
+
+
+ DiodeBackward
+
+
+ rotation
+
+
+
+
+
+
+ DiodeBackward
+
+
+ rotation
+
+
+
+
+
+
+ DiodeBackward
+
+
+ rotation
+
+
+
+ Blown
+ true
+
+
+
+
+
+ DiodeBackward
+
+
+ rotation
+
+
+
+
+
+
+ DiodeBackward
+
+
+ rotation
+
+
+
+
+
+
+ DiodeBackward
+
+
+ rotation
+
+
+
+
+
+
+ DiodeBackward
+
+
+ rotation
+
+
+
+
+
+
+ DiodeBackward
+
+
+ rotation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/dig/cmos/rom.dig b/src/main/dig/cmos/rom.dig
new file mode 100644
index 000000000..41cf1ce6b
--- /dev/null
+++ b/src/main/dig/cmos/rom.dig
@@ -0,0 +1,833 @@
+
+
+ 1
+
+
+
+ Decoder
+
+
+ Selector Bits
+ 2
+
+
+
+
+
+ Splitter
+
+
+ Input Splitting
+ 1,1
+
+
+ Output Splitting
+ 2
+
+
+
+
+
+ In
+
+
+ Label
+ A_0
+
+
+
+
+
+ In
+
+
+ Label
+ A_1
+
+
+
+
+
+ PullUp
+
+
+
+
+ NFET
+
+
+
+
+ NFET
+
+
+
+
+ NFET
+
+
+
+
+ NFET
+
+
+
+
+ PullUp
+
+
+
+
+ NFET
+
+
+
+
+ NFET
+
+
+
+
+ NFET
+
+
+
+
+ PullUp
+
+
+
+
+ NFET
+
+
+
+
+ NFET
+
+
+
+
+ NFET
+
+
+
+
+ PullUp
+
+
+
+
+ NFET
+
+
+
+
+ NFET
+
+
+
+
+ NFET
+
+
+
+
+ NFET
+
+
+
+
+ Decoder
+
+
+ Selector Bits
+ 2
+
+
+
+
+
+ Splitter
+
+
+ Input Splitting
+ 1,1
+
+
+ Output Splitting
+ 2
+
+
+
+
+
+ In
+
+
+ Label
+ A_2
+
+
+
+
+
+ In
+
+
+ Label
+ A_3
+
+
+
+
+
+ NFET
+
+
+
+
+ NFET
+
+
+
+
+ NFET
+
+
+
+
+ NFET
+
+
+
+
+ Out
+
+
+ Label
+ Q
+
+
+
+
+
+ Ground
+
+
+
+
+ Ground
+
+
+
+
+ Ground
+
+
+
+
+ Ground
+
+
+
+
+ Ground
+
+
+
+
+ Ground
+
+
+
+
+ Ground
+
+
+
+
+ Ground
+
+
+
+
+ Ground
+
+
+
+
+ Ground
+
+
+
+
+ Ground
+
+
+
+
+ Ground
+
+
+
+
+ Ground
+
+
+
+
+ Ground
+
+
+
+
+ Testcase
+
+
+ Testdata
+
+ A_0 A_1 A_2 A_3 Q
+ 0 0 0 0 0
+ 0 0 0 1 0
+ 0 0 1 0 0
+ 0 0 1 1 0
+ 0 1 0 0 0
+ 0 1 0 1 0
+ 0 1 1 0 1
+ 0 1 1 1 0
+ 1 0 0 0 0
+ 1 0 0 1 1
+ 1 0 1 0 0
+ 1 0 1 1 0
+ 1 1 0 0 0
+ 1 1 0 1 0
+ 1 1 1 0 0
+ 1 1 1 1 0
+
+
+
+
+
+
+
+ Driver
+
+
+ flipSelPos
+ true
+
+
+
+
+
+ In
+
+
+ Label
+ CS
+
+
+ Default
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/test/java/de/neemann/digital/integration/TestExamples.java b/src/test/java/de/neemann/digital/integration/TestExamples.java
index ab303c039..24ea8f083 100644
--- a/src/test/java/de/neemann/digital/integration/TestExamples.java
+++ b/src/test/java/de/neemann/digital/integration/TestExamples.java
@@ -28,8 +28,8 @@ public class TestExamples extends TestCase {
*/
public void testDistExamples() throws Exception {
File examples = new File(Resources.getRoot().getParentFile().getParentFile(), "/main/dig");
- assertEquals(178, new FileScanner(this::check).scan(examples));
- assertEquals(79, testCasesInFiles);
+ assertEquals(181, new FileScanner(this::check).scan(examples));
+ assertEquals(82, testCasesInFiles);
}
/**