summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--regtests/jedutil/baseline/pal22v10/pal22v10-combinatorial.txt159
-rw-r--r--regtests/jedutil/baseline/pal22v10/pal22v10-registered.txt159
-rw-r--r--regtests/jedutil/eqns/PALASM/pal22v10/pal22v10-combinatorial.pds180
-rw-r--r--regtests/jedutil/eqns/PALASM/pal22v10/pal22v10-registered.pds180
-rw-r--r--regtests/jedutil/jeds/pal22v10/pal22v10-combinatorial.jed150
-rw-r--r--regtests/jedutil/jeds/pal22v10/pal22v10-registered.jed150
-rw-r--r--src/mame/drivers/wiping.cpp26
-rw-r--r--src/mame/drivers/yunsung8.cpp15
-rw-r--r--src/tools/jedutil.cpp257
9 files changed, 1253 insertions, 23 deletions
diff --git a/regtests/jedutil/baseline/pal22v10/pal22v10-combinatorial.txt b/regtests/jedutil/baseline/pal22v10/pal22v10-combinatorial.txt
new file mode 100644
index 00000000000..c4fe984a870
--- /dev/null
+++ b/regtests/jedutil/baseline/pal22v10/pal22v10-combinatorial.txt
@@ -0,0 +1,159 @@
+Inputs:
+
+1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23
+
+Outputs:
+
+14 (Combinatorial, Output feedback output, Active high)
+15 (Combinatorial, Output feedback output, Active low)
+16 (Combinatorial, Output feedback output, Active low)
+17 (Combinatorial, Output feedback output, Active high)
+18 (Combinatorial, Output feedback output, Active high)
+19 (Combinatorial, Output feedback output, Active low)
+20 (Combinatorial, Output feedback output, Active low)
+21 (Combinatorial, Output feedback output, Active low)
+22 (Combinatorial, Output feedback output, Active low)
+23 (Combinatorial, Output feedback output, Active high)
+
+Equations:
+
+o14 = /i9 +
+ /i8 +
+ /i7 +
+ /i6 +
+ /i5 +
+ /i4 +
+ /i3 +
+ /i2
+o14.oe = vcc
+
+/o15 = i3 +
+ i7 & i8 +
+ i9 & i10 +
+ i11 & i13 +
+ i8 +
+ i4 & i6 +
+ i2 & i5 +
+ /i13 +
+ /i11 +
+ /i10
+o15.oe = vcc
+
+/o16 = /i4 & /i5 & /i6 +
+ i2 & i3 & i11 & i13 +
+ i2 & i3 +
+ /i2 & i3 & /i4 +
+ /i3 & /i4 & /i13 +
+ /i5 & /i11 & /i13 +
+ i11 & i13 +
+ i9 & i10 +
+ i7 & i8 +
+ i5 & i6 +
+ i3 & i4 +
+ i1 & i2
+o16.oe = o14
+
+o17 = /i6 & /i7 & /i8 & /i9 & /i10 +
+ /i1 & /i2 & /i3 & /i4 & /i5 +
+ i1 +
+ i2 +
+ i3 +
+ i4 +
+ i5 +
+ i6 +
+ i7 +
+ i8 +
+ i9 +
+ i10 +
+ i11 +
+ i13
+o17.oe = /o15
+
+o18 = /i7 & /i8 +
+ i1 & i2 & /i5 & /i6 +
+ i13 & /o20 +
+ /i9 & /i10 & /i11 +
+ /i5 & /i6 & o20 +
+ o17 & /o20 +
+ i1 & i3 & /o17 +
+ i9 & i11 +
+ /i7 & /i9 & /i13 +
+ i5 & i6 & /i10 +
+ /i3 & i4 +
+ /i3 & /o17 +
+ i1 & i2 & i4 +
+ /i3 & /i4 & o17 +
+ /i1 & /i2 & o17 +
+ /o17
+o18.oe = /i11 & /i13
+
+/o19 = i4 +
+ i3 +
+ i2 +
+ /i13 +
+ /i11 +
+ /i10 +
+ /i9 +
+ /i8 +
+ /i7 +
+ /i6 +
+ /i5 +
+ /i4 +
+ /i3 +
+ /i2 +
+ /o14 +
+ i1 & o14
+o19.oe = vcc
+
+/o20 = /i8 +
+ /i9 +
+ /i10 +
+ /i11 +
+ /i13 +
+ i13 +
+ i11 +
+ i10 +
+ i9 +
+ i8 +
+ i7 +
+ i6 +
+ i5 +
+ i1 & /i2
+o20.oe = i3 & /i9 & /i10 & i11
+
+/o21 = i5 & /i6 +
+ i4 & /i5 +
+ i3 & /i4 +
+ i2 & /i3 +
+ /i11 & /i13 +
+ /i9 & /i10 +
+ /i7 & /i8 +
+ /i5 & /i6 +
+ /i3 & /i4 +
+ /i2 & /i3 +
+ /o17 & /o23 +
+ i1 & i10
+o21.oe = vcc
+
+/o22 = i9 & i10 & i11 & i13 +
+ i5 & i6 & i7 & i8 +
+ i1 & i2 & i3 & i4 +
+ i11 & /i13 +
+ i10 & /i11 +
+ i9 & /i10 +
+ i8 & /i9 +
+ i7 & /i8 +
+ i6 & /i7 +
+ o23
+o22.oe = /i13
+
+o23 = /i1 & /i2 & /i3 & /i4 & /i5 & /i6 & /i7 & /i8 & /i9 & /i10 & /i11 & /i13 +
+ /i1 & i2 & /i3 & i4 & /i5 & i6 & /i7 & i8 & /i9 & i10 & /i11 & i13 +
+ i1 & /i2 & i3 & /i4 & i5 & /i6 & i7 & /i8 & i9 & /i10 & i11 & /i13 +
+ /i1 & /i13 +
+ /i1 & /i2 & /i3 & /i4 & /i5 & /i6 & /i7 & /i8 & /i9 & /i10 & /i11 & /i13 +
+ /i3 & i4 +
+ i1 & i2 & i3 & i4 & i5 & i6 & i7 & i8 & i9 & i10 & i11 & i13 +
+ i3 & /i4
+o23.oe = /o15 & o21
+
diff --git a/regtests/jedutil/baseline/pal22v10/pal22v10-registered.txt b/regtests/jedutil/baseline/pal22v10/pal22v10-registered.txt
new file mode 100644
index 00000000000..d1ef28e28e4
--- /dev/null
+++ b/regtests/jedutil/baseline/pal22v10/pal22v10-registered.txt
@@ -0,0 +1,159 @@
+Inputs:
+
+1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23
+
+Outputs:
+
+14 (Registered, Output feedback registered, Active low)
+15 (Registered, Output feedback registered, Active high)
+16 (Registered, Output feedback registered, Active high)
+17 (Registered, Output feedback registered, Active low)
+18 (Registered, Output feedback registered, Active low)
+19 (Registered, Output feedback registered, Active high)
+20 (Registered, Output feedback registered, Active high)
+21 (Registered, Output feedback registered, Active high)
+22 (Registered, Output feedback registered, Active high)
+23 (Registered, Output feedback registered, Active low)
+
+Equations:
+
+/rf14 := i2 +
+ i3 +
+ i4 +
+ i5 +
+ i6 +
+ i7 +
+ i8 +
+ i9
+rf14.oe = /i1
+
+rf15 := i10 +
+ i11 +
+ i13 +
+ /i2 & /i5 +
+ /i4 & /i6 +
+ /i8 +
+ /i11 & /i13 +
+ /i9 & /i10 +
+ /i7 & /i8 +
+ /i3
+rf15.oe = i1
+
+rf16 := /i1 & /i2 +
+ /i3 & /i4 +
+ /i5 & /i6 +
+ /i7 & /i8 +
+ /i9 & /i10 +
+ /i11 & /i13 +
+ i5 & i11 & i13 +
+ i3 & i4 & i13 +
+ i2 & /i3 & i4 +
+ /i2 & /i3 +
+ /i2 & /i3 & /i11 & /i13 +
+ i4 & i5 & i6
+rf16.oe = /rf14
+
+/rf17 := /i13 +
+ /i11 +
+ /i10 +
+ /i9 +
+ /i8 +
+ /i7 +
+ /i6 +
+ /i5 +
+ /i4 +
+ /i3 +
+ /i2 +
+ /i1 +
+ i1 & i2 & i3 & i4 & i5 +
+ i6 & i7 & i8 & i9 & i10
+rf17.oe = vcc
+
+/rf18 := rf17 +
+ i1 & i2 & /rf17 +
+ i3 & i4 & /rf17 +
+ /i1 & /i2 & /i4 +
+ i3 & rf17 +
+ i3 & /i4 +
+ /i5 & /i6 & i10 +
+ i7 & i9 & i13 +
+ /i9 & /i11 +
+ /i1 & /i3 & rf17 +
+ /rf17 & /rf20 +
+ i5 & i6 & rf20 +
+ i9 & i10 & i11 +
+ /i13 & /rf20 +
+ /i1 & /i2 & i5 & i6 +
+ i7 & i8
+rf18.oe = i11 & i13
+
+rf19 := /i1 & /rf14 +
+ rf14 +
+ i2 +
+ i3 +
+ i4 +
+ i5 +
+ i6 +
+ i7 +
+ i8 +
+ i9 +
+ i10 +
+ i11 +
+ i13 +
+ /i2 +
+ /i3 +
+ /i4
+rf19.oe = /i3 & i9 & i10 & /i11
+
+rf20 := /i1 & i2 +
+ /i5 +
+ /i6 +
+ /i7 +
+ /i8 +
+ /i9 +
+ /i10 +
+ /i11 +
+ /i13 +
+ i13 +
+ i11 +
+ i10 +
+ i9 +
+ i8
+rf20.oe = vcc
+
+rf21 := /i1 & /i10 +
+ rf17 & rf23 +
+ i2 & i3 +
+ i3 & i4 +
+ i5 & i6 +
+ i7 & i8 +
+ i9 & i10 +
+ i11 & i13 +
+ /i2 & i3 +
+ /i3 & i4 +
+ /i4 & i5 +
+ /i5 & i6
+rf21.oe = i13
+
+rf22 := /rf23 +
+ /i6 & i7 +
+ /i7 & i8 +
+ /i8 & i9 +
+ /i9 & i10 +
+ /i10 & i11 +
+ /i11 & i13 +
+ /i1 & /i2 & /i3 & /i4 +
+ /i5 & /i6 & /i7 & /i8 +
+ /i9 & /i10 & /i11 & /i13
+rf22.oe = vcc
+
+/rf23 := /i3 & i4 +
+ /i1 & /i2 & /i3 & /i4 & /i5 & /i6 & /i7 & /i8 & /i9 & /i10 & /i11 & /i13 +
+ i3 & /i4 +
+ i1 & i2 & i3 & i4 & i5 & i6 & i7 & i8 & i9 & i10 & i11 & i13 +
+ i1 & i13 +
+ /i1 & i2 & /i3 & i4 & /i5 & i6 & /i7 & i8 & /i9 & i10 & /i11 & i13 +
+ i1 & /i2 & i3 & /i4 & i5 & /i6 & i7 & /i8 & i9 & /i10 & i11 & /i13 +
+ i1 & i2 & i3 & i4 & i5 & i6 & i7 & i8 & i9 & i10 & i11 & i13
+rf23.oe = vcc
+
diff --git a/regtests/jedutil/eqns/PALASM/pal22v10/pal22v10-combinatorial.pds b/regtests/jedutil/eqns/PALASM/pal22v10/pal22v10-combinatorial.pds
new file mode 100644
index 00000000000..a54f6a5fb32
--- /dev/null
+++ b/regtests/jedutil/eqns/PALASM/pal22v10/pal22v10-combinatorial.pds
@@ -0,0 +1,180 @@
+TITLE PAL22V10 Combinatorial Test
+PATTERN A
+REVISION 1.0
+AUTHOR MAMEDev
+COMPANY MAMEDev
+DATE 3/24/2020
+
+CHIP PAL22V10Test1 PAL22V10
+
+;---------------------------------- PIN Declarations ---------------
+PIN 1 I1 COMBINATORIAL ;
+PIN 2 I2 COMBINATORIAL ;
+PIN 3 I3 COMBINATORIAL ;
+PIN 4 I4 COMBINATORIAL ;
+PIN 5 I5 COMBINATORIAL ;
+PIN 6 I6 COMBINATORIAL ;
+PIN 7 I7 COMBINATORIAL ;
+PIN 8 I8 COMBINATORIAL ;
+PIN 9 I9 COMBINATORIAL ;
+PIN 10 I10 COMBINATORIAL ;
+PIN 11 I11 COMBINATORIAL ;
+PIN 12 GND ;
+PIN 13 I13 COMBINATORIAL ;
+PIN 14 O14 COMBINATORIAL ;
+PIN 15 O15 COMBINATORIAL ;
+PIN 16 O16 COMBINATORIAL ;
+PIN 17 O17 COMBINATORIAL ;
+PIN 18 O18 COMBINATORIAL ;
+PIN 19 O19 COMBINATORIAL ;
+PIN 20 O20 COMBINATORIAL ;
+PIN 21 O21 COMBINATORIAL ;
+PIN 22 O22 COMBINATORIAL ;
+PIN 23 O23 COMBINATORIAL ;
+PIN 24 VCC ;
+
+EQUATIONS
+
+O14 = /I9 +
+ /I8 +
+ /I7 +
+ /I6 +
+ /I5 +
+ /I4 +
+ /I3 +
+ /I2
+O14.TRST = VCC
+
+/O15 = I3 +
+ I7 * I8 +
+ I9 * I10 +
+ I11 * I13 +
+ I8 +
+ I4 * I6 +
+ I2 * I5 +
+ /I13 +
+ /I11 +
+ /I10
+O15.TRST = VCC
+
+/O16 = /I4 * /I5 * /I6 +
+ I2 * I3 * I11 * I13 +
+ I2 * I3 +
+ /I2 * I3 * /I4 +
+ /I3 * /I4 * /I13 +
+ /I5 * /I11 * /I13 +
+ I11 * I13 +
+ I9 * I10 +
+ I7 * I8 +
+ I5 * I6 +
+ I3 * I4 +
+ I1 * I2
+O16.TRST = O14
+
+O17 = /I6 * /I7 * /I8 * /I9 * /I10 +
+ /I1 * /I2 * /I3 * /I4 * /I5 +
+ I1 +
+ I2 +
+ I3 +
+ I4 +
+ I5 +
+ I6 +
+ I7 +
+ I8 +
+ I9 +
+ I10 +
+ I11 +
+ I13
+O17.TRST = /O15
+
+O18 = /I7 * /I8 +
+ I1 * I2 * /I5 * /I6 +
+ I13 * /O20 +
+ /I9 * /I10 * /I11 +
+ /I5 * /I6 * O20 +
+ O17 * /O20 +
+ I1 * I3 * /O17 +
+ I9 * I11 +
+ /I7 * /I9 * /I13 +
+ I5 * I6 * /I10 +
+ /I3 * I4 +
+ /I3 * /O17 +
+ I1 * I2 * I4 +
+ /I3 * /I4 * O17 +
+ /I1 * /I2 * O17 +
+ /O17
+O18.TRST = /I11 * /I13
+
+/O19 = I4 +
+ I3 +
+ I2 +
+ /I13 +
+ /I11 +
+ /I10 +
+ /I9 +
+ /I8 +
+ /I7 +
+ /I6 +
+ /I5 +
+ /I4 +
+ /I3 +
+ /I2 +
+ /O14 +
+ I1 * O14
+O19.TRST = VCC
+
+/O20 = /I8 +
+ /I9 +
+ /I10 +
+ /I11 +
+ /I13 +
+ I13 +
+ I11 +
+ I10 +
+ I9 +
+ I8 +
+ I7 +
+ I6 +
+ I5 +
+ I1 * /I2
+O20.TRST = I3 * /I9 * /I10 * I11
+
+/O21 = I5 * /I6 +
+ I4 * /I5 +
+ I3 * /I4 +
+ I2 * /I3 +
+ /I11 * /I13 +
+ /I9 * /I10 +
+ /I7 * /I8 +
+ /I5 * /I6 +
+ /I3 * /I4 +
+ /I2 * /I3 +
+ /O17 * /O23 +
+ I1 * I10
+O21.TRST = VCC
+
+/O22 = I9 * I10 * I11 * I13 +
+ I5 * I6 * I7 * I8 +
+ I1 * I2 * I3 * I4 +
+ I11 * /I13 +
+ I10 * /I11 +
+ I9 * /I10 +
+ I8 * /I9 +
+ I7 * /I8 +
+ I6 * /I7 +
+ O23
+O22.TRST = /I13
+
+O23 = /I1 * /I2 * /I3 * /I4 * /I5 * /I6 * /I7 * /I8 * /I9 * /I10 * /I11 * /I13 +
+ /I1 * I2 * /I3 * I4 * /I5 * I6 * /I7 * I8 * /I9 * I10 * /I11 * I13 +
+ I1 * /I2 * I3 * /I4 * I5 * /I6 * I7 * /I8 * I9 * /I10 * I11 * /I13 +
+ /I1 * /I13 +
+ /I1 * /I2 * /I3 * /I4 * /I5 * /I6 * /I7 * /I8 * /I9 * /I10 * /I11 * /I13 +
+ /I3 * I4 +
+ I1 * I2 * I3 * I4 * I5 * I6 * I7 * I8 * I9 * I10 * I11 * I13 +
+ I3 * /I4
+O23.TRST = /O15 * O21
+
+SIMULATION
+
+
diff --git a/regtests/jedutil/eqns/PALASM/pal22v10/pal22v10-registered.pds b/regtests/jedutil/eqns/PALASM/pal22v10/pal22v10-registered.pds
new file mode 100644
index 00000000000..40101536757
--- /dev/null
+++ b/regtests/jedutil/eqns/PALASM/pal22v10/pal22v10-registered.pds
@@ -0,0 +1,180 @@
+TITLE PAL22V10 Registered Test
+PATTERN A
+REVISION 1.0
+AUTHOR MAMEDev
+COMPANY MAMEDev
+DATE 3/23/2020
+
+CHIP PAL22V10Test2 PAL22V10
+
+;---------------------------------- PIN Declarations ---------------
+PIN 1 I1 COMBINATORIAL ;
+PIN 2 I2 COMBINATORIAL ;
+PIN 3 I3 COMBINATORIAL ;
+PIN 4 I4 COMBINATORIAL ;
+PIN 5 I5 COMBINATORIAL ;
+PIN 6 I6 COMBINATORIAL ;
+PIN 7 I7 COMBINATORIAL ;
+PIN 8 I8 COMBINATORIAL ;
+PIN 9 I9 COMBINATORIAL ;
+PIN 10 I10 COMBINATORIAL ;
+PIN 11 I11 COMBINATORIAL ;
+PIN 12 GND ;
+PIN 13 I13 COMBINATORIAL ;
+PIN 14 RF14 REGISTERED ;
+PIN 15 RF15 REGISTERED ;
+PIN 16 RF16 REGISTERED ;
+PIN 17 RF17 REGISTERED ;
+PIN 18 RF18 REGISTERED ;
+PIN 19 RF19 REGISTERED ;
+PIN 20 RF20 REGISTERED ;
+PIN 21 RF21 REGISTERED ;
+PIN 22 RF22 REGISTERED ;
+PIN 23 RF23 REGISTERED ;
+PIN 24 VCC ;
+
+EQUATIONS
+
+/RF14 := I2 +
+ I3 +
+ I4 +
+ I5 +
+ I6 +
+ I7 +
+ I8 +
+ I9
+RF14.TRST = /I1
+
+RF15 := I10 +
+ I11 +
+ I13 +
+ /I2 * /I5 +
+ /I4 * /I6 +
+ /I8 +
+ /I11 * /I13 +
+ /I9 * /I10 +
+ /I7 * /I8 +
+ /I3
+RF15.TRST = I1
+
+RF16 := /I1 * /I2 +
+ /I3 * /I4 +
+ /I5 * /I6 +
+ /I7 * /I8 +
+ /I9 * /I10 +
+ /I11 * /I13 +
+ I5 * I11 * I13 +
+ I3 * I4 * I13 +
+ I2 * /I3 * I4 +
+ /I2 * /I3 +
+ /I2 * /I3 * /I11 * /I13 +
+ I4 * I5 * I6
+RF16.TRST = /RF14
+
+/RF17 := /I13 +
+ /I11 +
+ /I10 +
+ /I9 +
+ /I8 +
+ /I7 +
+ /I6 +
+ /I5 +
+ /I4 +
+ /I3 +
+ /I2 +
+ /I1 +
+ I1 * I2 * I3 * I4 * I5 +
+ I6 * I7 * I8 * I9 * I10
+RF17.TRST = VCC
+
+/RF18 := RF17 +
+ I1 * I2 * /RF17 +
+ I3 * I4 * /RF17 +
+ /I1 * /I2 * /I4 +
+ I3 * RF17 +
+ I3 * /I4 +
+ /I5 * /I6 * I10 +
+ I7 * I9 * I13 +
+ /I9 * /I11 +
+ /I1 * /I3 * RF17 +
+ /RF17 * RF20 +
+ I5 * I6 * /RF20 +
+ I9 * I10 * I11 +
+ /I13 * RF20 +
+ /I1 * /I2 * I5 * I6 +
+ I7 * I8
+RF18.TRST = I11 * I13
+
+RF19 := /I1 * /RF14 +
+ RF14 +
+ I2 +
+ I3 +
+ I4 +
+ I5 +
+ I6 +
+ I7 +
+ I8 +
+ I9 +
+ I10 +
+ I11 +
+ I13 +
+ /I2 +
+ /I3 +
+ /I4
+RF19.TRST = /I3 * I9 * I10 * /I11
+
+RF20 := /I1 * I2 +
+ /I5 +
+ /I6 +
+ /I7 +
+ /I8 +
+ /I9 +
+ /I10 +
+ /I11 +
+ /I13 +
+ I13 +
+ I11 +
+ I10 +
+ I9 +
+ I8
+RF20.TRST = VCC
+
+RF21 := /I1 * /I10 +
+ RF17 * RF23 +
+ I2 * I3 +
+ I3 * I4 +
+ I5 * I6 +
+ I7 * I8 +
+ I9 * I10 +
+ I11 * I13 +
+ /I2 * I3 +
+ /I3 * I4 +
+ /I4 * I5 +
+ /I5 * I6
+RF21.TRST = I13
+
+RF22 := /RF23 +
+ /I6 * I7 +
+ /I7 * I8 +
+ /I8 * I9 +
+ /I9 * I10 +
+ /I10 * I11 +
+ /I11 * I13 +
+ /I1 * /I2 * /I3 * /I4 +
+ /I5 * /I6 * /I7 * /I8 +
+ /I9 * /I10 * /I11 * /I13
+RF22.TRST = VCC
+
+/RF23 := /I3 * I4 +
+ /I1 * /I2 * /I3 * /I4 * /I5 * /I6 * /I7 * /I8 * /I9 * /I10 * /I11 * /I13 +
+ I3 * /I4 +
+ I1 * I2 * I3 * I4 * I5 * I6 * I7 * I8 * I9 * I10 * I11 * I13 +
+ I1 * I13 +
+ /I1 * I2 * /I3 * I4 * /I5 * I6 * /I7 * I8 * /I9 * I10 * /I11 * I13 +
+ I1 * /I2 * I3 * /I4 * I5 * /I6 * I7 * /I8 * I9 * /I10 * I11 * /I13 +
+ I1 * I2 * I3 * I4 * I5 * I6 * I7 * I8 * I9 * I10 * I11 * I13
+RF23.TRST = VCC
+
+SIMULATION
+
+
diff --git a/regtests/jedutil/jeds/pal22v10/pal22v10-combinatorial.jed b/regtests/jedutil/jeds/pal22v10/pal22v10-combinatorial.jed
new file mode 100644
index 00000000000..72bf4fe895e
--- /dev/null
+++ b/regtests/jedutil/jeds/pal22v10/pal22v10-combinatorial.jed
@@ -0,0 +1,150 @@
+
+PALASM4 PAL ASSEMBLER - MARKET RELEASE 1.5a (8-20-92)
+ (C) - COPYRIGHT ADVANCED MICRO DEVICES INC., 1992
+
+
+TITLE :PAL22V10 Combinatorial TestAUTHOR :MAMEDev
+PATTERN :A COMPANY:MAMEDev
+REVISION:1.0 DATE :3/24/2020
+
+
+PAL22V10
+PAL22V10TEST1*
+QP24*
+QF5828*
+G0*F0*
+L0000 00000000000000000000000000000000000000000000*
+L0044 11111111110111111111111111111111111011111111*
+L0088 10111011101110111011101110111011101110111010*
+L0132 10110111101101111011011110110111101101111001*
+L0176 01111011011110110111101101111011011110110110*
+L0220 10111111111111111111111111111111111111111110*
+L0264 10111011101110111011101110111011101110111010*
+L0308 11111111101101111111111111111111111111111111*
+L0352 01110111011101110111011101110111011101110101*
+L0396 11111111011110111111111111111111111111111111*
+L0440 11111111111111111111111111111111111111111110*
+L0484 11111111111111111111111111111111011101110101*
+L0528 11111111111111110111011101110111111111111111*
+L0572 01110111011101111111111111111111111111111111*
+L0616 11111111111111111111111111111111111111110110*
+L0660 11111111111111111111111111111111111101111011*
+L0704 11111111111111111111111111111111011110111111*
+L0748 11111111111111111111111111110111101111111111*
+L0792 11111111111111111111111101111011111111111111*
+L0836 11111111111111111111011110111111111111111111*
+L0880 11011111111111111111111111111111111111111111*
+L0924 11111111111111111111111111111111111111111111*
+L0968 11111111111111110111101111111111111111111111*
+L1012 11111111111101111011111111111111111111111111*
+L1056 11111111011110111111111111111111111111111111*
+L1100 11110111101111111111111111111111111111111111*
+L1144 11111111111111111111111111111111111111111010*
+L1188 11111111111111111111111111111111101110111111*
+L1232 11111111111111111111111110111011111111111111*
+L1276 11111111111111111011101111111111111111111111*
+L1320 11111111101110111111111111111111111111111111*
+L1364 11111011101111111111111111111111111111111111*
+L1408 11101111111111111111111111101111111111111111*
+L1452 01111111111111111111111111111111111101111111*
+L1496 11111111011111111111111111111111101110110111*
+L1540 11111111111111111111111111111011111111111111*
+L1584 11111111111111111111111111111111101111111111*
+L1628 11111111111111111111111111111111111110111111*
+L1672 11111111111111111111111111111111111111111011*
+L1716 11111111111111111111111111111111111111111110*
+L1760 11111111111111111111111111111111111111111101*
+L1804 11111111111111111111111111111111111111110111*
+L1848 11111111111111111111111111111111111101111111*
+L1892 11111111111111111111111111111111011111111111*
+L1936 11111111111111111111111111110111111111111111*
+L1980 11111111111111111111111101111111111111111111*
+L2024 11111111111111111111011111111111111111111111*
+L2068 11111111111111110111111111111111111111111111*
+L2112 01111011111111111111111111111111111111111111*
+L2156 11111111111111111111111111111111111111111111*
+L2200 11111111111101111111111111111111111111111111*
+L2244 11111111011111111111111111111111111111111111*
+L2288 11110111111111111111111111111111111111111111*
+L2332 11111111111111111111111111111111111111111110*
+L2376 11111111111111111111111111111111111111111011*
+L2420 11111111111111111111111111111111111110111111*
+L2464 11111111111111111111111111111111101111111111*
+L2508 11111111111111111111111111111011111111111111*
+L2552 11111111111111111111111110111111111111111111*
+L2596 11111111111111111111101111111111111111111111*
+L2640 11111111111111111011111111111111111111111111*
+L2684 11111111111110111111111111111111111111111111*
+L2728 11111111101111111111111111111111111111111111*
+L2772 11111011111111111111111111111111111111111111*
+L2816 11111111111111111111111111111111111111101111*
+L2860 01111111111111111111111111111111111111011111*
+L2904 11111111111111111111111111111111111111111010*
+L2948 11111111111111111111111110111011111111111111*
+L2992 01110111111111111011101111111111111111111111*
+L3036 11111111111111101111111111111111111111111101*
+L3080 11111111111111111111111111111111101110111011*
+L3124 11111111111111011011101111111111111111111111*
+L3168 11111111111111101111111111011111111111111111*
+L3212 01111111011111111111111111101111111111111111*
+L3256 11111111111111111111111111111111011111110111*
+L3300 11111111111111111111111110111111101111111110*
+L3344 11111111111111110111011111111111111110111111*
+L3388 11111111101101111111111111111111111111111111*
+L3432 11111111101111111111111111101111111111111111*
+L3476 01110111111101111111111111111111111111111111*
+L3520 11111111101110111111111111011111111111111111*
+L3564 10111011111111111111111111011111111111111111*
+L3608 11111111111111111111111111101111111111111111*
+L3652 11111111111111111111111111111111111011111111*
+L3696 11111111111111111111101110111011101110111111*
+L3740 10111011101110111011111111111111111111111111*
+L3784 01111111111111111111111111111111111111111111*
+L3828 11110111111111111111111111111111111111111111*
+L3872 11111111011111111111111111111111111111111111*
+L3916 11111111111101111111111111111111111111111111*
+L3960 11111111111111110111111111111111111111111111*
+L4004 11111111111111111111011111111111111111111111*
+L4048 11111111111111111111111101111111111111111111*
+L4092 11111111111111111111111111110111111111111111*
+L4136 11111111111111111111111111111111011111111111*
+L4180 11111111111111111111111111111111111101111111*
+L4224 11111111111111111111111111111111111111110111*
+L4268 11111111111111111111111111111111111111111101*
+L4312 11111111111111111111111111111111111111011111*
+L4356 11111111111110111011101111111111111111111111*
+L4400 11110111011111111111111111111111111111110101*
+L4444 11110111011111111111111111111111111111111111*
+L4488 11111011011110111111111111111111111111111111*
+L4532 11111111101110111111111111111111111111111110*
+L4576 11111111111111111011111111111111111111111010*
+L4620 11111111111111111111111111111111111111110101*
+L4664 11111111111111111111111111111111011101111111*
+L4708 11111111111111111111111101110111111111111111*
+L4752 11111111111111110111011111111111111111111111*
+L4796 11111111011101111111111111111111111111111111*
+L4840 01110111111111111111111111111111111111111111*
+L4884 11111111111111111111111111111111111111111111*
+L4928 11111111011111111111111111111111111111111111*
+L4972 11111111111111111111111101110111111111111111*
+L5016 11111111111111111111111111111111011101111111*
+L5060 11111111111111111111111111111111111111110101*
+L5104 11111111111111111111111111110111111111111111*
+L5148 11111111111101111111011111111111111111111111*
+L5192 11110111111111110111111111111111111111111111*
+L5236 11111111111111111111111111111111111111111110*
+L5280 11111111111111111111111111111111111111111011*
+L5324 11111111111111111111111111111111111110111111*
+L5368 11111111111111111111111111111111111111111111*
+L5412 11111111111111111111111111111111101111111111*
+L5456 11111111111111111111111111111011111111111111*
+L5500 11111111111111111111111110111111111111111111*
+L5544 11111111111111111111101111111111111111111111*
+L5588 11111111111111111011111111111111111111111111*
+L5632 11111111111110111111111111111111111111111111*
+L5676 11111111101111111111111111111111111111111111*
+L5720 11111011111111111111111111111111111111111111*
+L5764 00000000000000000000000000000000000000000000*
+L5808 11010101011111010111*
+CB5B2*
+2B25
diff --git a/regtests/jedutil/jeds/pal22v10/pal22v10-registered.jed b/regtests/jedutil/jeds/pal22v10/pal22v10-registered.jed
new file mode 100644
index 00000000000..454d92fab2f
--- /dev/null
+++ b/regtests/jedutil/jeds/pal22v10/pal22v10-registered.jed
@@ -0,0 +1,150 @@
+
+PALASM4 PAL ASSEMBLER - MARKET RELEASE 1.5a (8-20-92)
+ (C) - COPYRIGHT ADVANCED MICRO DEVICES INC., 1992
+
+
+TITLE :PAL22V10 Test 2 AUTHOR :MAMEDev
+PATTERN :A COMPANY:MAMEDev
+REVISION:1.0 DATE :3/23/2020
+
+
+PAL22V10
+PAL22V10TEST2*
+QP24*
+QF5828*
+G0*F0*
+L0000 00000000000000000000000000000000000000000000*
+L0044 11111111111111111111111111111111111111111111*
+L0088 11111111101101111111111111111111111111111111*
+L0132 10111011101110111011101110111011101110111010*
+L0176 11111111011110111111111111111111111111111111*
+L0220 01110111011101110111011101110111011101110101*
+L0264 01111111111111111111111111111111111111111101*
+L0308 10110111101101111011011110110111101101111001*
+L0352 01111011011110110111101101111011011110110110*
+L0396 01110111011101110111011101110111011101110101*
+L0440 11111111111111111111111111111111111111111111*
+L0484 11101111111111111111111111111111111111111111*
+L0528 11111111111111111111101101111111111111111111*
+L0572 11111111111111111111111110110111111111111111*
+L0616 11111111111111111111111111111011011111111111*
+L0660 11111111111111111111111111111111101101111111*
+L0704 11111111111111111111111111111111111110110111*
+L0748 11111111111111111111111111111111111111111001*
+L0792 10111011101110111111111111111111111111111111*
+L0836 11111111111111111011101110111011111111111111*
+L0880 11111111111111111111111111111111101110111010*
+L0924 11111111111111111111111111111111111111111101*
+L0968 10111111111111111111111111111111111110111111*
+L1012 11011111111111111111111111011111111111111111*
+L1056 11110111011111111111111111111111111111111111*
+L1100 11111111011101111111111111111111111111111111*
+L1144 11111111111111110111011111111111111111111111*
+L1188 11111111111111111111111101110111111111111111*
+L1232 11111111111111111111111111111111011101111111*
+L1276 11111111111111111111111111111111111111110101*
+L1320 11111011011111111111111111111111111111111111*
+L1364 11111111101101111111111111111111111111111111*
+L1408 11111111111110110111111111111111111111111111*
+L1452 11111111111111111011011111111111111111111111*
+L1496 11111111111111111111111111111111111111111111*
+L1540 10110111111111111111111111111111111111111111*
+L1584 11111111111111111011111111111111111111111111*
+L1628 11111111111111111111101111111111111111111111*
+L1672 11111111111111111111111110111111111111111111*
+L1716 11111111111111111111111111111011111111111111*
+L1760 11111111111111111111111111111111101111111111*
+L1804 11111111111111111111111111111111111110111111*
+L1848 11111111111111111111111111111111111111111011*
+L1892 11111111111111111111111111111111111111111110*
+L1936 11111111111111111111111111111111111111111101*
+L1980 11111111111111111111111111111111111111110111*
+L2024 11111111111111111111111111111111111101111111*
+L2068 11111111111111111111111111111111011111111111*
+L2112 11111111111111111111111111110111111111111111*
+L2156 11111111101111111111111111111111011101111011*
+L2200 10111111111111111111111111111111111111101111*
+L2244 11111111111111111111111111111111111111011111*
+L2288 11110111111111111111111111111111111111111111*
+L2332 11111111011111111111111111111111111111111111*
+L2376 11111111111101111111111111111111111111111111*
+L2420 11111111111111110111111111111111111111111111*
+L2464 11111111111111111111011111111111111111111111*
+L2508 11111111111111111111111101111111111111111111*
+L2552 11111111111111111111111111110111111111111111*
+L2596 11111111111111111111111111111111011111111111*
+L2640 11111111111111111111111111111111111101111111*
+L2684 11111111111111111111111111111111111111110111*
+L2728 11111111111111111111111111111111111111111101*
+L2772 11111011111111111111111111111111111111111111*
+L2816 11111111101111111111111111111111111111111111*
+L2860 11111111111110111111111111111111111111111111*
+L2904 11111111111111111111111111111111111111110101*
+L2948 11111111111111111111111111011111111111111111*
+L2992 01110111111111111111111111101111111111111111*
+L3036 11111111011101111111111111101111111111111111*
+L3080 10111011111110111111111111111111111111111111*
+L3124 11111111011111111111111111011111111111111111*
+L3168 11111111011110111111111111111111111111111111*
+L3212 11111111111111111011101111111111111101111111*
+L3256 11111111111111111111111101111111011111111101*
+L3300 11111111111111111111111111111111101111111011*
+L3344 10111111101111111111111111011111111111111111*
+L3388 11111111111111101111111111101111111111111111*
+L3432 11111111111111010111011111111111111111111111*
+L3476 11111111111111111111111111111111011101110111*
+L3520 11111111111111101111111111111111111111111110*
+L3564 10111011111111110111011111111111111111111111*
+L3608 11111111111111111111111101110111111111111111*
+L3652 11111111111111111111111111111111111111111111*
+L3696 11111111111111111111111111111111111111111110*
+L3740 11111111111111111111111111111111111111111011*
+L3784 11111111111111111111111111111111111110111111*
+L3828 11111111111111111111111111111111101111111111*
+L3872 11111111111111111111111111111011111111111111*
+L3916 11111111111111111111111110111111111111111111*
+L3960 11111111111111111111101111111111111111111111*
+L4004 11111111111111111011111111111111111111111111*
+L4048 11111111111110111111111111111111111111111111*
+L4092 11111111101111111111111111111111111111111111*
+L4136 11111011111111111111111111111111111111111111*
+L4180 10111111111111111111111111111111111111111111*
+L4224 01110111011101110111111111111111111111111111*
+L4268 11111111111111111111011101110111011101111111*
+L4312 11111111111111111111111111111111111111101111*
+L4356 10111011111111111111111111111111111111111111*
+L4400 11111111101110111111111111111111111111111111*
+L4444 11111111111111111011101111111111111111111111*
+L4488 11111111111111111111111110111011111111111111*
+L4532 11111111111111111111111111111111101110111111*
+L4576 11111111111111111111111111111111111111111010*
+L4620 11111111111111110111111111111111111111110101*
+L4664 11111111011101111111111111111111111111111101*
+L4708 11110111101101111111111111111111111111111111*
+L4752 11111011101111111111111111111111111111111111*
+L4796 11111011101111111111111111111111111111111010*
+L4840 11111111111101110111011111111111111111111111*
+L4884 01111111111111111111111111111111111111111111*
+L4928 11111111111111111111111111111111111101111111*
+L4972 11111111111111111111111111111111111111110111*
+L5016 11111111111111111111111111111111111111111101*
+L5060 11111011111111111011111111111111111111111111*
+L5104 11111111111110111111101111111111111111111111*
+L5148 11111111111111111111111111111011111111111111*
+L5192 11111111111111111111111111111111111111111010*
+L5236 11111111111111111111111111111111101110111111*
+L5280 11111111111111111111111110111011111111111111*
+L5324 11111111101111111111111111111111111111111111*
+L5368 10111111111111111111111111111111111111111111*
+L5412 11110111111111111111111111111111111111111111*
+L5456 11111111011111111111111111111111111111111111*
+L5500 11111111111101111111111111111111111111111111*
+L5544 11111111111111110111111111111111111111111111*
+L5588 11111111111111111111011111111111111111111111*
+L5632 11111111111111111111111101111111111111111111*
+L5676 11111111111111111111111111110111111111111111*
+L5720 11111111111111111111111111111111011111111111*
+L5764 00000000000000000000000000000000000000000000*
+L5808 00101010100000101000*
+CB42D*
+2B20
diff --git a/src/mame/drivers/wiping.cpp b/src/mame/drivers/wiping.cpp
index 04cf412bfc2..6c2d86abade 100644
--- a/src/mame/drivers/wiping.cpp
+++ b/src/mame/drivers/wiping.cpp
@@ -361,31 +361,31 @@ ROM_END
ROM_START( rugrats )
ROM_REGION( 0x10000, "maincpu", 0 ) /* main cpu code */
- ROM_LOAD( "rugr1d1", 0x0000, 0x2000, CRC(e7e1bd6d) SHA1(985799b1bfd001c6304e6166180745cb019f834e) )
- ROM_LOAD( "rugr2d2", 0x2000, 0x2000, CRC(5f47b9ad) SHA1(2d3eb737ea8e86691293e432e866d2623d6b6b1b) )
- ROM_LOAD( "rugr3d3", 0x4000, 0x2000, CRC(3d748d1a) SHA1(2b301119b6eb3f0f9bb2ad734cff1d25365dfe99) )
+ ROM_LOAD( "1.1d", 0x0000, 0x2000, CRC(e7e1bd6d) SHA1(985799b1bfd001c6304e6166180745cb019f834e) )
+ ROM_LOAD( "2.2d", 0x2000, 0x2000, CRC(5f47b9ad) SHA1(2d3eb737ea8e86691293e432e866d2623d6b6b1b) )
+ ROM_LOAD( "3.3d", 0x4000, 0x2000, CRC(3d748d1a) SHA1(2b301119b6eb3f0f9bb2ad734cff1d25365dfe99) )
ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */
- ROM_LOAD( "rugr4c4", 0x0000, 0x2000, CRC(d4a92c38) SHA1(4a31cfef9f084b4d2934595155bf0f3dd589efb3) )
+ ROM_LOAD( "4.3b", 0x0000, 0x2000, CRC(d4a92c38) SHA1(4a31cfef9f084b4d2934595155bf0f3dd589efb3) )
ROM_REGION( 0x1000, "gfx1", 0 )
- ROM_LOAD( "rugr8d2", 0x0000, 0x1000, CRC(a3dcaca5) SHA1(d71f9090bf95dfd035ee0e0619a1cce575033cf3) ) /* chars */
+ ROM_LOAD( "8.2d", 0x0000, 0x1000, CRC(a3dcaca5) SHA1(d71f9090bf95dfd035ee0e0619a1cce575033cf3) ) /* chars */
ROM_REGION( 0x2000, "gfx2", 0 )
- ROM_LOAD( "rugr7c13", 0x0000, 0x2000, CRC(fe1191dd) SHA1(80ebf093f7a32f4cc9dc89dcc44cab6e3db4fca1) ) /* sprites */
+ ROM_LOAD( "7.13c", 0x0000, 0x2000, CRC(fe1191dd) SHA1(80ebf093f7a32f4cc9dc89dcc44cab6e3db4fca1) ) /* sprites */
ROM_REGION( 0x0220, "proms", 0 )
- ROM_LOAD( "prom.13g", 0x0000, 0x0020, CRC(f21238f0) SHA1(944627d1551453c7f828d96b83fd4eeb038b20ad) ) /* palette */
- ROM_LOAD( "prom.4f", 0x0020, 0x0100, CRC(cfc90f3d) SHA1(99f7dc0d14c62d4c676c96310c219c696c9a7897) ) /* char lookup table */
- ROM_LOAD( "prom.11e", 0x0120, 0x0100, CRC(cfc90f3d) SHA1(99f7dc0d14c62d4c676c96310c219c696c9a7897) ) /* sprite lookup table */
+ ROM_LOAD( "g13.13g", 0x0000, 0x0020, CRC(f21238f0) SHA1(944627d1551453c7f828d96b83fd4eeb038b20ad) ) /* palette */
+ ROM_LOAD( "eiif4.4f", 0x0020, 0x0100, CRC(cfc90f3d) SHA1(99f7dc0d14c62d4c676c96310c219c696c9a7897) ) /* char lookup table */
+ ROM_LOAD( "eiif4.11e", 0x0120, 0x0100, CRC(cfc90f3d) SHA1(99f7dc0d14c62d4c676c96310c219c696c9a7897) ) /* sprite lookup table */
ROM_REGION( 0x4000, "samples", 0 ) /* samples */
- ROM_LOAD( "rugr5c8", 0x0000, 0x2000, CRC(67bafbbf) SHA1(2085492b58ce44f61a42320c54595b79fdf7a91c) )
- ROM_LOAD( "rugr6c9", 0x2000, 0x2000, CRC(cac84a87) SHA1(90f6c514d0cdbeb4c8c979597db79ebcdf443df4) )
+ ROM_LOAD( "5.8c", 0x0000, 0x2000, CRC(67bafbbf) SHA1(2085492b58ce44f61a42320c54595b79fdf7a91c) )
+ ROM_LOAD( "6.9c", 0x2000, 0x2000, CRC(cac84a87) SHA1(90f6c514d0cdbeb4c8c979597db79ebcdf443df4) )
ROM_REGION( 0x0200, "soundproms", 0 ) /* 4bit->8bit sample expansion PROMs */
- ROM_LOAD( "wip-e8.bin", 0x0000, 0x0100, CRC(bd2c080b) SHA1(9782bb5001e96db56bc29df398187f700bce4f8e) ) /* low 4 bits */
- ROM_LOAD( "wip-e9.bin", 0x0100, 0x0100, CRC(4017a2a6) SHA1(dadef2de7a1119758c8e6d397aa42815b0218889) ) /* high 4 bits */
+ ROM_LOAD( "e8.8e", 0x0000, 0x0100, CRC(bd2c080b) SHA1(9782bb5001e96db56bc29df398187f700bce4f8e) ) /* low 4 bits */
+ ROM_LOAD( "e9.9e", 0x0100, 0x0100, CRC(4017a2a6) SHA1(dadef2de7a1119758c8e6d397aa42815b0218889) ) /* high 4 bits */
ROM_END
diff --git a/src/mame/drivers/yunsung8.cpp b/src/mame/drivers/yunsung8.cpp
index 8dff608fb5a..0be817736ad 100644
--- a/src/mame/drivers/yunsung8.cpp
+++ b/src/mame/drivers/yunsung8.cpp
@@ -16,7 +16,7 @@ Sound Chips : OKI M5205 + YM3812
Year + Game Board#
---------------------------------------------------------------------------
95 Cannon Ball YS-ROCK-970712 or 940712?
-95 Magix / Rock YS-ROCK-970712
+95 Magix / Rock YS-ROCK-940712
94? Rock Tris YS-ROCK-940712
---------------------------------------------------------------------------
@@ -395,10 +395,11 @@ void yunsung8_state::yunsung8(machine_config &config)
Magix
Yun Sung, 1995
-YS-ROCK-970712
+YS-ROCK-940712
+-------------------------------------+
|VOL YM3014 6116 04|
| M5205 400KHz 03|
+| 09 |
| Z80A CXK5118PN-15L 02|
| 08 GM76C28-10 01|
| MCM2018AN45 |
@@ -411,7 +412,7 @@ YS-ROCK-970712
| U66 +--------+ 06|
| HM6264 05|
| 07 HM6264 |
-| Z80B YM3812 16MHz |
+| Z80B YM3812 10 16MHz |
+-------------------------------------+
Main CPU: Z80B
@@ -442,6 +443,10 @@ ROM_START( magix )
ROM_REGION( 0x40000, "text", 0 ) /* Text */
ROM_LOAD( "yunsung8.05", 0x00000, 0x20000, CRC(862d378c) SHA1(a4e2cf14b5b25c6b8725dd285ddea65ce9ee257a) ) // only first $8000 bytes != 0
ROM_LOAD( "yunsung8.06", 0x20000, 0x20000, CRC(8b2ab901) SHA1(1a5c05dd0cf830b645357a62d8e6e876b44c6b7f) ) // only first $8000 bytes != 0
+
+ ROM_REGION( 0x0002, "plds", 0 ) /* PAL's and GAL's */
+ ROM_LOAD( "palce20v8h.09", 0x0000, 0x0001, NO_DUMP ) /* PALCE20V8H-25PC/4 - security fuse blown */
+ ROM_LOAD( "palce20v8h.10", 0x0000, 0x0001, NO_DUMP ) /* PALCE20V8H-25PC/4 - security fuse blown */
ROM_END
/***************************************************************************
@@ -470,6 +475,10 @@ ROM_START( magixb )
ROM_REGION( 0x40000, "text", 0 ) /* Text */
ROM_LOAD( "5.bin", 0x00000, 0x20000, CRC(11b99819) SHA1(4b20feea227cefd2e905601d934538a13ba6685b) ) // only first $8000 bytes != 0
ROM_LOAD( "6.bin", 0x20000, 0x20000, CRC(361a864c) SHA1(e0bb78b49fc3d461d6ac46ad97a9d04112783132) ) // only first $8000 bytes != 0
+
+ ROM_REGION( 0x0002, "plds", 0 ) /* PAL's and GAL's */
+ ROM_LOAD( "palce20v8h.09", 0x0000, 0x0001, NO_DUMP ) /* PALCE20V8H-25PC/4 - security fuse blown */
+ ROM_LOAD( "palce20v8h.10", 0x0000, 0x0001, NO_DUMP ) /* PALCE20V8H-25PC/4 - security fuse blown */
ROM_END
diff --git a/src/tools/jedutil.cpp b/src/tools/jedutil.cpp
index 49b5d00cd38..c342d1bbef9 100644
--- a/src/tools/jedutil.cpp
+++ b/src/tools/jedutil.cpp
@@ -94,11 +94,12 @@
PAL20X8 = QP24 QF1600
PAL20X10 = QP24 QF1600
- PAL22V10 = QP24 QF5828?
-
GAL20V8A = QP24 QF2706
GAL22V10 = QP24 QF5892
+ PALCE22V10 = QP24 QF5828
+ PAL22V10 = QP24 QF5828
+
28-pin devices:
PLS100 = QP28 QF1928 (Tri-State)
82S100 = QP20 QF1928 (Tri-State)
@@ -290,6 +291,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_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);
#if defined(ricoh_pals)
@@ -353,6 +355,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_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);
#if defined(ricoh_pals)
@@ -665,6 +668,18 @@ 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 palce22v10_pal22v10pinfuserows[] = {
+ {14, 5368, 5412, 5720},
+ {15, 4884, 4928, 5324},
+ {16, 4312, 4356, 4840},
+ {17, 3652, 3696, 4268},
+ {18, 2904, 2948, 3608},
+ {19, 2156, 2200, 2860},
+ {20, 1496, 1540, 2112},
+ {21, 924, 968, 1452},
+ {22, 440, 484, 880},
+ {23, 44, 88, 396}};
+
static pin_fuse_rows _82s153_pls153pinfuserows[] = {
{9, 1472, 0, 0},
{11, 1508, 0, 0},
@@ -1456,6 +1471,30 @@ static pin_fuse_columns pal20x10pinfusecolumns[] = {
{23, 3, 2}
};
+static pin_fuse_columns palce22v10_pal22v10pinfusecolumns[] = {
+ {1, 1, 0},
+ {2, 5, 4},
+ {3, 9, 8},
+ {4, 13, 12},
+ {5, 17, 16},
+ {6, 21, 20},
+ {7, 25, 24},
+ {8, 29, 28},
+ {9, 33, 32},
+ {10, 37, 36},
+ {11, 41, 40},
+ {13, 43, 42},
+ {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 _82s153_pls153pinfusecolumns[] = {
{1, 1, 0},
{2, 3, 2},
@@ -2167,9 +2206,22 @@ static pal_data paldata[] = {
config_pal20x10_pins,
nullptr,
nullptr},
- /*{"PAL22V10", 0, NULL, 0, NULL, 0, NULL, NULL, NULL, NULL},
- {"GAL20V8A", 0, NULL, 0, NULL, 0, NULL, NULL, NULL, NULL},
+ /*{"GAL20V8A", 0, NULL, 0, NULL, 0, NULL, NULL, NULL, NULL},
{"GAL22V10", 0, NULL, 0, NULL, 0, NULL, NULL, NULL, NULL},*/
+ {"PAL22V10", 5828,
+ palce22v10_pal22v10pinfuserows, ARRAY_LENGTH(palce22v10_pal22v10pinfuserows),
+ palce22v10_pal22v10pinfusecolumns, ARRAY_LENGTH(palce22v10_pal22v10pinfusecolumns),
+ print_palce22v10_pal22v10_product_terms,
+ config_palce22v10_pal22v10_pins,
+ nullptr,
+ nullptr},
+ {"PALCE22V10", 5828,
+ palce22v10_pal22v10pinfuserows, ARRAY_LENGTH(palce22v10_pal22v10pinfuserows),
+ palce22v10_pal22v10pinfusecolumns, ARRAY_LENGTH(palce22v10_pal22v10pinfusecolumns),
+ print_palce22v10_pal22v10_product_terms,
+ config_palce22v10_pal22v10_pins,
+ nullptr,
+ nullptr},
{"82S153", 1842,
_82s153_pls153pinfuserows, ARRAY_LENGTH(_82s153_pls153pinfuserows),
_82s153_pls153pinfusecolumns, ARRAY_LENGTH(_82s153_pls153pinfusecolumns),
@@ -3710,6 +3762,42 @@ static void print_pal20x10_product_terms(const pal_data* pal, const jed_data* je
/*-------------------------------------------------
+ print_palce22v10_pal22v10_product_terms - prints the product
+ terms for a PALCE22V10 and PAL22V10
+-------------------------------------------------*/
+
+static void print_palce22v10_pal22v10_product_terms(const pal_data* pal, const jed_data* jed)
+{
+ char buffer[200];
+
+ print_product_terms(pal, jed);
+
+ /* Synchronous Preset */
+
+ generate_product_terms(pal, jed, 5764, buffer);
+
+ if (strlen(buffer))
+ {
+ printf("Synchronous Preset:\n\n");
+ printf("%s\n", buffer);
+ printf("\n");
+ }
+
+ /* Asynchronous Reset */
+
+ generate_product_terms(pal, jed, 0, buffer);
+
+ if (strlen(buffer))
+ {
+ printf("Asynchronous Reset:\n\n");
+ printf("%s\n", buffer);
+ printf("\n");
+ }
+}
+
+
+
+/*-------------------------------------------------
print_82s153_pls153_product_terms - prints the product
terms for a 82S153/PLS153
-------------------------------------------------*/
@@ -5930,6 +6018,87 @@ static void config_pal20x10_pins(const pal_data* pal, const jed_data* jed)
/*-------------------------------------------------
+ config_palce22v10_pal22v10_pins - configures the pins for
+ a PALCE22V10
+-------------------------------------------------*/
+
+static void config_palce22v10_pal22v10_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 s0_fuse; /* output polarity (0 - low, 1 - high) */
+ uint16_t s1_fuse; /* registers allowed (0 - registered, 1 - not registered) */
+ };
+
+ static output_logic_macrocell macrocells[] = {
+ {14, 5826, 5827},
+ {15, 5824, 5825},
+ {16, 5822, 5823},
+ {17, 5820, 5821},
+ {18, 5818, 5819},
+ {19, 5816, 5817},
+ {20, 5814, 5815},
+ {21, 5812, 5813},
+ {22, 5810, 5811},
+ {23, 5808, 5809}};
+ static uint16_t input_pins[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23};
+ pin_output_config output_pins[ARRAY_LENGTH(macrocells)];
+ uint16_t index, output_pin_count;
+
+ output_pin_count = 0;
+
+ for (index = 0; index < ARRAY_LENGTH(output_pins); ++index)
+ {
+ if (jed_get_fuse(jed, macrocells[index].s1_fuse))
+ {
+ /* Combinatorial output or dedicated input */
+
+ if (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].s0_fuse))
+ {
+ output_pins[output_pin_count].flags |= OUTPUT_ACTIVELOW;
+ }
+ else
+ {
+ output_pins[output_pin_count].flags |= OUTPUT_ACTIVEHIGH;
+ }
+
+ ++output_pin_count;
+ }
+ }
+ else
+ {
+ /* Registered output */
+
+ 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].s0_fuse))
+ {
+ output_pins[output_pin_count].flags |= OUTPUT_ACTIVELOW;
+ }
+ else
+ {
+ output_pins[output_pin_count].flags |= OUTPUT_ACTIVEHIGH;
+ }
+
+ ++output_pin_count;
+ }
+ }
+
+ set_input_pins(input_pins, ARRAY_LENGTH(input_pins));
+ set_output_pins(output_pins, output_pin_count);
+}
+
+
+
+/*-------------------------------------------------
config_82s153_pls153_pins - configures the pins for
a 82S153/PLS153
-------------------------------------------------*/
@@ -7323,6 +7492,8 @@ static int print_usage()
" jedutil -view <source.jed> <device> -- dump JED logic equations\n"
" jedutil -view <source.bin> <device> -- dump binary logic equations\n"
" jedutil -viewlist -- view list of supported devices\n"
+ " jedutil -listcompatible <source.jed> -- list compatible devices\n"
+ " jedutil -listcompatible <source.bin> -- list compatible devices\n"
);
return 0;
@@ -7577,6 +7748,77 @@ static int command_viewlist(int argc, char *argv[])
}
+
+/*-------------------------------------------------
+ command_listcompatible - views the list of
+ compatible devices
+-------------------------------------------------*/
+
+static int command_listcompatible(int argc, char *argv[])
+{
+ int result = 0;
+ const char *srcfile;
+ int is_jed;
+ jed_data jed;
+ int err;
+ int index;
+
+ if (argc != 1)
+ {
+ return print_usage();
+ }
+
+ /* extract arguments */
+ srcfile = argv[0];
+
+ /* does the source end in '.jed'? */
+ is_jed = is_jed_file(srcfile);
+
+ /* read the source file */
+ err = read_source_file(srcfile);
+ if (err != 0)
+ {
+ result = 1;
+ goto end;
+ }
+
+ /* if the source is JED, convert to binary */
+ if (is_jed)
+ {
+ /* read the JEDEC data */
+ err = jed_parse(srcbuf, srcbuflen, &jed);
+ switch (err)
+ {
+ case JEDERR_INVALID_DATA: fprintf(stderr, "Fatal error: Invalid .JED file\n"); result = 1; goto end;
+ case JEDERR_BAD_XMIT_SUM: fprintf(stderr, "Fatal error: Bad transmission checksum\n"); result = 1; goto end;
+ case JEDERR_BAD_FUSE_SUM: fprintf(stderr, "Fatal error: Bad fusemap checksum\n"); result = 1; goto end;
+ }
+ }
+ else
+ {
+ /* read the binary data */
+ err = jedbin_parse(srcbuf, srcbuflen, &jed);
+ switch (err)
+ {
+ case JEDERR_INVALID_DATA: fprintf(stderr, "Fatal error: Invalid binary JEDEC file\n"); result = 1; goto end;
+ }
+ }
+
+ for (index = 0; index < ARRAY_LENGTH(paldata); ++index)
+ {
+ if (paldata[index].numfuses == jed.numfuses)
+ {
+ printf("%s\n", paldata[index].name);
+ }
+ }
+
+end:
+ free(srcbuf);
+ return result;
+}
+
+
+
/*-------------------------------------------------
main - primary entry point
-------------------------------------------------*/
@@ -7584,9 +7826,10 @@ static int command_viewlist(int argc, char *argv[])
int main(int argc, char *argv[])
{
command_entry command_entries[] = {
- {"-convert", &command_convert},
- {"-view", &command_view},
- {"-viewlist", &command_viewlist}};
+ {"-convert", &command_convert},
+ {"-view", &command_view},
+ {"-viewlist", &command_viewlist},
+ {"-listcompatible", &command_listcompatible}};
int index;
if (argc < 2)