summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatarGravatar Kevin Eshbach <keshbach@comcast.net>2020-04-27 21:03:02 -0400
committerGravatarGravatar GitHub <noreply@github.com>2020-04-27 21:03:02 -0400
commit2540207d0cffdfa35faf2abb10e96332635bd8af (patch) (github)
tree308c4ae04f74ab19932b59b0fc69270dfc8b9892
parent6e93c2ee1aab5bf0ee3ded7023dc59f8efb1eab6 (diff)
downloadmame-2540207d0cffdfa35faf2abb10e96332635bd8af.tar.bz2
mame-2540207d0cffdfa35faf2abb10e96332635bd8af.zip
Added GAL20V8 support to the jedutil tool (#6603)
-rw-r--r--regtests/jedutil/baseline/gal20v8/gal20v8_complex_mode.txt89
-rw-r--r--regtests/jedutil/baseline/gal20v8/gal20v8_registered_mode.txt51
-rw-r--r--regtests/jedutil/baseline/gal20v8/gal20v8_simple_mode.txt53
-rw-r--r--regtests/jedutil/baseline/gal20v8/pal14h8-to-gal20v8.txt53
-rw-r--r--regtests/jedutil/baseline/gal20v8/pal14l8-to-gal20v8.txt53
-rw-r--r--regtests/jedutil/baseline/gal20v8/pal16h6-to-gal20v8.txt47
-rw-r--r--regtests/jedutil/baseline/gal20v8/pal16l6-to-gal20v8.txt47
-rw-r--r--regtests/jedutil/baseline/gal20v8/pal18l4-to-gal20v8.txt41
-rw-r--r--regtests/jedutil/baseline/gal20v8/pal20l2-to-gal20v8.txt31
-rw-r--r--regtests/jedutil/baseline/gal20v8/pal20l8-to-gal20v8.txt89
-rw-r--r--regtests/jedutil/baseline/gal20v8/pal20r4-to-gal20v8.txt93
-rw-r--r--regtests/jedutil/baseline/gal20v8/pal20r6-to-gal20v8.txt95
-rw-r--r--regtests/jedutil/baseline/gal20v8/pal20r8-to-gal20v8.txt97
-rw-r--r--regtests/jedutil/eqns/WinCUPL/gal20v8/gal20v8_complex_mode.pld105
-rw-r--r--regtests/jedutil/eqns/WinCUPL/gal20v8/gal20v8_registered_mode.pld72
-rw-r--r--regtests/jedutil/eqns/WinCUPL/gal20v8/gal20v8_simple_mode.pld75
-rw-r--r--regtests/jedutil/eqns/WinCUPL/readme.txt1
-rw-r--r--regtests/jedutil/jeds/gal20v8/gal20v8_complex_mode.jed102
-rw-r--r--regtests/jedutil/jeds/gal20v8/gal20v8_registered_mode.jed62
-rw-r--r--regtests/jedutil/jeds/gal20v8/gal20v8_simple_mode.jed62
-rw-r--r--regtests/jedutil/jeds/gal20v8/pal14h8-to-gal20v8.jed106
-rw-r--r--regtests/jedutil/jeds/gal20v8/pal14l8-to-gal20v8.jed106
-rw-r--r--regtests/jedutil/jeds/gal20v8/pal16h6-to-gal20v8.jed106
-rw-r--r--regtests/jedutil/jeds/gal20v8/pal16l6-to-gal20v8.jed106
-rw-r--r--regtests/jedutil/jeds/gal20v8/pal18l4-to-gal20v8.jed106
-rw-r--r--regtests/jedutil/jeds/gal20v8/pal20l2-to-gal20v8.jed106
-rw-r--r--regtests/jedutil/jeds/gal20v8/pal20l8-to-gal20v8.jed106
-rw-r--r--regtests/jedutil/jeds/gal20v8/pal20r4-to-gal20v8.jed106
-rw-r--r--regtests/jedutil/jeds/gal20v8/pal20r6-to-gal20v8.jed106
-rw-r--r--regtests/jedutil/jeds/gal20v8/pal20r8-to-gal20v8.jed106
-rw-r--r--src/tools/jedutil.cpp400
31 files changed, 2775 insertions, 3 deletions
diff --git a/regtests/jedutil/baseline/gal20v8/gal20v8_complex_mode.txt b/regtests/jedutil/baseline/gal20v8/gal20v8_complex_mode.txt
new file mode 100644
index 00000000000..d6d7f82f5ad
--- /dev/null
+++ b/regtests/jedutil/baseline/gal20v8/gal20v8_complex_mode.txt
@@ -0,0 +1,89 @@
+Inputs:
+
+1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14, 16, 17, 18, 19, 20, 21, 23
+
+Outputs:
+
+15 (Combinatorial, No output feedback, Active high)
+16 (Combinatorial, Output feedback output, Active high)
+17 (Combinatorial, Output feedback output, Active high)
+18 (Combinatorial, Output feedback output, Active low)
+19 (Combinatorial, Output feedback output, Active high)
+20 (Combinatorial, Output feedback output, Active high)
+21 (Combinatorial, Output feedback output, Active low)
+22 (Combinatorial, No output feedback, Active high)
+
+Equations:
+
+o15 = i1 & /i2 +
+ i3 +
+ i4 & /i5 & i6 & i7 & /i8 & i9 +
+ /i10 & /i11 +
+ i13 +
+ i14 +
+ i23
+o15.oe = /i23
+
+o16 = i1 & i2 & i3 & i4 & i5 +
+ i6 & i7 & i8 & i9 & i10 +
+ i13 +
+ i14 & /o21 +
+ i23 +
+ /i5 & o17 & o18 +
+ /i2
+o16.oe = vcc
+
+o17 = /i7 & o21 +
+ i8 +
+ /i3 +
+ /i1 & /i2 & i3 +
+ /i4 & /i5 +
+ /i6 & /i7 & /i8 & /i9 & /i10 +
+ /o18
+o17.oe = vcc
+
+/o18 = i1 +
+ i3 +
+ i5 +
+ i7 +
+ i9 +
+ i11 +
+ i13
+o18.oe = vcc
+
+o19 = /i13 +
+ /i11 +
+ /i9 +
+ /i7 +
+ /i5 +
+ /i3 +
+ /i1
+o19.oe = vcc
+
+o20 = i6 +
+ i13 & o19 +
+ i1 & /i7 +
+ o18 +
+ i9 & /i13 +
+ i14 & /o17 +
+ /o16
+o20.oe = vcc
+
+/o21 = /i1 & i2 +
+ /i3 +
+ /i4 & i5 & /i6 & /i7 & i8 & /i9 +
+ i10 & i11 +
+ /i13 +
+ /i14 +
+ /i23
+o21.oe = /i23
+
+o22 = /i8 & i23 +
+ /o19 & i23 +
+ /o18 +
+ o17 +
+ o16 +
+ /i2 & i8 & i14 +
+ /i2 & /i4 & /i6 & /i8 & /i10 & /i14
+o22.oe = vcc
+
diff --git a/regtests/jedutil/baseline/gal20v8/gal20v8_registered_mode.txt b/regtests/jedutil/baseline/gal20v8/gal20v8_registered_mode.txt
new file mode 100644
index 00000000000..0904217441d
--- /dev/null
+++ b/regtests/jedutil/baseline/gal20v8/gal20v8_registered_mode.txt
@@ -0,0 +1,51 @@
+Inputs:
+
+2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23
+
+Outputs:
+
+18 (Combinatorial, Output feedback output, Active high)
+19 (Registered, Output feedback registered, Active low)
+20 (Registered, Output feedback registered, Active high)
+22 (Combinatorial, Output feedback output, Active high)
+
+Equations:
+
+o18 = i3 & rf19 +
+ i5 +
+ i7 & rf20 +
+ i9 +
+ i11 +
+ i15 & /rf19 & /rf20 +
+ i17
+o18.oe = /i17 & /i21 & i23
+
+/rf19 := /i10 & /i23 +
+ /i11 & o18 +
+ /i9 +
+ /i7 & i21 +
+ /i5 & rf20 +
+ /i3 +
+ /i2 +
+ i4 & o22
+rf19.oe = OE
+
+rf20 := i6 +
+ i10 & rf19 +
+ /i7 & i17 +
+ o18 & /o22 +
+ i9 & /i10 +
+ i14 & /i17 +
+ /i16 +
+ /rf19 & i23
+rf20.oe = OE
+
+o22 = /i8 & i23 +
+ /rf19 & i23 +
+ /o18 & rf20 +
+ i17 +
+ i16 +
+ /i2 & i8 & i14 & /rf20 +
+ /i2 & /i4 & /i6 & /i8 & /i10 & /i14
+o22.oe = vcc
+
diff --git a/regtests/jedutil/baseline/gal20v8/gal20v8_simple_mode.txt b/regtests/jedutil/baseline/gal20v8/gal20v8_simple_mode.txt
new file mode 100644
index 00000000000..60e7a69f7bb
--- /dev/null
+++ b/regtests/jedutil/baseline/gal20v8/gal20v8_simple_mode.txt
@@ -0,0 +1,53 @@
+Inputs:
+
+1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 20, 21, 22, 23
+
+Outputs:
+
+16 (Combinatorial, Output feedback combinatorial, Active low)
+18 (Combinatorial, No output feedback, Active high)
+19 (Combinatorial, No output feedback, Active low)
+21 (Combinatorial, Output feedback combinatorial, Active high)
+
+Equations:
+
+/o16 = i1 & i2 & i3 & i4 & i5 +
+ /i6 & /i7 & /i8 & /i9 & /i10 & of21 +
+ i11 & i13 & i14 & i15 +
+ /i17 & /i20 & /i22 & /i23 +
+ /i1 & /i2 & /i3 & /i4 & /i5 +
+ i6 & i7 & i8 & i9 & i10 & of16 +
+ /i11 & /i13 & /i14 & /i15 +
+ i17 & i20 & /of21 & i22 & i23
+o16.oe = vcc
+
+o18 = i17 & i20 & i22 & i23 +
+ /i11 & /i13 & /i14 & /i15 +
+ i6 & i7 & i8 & i9 & i10 +
+ /i1 & /i2 & /i3 & /i4 & /i5 +
+ /i17 & /i20 & /i22 & /i23 +
+ i11 & i13 & i14 & i15 & /of16 & /of21 +
+ /i6 & /i7 & /i8 & /i9 & /i10 +
+ i1 & i2 & i3 & i4 & i5
+o18.oe = vcc
+
+/o19 = /i1 & /i3 +
+ /i5 & /i7 +
+ /i9 & /i11 & of16 & of21 +
+ /i13 & /i15 +
+ i17 & i23 +
+ i2 & i4 & i6 +
+ i8 & i10 +
+ i14 & i20
+o19.oe = vcc
+
+o21 = i1 & i3 +
+ i5 & i7 +
+ i9 & i11 +
+ i13 & i15 +
+ /i17 & /i23 +
+ /i2 & /i4 & /i6 +
+ /i8 & /i10 +
+ /i14 & /i20
+o21.oe = vcc
+
diff --git a/regtests/jedutil/baseline/gal20v8/pal14h8-to-gal20v8.txt b/regtests/jedutil/baseline/gal20v8/pal14h8-to-gal20v8.txt
new file mode 100644
index 00000000000..75a693fc895
--- /dev/null
+++ b/regtests/jedutil/baseline/gal20v8/pal14h8-to-gal20v8.txt
@@ -0,0 +1,53 @@
+Inputs:
+
+1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 20, 21, 22, 23
+
+Outputs:
+
+15 (Combinatorial, Output feedback combinatorial, Active high)
+16 (Combinatorial, Output feedback combinatorial, Active high)
+17 (Combinatorial, Output feedback combinatorial, Active high)
+18 (Combinatorial, No output feedback, Active high)
+19 (Combinatorial, No output feedback, Active high)
+20 (Combinatorial, Output feedback combinatorial, Active high)
+21 (Combinatorial, Output feedback combinatorial, Active high)
+22 (Combinatorial, Output feedback combinatorial, Active high)
+
+Equations:
+
+o15 = /i1 & /i2 +
+ /i3 +
+ /i4 +
+ /i5 & /i6
+o15.oe = vcc
+
+o16 = /i7 +
+ /i8
+o16.oe = vcc
+
+o17 = /i9 & /i10 +
+ /i13
+o17.oe = vcc
+
+o18 = i1 & i2 & i3 +
+ i4 & i5 & i6 & /i14
+o18.oe = vcc
+
+o19 = i7 +
+ i8
+o19.oe = vcc
+
+o20 = i9 & i10 & i14 +
+ i13
+o20.oe = vcc
+
+o21 = /i2 & i5 & i6 & /i7 +
+ i3 & i6 & i7 & i13 & i23
+o21.oe = vcc
+
+o22 = i5 & i6 +
+ /i7 & i11 +
+ /i23 +
+ /i1 & i3 & i6 & i7 & i10
+o22.oe = vcc
+
diff --git a/regtests/jedutil/baseline/gal20v8/pal14l8-to-gal20v8.txt b/regtests/jedutil/baseline/gal20v8/pal14l8-to-gal20v8.txt
new file mode 100644
index 00000000000..9a691d5daab
--- /dev/null
+++ b/regtests/jedutil/baseline/gal20v8/pal14l8-to-gal20v8.txt
@@ -0,0 +1,53 @@
+Inputs:
+
+1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 20, 21, 22, 23
+
+Outputs:
+
+15 (Combinatorial, Output feedback combinatorial, Active low)
+16 (Combinatorial, Output feedback combinatorial, Active low)
+17 (Combinatorial, Output feedback combinatorial, Active low)
+18 (Combinatorial, No output feedback, Active low)
+19 (Combinatorial, No output feedback, Active low)
+20 (Combinatorial, Output feedback combinatorial, Active low)
+21 (Combinatorial, Output feedback combinatorial, Active low)
+22 (Combinatorial, Output feedback combinatorial, Active low)
+
+Equations:
+
+/o15 = /i1 & /i2 +
+ /i3 +
+ /i4 +
+ /i5 & /i6
+o15.oe = vcc
+
+/o16 = /i7 +
+ /i8
+o16.oe = vcc
+
+/o17 = /i9 & /i10 +
+ /i13
+o17.oe = vcc
+
+/o18 = i1 & i2 & i3 +
+ i4 & i5 & i6 & /i14
+o18.oe = vcc
+
+/o19 = i7 +
+ i8
+o19.oe = vcc
+
+/o20 = i9 & i10 & i14 +
+ i13
+o20.oe = vcc
+
+/o21 = /i2 & i5 & i6 & /i7 +
+ i3 & i6 & i7 & i13 & i23
+o21.oe = vcc
+
+/o22 = i5 & i6 +
+ /i7 & i11 +
+ /i23 +
+ /i1 & i3 & i6 & i7 & i10
+o22.oe = vcc
+
diff --git a/regtests/jedutil/baseline/gal20v8/pal16h6-to-gal20v8.txt b/regtests/jedutil/baseline/gal20v8/pal16h6-to-gal20v8.txt
new file mode 100644
index 00000000000..5f904d2d6ea
--- /dev/null
+++ b/regtests/jedutil/baseline/gal20v8/pal16h6-to-gal20v8.txt
@@ -0,0 +1,47 @@
+Inputs:
+
+1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 20, 21, 22, 23
+
+Outputs:
+
+16 (Combinatorial, Output feedback combinatorial, Active high)
+17 (Combinatorial, Output feedback combinatorial, Active high)
+18 (Combinatorial, No output feedback, Active high)
+19 (Combinatorial, No output feedback, Active high)
+20 (Combinatorial, Output feedback combinatorial, Active high)
+21 (Combinatorial, Output feedback combinatorial, Active high)
+
+Equations:
+
+o16 = /i1 & /i2 +
+ /i3 & /i7 +
+ /i4 & /i8 +
+ /i5 & /i6
+o16.oe = vcc
+
+o17 = /i9 & /i10 +
+ /i13 & /i15 +
+ i1 & i2 & i3 +
+ i4 & i5 & i6 & /i14
+o17.oe = vcc
+
+o18 = i7 +
+ i8 & i15
+o18.oe = vcc
+
+o19 = i9 & i10 & i14 +
+ i13 & /i22
+o19.oe = vcc
+
+o20 = /i2 & i5 +
+ i6 & /i7 +
+ i3 & i6 +
+ i7 & i13 & i23
+o20.oe = vcc
+
+o21 = i5 & i6 & i22 +
+ /i7 & i11 +
+ /i23 +
+ /i1 & i3 & i6 & i7 & i10
+o21.oe = vcc
+
diff --git a/regtests/jedutil/baseline/gal20v8/pal16l6-to-gal20v8.txt b/regtests/jedutil/baseline/gal20v8/pal16l6-to-gal20v8.txt
new file mode 100644
index 00000000000..f2f706cef05
--- /dev/null
+++ b/regtests/jedutil/baseline/gal20v8/pal16l6-to-gal20v8.txt
@@ -0,0 +1,47 @@
+Inputs:
+
+1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 20, 21, 22, 23
+
+Outputs:
+
+16 (Combinatorial, Output feedback combinatorial, Active low)
+17 (Combinatorial, Output feedback combinatorial, Active low)
+18 (Combinatorial, No output feedback, Active low)
+19 (Combinatorial, No output feedback, Active low)
+20 (Combinatorial, Output feedback combinatorial, Active low)
+21 (Combinatorial, Output feedback combinatorial, Active low)
+
+Equations:
+
+/o16 = /i1 & /i2 +
+ /i3 & /i7 +
+ /i4 & /i8 +
+ /i5 & /i6
+o16.oe = vcc
+
+/o17 = /i9 & /i10 +
+ /i13 & /i15 +
+ i1 & i2 & i3 +
+ i4 & i5 & i6 & /i14
+o17.oe = vcc
+
+/o18 = i7 +
+ i8 & i15
+o18.oe = vcc
+
+/o19 = i9 & i10 & i14 +
+ i13 & /i22
+o19.oe = vcc
+
+/o20 = /i2 & i5 +
+ i6 & /i7 +
+ i3 & i6 +
+ i7 & i13 & i23
+o20.oe = vcc
+
+/o21 = i5 & i6 & i22 +
+ /i7 & i11 +
+ /i23 +
+ /i1 & i3 & i6 & i7 & i10
+o21.oe = vcc
+
diff --git a/regtests/jedutil/baseline/gal20v8/pal18l4-to-gal20v8.txt b/regtests/jedutil/baseline/gal20v8/pal18l4-to-gal20v8.txt
new file mode 100644
index 00000000000..1fadeb9f43a
--- /dev/null
+++ b/regtests/jedutil/baseline/gal20v8/pal18l4-to-gal20v8.txt
@@ -0,0 +1,41 @@
+Inputs:
+
+1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 20, 21, 22, 23
+
+Outputs:
+
+17 (Combinatorial, Output feedback combinatorial, Active low)
+18 (Combinatorial, No output feedback, Active low)
+19 (Combinatorial, No output feedback, Active low)
+20 (Combinatorial, Output feedback combinatorial, Active low)
+
+Equations:
+
+/o17 = /i1 & /i2 +
+ /i3 & /i7 +
+ /i4 & /i8 & i16 +
+ /i5 & /i6 +
+ /i9 & /i10 +
+ /i13 & /i15
+o17.oe = vcc
+
+/o18 = i1 & i2 & i3 +
+ i4 & i5 & i6 & /i14 +
+ i7 & /i16 +
+ i8 & i15
+o18.oe = vcc
+
+/o19 = i9 & i10 & i14 +
+ i13 & /i22 +
+ /i2 & i5 & /i21 +
+ i6 & /i7
+o19.oe = vcc
+
+/o20 = i3 & i6 +
+ i7 & i13 & i23 +
+ i5 & i6 & i22 +
+ /i7 & i11 +
+ i21 & /i23 +
+ /i1 & i3 & i6 & i7 & i10
+o20.oe = vcc
+
diff --git a/regtests/jedutil/baseline/gal20v8/pal20l2-to-gal20v8.txt b/regtests/jedutil/baseline/gal20v8/pal20l2-to-gal20v8.txt
new file mode 100644
index 00000000000..2d6a02a788b
--- /dev/null
+++ b/regtests/jedutil/baseline/gal20v8/pal20l2-to-gal20v8.txt
@@ -0,0 +1,31 @@
+Inputs:
+
+1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 20, 21, 22, 23
+
+Outputs:
+
+18 (Combinatorial, No output feedback, Active low)
+19 (Combinatorial, No output feedback, Active low)
+
+Equations:
+
+/o18 = /i1 & i2 +
+ /i3 & i4 +
+ /i5 & i6 & /i7 +
+ i8 & /i9 & i10 +
+ /i11 & i13 +
+ /i14 & i15 & /i16 +
+ i17 & /i21 & i22 +
+ /i23
+o18.oe = vcc
+
+/o19 = i1 & /i2 +
+ i3 & /i4 +
+ i5 & /i6 & i7 +
+ /i8 & i9 & /i10 +
+ i11 & /i13 +
+ i14 & /i15 & i16 +
+ /i17 & i21 & /i22 +
+ i23
+o19.oe = vcc
+
diff --git a/regtests/jedutil/baseline/gal20v8/pal20l8-to-gal20v8.txt b/regtests/jedutil/baseline/gal20v8/pal20l8-to-gal20v8.txt
new file mode 100644
index 00000000000..3db690d615b
--- /dev/null
+++ b/regtests/jedutil/baseline/gal20v8/pal20l8-to-gal20v8.txt
@@ -0,0 +1,89 @@
+Inputs:
+
+1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14, 16, 17, 18, 19, 20, 21, 23
+
+Outputs:
+
+15 (Combinatorial, No output feedback, Active low)
+16 (Combinatorial, Output feedback output, Active low)
+17 (Combinatorial, Output feedback output, Active low)
+18 (Combinatorial, Output feedback output, Active low)
+19 (Combinatorial, Output feedback output, Active low)
+20 (Combinatorial, Output feedback output, Active low)
+21 (Combinatorial, Output feedback output, Active low)
+22 (Combinatorial, No output feedback, Active low)
+
+Equations:
+
+/o15 = /i1 & i2 & /i3 & i4 & i11 +
+ /i1 & i2 & /i3 & /i5 & /i13 +
+ /i1 & i2 & /i3 & i6 & i14 +
+ /i1 & i2 & /i3 & /i7 & /i23 +
+ /i1 & i2 & /i3 & i8 & /i11 +
+ /i1 & i2 & /i3 & /i9 & i13 +
+ /o16
+o15.oe = o16
+
+/o16 = i1 & /i2 & /o17 +
+ i3 & /i4 +
+ i5 & /i6 +
+ i7 & /i8 +
+ i3 & i9 & o17 +
+ i1 & /i2 & i3 & /i4 & i5 & /i6 & i7 & /i8 & /i9 +
+ /i8 & /i9
+o16.oe = vcc
+
+/o17 = /o18 & /i23 +
+ i10 & o18 +
+ i9 +
+ i8 +
+ /i7 +
+ /i6 +
+ i5
+o17.oe = i4 & i5
+
+/o18 = i1 & /i2 & i3 & /i4 & /i8 & i23 +
+ i1 & i2 & i3 & /i4 & /i5 +
+ /i6 & i7 & i8 & i9 & i10 & /o19 +
+ i11 & i13 & i14 & i23 +
+ /i6 & i7 & i8 & i9 & i10 +
+ i3 & i13 & i14 & i23 +
+ i1 & i2 & i3 & /i4 & /i5 & o19
+o18.oe = i1 & i10 & i23
+
+/o19 = i9 & /i10 & i11 & i23 +
+ i9 +
+ /i10 +
+ i11 & o20 +
+ i23 +
+ i2 & /i10 & i23 +
+ i9 & i11
+o19.oe = i8 & /o20
+
+/o20 = o21 +
+ /i2 +
+ /i3 +
+ /i4 +
+ /i5 +
+ /i6 +
+ /i7 & /o21
+o20.oe = vcc
+
+/o21 = i1 & i8 +
+ /i14 +
+ i1 & /i5 & i8 +
+ i23 +
+ i1 & i8 & /i14 +
+ i13 +
+ i1 & i11
+o21.oe = i5 & i6
+
+/o22 = i1 & /i8 +
+ /i8 +
+ i1 +
+ /i10 +
+ /i23 +
+ i8 & /i13 +
+ /i11
+o22.oe = i3 & /i7
+
diff --git a/regtests/jedutil/baseline/gal20v8/pal20r4-to-gal20v8.txt b/regtests/jedutil/baseline/gal20v8/pal20r4-to-gal20v8.txt
new file mode 100644
index 00000000000..eaf9bca00c6
--- /dev/null
+++ b/regtests/jedutil/baseline/gal20v8/pal20r4-to-gal20v8.txt
@@ -0,0 +1,93 @@
+Inputs:
+
+2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23
+
+Outputs:
+
+15 (Combinatorial, Output feedback output, Active low)
+16 (Combinatorial, Output feedback output, Active low)
+17 (Registered, Output feedback registered, Active low)
+18 (Registered, Output feedback registered, Active low)
+19 (Registered, Output feedback registered, Active low)
+20 (Registered, Output feedback registered, Active low)
+21 (Combinatorial, Output feedback output, Active low)
+22 (Combinatorial, Output feedback output, Active low)
+
+Equations:
+
+/o15 = i2 & i6 & i7 +
+ i6 & o16 +
+ i3 & /o16 +
+ i7 +
+ /i4 +
+ i6 & i7 +
+ i4 & i7
+o15.oe = /i23
+
+/o16 = /i3 & /rf17 +
+ /i4 +
+ /i3 +
+ /i3 & i4 +
+ /i7 & rf17 +
+ /i7 +
+ i4
+o16.oe = i23
+
+/rf17 := /i2 +
+ /rf18 +
+ i5 +
+ i6 +
+ rf18 +
+ i4 +
+ /i10 +
+ /i23
+rf17.oe = OE
+
+/rf18 := /i2 & i5 & i6 & /i7 +
+ i3 & i6 & i7 +
+ i3 & rf19 +
+ /i2 & /i7 +
+ /i3 & /rf19 +
+ i5 & i6 & /i7 +
+ i7 +
+ /i11
+rf18.oe = OE
+
+/rf19 := i5 & i6 & /i7 +
+ i3 & i6 & i7 +
+ i5 & rf20 +
+ i6 +
+ i7 +
+ /i4 & /rf20 +
+ /i7 +
+ i10
+rf19.oe = OE
+
+/rf20 := i10 & rf17 +
+ /i11 +
+ i4 & /rf17 +
+ i2 +
+ /i6 & /i7 +
+ i8 +
+ /i9 +
+ o22
+rf20.oe = OE
+
+/o21 = /i8 +
+ /i2 & rf17 +
+ i11 +
+ /i10 +
+ o15 +
+ /i14 +
+ /i3
+o21.oe = i8 & i9 & /o22
+
+/o22 = i14 +
+ /o15 +
+ i3 & /o21 +
+ i7 +
+ /i8 & o21 +
+ i10 +
+ /i9
+o22.oe = i14 & /o15
+
diff --git a/regtests/jedutil/baseline/gal20v8/pal20r6-to-gal20v8.txt b/regtests/jedutil/baseline/gal20v8/pal20r6-to-gal20v8.txt
new file mode 100644
index 00000000000..c89257c22cd
--- /dev/null
+++ b/regtests/jedutil/baseline/gal20v8/pal20r6-to-gal20v8.txt
@@ -0,0 +1,95 @@
+Inputs:
+
+2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23
+
+Outputs:
+
+15 (Combinatorial, Output feedback output, Active low)
+16 (Registered, Output feedback registered, Active low)
+17 (Registered, Output feedback registered, Active low)
+18 (Registered, Output feedback registered, Active low)
+19 (Registered, Output feedback registered, Active low)
+20 (Registered, Output feedback registered, Active low)
+21 (Registered, Output feedback registered, Active low)
+22 (Combinatorial, Output feedback output, Active low)
+
+Equations:
+
+/o15 = i2 & i6 & i7 +
+ i6 & rf16 +
+ i3 & /rf16 +
+ i7 +
+ /i4 +
+ i6 & i7 +
+ i4 & i7
+o15.oe = /i23
+
+/rf16 := /i3 & /rf17 +
+ /i4 & /i23 +
+ /i3 +
+ /i3 & i4 +
+ /i7 & rf17 +
+ /i7 +
+ i4 +
+ i23
+rf16.oe = OE
+
+/rf17 := /i2 +
+ /rf18 +
+ i5 +
+ i6 +
+ rf18 +
+ i4 +
+ /i10 +
+ /i23
+rf17.oe = OE
+
+/rf18 := /i2 & i5 & i6 & /i7 +
+ i3 & i6 & i7 +
+ i3 & rf19 +
+ /i2 & /i7 +
+ /i3 & /rf19 +
+ i5 & i6 & /i7 +
+ i7 +
+ /i11
+rf18.oe = OE
+
+/rf19 := i5 & i6 & /i7 +
+ i3 & i6 & i7 +
+ i5 & rf20 +
+ i6 +
+ i7 +
+ /i4 & /rf20 +
+ /i7 +
+ i10
+rf19.oe = OE
+
+/rf20 := i10 & rf17 +
+ /i11 +
+ i4 & /rf17 +
+ i2 +
+ /i6 & /i7 +
+ i8 +
+ /i9 +
+ o22
+rf20.oe = OE
+
+/rf21 := /i8 +
+ /i2 & rf17 +
+ i11 +
+ /i10 +
+ o15 +
+ /i14 & /o22 +
+ /i3 +
+ /i5
+rf21.oe = OE
+
+/o22 = i14 +
+ /o15 +
+ i3 & /rf21 +
+ i7 +
+ /i8 & rf21 +
+ i10 +
+ /i9
+o22.oe = i14 & /o15
+
diff --git a/regtests/jedutil/baseline/gal20v8/pal20r8-to-gal20v8.txt b/regtests/jedutil/baseline/gal20v8/pal20r8-to-gal20v8.txt
new file mode 100644
index 00000000000..a5ed5d22cfe
--- /dev/null
+++ b/regtests/jedutil/baseline/gal20v8/pal20r8-to-gal20v8.txt
@@ -0,0 +1,97 @@
+Inputs:
+
+2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23
+
+Outputs:
+
+15 (Registered, Output feedback registered, Active low)
+16 (Registered, Output feedback registered, Active low)
+17 (Registered, Output feedback registered, Active low)
+18 (Registered, Output feedback registered, Active low)
+19 (Registered, Output feedback registered, Active low)
+20 (Registered, Output feedback registered, Active low)
+21 (Registered, Output feedback registered, Active low)
+22 (Registered, Output feedback registered, Active low)
+
+Equations:
+
+/rf15 := i2 & i6 & i7 +
+ i6 & rf16 +
+ i3 & /rf16 +
+ i7 +
+ /i4 +
+ i6 & i7 +
+ i4 & i7 +
+ /i23
+rf15.oe = OE
+
+/rf16 := /i3 & /rf17 +
+ /i4 +
+ /i3 +
+ /i3 & i4 +
+ /i7 & rf17 +
+ /i7 +
+ i4 +
+ i23
+rf16.oe = OE
+
+/rf17 := /i2 +
+ /rf18 +
+ i5 +
+ i6 +
+ rf18 +
+ i4 +
+ /i10 +
+ /i23
+rf17.oe = OE
+
+/rf18 := /i2 & i5 & i6 & /i7 +
+ i3 & i6 & i7 +
+ i3 & rf19 +
+ /i2 & /i7 +
+ /i3 & /rf19 +
+ i5 & i6 & /i7 +
+ i7 +
+ /i11
+rf18.oe = OE
+
+/rf19 := i5 & i6 & /i7 +
+ i3 & i6 & i7 +
+ i5 & rf20 +
+ i6 +
+ i7 +
+ /i4 & /rf20 +
+ /i7 +
+ i10
+rf19.oe = OE
+
+/rf20 := i10 & rf17 +
+ /i11 +
+ i4 & /rf17 +
+ i2 +
+ /i6 & /i7 +
+ i8 +
+ /i9 +
+ rf22
+rf20.oe = OE
+
+/rf21 := /i8 +
+ /i2 & rf17 +
+ i11 +
+ /i10 +
+ rf15 +
+ /i14 +
+ /i3 +
+ i8 & i9 & /rf22
+rf21.oe = OE
+
+/rf22 := i14 +
+ /rf15 +
+ i3 & /rf21 +
+ i7 +
+ /i8 & rf21 +
+ i10 +
+ /i9 +
+ i14 & /rf15
+rf22.oe = OE
+
diff --git a/regtests/jedutil/eqns/WinCUPL/gal20v8/gal20v8_complex_mode.pld b/regtests/jedutil/eqns/WinCUPL/gal20v8/gal20v8_complex_mode.pld
new file mode 100644
index 00000000000..d7064cf7456
--- /dev/null
+++ b/regtests/jedutil/eqns/WinCUPL/gal20v8/gal20v8_complex_mode.pld
@@ -0,0 +1,105 @@
+Name GAL20V8 Complex Mode Test ;
+PartNo 00 ;
+Date 4/6/2020 ;
+Revision 01 ;
+Designer MAME ;
+Company MAME ;
+Assembly None ;
+Location ;
+Device G20V8A ;
+
+/* Complex Mode Test */
+
+/* Input Pins */
+PIN 1 = [I1] ;
+PIN 2 = [I2] ;
+PIN 3 = [I3] ;
+PIN 4 = [I4] ;
+PIN 5 = [I5] ;
+PIN 6 = [I6] ;
+PIN 7 = [I7] ;
+PIN 8 = [I8] ;
+PIN 9 = [I9] ;
+PIN 10 = [I10] ;
+PIN 11 = [I11] ;
+PIN 13 = [I13] ;
+PIN 14 = [I14] ;
+PIN 23 = [I23] ;
+
+/* Output Pins */
+PINNODE 15 = [O15] ;
+PINNODE 16 = [O16] ;
+PINNODE 17 = [O17] ;
+PINNODE 18 = [O18] ;
+PINNODE 19 = [O19] ;
+PINNODE 20 = [O20] ;
+PINNODE 21 = [O21] ;
+PINNODE 22 = [O22] ;
+
+/* Logic Equations */
+
+O15 = I1 & !I2 #
+ I3 #
+ I4 & !I5 & I6 & I7 & !I8 & I9 #
+ !I10 & !I11 #
+ I13 #
+ I14 #
+ I23;
+O15.oe = !I23;
+
+O16 = I1 & I2 & I3 & I4 & I5 #
+ I6 & I7 & I8 & I9 & I10 #
+ I13 #
+ I14 & !O21 #
+ I23 #
+ !I5 & O17 & O18 #
+ !I2;
+
+O17 = !I7 & O21 #
+ I8 #
+ !I3 #
+ !I1 & !I2 & I3 #
+ !I4 & !I5 #
+ !I6 & !I7 & !I8 & !I9 & !I10 #
+ !O18;
+
+!O18 = I1 #
+ I3 #
+ I5 #
+ I7 #
+ I9 #
+ I11 #
+ I13;
+
+O19 = !I13 #
+ !I11 #
+ !I9 #
+ !I7 #
+ !I5 #
+ !I3 #
+ !I1;
+
+O20 = I6 #
+ I13 & O19 #
+ I1 & !I7 #
+ O18 #
+ I9 & !I13 #
+ I14 & !O17 #
+ !O16;
+
+!O21 = !I1 & I2 #
+ !I3 #
+ !I4 & I5 & !I6 & !I7 & I8 & !I9 #
+ I10 & I11 #
+ !I13 #
+ !I14 #
+ !I23;
+O21.oe = !I23;
+
+O22 = !I8 & I23 #
+ !O19 & I23 #
+ !O18 #
+ O17 #
+ O16 #
+ !I2 & I8 & I14 #
+ !I2 & !I4 & !I6 & !I8 & !I10 & !I14;
diff --git a/regtests/jedutil/eqns/WinCUPL/gal20v8/gal20v8_registered_mode.pld b/regtests/jedutil/eqns/WinCUPL/gal20v8/gal20v8_registered_mode.pld
new file mode 100644
index 00000000000..16e34b82e8b
--- /dev/null
+++ b/regtests/jedutil/eqns/WinCUPL/gal20v8/gal20v8_registered_mode.pld
@@ -0,0 +1,72 @@
+Name GAL20V8 Registered Mode Test ;
+PartNo 00 ;
+Date 4/6/2020 ;
+Revision 01 ;
+Designer MAME ;
+Company MAME ;
+Assembly None ;
+Location ;
+Device G20V8MS ;
+
+/* Registered Mode Test */
+
+/* Input Pins */
+PIN 2 = [I2] ;
+PIN 3 = [I3] ;
+PIN 4 = [I4] ;
+PIN 5 = [I5] ;
+PIN 6 = [I6] ;
+PIN 7 = [I7] ;
+PIN 8 = [I8] ;
+PIN 9 = [I9] ;
+PIN 10 = [I10] ;
+PIN 11 = [I11] ;
+PIN 14 = [I14] ;
+PIN 15 = [I15] ;
+PIN 16 = [I16] ;
+PIN 17 = [I17] ;
+PIN 21 = [I21] ;
+PIN 23 = [I23] ;
+
+/* Output Pins */
+PINNODE 18 = [O18] ;
+PINNODE 19 = [RF19] ;
+PINNODE 20 = [RF20] ;
+PINNODE 22 = [O22] ;
+
+/* Logic Equations */
+
+O18 = I3 & RF19 #
+ I5 #
+ I7 & RF20 #
+ I9 #
+ I11 #
+ I15 & !RF19 & !RF20 #
+ I17;
+O18.oe = !I17 & !I21 & I23;
+
+!RF19.D = !I10 & !I23 #
+ !I11 & O18 #
+ !I9 #
+ !I7 & I21 #
+ !I5 & RF20 #
+ !I3 #
+ !I2 #
+ I4 & O22;
+
+RF20.D = I6 #
+ I10 & RF19 #
+ !I7 & I17 #
+ O18 & !O22 #
+ I9 & !I10 #
+ I14 & !I17 #
+ !I16 #
+ !RF19 & I23;
+
+O22 = !I8 & I23 #
+ !RF19 & I23 #
+ !O18 & RF20 #
+ I17 #
+ I16 #
+ !I2 & I8 & I14 & !RF20 #
+ !I2 & !I4 & !I6 & !I8 & !I10 & !I14;
diff --git a/regtests/jedutil/eqns/WinCUPL/gal20v8/gal20v8_simple_mode.pld b/regtests/jedutil/eqns/WinCUPL/gal20v8/gal20v8_simple_mode.pld
new file mode 100644
index 00000000000..58914ddb066
--- /dev/null
+++ b/regtests/jedutil/eqns/WinCUPL/gal20v8/gal20v8_simple_mode.pld
@@ -0,0 +1,75 @@
+Name GAL20V8 Simple Mode Test ;
+PartNo 00 ;
+Date 4/20/2020 ;
+Revision 01 ;
+Designer MAME ;
+Company MAME ;
+Assembly None ;
+Location ;
+Device G20V8A ;
+
+/* Simple Mode Test */
+
+/* Input Pins */
+PIN 1 = [I1] ;
+PIN 2 = [I2] ;
+PIN 3 = [I3] ;
+PIN 4 = [I4] ;
+PIN 5 = [I5] ;
+PIN 6 = [I6] ;
+PIN 7 = [I7] ;
+PIN 8 = [I8] ;
+PIN 9 = [I9] ;
+PIN 10 = [I10] ;
+PIN 11 = [I11] ;
+PIN 13 = [I13] ;
+PIN 14 = [I14] ;
+PIN 15 = [I15] ;
+PIN 17 = [I17] ;
+PIN 20 = [I20] ;
+PIN 22 = [I22] ;
+PIN 23 = [I23] ;
+
+/* Output Pins */
+PINNODE 16 = [O16] ;
+PINNODE 18 = [O18] ;
+PINNODE 19 = [O19] ;
+PINNODE 21 = [O21] ;
+
+/* Logic Equations */
+
+!O16 = I1 & I2 & I3 & I4 & I5 #
+ !I6 & !I7 & !I8 & !I9 & !I10 & O21 #
+ I11 & I13 & I14 & I15 #
+ !I17 & !I20 & !I22 & !I23 #
+ !I1 & !I2 & !I3 & !I4 & !I5 #
+ I6 & I7 & I8 & I9 & I10 & O16 #
+ !I11 & !I13 & !I14 & !I15 #
+ I17 & I20 &!O21 & I22 & I23 ;
+
+O18 = I17 & I20 & I22 & I23 #
+ !I11 & !I13 & !I14 & !I15 #
+ I6 & I7 & I8 & I9 & I10 #
+ !I1 & !I2 & !I3 & !I4 & !I5 #
+ !I17 & !I20 & !I22 & !I23 #
+ I11 & I13 & I14 & I15 & !O16 & !O21 #
+ !I6 & !I7 & !I8 & !I9 & !I10 #
+ I1 & I2 & I3 & I4 & I5 ;
+
+!O19 = !I1 & !I3 #
+ !I5 & !I7 #
+ !I9 & !I11 & O16 & O21 #
+ !I13 & !I15 #
+ I17 & I23 #
+ I2 & I4 & I6 #
+ I8 & I10 #
+ I14 & I20 ;
+
+O21 = I1 & I3 #
+ I5 & I7 #
+ I9 & I11 #
+ I13 & I15 #
+ !I17 & !I23 #
+ !I2 & !I4 & !I6 #
+ !I8 & !I10 #
+ !I14 & !I20 ;
diff --git a/regtests/jedutil/eqns/WinCUPL/readme.txt b/regtests/jedutil/eqns/WinCUPL/readme.txt
new file mode 100644
index 00000000000..bf671ac1e99
--- /dev/null
+++ b/regtests/jedutil/eqns/WinCUPL/readme.txt
@@ -0,0 +1 @@
+These files were created with Atmel Corporation's WinCUPL v5.30.4 software. \ No newline at end of file
diff --git a/regtests/jedutil/jeds/gal20v8/gal20v8_complex_mode.jed b/regtests/jedutil/jeds/gal20v8/gal20v8_complex_mode.jed
new file mode 100644
index 00000000000..f0611723dc8
--- /dev/null
+++ b/regtests/jedutil/jeds/gal20v8/gal20v8_complex_mode.jed
@@ -0,0 +1,102 @@
+
+CUPL(WM) 5.0a Serial# 60008009
+Device g20v8ma Library DLIB-h-40-3
+Created Tue Apr 07 21:00:36 2020
+Name GAL20V8 Simple Mode Test
+Partno 00
+Revision 01
+Date 4/6/2020
+Designer MAME
+Company MAME
+Assembly None
+Location
+*QP24
+*QF2706
+*G0
+*F0
+*L00000 11111111111111111111111111111111
+*L00032 11111111111111011111111111111111
+*L00064 10111111111111111111110111111111
+*L00096 11101111111111111111111111111111
+*L00128 11111111111111101111111111111111
+*L00160 11111111111111111111111111011111
+*L00192 11111111111111111111111111111111
+*L00224 11111101111111111011111111111111
+*L00256 11111111011111111101111110111111
+*L00288 10111111101111111011111110101111
+*L00320 11111110111111111111111111111111
+*L00352 11111111011011111111111111111111
+*L00384 11111111111111111111101111111111
+*L00416 11111111111111111111111111111111
+*L00448 10110111101110110111101111111111
+*L00480 11111111111111111111111111111111
+*L00512 01110111111111111111111111111111
+*L00544 11111111111111101111111111111111
+*L00576 11111111111111111110111111111110
+*L00608 11111111111111111111111111111111
+*L00640 11111111111111111111111111111111
+*L00672 11111111111111111111111101111111
+*L00704 11111111111111111111111111111111
+*L00736 11011111111111111111110111011111
+*L00768 11111111111110111111111111111111
+*L00800 11111111111111111111110111111111
+*L00832 11111111111111111111111111111111
+*L00864 11110111111111101111111111111111
+*L00896 11111111111011111101111111111111
+*L00928 11111111111111111111111011111111
+*L00960 11111111111111111111111111111111
+*L00992 11111111111111111111111111111111
+*L01024 11111111111111101111111111111111
+*L01056 11111111111111111111101111111111
+*L01088 11111111111111111111101111111111
+*L01120 11111111111111111111101111111111
+*L01152 11111111111111111111101111111111
+*L01184 11111111111111111111101111111111
+*L01216 11111111111111111111111111101111
+*L01248 11111111111111111111111111111111
+*L01280 11111111111111111111111111111111
+*L01312 11111111110111111111111111111111
+*L01344 11111111111111111111011111111111
+*L01376 11111111111111111111111111111111
+*L01408 11110111111111111111111111111111
+*L01440 11111111111111111111011111111111
+*L01472 11111111111111111111111111111111
+*L01504 11110111111111111111111111111111
+*L01536 11111111111111111111011111111111
+*L01568 11111111111111111111111111111101
+*L01600 11111111111111111111111111111111
+*L01632 11111111111111111101111111111011
+*L01664 11111111111111111111111111111111
+*L01696 11111111011111111111111111111011
+*L01728 11111111111111111111111111111111
+*L01760 10100111111111111111111111111111
+*L01792 11111111111111111011101111111111
+*L01824 11111111111111111111111111111111
+*L01856 10111011101110111011111111111111
+*L01888 11111111111111101111111111111111
+*L01920 11111111111111111111111111111111
+*L01952 11111111010101110111011111111111
+*L01984 11111111111111111111111111111111
+*L02016 01110111011101110111111111111111
+*L02048 11111111111111111111111111111101
+*L02080 11111111111011111111111111111111
+*L02112 11011111111111011111111111111111
+*L02144 11111111111111111111111111111011
+*L02176 11111101110111111111111110111111
+*L02208 11111111111111111111111111111111
+*L02240 11111110111111111111111111111111
+*L02272 11111111100111111111111111111111
+*L02304 11111111111111111111011111111111
+*L02336 11111111111111111111111111111111
+*L02368 01111011011101111011011111111111
+*L02400 11111111111111111111111111111111
+*L02432 10111011111111111111111111111111
+*L02464 11111111111111011111111111111111
+*L02496 11111111111111111101111111111101
+*L02528 11111111111111111111111111111111
+*L02560 10110111001100000011000000100000
+*L02624 00000000111111111111111111111111
+*L02656 11111111111111111111111111111111
+*L02688 111111111111111111
+*C3DC2
+*DDD3 \ No newline at end of file
diff --git a/regtests/jedutil/jeds/gal20v8/gal20v8_registered_mode.jed b/regtests/jedutil/jeds/gal20v8/gal20v8_registered_mode.jed
new file mode 100644
index 00000000000..376a3f2fe98
--- /dev/null
+++ b/regtests/jedutil/jeds/gal20v8/gal20v8_registered_mode.jed
@@ -0,0 +1,62 @@
+
+CUPL(WM) 5.0a Serial# 60008009
+Device g20v8ms Library DLIB-h-40-3
+Created Wed Apr 22 22:09:09 2020
+Name GAL20V8 Registered Mode Test
+Partno 00
+Revision 01
+Date 4/6/2020
+Designer MAME
+Company MAME
+Assembly None
+Location
+*QP24
+*QF2706
+*G0
+*F0
+*L00000 11111111111111111111111111111111
+*L00032 11111111110111111111111111111111
+*L00064 10111111111111111101111111111111
+*L00096 11101111111111111111111111111111
+*L00128 11111101111111101111111111111111
+*L00160 11111111111111111111111111011111
+*L00192 11111111111111111111111111111111
+*L00224 11111101111111111011111111111110
+*L00256 11111111011111111111110110111111
+*L00288 10111111101111111011111110111110
+*L00640 11111111111111110111111111111111
+*L00672 11111111111111111111111111011111
+*L00704 11111111011111111111111111111111
+*L00736 11111011110111111111111111111110
+*L00768 11111111111111011111111111111111
+*L00800 11111111111111111111111111110111
+*L00832 10111111111111111111111111111111
+*L00864 11101111111111011111111111111111
+*L00896 11111111111111101111111111011111
+*L00928 11111111111011111111111111111111
+*L00960 11101111111111111111111111111111
+*L00992 10111111111111111111111111111101
+*L01024 11111111111110111111111111111111
+*L01056 11111111111110111111111111111111
+*L01088 11011111111110111111111111111111
+*L01120 11111111111110011111111111111111
+*L01152 11111111111110111111111111111111
+*L01184 11111111111111111011111111111111
+*L01216 11111111111111111111111111111101
+*L01248 01111111111111111111111111111111
+*L01280 11011111111011111111111111101111
+*L01312 11111111111101111111111111011111
+*L01344 11111111111111111111111111110111
+*L01376 11111111111111111111111111111111
+*L01408 11111101111101111111111111111111
+*L01440 11111111111111111111111111110111
+*L01472 11111111111111111111111111111111
+*L01504 11111111111101111111111111111110
+*L01536 11101111111111111101111111111111
+*L01568 11111111111111111101111111111111
+*L02560 10101000001100000011000000100000
+*L02624 00000000110011111111111111111111
+*L02656 11111111111111111111111111111111
+*L02688 111111111111111101
+*CA1A2
+*A7F0 \ No newline at end of file
diff --git a/regtests/jedutil/jeds/gal20v8/gal20v8_simple_mode.jed b/regtests/jedutil/jeds/gal20v8/gal20v8_simple_mode.jed
new file mode 100644
index 00000000000..539fae49092
--- /dev/null
+++ b/regtests/jedutil/jeds/gal20v8/gal20v8_simple_mode.jed
@@ -0,0 +1,62 @@
+
+CUPL(WM) 5.0a Serial# 60008009
+Device g20v8as Library DLIB-h-40-1
+Created Tue Apr 21 21:05:50 2020
+Name GAL20V8 Simple Mode Test
+Partno 00
+Revision 01
+Date 4/20/2020
+Designer MAME
+Company MAME
+Assembly None
+Location
+*QP24
+*QF2706
+*G0
+*F0
+*L00320 11010111111111111111111111111111
+*L00352 11111111111111111111011111110111
+*L00384 11111111111111111111111111111111
+*L00416 11111111111101111111011111111111
+*L00448 11111111111111111111110111111101
+*L00480 11111110111111111111111011111111
+*L00512 11111111101111111011111110111111
+*L00544 11111111111111111111111111111111
+*L00576 11111111101111111011111111111111
+*L00608 11111111111011111111111111101111
+*L00960 11101011111111111111111111111111
+*L00992 11111111111111111111101111111011
+*L01024 11111111111111111111111111111101
+*L01056 11111111110110111111101111111111
+*L01088 11111111111111111111111011111110
+*L01120 11111101111111111111110111111111
+*L01152 11111111011111110111111101111111
+*L01184 11111111111111111111111111111111
+*L01216 11111111011111110111111111111111
+*L01248 11111111110111111111111111011111
+*L01280 11111101110111111101110111111111
+*L01312 11111111111111111111111111111111
+*L01344 11111110111010101111111111111111
+*L01376 01110111011101110111111110101011
+*L01408 10111011111111111111111111111111
+*L01440 11111110111011111110111011111111
+*L01472 11111111111111111111111011111111
+*L01504 11101101110101011111111111111111
+*L01536 10111011101110111011111101010111
+*L01568 01110111111111111111111111111111
+*L01920 01010111011101111111111111111111
+*L01952 11111111111111111111110110111011
+*L01984 10111011101111111111111111111111
+*L02016 11111111111111011101010111111110
+*L02048 11101111111011101111111111111111
+*L02080 10101011101110111111111111111111
+*L02112 11111111111111111111111101110111
+*L02144 01010111011111111111111111111111
+*L02176 11111111111111101110101011111101
+*L02208 11011110110111011111111111111111
+*L02560 01001000001100000011000000100000
+*L02624 00000000101001011111111111111111
+*L02656 11111111111111111111111111111111
+*L02688 111111111111111110
+*C9A1B
+*A63B \ No newline at end of file
diff --git a/regtests/jedutil/jeds/gal20v8/pal14h8-to-gal20v8.jed b/regtests/jedutil/jeds/gal20v8/pal14h8-to-gal20v8.jed
new file mode 100644
index 00000000000..9b066a8b8d5
--- /dev/null
+++ b/regtests/jedutil/jeds/gal20v8/pal14h8-to-gal20v8.jed
@@ -0,0 +1,106 @@
+
+Device G20V8 converted from PAL14H8 JEDEC map.
+PAL to GAL JEDEC conversion utility - paltogal v3.12 17 November 1992
+Copyright (c) by LATTICE Semiconductor Corp. 1990, 1991, 1992.
+Input File: c:\temp\mame\pal14h8.jed
+Output File: c:\temp\mame\p.jed
+The Date: Sun Mar 10 02:36:01 2019
+
+
+PAL14H8
+EQN2JED - Boolean Equations to JEDEC file assembler (Version V101)
+Copyright (c) National Semiconductor Corporation 1990-1993
+Assembled from "pal14h8.eqn". Date: 11-7-113
+*
+NOTE PINS i1:1 i2:2 i3:3 i4:4 i5:5 i6:6 i7:7 i8:8 i9:9 i10:10*
+NOTE PINS i11:11 GND:12 i13:13 i14:14 o15:15 o16:16 o17:17 o18:18*
+NOTE PINS o19:19 o20:20 o21:21 o22:22 i23:23 VCC:24*
+QF2706*QP24*F0*
+
+L00000 1111111111110111011111111111111111111111*
+L00040 1111111111111111111110111111111111110111*
+L00080 1111111011111111111111111111111111111111*
+L00120 1110011111111111011101111111111101111111*
+L00160 0000000000110011001100110011001100000000*
+L00200 0000000000110011001100110011001100000000*
+L00240 0000000000110011001100110011001100000000*
+L00280 0000000000110011001100110011001100000000*
+
+L00320 1011111111110111011110111111111111111111*
+L00360 1111010111111111011101111111111111111101*
+L00400 0000000000110011001100110011001100000000*
+L00440 0000000000110011001100110011001100000000*
+L00480 0000000000110011001100110011001100000000*
+L00520 0000000000110011001100110011001100000000*
+L00560 0000000000110011001100110011001100000000*
+L00600 0000000000110011001100110011001100000000*
+
+L00640 1111111111111111111111111111011101011111*
+L00680 1111111111111111111111111111111111111101*
+L00720 0000000000110011001100110011001100000000*
+L00760 0000000000110011001100110011001100000000*
+L00800 0000000000110011001100110011001100000000*
+L00840 0000000000110011001100110011001100000000*
+L00880 0000000000110011001100110011001100000000*
+L00920 0000000000110011001100110011001100000000*
+
+L00960 1111111111111111111101111111111111111111*
+L01000 1111111111111111111111110111111111111111*
+L01040 0000000000110011001100110011001100000000*
+L01080 0000000000110011001100110011001100000000*
+L01120 0000000000110011001100110011001100000000*
+L01160 0000000000110011001100110011001100000000*
+L01200 0000000000110011001100110011001100000000*
+L01240 0000000000110011001100110011001100000000*
+
+L01280 0101011111111111111111111111111111111111*
+L01320 1111111101110111011111111111111111101111*
+L01360 0000000000110011001100110011001100000000*
+L01400 0000000000110011001100110011001100000000*
+L01440 0000000000110011001100110011001100000000*
+L01480 0000000000110011001100110011001100000000*
+L01520 0000000000110011001100110011001100000000*
+L01560 0000000000110011001100110011001100000000*
+
+L01600 1111111111111111111111111111101110111111*
+L01640 1111111111111111111111111111111111111110*
+L01680 0000000000110011001100110011001100000000*
+L01720 0000000000110011001100110011001100000000*
+L01760 0000000000110011001100110011001100000000*
+L01800 0000000000110011001100110011001100000000*
+L01840 0000000000110011001100110011001100000000*
+L01880 0000000000110011001100110011001100000000*
+
+L01920 1111111111111111111110111111111111111111*
+L01960 1111111111111111111111111011111111111111*
+L02000 0000000000110011001100110011001100000000*
+L02040 0000000000110011001100110011001100000000*
+L02080 0000000000110011001100110011001100000000*
+L02120 0000000000110011001100110011001100000000*
+L02160 0000000000110011001100110011001100000000*
+L02200 0000000000110011001100110011001100000000*
+
+L02240 1010111111111111111111111111111111111111*
+L02280 1111101111111111111111111111111111111111*
+L02320 1111111110111111111111111111111111111111*
+L02360 1111111111111011101111111111111111111111*
+L02400 0000000000110011001100110011001100000000*
+L02440 0000000000110011001100110011001100000000*
+L02480 0000000000110011001100110011001100000000*
+L02520 0000000000110011001100110011001100000000*
+
+N ==> XOR *
+L02560 11111111*
+N ==> Signature is "" *
+L02568 0000000000000000000000000000000000000000*
+L02608 000000000000000000000000*
+N ==> AC1 *
+L02632 00000000*
+N ==> PTD *
+L02640 1111000011000000110000001100000011000000*
+L02680 110000001100000011110000*
+N ==> SYN 2704, AC0 2705 *
+L02704 10*
+CCA96*
+
+0000
diff --git a/regtests/jedutil/jeds/gal20v8/pal14l8-to-gal20v8.jed b/regtests/jedutil/jeds/gal20v8/pal14l8-to-gal20v8.jed
new file mode 100644
index 00000000000..2d93791bdac
--- /dev/null
+++ b/regtests/jedutil/jeds/gal20v8/pal14l8-to-gal20v8.jed
@@ -0,0 +1,106 @@
+
+Device G20V8 converted from PAL14L8 JEDEC map.
+PAL to GAL JEDEC conversion utility - paltogal v3.12 17 November 1992
+Copyright (c) by LATTICE Semiconductor Corp. 1990, 1991, 1992.
+Input File: c:\temp\mame\pal14l8.jed
+Output File: c:\temp\mame\p.jed
+The Date: Sun Mar 10 02:38:11 2019
+
+
+PAL14L8
+EQN2JED - Boolean Equations to JEDEC file assembler (Version V101)
+Copyright (c) National Semiconductor Corporation 1990-1993
+Assembled from "pal14l8.eqn". Date: 11-7-113
+*
+NOTE PINS i1:1 i2:2 i3:3 i4:4 i5:5 i6:6 i7:7 i8:8 i9:9 i10:10*
+NOTE PINS i11:11 GND:12 i13:13 i14:14 o15:15 o16:16 o17:17 o18:18*
+NOTE PINS o19:19 o20:20 o21:21 o22:22 i23:23 VCC:24*
+QF2706*QP24*F0*
+
+L00000 1111111111110111011111111111111111111111*
+L00040 1111111111111111111110111111111111110111*
+L00080 1111111011111111111111111111111111111111*
+L00120 1110011111111111011101111111111101111111*
+L00160 0000000000110011001100110011001100000000*
+L00200 0000000000110011001100110011001100000000*
+L00240 0000000000110011001100110011001100000000*
+L00280 0000000000110011001100110011001100000000*
+
+L00320 1011111111110111011110111111111111111111*
+L00360 1111010111111111011101111111111111111101*
+L00400 0000000000110011001100110011001100000000*
+L00440 0000000000110011001100110011001100000000*
+L00480 0000000000110011001100110011001100000000*
+L00520 0000000000110011001100110011001100000000*
+L00560 0000000000110011001100110011001100000000*
+L00600 0000000000110011001100110011001100000000*
+
+L00640 1111111111111111111111111111011101011111*
+L00680 1111111111111111111111111111111111111101*
+L00720 0000000000110011001100110011001100000000*
+L00760 0000000000110011001100110011001100000000*
+L00800 0000000000110011001100110011001100000000*
+L00840 0000000000110011001100110011001100000000*
+L00880 0000000000110011001100110011001100000000*
+L00920 0000000000110011001100110011001100000000*
+
+L00960 1111111111111111111101111111111111111111*
+L01000 1111111111111111111111110111111111111111*
+L01040 0000000000110011001100110011001100000000*
+L01080 0000000000110011001100110011001100000000*
+L01120 0000000000110011001100110011001100000000*
+L01160 0000000000110011001100110011001100000000*
+L01200 0000000000110011001100110011001100000000*
+L01240 0000000000110011001100110011001100000000*
+
+L01280 0101011111111111111111111111111111111111*
+L01320 1111111101110111011111111111111111101111*
+L01360 0000000000110011001100110011001100000000*
+L01400 0000000000110011001100110011001100000000*
+L01440 0000000000110011001100110011001100000000*
+L01480 0000000000110011001100110011001100000000*
+L01520 0000000000110011001100110011001100000000*
+L01560 0000000000110011001100110011001100000000*
+
+L01600 1111111111111111111111111111101110111111*
+L01640 1111111111111111111111111111111111111110*
+L01680 0000000000110011001100110011001100000000*
+L01720 0000000000110011001100110011001100000000*
+L01760 0000000000110011001100110011001100000000*
+L01800 0000000000110011001100110011001100000000*
+L01840 0000000000110011001100110011001100000000*
+L01880 0000000000110011001100110011001100000000*
+
+L01920 1111111111111111111110111111111111111111*
+L01960 1111111111111111111111111011111111111111*
+L02000 0000000000110011001100110011001100000000*
+L02040 0000000000110011001100110011001100000000*
+L02080 0000000000110011001100110011001100000000*
+L02120 0000000000110011001100110011001100000000*
+L02160 0000000000110011001100110011001100000000*
+L02200 0000000000110011001100110011001100000000*
+
+L02240 1010111111111111111111111111111111111111*
+L02280 1111101111111111111111111111111111111111*
+L02320 1111111110111111111111111111111111111111*
+L02360 1111111111111011101111111111111111111111*
+L02400 0000000000110011001100110011001100000000*
+L02440 0000000000110011001100110011001100000000*
+L02480 0000000000110011001100110011001100000000*
+L02520 0000000000110011001100110011001100000000*
+
+N ==> XOR *
+L02560 00000000*
+N ==> Signature is "" *
+L02568 0000000000000000000000000000000000000000*
+L02608 000000000000000000000000*
+N ==> AC1 *
+L02632 00000000*
+N ==> PTD *
+L02640 1111000011000000110000001100000011000000*
+L02680 110000001100000011110000*
+N ==> SYN 2704, AC0 2705 *
+L02704 10*
+CC997*
+
+0000
diff --git a/regtests/jedutil/jeds/gal20v8/pal16h6-to-gal20v8.jed b/regtests/jedutil/jeds/gal20v8/pal16h6-to-gal20v8.jed
new file mode 100644
index 00000000000..18c8fc8248c
--- /dev/null
+++ b/regtests/jedutil/jeds/gal20v8/pal16h6-to-gal20v8.jed
@@ -0,0 +1,106 @@
+
+Device G20V8 converted from PAL16H6 JEDEC map.
+PAL to GAL JEDEC conversion utility - paltogal v3.12 17 November 1992
+Copyright (c) by LATTICE Semiconductor Corp. 1990, 1991, 1992.
+Input File: c:\temp\mame\pal16h6.jed
+Output File: c:\temp\mame\p.jed
+The Date: Sun Mar 10 02:39:47 2019
+
+
+PAL16H6
+EQN2JED - Boolean Equations to JEDEC file assembler (Version V101)
+Copyright (c) National Semiconductor Corporation 1990-1993
+Assembled from "pal16h6.eqn". Date: 11-8-113
+*
+NOTE PINS i1:1 i2:2 i3:3 i4:4 i5:5 i6:6 i7:7 i8:8 i9:9 i10:10*
+NOTE PINS i11:11 GND:12 i13:13 i14:14 i15:15 o16:16 o17:17 o18:18*
+NOTE PINS o19:19 o20:20 o21:21 i22:22 i23:23 VCC:24*
+QF2706*QP24*F0*
+
+L00000 0000000000000011001100110011000000000000*
+L00040 0000000000000011001100110011000000000000*
+L00080 0000000000000011001100110011000000000000*
+L00120 0000000000000011001100110011000000000000*
+L00160 0000000000000011001100110011000000000000*
+L00200 0000000000000011001100110011000000000000*
+L00240 0000000000000011001100110011000000000000*
+L00280 0000000000000011001100110011000000000000*
+
+L00320 1111111111010111011111111111111111111111*
+L00360 1111111111111111111110111111111111110111*
+L00400 1111111011111111111111111111111111111111*
+L00440 1110011111111111011101111111111101111111*
+L00480 0000000000000011001100110011000000000000*
+L00520 0000000000000011001100110011000000000000*
+L00560 0000000000000011001100110011000000000000*
+L00600 0000000000000011001100110011000000000000*
+
+L00640 1011111111110111111111111111111111111111*
+L00680 1111111111111111011110111111111111111111*
+L00720 1111011111111111011111111111111111111111*
+L00760 1111110111111111111101111111111111111101*
+L00800 0000000000000011001100110011000000000000*
+L00840 0000000000000011001100110011000000000000*
+L00880 0000000000000011001100110011000000000000*
+L00920 0000000000000011001100110011000000000000*
+
+L00960 1111111111111111111111111111011101011111*
+L01000 1111111111101111111111111111111111111101*
+L01040 0000000000000011001100110011000000000000*
+L01080 0000000000000011001100110011000000000000*
+L01120 0000000000000011001100110011000000000000*
+L01160 0000000000000011001100110011000000000000*
+L01200 0000000000000011001100110011000000000000*
+L01240 0000000000000011001100110011000000000000*
+
+L01280 1111111111111111111101111111111111111111*
+L01320 1111111111111111111111110111110111111111*
+L01360 0000000000000011001100110011000000000000*
+L01400 0000000000000011001100110011000000000000*
+L01440 0000000000000011001100110011000000000000*
+L01480 0000000000000011001100110011000000000000*
+L01520 0000000000000011001100110011000000000000*
+L01560 0000000000000011001100110011000000000000*
+
+L01600 1111111111111111111111111111101110111111*
+L01640 1111111111111111111111111111111011111110*
+L01680 0101011111111111111111111111111111111111*
+L01720 1111111101110111011111111111111111101111*
+L01760 0000000000000011001100110011000000000000*
+L01800 0000000000000011001100110011000000000000*
+L01840 0000000000000011001100110011000000000000*
+L01880 0000000000000011001100110011000000000000*
+
+L01920 1010111111111111111111111111111111111111*
+L01960 1111101111111111111110111111111111111111*
+L02000 1111111110111111111111111011111111111111*
+L02040 1111111111111011101111111111111111111111*
+L02080 0000000000000011001100110011000000000000*
+L02120 0000000000000011001100110011000000000000*
+L02160 0000000000000011001100110011000000000000*
+L02200 0000000000000011001100110011000000000000*
+
+L02240 0000000000000011001100110011000000000000*
+L02280 0000000000000011001100110011000000000000*
+L02320 0000000000000011001100110011000000000000*
+L02360 0000000000000011001100110011000000000000*
+L02400 0000000000000011001100110011000000000000*
+L02440 0000000000000011001100110011000000000000*
+L02480 0000000000000011001100110011000000000000*
+L02520 0000000000000011001100110011000000000000*
+
+N ==> XOR *
+L02560 11111111*
+N ==> Signature is "" *
+L02568 0000000000000000000000000000000000000000*
+L02608 000000000000000000000000*
+N ==> AC1 *
+L02632 10000001*
+N ==> PTD *
+L02640 0000000011110000111100001100000011000000*
+L02680 111100001111000000000000*
+N ==> SYN 2704, AC0 2705 *
+L02704 10*
+CA74D*
+
+0000
diff --git a/regtests/jedutil/jeds/gal20v8/pal16l6-to-gal20v8.jed b/regtests/jedutil/jeds/gal20v8/pal16l6-to-gal20v8.jed
new file mode 100644
index 00000000000..44ddaec7553
--- /dev/null
+++ b/regtests/jedutil/jeds/gal20v8/pal16l6-to-gal20v8.jed
@@ -0,0 +1,106 @@
+
+Device G20V8 converted from PAL16L6 JEDEC map.
+PAL to GAL JEDEC conversion utility - paltogal v3.12 17 November 1992
+Copyright (c) by LATTICE Semiconductor Corp. 1990, 1991, 1992.
+Input File: c:\temp\mame\pal16l6.jed
+Output File: c:\temp\mame\p.jed
+The Date: Sun Mar 10 02:41:16 2019
+
+
+PAL16L6
+EQN2JED - Boolean Equations to JEDEC file assembler (Version V101)
+Copyright (c) National Semiconductor Corporation 1990-1993
+Assembled from "pal16l6.eqn". Date: 11-8-113
+*
+NOTE PINS i1:1 i2:2 i3:3 i4:4 i5:5 i6:6 i7:7 i8:8 i9:9 i10:10*
+NOTE PINS i11:11 GND:12 i13:13 i14:14 i15:15 o16:16 o17:17 o18:18*
+NOTE PINS o19:19 o20:20 o21:21 i22:22 i23:23 VCC:24*
+QF2706*QP24*F0*
+
+L00000 0000000000000011001100110011000000000000*
+L00040 0000000000000011001100110011000000000000*
+L00080 0000000000000011001100110011000000000000*
+L00120 0000000000000011001100110011000000000000*
+L00160 0000000000000011001100110011000000000000*
+L00200 0000000000000011001100110011000000000000*
+L00240 0000000000000011001100110011000000000000*
+L00280 0000000000000011001100110011000000000000*
+
+L00320 1111111111010111011111111111111111111111*
+L00360 1111111111111111111110111111111111110111*
+L00400 1111111011111111111111111111111111111111*
+L00440 1110011111111111011101111111111101111111*
+L00480 0000000000000011001100110011000000000000*
+L00520 0000000000000011001100110011000000000000*
+L00560 0000000000000011001100110011000000000000*
+L00600 0000000000000011001100110011000000000000*
+
+L00640 1011111111110111111111111111111111111111*
+L00680 1111111111111111011110111111111111111111*
+L00720 1111011111111111011111111111111111111111*
+L00760 1111110111111111111101111111111111111101*
+L00800 0000000000000011001100110011000000000000*
+L00840 0000000000000011001100110011000000000000*
+L00880 0000000000000011001100110011000000000000*
+L00920 0000000000000011001100110011000000000000*
+
+L00960 1111111111111111111111111111011101011111*
+L01000 1111111111101111111111111111111111111101*
+L01040 0000000000000011001100110011000000000000*
+L01080 0000000000000011001100110011000000000000*
+L01120 0000000000000011001100110011000000000000*
+L01160 0000000000000011001100110011000000000000*
+L01200 0000000000000011001100110011000000000000*
+L01240 0000000000000011001100110011000000000000*
+
+L01280 1111111111111111111101111111111111111111*
+L01320 1111111111111111111111110111110111111111*
+L01360 0000000000000011001100110011000000000000*
+L01400 0000000000000011001100110011000000000000*
+L01440 0000000000000011001100110011000000000000*
+L01480 0000000000000011001100110011000000000000*
+L01520 0000000000000011001100110011000000000000*
+L01560 0000000000000011001100110011000000000000*
+
+L01600 1111111111111111111111111111101110111111*
+L01640 1111111111111111111111111111111011111110*
+L01680 0101011111111111111111111111111111111111*
+L01720 1111111101110111011111111111111111101111*
+L01760 0000000000000011001100110011000000000000*
+L01800 0000000000000011001100110011000000000000*
+L01840 0000000000000011001100110011000000000000*
+L01880 0000000000000011001100110011000000000000*
+
+L01920 1010111111111111111111111111111111111111*
+L01960 1111101111111111111110111111111111111111*
+L02000 1111111110111111111111111011111111111111*
+L02040 1111111111111011101111111111111111111111*
+L02080 0000000000000011001100110011000000000000*
+L02120 0000000000000011001100110011000000000000*
+L02160 0000000000000011001100110011000000000000*
+L02200 0000000000000011001100110011000000000000*
+
+L02240 0000000000000011001100110011000000000000*
+L02280 0000000000000011001100110011000000000000*
+L02320 0000000000000011001100110011000000000000*
+L02360 0000000000000011001100110011000000000000*
+L02400 0000000000000011001100110011000000000000*
+L02440 0000000000000011001100110011000000000000*
+L02480 0000000000000011001100110011000000000000*
+L02520 0000000000000011001100110011000000000000*
+
+N ==> XOR *
+L02560 00000000*
+N ==> Signature is "" *
+L02568 0000000000000000000000000000000000000000*
+L02608 000000000000000000000000*
+N ==> AC1 *
+L02632 10000001*
+N ==> PTD *
+L02640 0000000011110000111100001100000011000000*
+L02680 111100001111000000000000*
+N ==> SYN 2704, AC0 2705 *
+L02704 10*
+CA64E*
+
+0000
diff --git a/regtests/jedutil/jeds/gal20v8/pal18l4-to-gal20v8.jed b/regtests/jedutil/jeds/gal20v8/pal18l4-to-gal20v8.jed
new file mode 100644
index 00000000000..85d164b27ac
--- /dev/null
+++ b/regtests/jedutil/jeds/gal20v8/pal18l4-to-gal20v8.jed
@@ -0,0 +1,106 @@
+
+Device G20V8 converted from PAL18L4 JEDEC map.
+PAL to GAL JEDEC conversion utility - paltogal v3.12 17 November 1992
+Copyright (c) by LATTICE Semiconductor Corp. 1990, 1991, 1992.
+Input File: c:\temp\mame\pal18l4.jed
+Output File: c:\temp\mame\p.jed
+The Date: Sun Mar 10 02:44:55 2019
+
+
+PAL18L4
+EQN2JED - Boolean Equations to JEDEC file assembler (Version V101)
+Copyright (c) National Semiconductor Corporation 1990-1993
+Assembled from "pal18l4.eqn". Date: 11-8-113
+*
+NOTE PINS i1:1 i2:2 i3:3 i4:4 i5:5 i6:6 i7:7 i8:8 i9:9 i10:10*
+NOTE PINS i11:11 GND:12 i13:13 i14:14 i15:15 i16:16 o17:17 o18:18*
+NOTE PINS o19:19 o20:20 i21:21 i22:22 i23:23 VCC:24*
+QF2706*QP24*F0*
+
+L00000 0000000000000000001100110000000000000000*
+L00040 0000000000000000001100110000000000000000*
+L00080 0000000000000000001100110000000000000000*
+L00120 0000000000000000001100110000000000000000*
+L00160 0000000000000000001100110000000000000000*
+L00200 0000000000000000001100110000000000000000*
+L00240 0000000000000000001100110000000000000000*
+L00280 0000000000000000001100110000000000000000*
+
+L00320 0000000000000000001100110000000000000000*
+L00360 0000000000000000001100110000000000000000*
+L00400 0000000000000000001100110000000000000000*
+L00440 0000000000000000001100110000000000000000*
+L00480 0000000000000000001100110000000000000000*
+L00520 0000000000000000001100110000000000000000*
+L00560 0000000000000000001100110000000000000000*
+L00600 0000000000000000001100110000000000000000*
+
+L00640 1111011111111111011111111111111111111111*
+L00680 1111110111111111111101111111111111111101*
+L00720 1111111111010111011111111111111111111111*
+L00760 1111111111111111111110111111111111110111*
+L00800 1111111011111101111111111111111111111111*
+L00840 1110011111111111011101111111111101111111*
+L00880 0000000000000000001100110000000000000000*
+L00920 0000000000000000001100110000000000000000*
+
+L00960 1111111111111111111111111111011101011111*
+L01000 1111111111101111111111111111111111111101*
+L01040 1011111111110110111111111111111111111111*
+L01080 1111111111111111011110111111111111111111*
+L01120 0000000000000000001100110000000000000000*
+L01160 0000000000000000001100110000000000000000*
+L01200 0000000000000000001100110000000000000000*
+L01240 0000000000000000001100110000000000000000*
+
+L01280 0101011111111111111111111111111111111111*
+L01320 1111111101110111011111111111111111101111*
+L01360 1111111111111111111101111110111111111111*
+L01400 1111111111111111111111110111110111111111*
+L01440 0000000000000000001100110000000000000000*
+L01480 0000000000000000001100110000000000000000*
+L01520 0000000000000000001100110000000000000000*
+L01560 0000000000000000001100110000000000000000*
+
+L01600 1010111111111111111111111111111111111111*
+L01640 1111101111111111111110111111111111111111*
+L01680 1111111110111111111111111001111111111111*
+L01720 1111111111111011101111111111111111111111*
+L01760 1111111111111111111111111111101110111111*
+L01800 1111111111111111111111111111111011111110*
+L01840 0000000000000000001100110000000000000000*
+L01880 0000000000000000001100110000000000000000*
+
+L01920 0000000000000000001100110000000000000000*
+L01960 0000000000000000001100110000000000000000*
+L02000 0000000000000000001100110000000000000000*
+L02040 0000000000000000001100110000000000000000*
+L02080 0000000000000000001100110000000000000000*
+L02120 0000000000000000001100110000000000000000*
+L02160 0000000000000000001100110000000000000000*
+L02200 0000000000000000001100110000000000000000*
+
+L02240 0000000000000000001100110000000000000000*
+L02280 0000000000000000001100110000000000000000*
+L02320 0000000000000000001100110000000000000000*
+L02360 0000000000000000001100110000000000000000*
+L02400 0000000000000000001100110000000000000000*
+L02440 0000000000000000001100110000000000000000*
+L02480 0000000000000000001100110000000000000000*
+L02520 0000000000000000001100110000000000000000*
+
+N ==> XOR *
+L02560 00000000*
+N ==> Signature is "" *
+L02568 0000000000000000000000000000000000000000*
+L02608 000000000000000000000000*
+N ==> AC1 *
+L02632 11000011*
+N ==> PTD *
+L02640 0000000000000000111111001111000011110000*
+L02680 111111000000000000000000*
+N ==> SYN 2704, AC0 2705 *
+L02704 10*
+C830E*
+
+0000
diff --git a/regtests/jedutil/jeds/gal20v8/pal20l2-to-gal20v8.jed b/regtests/jedutil/jeds/gal20v8/pal20l2-to-gal20v8.jed
new file mode 100644
index 00000000000..6d541e28a17
--- /dev/null
+++ b/regtests/jedutil/jeds/gal20v8/pal20l2-to-gal20v8.jed
@@ -0,0 +1,106 @@
+
+Device G20V8 converted from PAL20L2 JEDEC map.
+PAL to GAL JEDEC conversion utility - paltogal v3.12 17 November 1992
+Copyright (c) by LATTICE Semiconductor Corp. 1990, 1991, 1992.
+Input File: c:\temp\mame\pal20l2.jed
+Output File: c:\temp\mame\p.jed
+The Date: Sun Mar 10 02:47:18 2019
+
+
+PAL20L2
+EQN2JED - Boolean Equations to JEDEC file assembler (Version V101)
+Copyright (c) National Semiconductor Corporation 1990-1993
+Assembled from "pal20l2.eqn". Date: 11-10-113
+*
+NOTE PINS i1:1 i2:2 i3:3 i4:4 i5:5 i6:6 i7:7 i8:8 i9:9 i10:10*
+NOTE PINS i11:11 GND:12 i13:13 i14:14 i15:15 i16:16 i17:17 o18:18*
+NOTE PINS o19:19 i20:20 i21:21 i22:22 i23:23 VCC:24*
+QF2706*QP24*F0*
+
+L00000 0000000000000000000000000000000000000000*
+L00040 0000000000000000000000000000000000000000*
+L00080 0000000000000000000000000000000000000000*
+L00120 0000000000000000000000000000000000000000*
+L00160 0000000000000000000000000000000000000000*
+L00200 0000000000000000000000000000000000000000*
+L00240 0000000000000000000000000000000000000000*
+L00280 0000000000000000000000000000000000000000*
+
+L00320 0000000000000000000000000000000000000000*
+L00360 0000000000000000000000000000000000000000*
+L00400 0000000000000000000000000000000000000000*
+L00440 0000000000000000000000000000000000000000*
+L00480 0000000000000000000000000000000000000000*
+L00520 0000000000000000000000000000000000000000*
+L00560 0000000000000000000000000000000000000000*
+L00600 0000000000000000000000000000000000000000*
+
+L00640 0000000000000000000000000000000000000000*
+L00680 0000000000000000000000000000000000000000*
+L00720 0000000000000000000000000000000000000000*
+L00760 0000000000000000000000000000000000000000*
+L00800 0000000000000000000000000000000000000000*
+L00840 0000000000000000000000000000000000000000*
+L00880 0000000000000000000000000000000000000000*
+L00920 0000000000000000000000000000000000000000*
+
+L00960 1001111111111111111111111111111111111111*
+L01000 1111011110111111111111111111111111111111*
+L01040 1111111111110111101101111111111111111111*
+L01080 1111111111111111111111111011011110111111*
+L01120 1111111111111111111111111111111111110110*
+L01160 1111111111111111111111111101111011011111*
+L01200 1111111111101101111111101111111111111111*
+L01240 1111110111111111111111111111111111111111*
+
+L01280 0110111111111111111111111111111111111111*
+L01320 1111101101111111111111111111111111111111*
+L01360 1111111111111011011110111111111111111111*
+L01400 1111111111111111111111110111101101111111*
+L01440 1111111111111111111111111111111111111001*
+L01480 1111111111111111111111111110110111101111*
+L01520 1111111111011110111111011111111111111111*
+L01560 1111111011111111111111111111111111111111*
+
+L01600 0000000000000000000000000000000000000000*
+L01640 0000000000000000000000000000000000000000*
+L01680 0000000000000000000000000000000000000000*
+L01720 0000000000000000000000000000000000000000*
+L01760 0000000000000000000000000000000000000000*
+L01800 0000000000000000000000000000000000000000*
+L01840 0000000000000000000000000000000000000000*
+L01880 0000000000000000000000000000000000000000*
+
+L01920 0000000000000000000000000000000000000000*
+L01960 0000000000000000000000000000000000000000*
+L02000 0000000000000000000000000000000000000000*
+L02040 0000000000000000000000000000000000000000*
+L02080 0000000000000000000000000000000000000000*
+L02120 0000000000000000000000000000000000000000*
+L02160 0000000000000000000000000000000000000000*
+L02200 0000000000000000000000000000000000000000*
+
+L02240 0000000000000000000000000000000000000000*
+L02280 0000000000000000000000000000000000000000*
+L02320 0000000000000000000000000000000000000000*
+L02360 0000000000000000000000000000000000000000*
+L02400 0000000000000000000000000000000000000000*
+L02440 0000000000000000000000000000000000000000*
+L02480 0000000000000000000000000000000000000000*
+L02520 0000000000000000000000000000000000000000*
+
+N ==> XOR *
+L02560 00000000*
+N ==> Signature is "" *
+L02568 0000000000000000000000000000000000000000*
+L02608 000000000000000000000000*
+N ==> AC1 *
+L02632 11100111*
+N ==> PTD *
+L02640 0000000000000000000000001111111111111111*
+L02680 000000000000000000000000*
+N ==> SYN 2704, AC0 2705 *
+L02704 10*
+C4DA7*
+
+0000
diff --git a/regtests/jedutil/jeds/gal20v8/pal20l8-to-gal20v8.jed b/regtests/jedutil/jeds/gal20v8/pal20l8-to-gal20v8.jed
new file mode 100644
index 00000000000..39b82f52643
--- /dev/null
+++ b/regtests/jedutil/jeds/gal20v8/pal20l8-to-gal20v8.jed
@@ -0,0 +1,106 @@
+
+Device G20V8 converted from PAL20L8 JEDEC map.
+PAL to GAL JEDEC conversion utility - paltogal v3.12 17 November 1992
+Copyright (c) by LATTICE Semiconductor Corp. 1990, 1991, 1992.
+Input File: c:\temp\mame\pal20l8.jed
+Output File: c:\temp\mame\p.jed
+The Date: Sun Mar 10 02:48:51 2019
+
+
+PAL20L8
+EQN2JED - Boolean Equations to JEDEC file assembler (Version V101)
+Copyright (c) National Semiconductor Corporation 1990-1993
+Assembled from "PAL20L8.eqn". Date: 8-30-112
+*
+NOTE PINS i1:1 i2:2 i3:3 i4:4 i5:5 i6:6 i7:7 i8:8 i9:9 i10:10*
+NOTE PINS i11:11 GND:12 i13:13 i14:14 o15:15 o16:16 o17:17 o18:18*
+NOTE PINS o19:19 o20:20 o21:21 o22:22 i23:23 VCC:24*
+QF2706*QP24*F0*
+
+L00000 1111011111111111111110111111111111111111*
+L00040 1101111111111111111111111011111111111111*
+L00080 1111111111111111111111111011111111111111*
+L00120 1101111111111111111111111111111111111111*
+L00160 1111111111111111111111111111111110111111*
+L00200 1111111011111111111111111111111111111111*
+L00240 1111111111111111111111110111111111111110*
+L00280 1111111111111111111111111111111111111011*
+
+L00320 1111111111110111011111111111111111111111*
+L00360 1101111111111111111111110111111111111111*
+L00400 1111111111111111111111111111111111101111*
+L00440 1101111111111011111111110111111111111111*
+L00480 1111110111111111111111111111111111111111*
+L00520 1101111111111111111111110111111111101111*
+L00560 1111111111111111111111111111111111111101*
+L00600 1101111111111111111111111111111111110111*
+
+L00640 1111111111111111111111111111111111111111*
+L00680 1111111111011111111111111111111111111111*
+L00720 1011111111111111111111111111111111111111*
+L00760 1111101111111111111111111111111111111111*
+L00800 1111111110111111111111111111111111111111*
+L00840 1111111111111011111111111111111111111111*
+L00880 1111111111111111101111111111111111111111*
+L00920 1111111111101111111110111111111111111111*
+
+L00960 1111111111111110111111110111111111111111*
+L01000 1111110111111111111111111111011110110111*
+L01040 1111111111111111111111111111011111111111*
+L01080 1111111111111111111111111111111110111111*
+L01120 1111111111111101111111111111111111110111*
+L01160 1111110111111111111111111111111111111111*
+L01200 0111110111111111111111111111111110111111*
+L01240 1111111111111111111111111111011111110111*
+
+L01280 1101110111111111111111111111111101111111*
+L01320 1001010110111111111111111011111111111111*
+L01360 0101011110111011111111111111111111111111*
+L01400 1111111111111111101001110111011101111111*
+L01440 1111110111111111111111111111111111010101*
+L01480 1111111111111111101101110111011101111111*
+L01520 1111010111111111111111111111111111011101*
+L01560 0101011110111011110111111111111111111111*
+
+L01600 1111111101110111111111111111111111111111*
+L01640 1111111011111111111111101111111111111111*
+L01680 1111111111111111111111011111111101111111*
+L01720 1111111111111111111111111111011111111111*
+L01760 1111111111111111111111110111111111111111*
+L01800 1111111111111111111110111111111111111111*
+L01840 1111111111111111101111111111111111111111*
+L01880 1111111111110111111111111111111111111111*
+
+L01920 1111111111111111111111111111111111111111*
+L01960 1001111111111111111111111110111111111111*
+L02000 1111011110111111111111111111111111111111*
+L02040 1111111111110111101111111111111111111111*
+L02080 1111111111111111111101111011111111111111*
+L02120 1111011111111111111111111101011111111111*
+L02160 1001011110110111101101111011101111111111*
+L02200 1111111111111111111111111011101111111111*
+
+L02240 1111111111111111111111111111110111111111*
+L02280 0110101101111111111111111111111111110111*
+L02320 0110101111111011111111111111111111111110*
+L02360 0110101111111111011111111111111111011111*
+L02400 0110101011111111111110111111111111111111*
+L02440 0110101111111111111111110111111111111011*
+L02480 0110101111111111111111111111101111111101*
+L02520 1111111111111111111111111111111011111111*
+
+N ==> XOR *
+L02560 00000000*
+N ==> Signature is "" *
+L02568 0000000000000000000000000000000000000000*
+L02608 000000000000000000000000*
+N ==> AC1 *
+L02632 11111111*
+N ==> PTD *
+L02640 1111111111111111111111111111111111111111*
+L02680 111111111111111111111111*
+N ==> SYN 2704, AC0 2705 *
+L02704 11*
+C3A8C*
+
+0000
diff --git a/regtests/jedutil/jeds/gal20v8/pal20r4-to-gal20v8.jed b/regtests/jedutil/jeds/gal20v8/pal20r4-to-gal20v8.jed
new file mode 100644
index 00000000000..a11ee91d12c
--- /dev/null
+++ b/regtests/jedutil/jeds/gal20v8/pal20r4-to-gal20v8.jed
@@ -0,0 +1,106 @@
+
+Device G20V8 converted from PAL20R4 JEDEC map.
+PAL to GAL JEDEC conversion utility - paltogal v3.12 17 November 1992
+Copyright (c) by LATTICE Semiconductor Corp. 1990, 1991, 1992.
+Input File: c:\temp\mame\pal20r4.jed
+Output File: c:\temp\mame\p.jed
+The Date: Sun Mar 10 02:50:11 2019
+
+
+PAL20R4
+EQN2JED - Boolean Equations to JEDEC file assembler (Version V101)
+Copyright (c) National Semiconductor Corporation 1990-1993
+Assembled from "pal20r4.eqn". Date: 9-10-112
+*
+NOTE PINS CLK:1 i2:2 i3:3 i4:4 i5:5 i6:6 i7:7 i8:8 i9:9 i10:10*
+NOTE PINS i11:11 GND:12 /OE:13 i14:14 o15:15 o16:16 rf17:17 rf18:18*
+NOTE PINS rf19:19 rf20:20 o21:21 o22:22 i23:23 VCC:24*
+QF2706*QP24*F0*
+
+L00000 1111111111111111111111111111111111101101*
+L00040 1111111111111111111111111111111111111101*
+L00080 1111111111111111111111111111111111101111*
+L00120 1111011111101111111111111111111111111111*
+L00160 1111111111111111111101111111111111111111*
+L00200 1111111111011111111111111011111111111111*
+L00240 1111111111111111111111111111111101111111*
+L00280 1111111111111111111111111111101111111111*
+
+L00320 1111111011111111111111110111011111111111*
+L00360 1111111111111111111111111011111111111111*
+L00400 1011111111111111111111111101111111111111*
+L00440 1111111111111111111111111111111111110111*
+L00480 1111111111111111111111111111111110111111*
+L00520 1111111111111111111111111111111111011111*
+L00560 1111111111111111111111111111111111111110*
+L00600 1111101111111111111111111111111111111111*
+
+L00640 1111111111111111111111111101111101111111*
+L00680 1111111111111111111111111111111111111011*
+L00720 1111111101111111111111111110111111111111*
+L00760 0111111111111111111111111111111111111111*
+L00800 1111111111111111101110111111111111111111*
+L00840 1111111111111111111111110111111111111111*
+L00880 1111111111111111111111111111101111111111*
+L00920 1111110111111111111111111111111111111111*
+
+L00960 1111111111110111011110111111111111111111*
+L01000 1111011111111111011101111111111111111111*
+L01040 1111111111110101111111111111111111111111*
+L01080 1111111111111111011111111111111111111111*
+L01120 1111111111111111111101111111111111111111*
+L01160 1111111110111110111111111111111111111111*
+L01200 1111111111111111111110111111111111111111*
+L01240 1111111111111111111111111111111101111111*
+
+L01280 1011111111110111011110111111111111111111*
+L01320 1111011111111111011101111111111111111111*
+L01360 1111011111111111110111111111111111111111*
+L01400 1011111111111111111110111111111111111111*
+L01440 1111101111111111111011111111111111111111*
+L01480 1111111111110111011110111111111111111111*
+L01520 1111111111111111111101111111111111111111*
+L01560 1111111111111111111111111111111111111011*
+
+L01600 1011111111111111111111111111111111111111*
+L01640 1111111111111111111111101111111111111111*
+L01680 1111111111110111111111111111111111111111*
+L01720 1111111111111111011111111111111111111111*
+L01760 1111111111111111111111011111111111111111*
+L01800 1111111101111111111111111111111111111111*
+L01840 1111111111111111111111111111111110111111*
+L01880 1110111111111111111111111111111111111111*
+
+L01920 1101111111111111111111111111111111111111*
+L01960 1111101111111111111111111110111111111111*
+L02000 1111111110111111111111111111111111111111*
+L02040 1111101111111111111111111111111111111111*
+L02080 1111101101111111111111111111111111111111*
+L02120 1111111111111111111110111101111111111111*
+L02160 1111111111111111111110111111111111111111*
+L02200 1111111101111111111111111111111111111111*
+
+L02240 1110111111111111111111111111111111111111*
+L02280 0111111111111111011101111111111111111111*
+L02320 1111111111111111011111111111110111111111*
+L02360 1111011111111111111111111111111011111111*
+L02400 1111111111111111111101111111111111111111*
+L02440 1111111110111111111111111111111111111111*
+L02480 1111111111111111011101111111111111111111*
+L02520 1111111101111111111101111111111111111111*
+
+N ==> XOR *
+L02560 00000000*
+N ==> Signature is "" *
+L02568 0000000000000000000000000000000000000000*
+L02608 000000000000000000000000*
+N ==> AC1 *
+L02632 11000011*
+N ==> PTD *
+L02640 1111111111111111111111111111111111111111*
+L02680 111111111111111111111111*
+N ==> SYN 2704, AC0 2705 *
+L02704 01*
+C3F83*
+
+0000
diff --git a/regtests/jedutil/jeds/gal20v8/pal20r6-to-gal20v8.jed b/regtests/jedutil/jeds/gal20v8/pal20r6-to-gal20v8.jed
new file mode 100644
index 00000000000..10157f5d487
--- /dev/null
+++ b/regtests/jedutil/jeds/gal20v8/pal20r6-to-gal20v8.jed
@@ -0,0 +1,106 @@
+
+Device G20V8 converted from PAL20R6 JEDEC map.
+PAL to GAL JEDEC conversion utility - paltogal v3.12 17 November 1992
+Copyright (c) by LATTICE Semiconductor Corp. 1990, 1991, 1992.
+Input File: c:\temp\mame\pal20r6.jed
+Output File: c:\temp\mame\p.jed
+The Date: Sun Mar 10 02:51:22 2019
+
+
+PAL20R6
+EQN2JED - Boolean Equations to JEDEC file assembler (Version V101)
+Copyright (c) National Semiconductor Corporation 1990-1993
+Assembled from "pal20r6.eqn". Date: 9-11-112
+*
+NOTE PINS CLK:1 i2:2 i3:3 i4:4 i5:5 i6:6 i7:7 i8:8 i9:9 i10:10*
+NOTE PINS i11:11 GND:12 /OE:13 i14:14 o15:15 rf16:16 rf17:17 rf18:18*
+NOTE PINS rf19:19 rf20:20 rf21:21 o22:22 i23:23 VCC:24*
+QF2706*QP24*F0*
+
+L00000 1111111111111111111111111111111111101101*
+L00040 1111111111111111111111111111111111111101*
+L00080 1111111111111111111111111111111111101111*
+L00120 1111011111101111111111111111111111111111*
+L00160 1111111111111111111101111111111111111111*
+L00200 1111111111011111111111111011111111111111*
+L00240 1111111111111111111111111111111101111111*
+L00280 1111111111111111111111111111101111111111*
+
+L00320 1111111111111111111111111011111111111111*
+L00360 1011111111111111111111111101111111111111*
+L00400 1111111111111111111111111111111111110111*
+L00440 1111111111111111111111111111111110111111*
+L00480 1111111111111111111111111111111111011111*
+L00520 1111111011111111111111111111111111111110*
+L00560 1111101111111111111111111111111111111111*
+L00600 1111111111111011111111111111111111111111*
+
+L00640 1111111111111111111111111101111101111111*
+L00680 1111111111111111111111111111111111111011*
+L00720 1111111101111111111111111110111111111111*
+L00760 0111111111111111111111111111111111111111*
+L00800 1111111111111111101110111111111111111111*
+L00840 1111111111111111111111110111111111111111*
+L00880 1111111111111111111111111111101111111111*
+L00920 1111110111111111111111111111111111111111*
+
+L00960 1111111111110111011110111111111111111111*
+L01000 1111011111111111011101111111111111111111*
+L01040 1111111111110101111111111111111111111111*
+L01080 1111111111111111011111111111111111111111*
+L01120 1111111111111111111101111111111111111111*
+L01160 1111111110111110111111111111111111111111*
+L01200 1111111111111111111110111111111111111111*
+L01240 1111111111111111111111111111111101111111*
+
+L01280 1011111111110111011110111111111111111111*
+L01320 1111011111111111011101111111111111111111*
+L01360 1111011111111111110111111111111111111111*
+L01400 1011111111111111111110111111111111111111*
+L01440 1111101111111111111011111111111111111111*
+L01480 1111111111110111011110111111111111111111*
+L01520 1111111111111111111101111111111111111111*
+L01560 1111111111111111111111111111111111111011*
+
+L01600 1011111111111111111111111111111111111111*
+L01640 1111111111111111111111101111111111111111*
+L01680 1111111111110111111111111111111111111111*
+L01720 1111111111111111011111111111111111111111*
+L01760 1111111111111111111111011111111111111111*
+L01800 1111111101111111111111111111111111111111*
+L01840 1111111111111111111111111111111110111111*
+L01880 1110111111111111111111111111111111111111*
+
+L01920 1111101111111111111111111110111111111111*
+L01960 1110111110111111111111111111111111111111*
+L02000 1111101111111111111111111111111111111111*
+L02040 1111101101111111111111111111111111111111*
+L02080 1111111111111111111110111101111111111111*
+L02120 1111111111111111111110111111111111111111*
+L02160 1111111101111111111111111111111111111111*
+L02200 1101111111111111111111111111111111111111*
+
+L02240 1110111111111111111111111111111111111111*
+L02280 0111111111111111011101111111111111111111*
+L02320 1111111111111111011111111111110111111111*
+L02360 1111011111111111111111111111111011111111*
+L02400 1111111111111111111101111111111111111111*
+L02440 1111111110111111111111111111111111111111*
+L02480 1111111111111111011101111111111111111111*
+L02520 1111111101111111111101111111111111111111*
+
+N ==> XOR *
+L02560 00000000*
+N ==> Signature is "" *
+L02568 0000000000000000000000000000000000000000*
+L02608 000000000000000000000000*
+N ==> AC1 *
+L02632 10000001*
+N ==> PTD *
+L02640 1111111111111111111111111111111111111111*
+L02680 111111111111111111111111*
+N ==> SYN 2704, AC0 2705 *
+L02704 01*
+C3F2A*
+
+0000
diff --git a/regtests/jedutil/jeds/gal20v8/pal20r8-to-gal20v8.jed b/regtests/jedutil/jeds/gal20v8/pal20r8-to-gal20v8.jed
new file mode 100644
index 00000000000..6b4123ca973
--- /dev/null
+++ b/regtests/jedutil/jeds/gal20v8/pal20r8-to-gal20v8.jed
@@ -0,0 +1,106 @@
+
+Device G20V8 converted from PAL20R8 JEDEC map.
+PAL to GAL JEDEC conversion utility - paltogal v3.12 17 November 1992
+Copyright (c) by LATTICE Semiconductor Corp. 1990, 1991, 1992.
+Input File: c:\temp\mame\pal20r8.jed
+Output File: c:\temp\mame\p.jed
+The Date: Sun Mar 10 02:52:30 2019
+
+
+PAL20R8
+EQN2JED - Boolean Equations to JEDEC file assembler (Version V101)
+Copyright (c) National Semiconductor Corporation 1990-1993
+Assembled from "pal20r8.eqn". Date: 9-11-112
+*
+NOTE PINS CLK:1 i2:2 i3:3 i4:4 i5:5 i6:6 i7:7 i8:8 i9:9 i10:10*
+NOTE PINS i11:11 GND:12 /OE:13 i14:14 rf15:15 rf16:16 rf17:17*
+NOTE PINS rf18:18 rf19:19 rf20:20 rf21:21 rf22:22 i23:23 VCC:24*
+QF2706*QP24*F0*
+
+L00000 1111111111111111111111111111111111111101*
+L00040 1111111111111111111111111111111111101111*
+L00080 1111011111101111111111111111111111111111*
+L00120 1111111111111111111101111111111111111111*
+L00160 1111111111011111111111111011111111111111*
+L00200 1111111111111111111111111111111101111111*
+L00240 1111111111111111111111111111101111111111*
+L00280 1111111111111111111111111111111111101101*
+
+L00320 1111111111111111111111111011111111111111*
+L00360 1011111111111111111111111101111111111111*
+L00400 1111111111111111111111111111111111110111*
+L00440 1111111111111111111111111111111110111111*
+L00480 1111111111111111111111111111111111011111*
+L00520 1111111111111111111111111111111111111110*
+L00560 1111101111111111111111111111111111111111*
+L00600 1111111011111111111111110111011111111111*
+
+L00640 1111111111111111111111111101111101111111*
+L00680 1111111111111111111111111111111111111011*
+L00720 1111111101111111111111111110111111111111*
+L00760 0111111111111111111111111111111111111111*
+L00800 1111111111111111101110111111111111111111*
+L00840 1111111111111111111111110111111111111111*
+L00880 1111111111111111111111111111101111111111*
+L00920 1111110111111111111111111111111111111111*
+
+L00960 1111111111110111011110111111111111111111*
+L01000 1111011111111111011101111111111111111111*
+L01040 1111111111110101111111111111111111111111*
+L01080 1111111111111111011111111111111111111111*
+L01120 1111111111111111111101111111111111111111*
+L01160 1111111110111110111111111111111111111111*
+L01200 1111111111111111111110111111111111111111*
+L01240 1111111111111111111111111111111101111111*
+
+L01280 1011111111110111011110111111111111111111*
+L01320 1111011111111111011101111111111111111111*
+L01360 1111011111111111110111111111111111111111*
+L01400 1011111111111111111110111111111111111111*
+L01440 1111101111111111111011111111111111111111*
+L01480 1111111111110111011110111111111111111111*
+L01520 1111111111111111111101111111111111111111*
+L01560 1111111111111111111111111111111111111011*
+
+L01600 1011111111111111111111111111111111111111*
+L01640 1111111111111111111111101111111111111111*
+L01680 1111111111110111111111111111111111111111*
+L01720 1111111111111111011111111111111111111111*
+L01760 1111111111111111111111011111111111111111*
+L01800 1111111101111111111111111111111111111111*
+L01840 1111111111111111111111111111111110111111*
+L01880 1110111111111111111111111111111111111111*
+
+L01920 1111101111111111111111111110111111111111*
+L01960 1111111110111111111111111111111111111111*
+L02000 1111101111111111111111111111111111111111*
+L02040 1111101101111111111111111111111111111111*
+L02080 1111111111111111111110111101111111111111*
+L02120 1111111111111111111110111111111111111111*
+L02160 1111111101111111111111111111111111111111*
+L02200 1101111111111111111111111111111111111111*
+
+L02240 0111111111111111011101111111111111111111*
+L02280 1111111111111111011111111111110111111111*
+L02320 1111011111111111111111111111111011111111*
+L02360 1111111111111111111101111111111111111111*
+L02400 1111111110111111111111111111111111111111*
+L02440 1111111111111111011101111111111111111111*
+L02480 1111111101111111111101111111111111111111*
+L02520 1110111111111111111111111111111111111111*
+
+N ==> XOR *
+L02560 00000000*
+N ==> Signature is "" *
+L02568 0000000000000000000000000000000000000000*
+L02608 000000000000000000000000*
+N ==> AC1 *
+L02632 00000000*
+N ==> PTD *
+L02640 1111111111111111111111111111111111111111*
+L02680 111111111111111111111111*
+N ==> SYN 2704, AC0 2705 *
+L02704 01*
+C3EC0*
+
+0000
diff --git a/src/tools/jedutil.cpp b/src/tools/jedutil.cpp
index bc997c10554..6b9936a98f4 100644
--- a/src/tools/jedutil.cpp
+++ b/src/tools/jedutil.cpp
@@ -117,6 +117,7 @@
#include <cstdlib>
#include <cstring>
#include <cctype>
+
#include "corestr.h"
#include "jedparse.h"
#include "plaparse.h"
@@ -189,6 +190,8 @@
#define COMBINATORIAL_ASSIGNMENT "="
#define REGISTERED_ASSIGNMENT ":="
+#define MAXIMUM_PAGE_ITEMS 10
+
/***************************************************************************
@@ -291,6 +294,7 @@ static void print_pal20ra10_product_terms(const pal_data* pal, const jed_data* j
static void print_pal20x4_product_terms(const pal_data* pal, const jed_data* jed);
static void print_pal20x8_product_terms(const pal_data* pal, const jed_data* jed);
static void print_pal20x10_product_terms(const pal_data* pal, const jed_data* jed);
+static void print_gal20v8_product_terms(const pal_data* pal, const jed_data* jed);
static void print_palce22v10_pal22v10_product_terms(const pal_data* pal, const jed_data* jed);
static void print_82s153_pls153_product_terms(const pal_data* pal, const jed_data* jed);
static void print_ck2605_product_terms(const pal_data* pal, const jed_data* jed);
@@ -355,6 +359,7 @@ static void config_pal20ra10_pins(const pal_data* pal, const jed_data* jed);
static void config_pal20x4_pins(const pal_data* pal, const jed_data* jed);
static void config_pal20x8_pins(const pal_data* pal, const jed_data* jed);
static void config_pal20x10_pins(const pal_data* pal, const jed_data* jed);
+static void config_gal20v8_pins(const pal_data* pal, const jed_data* jed);
static void config_palce22v10_pal22v10_pins(const pal_data* pal, const jed_data* jed);
static void config_82s153_pls153_pins(const pal_data* pal, const jed_data* jed);
static void config_ck2605_pins(const pal_data* pal, const jed_data* jed);
@@ -396,6 +401,10 @@ static int is_gal16v8_product_term_enabled(const pal_data* pal, const jed_data*
+static int is_gal20v8_product_term_enabled(const pal_data* pal, const jed_data* jed, uint16_t fuserow);
+
+
+
static uint16_t get_peel18cv8_pin_fuse_state(const pal_data* pal, const jed_data* jed, uint16_t pin, uint16_t fuserow);
@@ -668,6 +677,16 @@ static pin_fuse_rows pal20x10pinfuserows[] = {
{22, NO_OUTPUT_ENABLE_FUSE_ROW, 160, 280}, /* Registered Output */
{23, NO_OUTPUT_ENABLE_FUSE_ROW, 0, 120}}; /* Registered Output */
+static pin_fuse_rows gal20v8pinfuserows[] = {
+ {15, 0, 0, 0},
+ {16, 0, 0, 0},
+ {17, 0, 0, 0},
+ {18, 0, 0, 0},
+ {19, 0, 0, 0},
+ {20, 0, 0, 0},
+ {21, 0, 0, 0},
+ {22, 0, 0, 0}};
+
static pin_fuse_rows palce22v10_pal22v10pinfuserows[] = {
{14, 5368, 5412, 5720},
{15, 4884, 4928, 5324},
@@ -1471,6 +1490,28 @@ static pin_fuse_columns pal20x10pinfusecolumns[] = {
{23, 3, 2}
};
+static pin_fuse_columns gal20v8pinfusecolumns[] = {
+ {0, 0, 0},
+ {0, 0, 0},
+ {0, 0, 0},
+ {0, 0, 0},
+ {0, 0, 0},
+ {0, 0, 0},
+ {0, 0, 0},
+ {0, 0, 0},
+ {0, 0, 0},
+ {0, 0, 0},
+ {0, 0, 0},
+ {0, 0, 0},
+ {0, 0, 0},
+ {0, 0, 0},
+ {0, 0, 0},
+ {0, 0, 0},
+ {0, 0, 0},
+ {0, 0, 0},
+ {0, 0, 0},
+ {0, 0, 0}};
+
static pin_fuse_columns palce22v10_pal22v10pinfusecolumns[] = {
{1, 1, 0},
{2, 5, 4},
@@ -2206,8 +2247,14 @@ static pal_data paldata[] = {
config_pal20x10_pins,
nullptr,
nullptr},
- /*{"GAL20V8A", 0, NULL, 0, NULL, 0, NULL, NULL, NULL, NULL},
- {"GAL22V10", 0, NULL, 0, NULL, 0, NULL, NULL, NULL, NULL},*/
+ {"GAL20V8", 2706,
+ gal20v8pinfuserows, ARRAY_LENGTH(gal20v8pinfuserows),
+ gal20v8pinfusecolumns, ARRAY_LENGTH(gal20v8pinfusecolumns),
+ print_gal20v8_product_terms,
+ config_gal20v8_pins,
+ is_gal20v8_product_term_enabled,
+ nullptr},
+ /*{"GAL22V10", 0, NULL, 0, NULL, 0, NULL, NULL, NULL, NULL},*/
{"PAL22V10", 5828,
palce22v10_pal22v10pinfuserows, ARRAY_LENGTH(palce22v10_pal22v10pinfuserows),
palce22v10_pal22v10pinfusecolumns, ARRAY_LENGTH(palce22v10_pal22v10pinfusecolumns),
@@ -3762,6 +3809,18 @@ static void print_pal20x10_product_terms(const pal_data* pal, const jed_data* je
/*-------------------------------------------------
+ print_gal20v8_product_terms - prints the product
+ terms for a GAL20V8
+-------------------------------------------------*/
+
+static void print_gal20v8_product_terms(const pal_data* pal, const jed_data* jed)
+{
+ print_product_terms(pal, jed);
+}
+
+
+
+/*-------------------------------------------------
print_palce22v10_pal22v10_product_terms - prints the product
terms for a PALCE22V10 and PAL22V10
-------------------------------------------------*/
@@ -5966,7 +6025,7 @@ static void config_pal20x4_pins(const pal_data* pal, const jed_data* jed)
}
/*-------------------------------------------------
- config_pal20x10_pins - configures the pins for
+ config_pal20x8_pins - configures the pins for
a PAL20X8
-------------------------------------------------*/
@@ -6018,6 +6077,318 @@ static void config_pal20x10_pins(const pal_data* pal, const jed_data* jed)
/*-------------------------------------------------
+ config_gal20v8_pins - configures the pins for
+ a GAL20V8
+-------------------------------------------------*/
+
+static void config_gal20v8_pins(const pal_data* pal, const jed_data* jed)
+{
+ typedef struct _output_logic_macrocell output_logic_macrocell;
+ struct _output_logic_macrocell
+ {
+ uint16_t pin;
+ uint16_t xor_fuse;
+ uint16_t ac1_fuse;
+ };
+
+ static output_logic_macrocell macrocells[] = {
+ {15, 2567, 2639},
+ {16, 2566, 2638},
+ {17, 2565, 2637},
+ {18, 2564, 2636},
+ {19, 2563, 2635},
+ {20, 2562, 2634},
+ {21, 2561, 2633},
+ {22, 2560, 2632}};
+ static pin_fuse_rows pinfuserows_registered[] = {
+ {15, NO_OUTPUT_ENABLE_FUSE_ROW, 2240, 2520},
+ {16, NO_OUTPUT_ENABLE_FUSE_ROW, 1920, 2200},
+ {17, NO_OUTPUT_ENABLE_FUSE_ROW, 1600, 1880},
+ {18, NO_OUTPUT_ENABLE_FUSE_ROW, 1280, 1560},
+ {19, NO_OUTPUT_ENABLE_FUSE_ROW, 960, 1240},
+ {20, NO_OUTPUT_ENABLE_FUSE_ROW, 640, 920},
+ {21, NO_OUTPUT_ENABLE_FUSE_ROW, 320, 600},
+ {22, NO_OUTPUT_ENABLE_FUSE_ROW, 0, 280}};
+ static pin_fuse_rows pinfuserows_combinatorialcomplex[] = {
+ {15, 2240, 2280, 2520},
+ {16, 1920, 1960, 2200},
+ {17, 1600, 1640, 1880},
+ {18, 1280, 1320, 1560},
+ {19, 960, 1000, 1240},
+ {20, 640, 680, 920},
+ {21, 320, 360, 600},
+ {22, 0, 40, 280}};
+ static pin_fuse_rows pinfuserows_combinatorialsimple[] = {
+ {15, NO_OUTPUT_ENABLE_FUSE_ROW, 2240, 2520},
+ {16, NO_OUTPUT_ENABLE_FUSE_ROW, 1920, 2200},
+ {17, NO_OUTPUT_ENABLE_FUSE_ROW, 1600, 1880},
+ {18, NO_OUTPUT_ENABLE_FUSE_ROW, 1280, 1560},
+ {19, NO_OUTPUT_ENABLE_FUSE_ROW, 960, 1240},
+ {20, NO_OUTPUT_ENABLE_FUSE_ROW, 640, 920},
+ {21, NO_OUTPUT_ENABLE_FUSE_ROW, 320, 600},
+ {22, NO_OUTPUT_ENABLE_FUSE_ROW, 0, 280}};
+ static pin_fuse_columns pinfusecolumns_registered[] = {
+ {2, 1, 0},
+ {3, 5, 4},
+ {4, 9, 8},
+ {5, 13, 12},
+ {6, 17, 16},
+ {7, 21, 20},
+ {8, 25, 24},
+ {9, 29, 28},
+ {10, 33, 32},
+ {11, 37, 36},
+ {14, 39, 38},
+ {15, 35, 34},
+ {16, 31, 30},
+ {17, 27, 26},
+ {18, 23, 22},
+ {19, 19, 18},
+ {20, 15, 14},
+ {21, 11, 10},
+ {22, 7, 6},
+ {23, 3, 2}};
+ static pin_fuse_columns pinfusecolumns_combinatorialcomplex[] = {
+ {1, 3, 2},
+ {2, 1, 0},
+ {3, 5, 4},
+ {4, 9, 8},
+ {5, 13, 12},
+ {6, 17, 16},
+ {7, 21, 20},
+ {8, 25, 24},
+ {9, 29, 28},
+ {10, 33, 32},
+ {11, 37, 36},
+ {13, 39, 38},
+ {14, 35, 34},
+ {16, 31, 30},
+ {17, 27, 26},
+ {18, 23, 22},
+ {19, 19, 18},
+ {20, 15, 14},
+ {21, 11, 10},
+ {23, 7, 6}};
+ static pin_fuse_columns pinfusecolumns_combinatorialsimple[] = {
+ {1, 3, 2},
+ {2, 1, 0},
+ {3, 5, 4},
+ {4, 9, 8},
+ {5, 13, 12},
+ {6, 17, 16},
+ {7, 21, 20},
+ {8, 25, 24},
+ {9, 29, 28},
+ {10, 33, 32},
+ {11, 37, 36},
+ {13, 39, 38},
+ {14, 35, 34},
+ {15, 31, 30},
+ {16, 27, 26},
+ {17, 23, 22},
+ {20, 19, 18},
+ {21, 15, 14},
+ {22, 11, 10},
+ {23, 7, 6}};
+ static uint16_t input_pins_registered[] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23};
+ static uint16_t input_pins_combinatorialcomplex[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14, 16, 17, 18, 19, 20, 21, 23};
+ uint16_t input_pins_combinatorialsimple[22];
+ pin_output_config output_pins[ARRAY_LENGTH(macrocells)];
+ uint16_t index, input_pin_count, output_pin_count;
+
+ output_pin_count = 0;
+
+ /* SYN Fuse: 0 - registered, 1 - combinatorial */
+
+ if (jed_get_fuse(jed, 2704))
+ {
+ /* Combinatorial */
+ /* AC0 Fuse: 0 - simple mode, 1 - complex mode */
+
+ if (jed_get_fuse(jed, 2705))
+ {
+ /* Complex Mode */
+
+ set_input_pins(input_pins_combinatorialcomplex, ARRAY_LENGTH(input_pins_combinatorialcomplex));
+
+ memcpy(gal20v8pinfuserows, pinfuserows_combinatorialcomplex, sizeof(pinfuserows_combinatorialcomplex));
+ memcpy(gal20v8pinfusecolumns, pinfusecolumns_combinatorialcomplex, sizeof(pinfusecolumns_combinatorialcomplex));
+
+ for (index = 0; index < ARRAY_LENGTH(macrocells); ++index)
+ {
+ if (is_gal20v8_product_term_enabled(pal, jed, pal->pinfuserows[index].fuserowoutputenable) &&
+ does_output_enable_fuse_row_allow_output(pal, jed, pal->pinfuserows[index].fuserowoutputenable))
+ {
+ output_pins[output_pin_count].pin = macrocells[index].pin;
+ output_pins[output_pin_count].flags = OUTPUT_COMBINATORIAL;
+
+ if (jed_get_fuse(jed, macrocells[index].xor_fuse))
+ {
+ output_pins[output_pin_count].flags |= OUTPUT_ACTIVEHIGH;
+ }
+ else
+ {
+ output_pins[output_pin_count].flags |= OUTPUT_ACTIVELOW;
+ }
+
+ if (output_pins[output_pin_count].pin != 15 &&
+ output_pins[output_pin_count].pin != 22)
+ {
+ output_pins[output_pin_count].flags |= OUTPUT_FEEDBACK_OUTPUT;
+ }
+ else
+ {
+ output_pins[output_pin_count].flags |= OUTPUT_FEEDBACK_NONE;
+ }
+
+ ++output_pin_count;
+ }
+ }
+ }
+ else
+ {
+ /* Simple Mode */
+
+ input_pin_count = 0;
+
+ for (index = 1; index < 12; ++index)
+ {
+ input_pins_combinatorialsimple[input_pin_count] = index;
+
+ ++input_pin_count;
+ }
+
+ for (index = 13; index < 15; ++index)
+ {
+ input_pins_combinatorialsimple[input_pin_count] = index;
+
+ ++input_pin_count;
+ }
+
+ memcpy(gal20v8pinfuserows, pinfuserows_combinatorialsimple, sizeof(pinfuserows_combinatorialsimple));
+ memcpy(gal20v8pinfusecolumns, pinfusecolumns_combinatorialsimple, sizeof(pinfusecolumns_combinatorialsimple));
+
+ for (index = 0; index < ARRAY_LENGTH(macrocells); ++index)
+ {
+ if (jed_get_fuse(jed, macrocells[index].ac1_fuse))
+ {
+ /* Pin is for input only */
+
+ input_pins_combinatorialsimple[input_pin_count] = macrocells[index].pin;
+
+ ++input_pin_count;
+
+ if (macrocells[index].pin == 18 || macrocells[index].pin == 19)
+ {
+ fprintf(stderr, "Pin %d cannot be configured as an input pin.\n",
+ macrocells[index].pin);
+ }
+ }
+ else
+ {
+ output_pins[output_pin_count].pin = macrocells[index].pin;
+ output_pins[output_pin_count].flags = OUTPUT_COMBINATORIAL;
+
+ if (jed_get_fuse(jed, macrocells[index].xor_fuse))
+ {
+ output_pins[output_pin_count].flags |= OUTPUT_ACTIVEHIGH;
+ }
+ else
+ {
+ output_pins[output_pin_count].flags |= OUTPUT_ACTIVELOW;
+ }
+
+ if (macrocells[index].pin != 18 && macrocells[index].pin != 19)
+ {
+ output_pins[output_pin_count].flags |= OUTPUT_FEEDBACK_COMBINATORIAL;
+
+ input_pins_combinatorialsimple[input_pin_count] = macrocells[index].pin;
+
+ ++input_pin_count;
+ }
+ else
+ {
+ output_pins[output_pin_count].flags |= OUTPUT_FEEDBACK_NONE;
+ }
+
+ ++output_pin_count;
+ }
+ }
+
+ input_pins_combinatorialsimple[input_pin_count] = 23;
+
+ ++input_pin_count;
+
+ set_input_pins(input_pins_combinatorialsimple, input_pin_count);
+ }
+ }
+ else
+ {
+ /* Registered */
+
+ set_input_pins(input_pins_registered, ARRAY_LENGTH(input_pins_registered));
+
+ memcpy(gal20v8pinfusecolumns, pinfusecolumns_registered, sizeof(pinfusecolumns_registered));
+
+ for (index = 0; index < ARRAY_LENGTH(macrocells); ++index)
+ {
+ if (jed_get_fuse(jed, macrocells[index].ac1_fuse))
+ {
+ /* combinatorial pin */
+
+ gal20v8pinfuserows[index].fuserowoutputenable = pinfuserows_combinatorialcomplex[index].fuserowoutputenable;
+ gal20v8pinfuserows[index].fuserowtermstart = pinfuserows_combinatorialcomplex[index].fuserowtermstart;
+ gal20v8pinfuserows[index].fuserowtermend = pinfuserows_combinatorialcomplex[index].fuserowtermend;
+
+ if (is_gal20v8_product_term_enabled(pal, jed, pal->pinfuserows[index].fuserowoutputenable) &&
+ does_output_enable_fuse_row_allow_output(pal, jed, pal->pinfuserows[index].fuserowoutputenable))
+ {
+ output_pins[output_pin_count].pin = macrocells[index].pin;
+ output_pins[output_pin_count].flags = OUTPUT_COMBINATORIAL | OUTPUT_FEEDBACK_OUTPUT;
+
+ if (jed_get_fuse(jed, macrocells[index].xor_fuse))
+ {
+ output_pins[output_pin_count].flags |= OUTPUT_ACTIVEHIGH;
+ }
+ else
+ {
+ output_pins[output_pin_count].flags |= OUTPUT_ACTIVELOW;
+ }
+
+ ++output_pin_count;
+ }
+ }
+ else
+ {
+ /* registered pin */
+
+ gal20v8pinfuserows[index].fuserowoutputenable = pinfuserows_registered[index].fuserowoutputenable;
+ gal20v8pinfuserows[index].fuserowtermstart = pinfuserows_registered[index].fuserowtermstart;
+ gal20v8pinfuserows[index].fuserowtermend = pinfuserows_registered[index].fuserowtermend;
+
+ output_pins[output_pin_count].pin = macrocells[index].pin;
+ output_pins[output_pin_count].flags = OUTPUT_REGISTERED | OUTPUT_FEEDBACK_REGISTERED;
+
+ if (jed_get_fuse(jed, macrocells[index].xor_fuse))
+ {
+ output_pins[output_pin_count].flags |= OUTPUT_ACTIVEHIGH;
+ }
+ else
+ {
+ output_pins[output_pin_count].flags |= OUTPUT_ACTIVELOW;
+ }
+
+ ++output_pin_count;
+ }
+ }
+ }
+
+ set_output_pins(output_pins, output_pin_count);
+}
+
+
+
+/*-------------------------------------------------
config_palce22v10_pal22v10_pins - configures the pins for
a PALCE22V10
-------------------------------------------------*/
@@ -7300,6 +7671,29 @@ static int is_gal16v8_product_term_enabled(const pal_data* pal, const jed_data*
/*-------------------------------------------------
+ is_gal20v8_product_term_enabled - determines if
+ a fuse row in a GAL20V8 is enabled
+-------------------------------------------------*/
+
+static int is_gal20v8_product_term_enabled(const pal_data* pal, const jed_data* jed, uint16_t fuserow)
+{
+ uint16_t fuse_ptd;
+
+ fuse_ptd = (fuserow / calc_fuse_column_count(pal)) + 2640;
+
+ if (fuse_ptd > 2703)
+ {
+ fprintf(stderr, "Fuse row %d is illegal!\n", fuserow);
+
+ return 0;
+ }
+
+ return jed_get_fuse(jed, fuse_ptd);
+}
+
+
+
+/*-------------------------------------------------
get_peel18cv8_pin_fuse_state - determines the
fuse state of an input pin in a fuse row
-------------------------------------------------*/