From c2b15cefaef64a625841d9b7dc3665b5c7cb2016 Mon Sep 17 00:00:00 2001 From: Kevin Eshbach Date: Sat, 16 Sep 2017 17:39:36 -0400 Subject: Added support for viewing the pls100 device to jedutil (#2658) * Adding dump of PAL from Guzzler (Swimmer Conversion) * Adding dump of PAL from Guzzler (Swimmer Conversion) * Initial support for viewing the logic equations of the PLS100, 82S100, PLS101 and 82S101. * Initial support for viewing the logic equations of the PLS100, 82S100, PLS101 and 82S101. * Rename jed file from uppercase to lowercase. --- regtests/jedutil/baseline/pls100/pls100.txt | 81 ++++++++ regtests/jedutil/eqns/AMAZE/pls100/AMAZE.DEF | 11 ++ regtests/jedutil/eqns/AMAZE/pls100/PLS100.BEE | 92 +++++++++ regtests/jedutil/eqns/AMAZE/pls100/PLS100.PAL | Bin 0 -> 1 bytes regtests/jedutil/eqns/AMAZE/pls100/PLS100.STD | 58 ++++++ regtests/jedutil/eqns/AMAZE/readme.txt | 1 + regtests/jedutil/jeds/pls100/pls100.jed | 60 ++++++ src/mame/drivers/cclimber.cpp | 24 ++- src/mame/drivers/snk.cpp | 93 +++++---- src/tools/jedutil.cpp | 273 +++++++++++++++++++++++++- 10 files changed, 648 insertions(+), 45 deletions(-) create mode 100644 regtests/jedutil/baseline/pls100/pls100.txt create mode 100644 regtests/jedutil/eqns/AMAZE/pls100/AMAZE.DEF create mode 100644 regtests/jedutil/eqns/AMAZE/pls100/PLS100.BEE create mode 100644 regtests/jedutil/eqns/AMAZE/pls100/PLS100.PAL create mode 100644 regtests/jedutil/eqns/AMAZE/pls100/PLS100.STD create mode 100644 regtests/jedutil/eqns/AMAZE/readme.txt create mode 100644 regtests/jedutil/jeds/pls100/pls100.jed diff --git a/regtests/jedutil/baseline/pls100/pls100.txt b/regtests/jedutil/baseline/pls100/pls100.txt new file mode 100644 index 00000000000..235c212c12d --- /dev/null +++ b/regtests/jedutil/baseline/pls100/pls100.txt @@ -0,0 +1,81 @@ +Inputs: + +9, 8, 7, 6, 5, 4, 3, 2, 27, 26, 25, 24, 23, 22, 21, 20 + +Outputs: + +18 (Combinatorial, No output feedback, Active low) +17 (Combinatorial, No output feedback, Active high) +16 (Combinatorial, No output feedback, Active high) +15 (Combinatorial, No output feedback, Active high) +13 (Combinatorial, No output feedback, Active low) +12 (Combinatorial, No output feedback, Active high) +11 (Combinatorial, No output feedback, Active high) +10 (Combinatorial, No output feedback, Active high) + +Equations: + +/o18 = /i4 + + i9 & /i8 + + /i7 & /i6 + + i4 & /i25 + + i2 & /i27 + + /i2 +o18.oe = OE + +o17 = /i4 + + i8 & /i7 & /i6 & i5 & i4 & i3 & /i2 + + /i2 & i24 + + i3 & /i26 + + /i4 & i26 + + /i2 +o17.oe = OE + +o16 = /i27 & /i26 + + /i26 & /i25 & i23 & i22 + + /i7 & /i6 + + i4 & /i25 + + i5 & /i24 + + /i3 & i27 +o16.oe = OE + +o15 = i9 & /i25 & i24 & i23 & i22 & /i21 & /i20 + + /i27 & /i26 + + /i27 & /i24 & /i22 + + i6 & /i23 + + i9 & /i20 + + /i2 +o15.oe = OE + +/o13 = /i27 & /i26 + + i25 & /i21 & /i20 + + i9 & /i8 + + i9 & /i5 + + i7 & /i22 + + i8 & /i21 +o13.oe = OE + +o12 = /i8 & i7 & i6 & /i5 & /i4 & /i3 & i2 & /i27 & /i26 + + /i27 & /i26 + + i27 & i26 + + i7 & i3 + + /i3 & i20 + + /i9 & i21 +o12.oe = OE + +o11 = /i9 & /i27 & /i26 & i25 & /i24 & /i23 & /i22 & i21 & i20 + + i27 & i26 + + /i6 & i4 + + /i7 & i23 + + /i6 & i24 +o11.oe = OE + +o10 = /i8 & i7 & i6 & /i5 & /i4 & /i3 & i2 + + /i9 & i25 & /i24 & /i23 & /i22 & i21 & i20 + + /i27 & /i26 + + i25 & i24 & i23 & i22 & i21 & i20 + + i6 & /i4 + + /i8 & i22 + + /i5 & i25 +o10.oe = OE + diff --git a/regtests/jedutil/eqns/AMAZE/pls100/AMAZE.DEF b/regtests/jedutil/eqns/AMAZE/pls100/AMAZE.DEF new file mode 100644 index 00000000000..442babf2668 --- /dev/null +++ b/regtests/jedutil/eqns/AMAZE/pls100/AMAZE.DEF @@ -0,0 +1,11 @@ +@BLAST +616 +EDIT +@DPI +1 1 8 3 1 1 1 +@PTP +1 1 8 3 1 1 1 +@USER PATH NAME +c:\temp +@USER DESIGN NAME +PLS100 diff --git a/regtests/jedutil/eqns/AMAZE/pls100/PLS100.BEE b/regtests/jedutil/eqns/AMAZE/pls100/PLS100.BEE new file mode 100644 index 00000000000..b1305eff489 --- /dev/null +++ b/regtests/jedutil/eqns/AMAZE/pls100/PLS100.BEE @@ -0,0 +1,92 @@ +@DEVICE TYPE +PLS100 +@DRAWING +@REVISION +@DATE +@SYMBOL +@COMPANY +MAMEDev +@NAME +@DESCRIPTION +@PINLIST + +"<--------FUNCTION--------> <--REFERENCE-->" +"PINLABEL PIN # PIN_FCT PIN_ID OE_CTRL" +N/C 1 FE FE - ; +INPUT2 2 I I7 - ; +INPUT3 3 I I6 - ; +INPUT4 4 I I5 - ; +INPUT5 5 I I4 - ; +INPUT6 6 I I3 - ; +INPUT7 7 I I2 - ; +INPUT8 8 I I1 - ; +INPUT9 9 I I0 - ; +OUTPUT10 10 O F7 CE ; +OUTPUT11 11 O F6 CE ; +OUTPUT12 12 O F5 CE ; +OUTPUT13 13 /O F4 CE ; +GND 14 0V GND - ; +OUTPUT15 15 O F3 CE ; +OUTPUT16 16 O F2 CE ; +OUTPUT17 17 O F1 CE ; +OUTPUT18 18 /O F0 CE ; +N/C 19 /CE /CE - ; +INPUT20 20 I I15 - ; +INPUT21 21 I I14 - ; +INPUT22 22 I I13 - ; +INPUT23 23 I I12 - ; +INPUT24 24 I I11 - ; +INPUT25 25 I I10 - ; +INPUT26 26 I I9 - ; +INPUT27 27 I I8 - ; +VCC 28 +5V VCC - ; + +@COMMON PRODUCT TERM "CPT_label = (expression)" +TERM1=INPUT2 * /INPUT3 * /INPUT4 * /INPUT5 * INPUT6 * INPUT7 * /INPUT8 ; +TERM2=/INPUT9 * INPUT20 * INPUT21 * /INPUT22 * /INPUT23 * /INPUT24 * INPUT25 ; +TERM3=/INPUT26 * /INPUT27 ; +TERM4=/INPUT4 ; +TERM5=/INPUT2 * INPUT3 * INPUT4 * INPUT5 * /INPUT6 * /INPUT7 * INPUT8 ; +TERM6=INPUT9 * /INPUT20 * /INPUT21 * INPUT22 * INPUT23 * INPUT24 * /INPUT25 ; +TERM7=INPUT26 * INPUT27 ; +TERM8=INPUT20 * INPUT21 * INPUT22 * INPUT23 * INPUT24 * INPUT25 ; +TERM9=INPUT26 * INPUT27 ; +TERM10=/INPUT26 * /INPUT27 ; +TERM11=/INPUT20 * /INPUT21 * INPUT25 ; +TERM12=/INPUT22 * /INPUT24 * /INPUT27 ; +TERM13=INPUT22 * INPUT23 * /INPUT25 * /INPUT26 ; +TERM14=/INPUT2 * INPUT24 ; +TERM15=/INPUT6 * /INPUT7 ; +TERM16=/INPUT5 * INPUT9 ; +TERM17=/INPUT8 * INPUT9 ; +TERM18=INPUT3 * INPUT7 ; +TERM19=INPUT4 * /INPUT6 ; +TERM20=/INPUT4 * INPUT6 ; +TERM21=INPUT2 * /INPUT27 ; +TERM22=INPUT3 * /INPUT26 ; +TERM23=INPUT4 * /INPUT25 ; +TERM24=INPUT5 * /INPUT24 ; +TERM25=INPUT6 * /INPUT23 ; +TERM26=INPUT7 * /INPUT22 ; +TERM27=INPUT8 * /INPUT21 ; +TERM28=INPUT9 * /INPUT20 ; +TERM29=INPUT20 * /INPUT3 ; +TERM30=INPUT21 * /INPUT9 ; +TERM31=INPUT22 * /INPUT8 ; +TERM32=INPUT23 * /INPUT7 ; +TERM33=INPUT24 * /INPUT6 ; +TERM34=INPUT25 * /INPUT5 ; +TERM35=INPUT26 * /INPUT4 ; +TERM36=INPUT27 * /INPUT3 ; +TERM37=/INPUT2 ; + + +@LOGIC EQUATION +OUTPUT10 = ( TERM1 + TERM2 + TERM3 + TERM8 + TERM20 + TERM31 + TERM34 ) ; +OUTPUT11 = (TERM2 * TERM3 + TERM9 + TERM19 + TERM32 + TERM33 ) ; +OUTPUT12 = (TERM3 * TERM1 + TERM7 + TERM10 + TERM18 + TERM29 + TERM30 ) ; +OUTPUT13 = /( TERM3 + TERM11 + TERM17 + TERM16 + TERM26 + TERM27 ) ; +OUTPUT15 = (TERM3 + TERM6 + TERM12 + TERM25 + TERM28 + TERM37 ) ; +OUTPUT16 = (TERM3 + TERM13 + TERM15 + TERM23 + TERM24 + TERM36 ) ; +OUTPUT17 = ( TERM4 + TERM5 + TERM14 + TERM22 + TERM35 + TERM37 ) ; +OUTPUT18 = /( TERM4 + TERM15 + TERM17 + TERM21 + TERM23 + TERM37 ) ; diff --git a/regtests/jedutil/eqns/AMAZE/pls100/PLS100.PAL b/regtests/jedutil/eqns/AMAZE/pls100/PLS100.PAL new file mode 100644 index 00000000000..f76dd238ade Binary files /dev/null and b/regtests/jedutil/eqns/AMAZE/pls100/PLS100.PAL differ diff --git a/regtests/jedutil/eqns/AMAZE/pls100/PLS100.STD b/regtests/jedutil/eqns/AMAZE/pls100/PLS100.STD new file mode 100644 index 00000000000..14deb3c8e5f --- /dev/null +++ b/regtests/jedutil/eqns/AMAZE/pls100/PLS100.STD @@ -0,0 +1,58 @@ +PLS100 + + + + + + + + +--------HL------........ +---------H------........ +----------L-----......AA +--------HLLL----........ +--------HLLLH---........ +--------HLLLHHL-A....... +---------H-----L........ +HHL------------L........ +HHLLL----------L........ +HHLLLH---------LA....... +------LL--------........ +HHLLLHLL-------L.A...... +------LL--------........ +------LLHLLLHHL-..A..... +------HH--------........ +LLHHHL---------H....A... +--------LHHHLLH-......A. +------LL--------A.AAAA.. +HHHHHH----------A....... +------HH--------.AA..... +LL---H----------...A.... +--L-L--L--------....A... +--HH-LL---------.....A.. +----H---L-------......A. +------------LL--........ +----------L-H---A....... +----------H-L---.A...... +---------H---H--..A..... +--------------LH...A...A +-----------L---H...A.... +------------LL--.....A.A +-----L----H-----.....A.A +----L------H----.....A.. +------L--H------......A. +-------LH-------.......A +H--------L------..A..... +-H-------------L..A..... +--L----------H--...A.... +-L------------H-...A.... +---L--------H---....A... +L--------------H....A... +--H-----------L-A....... +-----H-----L----A....... +---H---------L--.A...... +----H-------L---.A...... +------H---L-----......A. +--------L-------....A.AA +-------H-L------.....A.. +HHHLHHHL diff --git a/regtests/jedutil/eqns/AMAZE/readme.txt b/regtests/jedutil/eqns/AMAZE/readme.txt new file mode 100644 index 00000000000..819eddc1496 --- /dev/null +++ b/regtests/jedutil/eqns/AMAZE/readme.txt @@ -0,0 +1 @@ +These files were created with Signetics AMAZE v1.7 software. \ No newline at end of file diff --git a/regtests/jedutil/jeds/pls100/pls100.jed b/regtests/jedutil/jeds/pls100/pls100.jed new file mode 100644 index 00000000000..2ef55d284dd --- /dev/null +++ b/regtests/jedutil/jeds/pls100/pls100.jed @@ -0,0 +1,60 @@ + +PLS100* +QF1928* +QP28* +QV0* +X0* +* +L0000 +1111111111111001111111111111111111111111 +1111111111110111111111111111111111111111 +1111111111101111111111111111111100111111 +1111111110101001111111111111111111111111 +1111110110101001111111111111111111111111 +1110010110101001111111111111111111111110 +1011111111110111111111111111111111111111 +1011111111111111111111111110010111111111 +1011111111111111111111101010010111111111 +1011111111111111111101101010010111111110 +1111111111111111101011111111111111111111 +1011111111111111101001101010010111111101 +1111111111111111101011111111111111111111 +1110010110101001101011111111111111111011 +1111111111111111010111111111111111111111 +0111111111111111111110010101101011101111 +1101101001010110111111111111111110111111 +1111111111111111101011111111111111000010 +1111111111111111111101010101010111111110 +1111111111111111010111111111111111111001 +1111111111111111111101111111101011110111 +1111111111111111101111101110111111101111 +1111111111111111111010110101111111011111 +1111111111111110111111011111111110111111 +1111101011111111111111111111111111111111 +1111110111101111111111111111111111111110 +1111111011011111111111111111111111111101 +1111011111110111111111111111111111111011 +0110111111111111111111111111111101110111 +0111111110111111111111111111111111110111 +1111101011111111111111111111111101011111 +1111111111011111111110111111111101011111 +1111111101111111111111101111111111011111 +1111111111110111111011111111111110111111 +1111111111111101101111111111111101111111 +1111111111111011111111111111110111111011 +1011111111111111111111111111011111111011 +1111011111111111111111111110111111110111 +1101111111111111111111111111101111110111 +1111110111111111111111111011111111101111 +0111111111111111111111111111111011101111 +1110111111111111111111111101111111111110 +1111111110111111111101111111111111111110 +1111101111111111111111110111111111111101 +1111111011111111111111011111111111111101 +1111111111101111110111111111111110111111 +1111111111111110111111111111111100101111 +1111111111111011011111111111111111011111 +10001000 +* +CD71C* +7E95 diff --git a/src/mame/drivers/cclimber.cpp b/src/mame/drivers/cclimber.cpp index e3b96a1f764..4b24f781997 100644 --- a/src/mame/drivers/cclimber.cpp +++ b/src/mame/drivers/cclimber.cpp @@ -2454,6 +2454,13 @@ ROM_START( swimmerb ) ROM_LOAD( "18s030.12c", 0x0200, 0x020, CRC(3b2deb3a) SHA1(bb7b5c662454f5b355cc59cbdf8879e4664bed1d) ) ROM_END +/* + Guzzler + + CPU/Sound Board: B102-403 + Video Board: 102-401 +*/ + ROM_START( guzzler ) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "guzz-01.bin", 0x0000, 0x2000, CRC(58aaa1e9) SHA1(4ea9c85670a0d71483ac79564093043762a24b2c) ) @@ -2481,6 +2488,14 @@ ROM_START( guzzler ) ROM_LOAD( "guzzler.001", 0x0200, 0x020, CRC(69089495) SHA1(96b067b22be14536bac748f8d61e5587a8a04e92) ) ROM_END +/* + Guzzler (Swimmer Conversion) + + CPU/Sound Board: B102-403 + Video Board: 102-401 + CPU Daughterboard: C102-405 +*/ + ROM_START( guzzlers ) /* Swimmer Conversion, 1k vs 2k romsize in maincpu */ ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "guzz1.l9", 0x0000, 0x1000, CRC(48f751ee) SHA1(a8ff19d150d382a43ad705fe2a470450e317aac3) ) @@ -2507,9 +2522,12 @@ ROM_START( guzzlers ) /* Swimmer Conversion, 1k vs 2k romsize in maincpu */ ROM_LOAD( "guzz-09.bin", 0x2000, 0x1000, CRC(18927579) SHA1(414676193ef1f6ce79a4cba73e4d017312f766f4) ) // 9.C4 ROM_REGION( 0x0220, "proms", 0 ) - ROM_LOAD( "guzzler.003", 0x0000, 0x100, CRC(f86930c1) SHA1(58efc8cbef05e1612d12e2f0babddf15571d42bb) ) // B.B13 - ROM_LOAD( "guzzler.002", 0x0100, 0x100, CRC(b566ea9e) SHA1(345078af6a339fbe6cd966046acd9d04c8926b5c) ) // A.A13 - ROM_LOAD( "c.c12", 0x0200, 0x020, CRC(51cd9980) SHA1(9c4858a01c9b03ff8c87ba9f11049e0c1af5d519) ) + ROM_LOAD( "guzzler.003", 0x0000, 0x0100, CRC(f86930c1) SHA1(58efc8cbef05e1612d12e2f0babddf15571d42bb) ) // B.B13 + ROM_LOAD( "guzzler.002", 0x0100, 0x0100, CRC(b566ea9e) SHA1(345078af6a339fbe6cd966046acd9d04c8926b5c) ) // A.A13 + ROM_LOAD( "c.c12", 0x0200, 0x0020, CRC(51cd9980) SHA1(9c4858a01c9b03ff8c87ba9f11049e0c1af5d519) ) + + ROM_REGION( 0x0104, "cpu_pal", 0) /* C102-405 */ + ROM_LOAD( "tk01.bin", 0x0000, 0x0104, CRC(af082b3c) SHA1(94ee780945255ebfc2a0848a40289fbc4c7e7d7c) ) // appears to be PAL16L8 ROM_END ROM_START( yamato ) diff --git a/src/mame/drivers/snk.cpp b/src/mame/drivers/snk.cpp index cca33514a22..270395bc7bf 100644 --- a/src/mame/drivers/snk.cpp +++ b/src/mame/drivers/snk.cpp @@ -4658,78 +4658,95 @@ ROM_END /***********************************************************************/ +/* +Fighting Golf +SNK, 1988 + +CPU/Sound Board: A6001 UP02-02 +Video Board: A6001 UP01-02 + +Pinouts very similar to JAMMA. + +Socket at H8 is intentionally empty. +*/ + ROM_START( fitegolf ) ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "gu2", 0x0000, 0x4000, CRC(19be7ad6) SHA1(6f0faf606e44a3f8cc027699cc816aa3414a1b98) ) - ROM_LOAD( "gu1", 0x4000, 0x8000, CRC(bc32568f) SHA1(35fec3dbdd773ec7f427ecdd81066fb8f1b74e05) ) + ROM_LOAD( "gu2.4p", 0x00000, 0x04000, CRC(19be7ad6) SHA1(6f0faf606e44a3f8cc027699cc816aa3414a1b98) ) + ROM_LOAD( "gu1.4m", 0x04000, 0x08000, CRC(bc32568f) SHA1(35fec3dbdd773ec7f427ecdd81066fb8f1b74e05) ) ROM_REGION( 0x10000, "sub", 0 ) - ROM_LOAD( "gu6", 0x0000, 0x4000, CRC(2b9978c5) SHA1(5490e9f796697318650fc5f70c0e64d6785ad7fc) ) - ROM_LOAD( "gu5", 0x4000, 0x8000, CRC(ea3d138c) SHA1(af0a0bfe2d266179946948cf42fe697505798a4f) ) + ROM_LOAD( "gu6.8p", 0x00000, 0x04000, CRC(2b9978c5) SHA1(5490e9f796697318650fc5f70c0e64d6785ad7fc) ) + ROM_LOAD( "gu5.8m", 0x04000, 0x08000, CRC(ea3d138c) SHA1(af0a0bfe2d266179946948cf42fe697505798a4f) ) ROM_REGION( 0x10000, "audiocpu", 0 ) - ROM_LOAD( "gu3", 0x0000, 0x4000, CRC(811b87d7) SHA1(fb387f42085d6e0e5a88729ca0e50656411ce037) ) - ROM_LOAD( "gu4", 0x4000, 0x8000, CRC(2d998e2b) SHA1(a471cfbb4dabc90fcc29c562620b9965eaff6861) ) + ROM_LOAD( "gu3.6g", 0x00000, 0x04000, CRC(811b87d7) SHA1(fb387f42085d6e0e5a88729ca0e50656411ce037) ) + ROM_LOAD( "gu4.6k", 0x04000, 0x08000, CRC(2d998e2b) SHA1(a471cfbb4dabc90fcc29c562620b9965eaff6861) ) ROM_REGION( 0x0c00, "proms", 0 ) - ROM_LOAD( "82s137.2c", 0x00000, 0x00400, CRC(6e4c7836) SHA1(3ab3c498939fac992e2bf1c33983ee821a9b6a18) ) - ROM_LOAD( "82s137.1b", 0x00400, 0x00400, CRC(29e7986f) SHA1(85ba8d3443458c27728f633745857a1315dd183f) ) - ROM_LOAD( "82s137.1c", 0x00800, 0x00400, CRC(27ba9ff9) SHA1(f021d10460f40de4447560df5ac47fa53bb57ff9) ) + ROM_LOAD( "3.2c", 0x00000, 0x00400, CRC(6e4c7836) SHA1(3ab3c498939fac992e2bf1c33983ee821a9b6a18) ) /* 82s137 */ + ROM_LOAD( "1.1b", 0x00400, 0x00400, CRC(29e7986f) SHA1(85ba8d3443458c27728f633745857a1315dd183f) ) /* 82s137 */ + ROM_LOAD( "2.1c", 0x00800, 0x00400, CRC(27ba9ff9) SHA1(f021d10460f40de4447560df5ac47fa53bb57ff9) ) /* 82s137 */ ROM_REGION( 0x4000, "tx_tiles", 0 ) - ROM_LOAD( "gu8", 0x0000, 0x4000, CRC(f1628dcf) SHA1(efea343d3a9dd45ef74947c297e166e34afbb680) ) + ROM_LOAD( "gu8.2d", 0x00000, 0x04000, CRC(f1628dcf) SHA1(efea343d3a9dd45ef74947c297e166e34afbb680) ) ROM_REGION( 0x8000, "bg_tiles", 0 ) - ROM_LOAD( "gu7", 0x0000, 0x8000, CRC(4655f94e) SHA1(08526206d8e929bb01d61fff8de2ee99fd287c17) ) + ROM_LOAD( "gu7.2b", 0x00000, 0x08000, CRC(4655f94e) SHA1(08526206d8e929bb01d61fff8de2ee99fd287c17) ) ROM_REGION( 0x18000, "sp16_tiles", 0 ) - ROM_LOAD( "gu9", 0x00000, 0x8000, CRC(d4957ec5) SHA1(8ead7866ba5ac66ead6b707aa868bcae30c486e1) ) - ROM_LOAD( "gu10", 0x08000, 0x8000, CRC(b3acdac2) SHA1(7377480d5e1b5ab2c49f5fee2927623ce8240e19) ) - ROM_LOAD( "gu11", 0x10000, 0x8000, CRC(b99cf73b) SHA1(23989fc3914e77d364807a9eb96a4ddf75ad7cf1) ) + ROM_LOAD( "gu9.2p", 0x00000, 0x08000, CRC(d4957ec5) SHA1(8ead7866ba5ac66ead6b707aa868bcae30c486e1) ) + ROM_LOAD( "gu10.2rs", 0x08000, 0x08000, CRC(b3acdac2) SHA1(7377480d5e1b5ab2c49f5fee2927623ce8240e19) ) + ROM_LOAD( "gu11.2t", 0x10000, 0x08000, CRC(b99cf73b) SHA1(23989fc3914e77d364807a9eb96a4ddf75ad7cf1) ) ROM_REGION( 0x0600, "plds", 0 ) - ROM_LOAD( "pal16r6a.6c", 0x0000, 0x0104, CRC(de291f4e) SHA1(b50294d30cb8eacc7a9bb8b46695a7463ef45ff1) ) - ROM_LOAD( "pal16l8a.3f", 0x0200, 0x0104, CRC(c5f1c1da) SHA1(e17293be0f77d302c59c1095fe1ec65e45557627) ) - ROM_LOAD( "pal20l8a.6r", 0x0400, 0x0144, CRC(0f011673) SHA1(383e6f6e78daec9c874d5b48378111ca60f5ed64) ) + ROM_LOAD( "a6001-1.6c", 0x00000, 0x00104, CRC(de291f4e) SHA1(b50294d30cb8eacc7a9bb8b46695a7463ef45ff1) ) /* PAL16R6A */ + ROM_LOAD( "a6001-3.3f", 0x00200, 0x00104, CRC(c5f1c1da) SHA1(e17293be0f77d302c59c1095fe1ec65e45557627) ) /* PAL16L8A */ + ROM_LOAD( "a6001-2.6r", 0x00400, 0x00144, CRC(0f011673) SHA1(383e6f6e78daec9c874d5b48378111ca60f5ed64) ) /* PAL20L8A */ ROM_END ROM_START( fitegolfu ) /* Later US version containing enhancements to make the game a little easier */ ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "np45.128", 0x0000, 0x4000, CRC(16e8e763) SHA1(0b5296f2a91a7f3176b7461ca4958865ce998241) ) - ROM_LOAD( "mn45.256", 0x4000, 0x8000, CRC(a4fa09d5) SHA1(ae7f0cb47de06006ae71252c4201a93a01a26887) ) + ROM_LOAD( "np45.4p", 0x00000, 0x04000, CRC(16e8e763) SHA1(0b5296f2a91a7f3176b7461ca4958865ce998241) ) + ROM_LOAD( "mn45.4m", 0x04000, 0x08000, CRC(a4fa09d5) SHA1(ae7f0cb47de06006ae71252c4201a93a01a26887) ) ROM_REGION( 0x10000, "sub", 0 ) - ROM_LOAD( "gu6", 0x0000, 0x4000, CRC(2b9978c5) SHA1(5490e9f796697318650fc5f70c0e64d6785ad7fc) ) // NP8.256 - ROM_LOAD( "gu5", 0x4000, 0x8000, CRC(ea3d138c) SHA1(af0a0bfe2d266179946948cf42fe697505798a4f) ) // MN8.256 + ROM_LOAD( "gu6.8p", 0x00000, 0x04000, CRC(2b9978c5) SHA1(5490e9f796697318650fc5f70c0e64d6785ad7fc) ) // NP8.256 + ROM_LOAD( "gu5.8m", 0x04000, 0x08000, CRC(ea3d138c) SHA1(af0a0bfe2d266179946948cf42fe697505798a4f) ) // MN8.256 ROM_REGION( 0x10000, "audiocpu", 0 ) - ROM_LOAD( "gu3", 0x0000, 0x4000, CRC(811b87d7) SHA1(fb387f42085d6e0e5a88729ca0e50656411ce037) ) // FG67.256 - ROM_LOAD( "gu4", 0x4000, 0x8000, CRC(2d998e2b) SHA1(a471cfbb4dabc90fcc29c562620b9965eaff6861) ) // K67.256 + ROM_LOAD( "gu3.6g", 0x00000, 0x04000, CRC(811b87d7) SHA1(fb387f42085d6e0e5a88729ca0e50656411ce037) ) // FG67.256 + ROM_LOAD( "gu4.6k", 0x04000, 0x08000, CRC(2d998e2b) SHA1(a471cfbb4dabc90fcc29c562620b9965eaff6861) ) // K67.256 ROM_REGION( 0x0c00, "proms", 0 ) - ROM_LOAD( "82s137.2c", 0x00000, 0x00400, CRC(6e4c7836) SHA1(3ab3c498939fac992e2bf1c33983ee821a9b6a18) ) - ROM_LOAD( "82s137.1b", 0x00400, 0x00400, CRC(29e7986f) SHA1(85ba8d3443458c27728f633745857a1315dd183f) ) - ROM_LOAD( "82s137.1c", 0x00800, 0x00400, CRC(27ba9ff9) SHA1(f021d10460f40de4447560df5ac47fa53bb57ff9) ) + ROM_LOAD( "3.2c", 0x00000, 0x00400, CRC(6e4c7836) SHA1(3ab3c498939fac992e2bf1c33983ee821a9b6a18) ) /* 82s137 */ + ROM_LOAD( "1.1b", 0x00400, 0x00400, CRC(29e7986f) SHA1(85ba8d3443458c27728f633745857a1315dd183f) ) /* 82s137 */ + ROM_LOAD( "2.1c", 0x00800, 0x00400, CRC(27ba9ff9) SHA1(f021d10460f40de4447560df5ac47fa53bb57ff9) ) /* 82s137 */ ROM_REGION( 0x4000, "tx_tiles", 0 ) - ROM_LOAD( "gu8", 0x0000, 0x4000, CRC(f1628dcf) SHA1(efea343d3a9dd45ef74947c297e166e34afbb680) ) // D2.128 + ROM_LOAD( "gu8.2d", 0x00000, 0x04000, CRC(f1628dcf) SHA1(efea343d3a9dd45ef74947c297e166e34afbb680) ) // D2.128 ROM_REGION( 0x8000, "bg_tiles", 0 ) - ROM_LOAD( "gu7", 0x0000, 0x8000, CRC(4655f94e) SHA1(08526206d8e929bb01d61fff8de2ee99fd287c17) ) // BC2.256 + ROM_LOAD( "gu7.2b", 0x00000, 0x08000, CRC(4655f94e) SHA1(08526206d8e929bb01d61fff8de2ee99fd287c17) ) // BC2.256 ROM_REGION( 0x18000, "sp16_tiles", 0 ) - ROM_LOAD( "gu9", 0x00000, 0x8000, CRC(d4957ec5) SHA1(8ead7866ba5ac66ead6b707aa868bcae30c486e1) ) // P2.256 - ROM_LOAD( "gu10", 0x08000, 0x8000, CRC(b3acdac2) SHA1(7377480d5e1b5ab2c49f5fee2927623ce8240e19) ) // R2.256 - ROM_LOAD( "gu11", 0x10000, 0x8000, CRC(b99cf73b) SHA1(23989fc3914e77d364807a9eb96a4ddf75ad7cf1) ) // S2.256 + ROM_LOAD( "gu9.2p", 0x00000, 0x08000, CRC(d4957ec5) SHA1(8ead7866ba5ac66ead6b707aa868bcae30c486e1) ) // P2.256 + ROM_LOAD( "gu10.2rs", 0x08000, 0x08000, CRC(b3acdac2) SHA1(7377480d5e1b5ab2c49f5fee2927623ce8240e19) ) // R2.256 + ROM_LOAD( "gu11.2t", 0x10000, 0x08000, CRC(b99cf73b) SHA1(23989fc3914e77d364807a9eb96a4ddf75ad7cf1) ) // S2.256 ROM_REGION( 0x0600, "plds", 0 ) - ROM_LOAD( "pal16r6a.6c", 0x0000, 0x0104, CRC(de291f4e) SHA1(b50294d30cb8eacc7a9bb8b46695a7463ef45ff1) ) - ROM_LOAD( "pal16l8a.3f", 0x0200, 0x0104, CRC(c5f1c1da) SHA1(e17293be0f77d302c59c1095fe1ec65e45557627) ) - ROM_LOAD( "pal20l8a.6r", 0x0400, 0x0144, CRC(0f011673) SHA1(383e6f6e78daec9c874d5b48378111ca60f5ed64) ) + ROM_LOAD( "a6001-1.6c", 0x00000, 0x00104, CRC(de291f4e) SHA1(b50294d30cb8eacc7a9bb8b46695a7463ef45ff1) ) /* PAL16R6A */ + ROM_LOAD( "a6001-3.3f", 0x00200, 0x00104, CRC(c5f1c1da) SHA1(e17293be0f77d302c59c1095fe1ec65e45557627) ) /* PAL16L8A */ + ROM_LOAD( "a6001-2.6r", 0x00400, 0x00144, CRC(0f011673) SHA1(383e6f6e78daec9c874d5b48378111ca60f5ed64) ) /* PAL20L8A */ ROM_END +/* +Fighting Golf +SNK, 1988 - +CPU/Sound Board: ? +Video Board: ? +*/ ROM_START( fitegolf2 ) ROM_REGION( 0x10000, "maincpu", 0 ) @@ -4747,9 +4764,9 @@ ROM_START( fitegolf2 ) ROM_LOAD( "fg_1.2e", 0x4000, 0x8000, CRC(2d998e2b) SHA1(a471cfbb4dabc90fcc29c562620b9965eaff6861) ) ROM_REGION( 0x0c00, "proms", 0 ) - ROM_LOAD( "gl1.5f", 0x00000, 0x00400, CRC(6e4c7836) SHA1(3ab3c498939fac992e2bf1c33983ee821a9b6a18) ) - ROM_LOAD( "gl2.5g", 0x00400, 0x00400, CRC(29e7986f) SHA1(85ba8d3443458c27728f633745857a1315dd183f) ) - ROM_LOAD( "gl3.5h", 0x00800, 0x00400, CRC(27ba9ff9) SHA1(f021d10460f40de4447560df5ac47fa53bb57ff9) ) + ROM_LOAD( "gl1.5f", 0x00000, 0x00400, CRC(6e4c7836) SHA1(3ab3c498939fac992e2bf1c33983ee821a9b6a18) ) /* 82s137 */ + ROM_LOAD( "gl2.5g", 0x00400, 0x00400, CRC(29e7986f) SHA1(85ba8d3443458c27728f633745857a1315dd183f) ) /* 82s137 */ + ROM_LOAD( "gl3.5h", 0x00800, 0x00400, CRC(27ba9ff9) SHA1(f021d10460f40de4447560df5ac47fa53bb57ff9) ) /* 82s137 */ ROM_REGION( 0x4000, "tx_tiles", 0 ) ROM_LOAD( "fg_12.1e", 0x0000, 0x4000, CRC(f1628dcf) SHA1(efea343d3a9dd45ef74947c297e166e34afbb680) ) diff --git a/src/tools/jedutil.cpp b/src/tools/jedutil.cpp index 23c6cd8753d..6bb0037e7f6 100644 --- a/src/tools/jedutil.cpp +++ b/src/tools/jedutil.cpp @@ -88,6 +88,8 @@ PAL20R6 = QP24 QF2560 PAL20R8 = QP24 QF2560 + PAL20RA10 = QP24 QF3210 + PAL20X4 = QP24 QF1600 PAL20X8 = QP24 QF1600 PAL20X10 = QP24 QF1600 @@ -98,7 +100,10 @@ GAL22V10 = QP24 QF5892 28-pin devices: - PLS100 = QP28 QF1928 + PLS100 = QP28 QF1928 (Tri-State) + 82S100 = QP20 QF1928 (Tri-State) + PLS101 = QP20 QF1928 (Open Collector) + 82S101 = QP20 QF1928 (Open Collector) **************************************************************************** @@ -281,6 +286,7 @@ static void print_pal20l10_product_terms(const pal_data* pal, const jed_data* je static void print_pal20r4_product_terms(const pal_data* pal, const jed_data* jed); static void print_pal20r6_product_terms(const pal_data* pal, const jed_data* jed); static void print_pal20r8_product_terms(const pal_data* pal, const jed_data* jed); +static void print_pal20ra10_product_terms(const pal_data* pal, const jed_data* jed); 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); @@ -316,6 +322,7 @@ static void print_pal18h4_product_terms(const pal_data* pal, const jed_data* jed static void print_pal18l4_product_terms(const pal_data* pal, const jed_data* jed); static void print_pal20c1_product_terms(const pal_data* pal, const jed_data* jed); static void print_pal20l2_product_terms(const pal_data* pal, const jed_data* jed); +static void print_82s100_pls100_product_terms(const pal_data* pal, const jed_data* jed); @@ -342,6 +349,7 @@ static void config_pal20l10_pins(const pal_data* pal, const jed_data* jed); static void config_pal20r4_pins(const pal_data* pal, const jed_data* jed); static void config_pal20r6_pins(const pal_data* pal, const jed_data* jed); static void config_pal20r8_pins(const pal_data* pal, const jed_data* jed); +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); @@ -377,6 +385,7 @@ static void config_pal18h4_pins(const pal_data* pal, const jed_data* jed); static void config_pal18l4_pins(const pal_data* pal, const jed_data* jed); static void config_pal20c1_pins(const pal_data* pal, const jed_data* jed); static void config_pal20l2_pins(const pal_data* pal, const jed_data* jed); +static void config_82s100_pls100_pins(const pal_data* pal, const jed_data* jed); @@ -608,6 +617,18 @@ static pin_fuse_rows pal20r8pinfuserows[] = { {21, NO_OUTPUT_ENABLE_FUSE_ROW, 320, 600}, /* Registered Output */ {22, NO_OUTPUT_ENABLE_FUSE_ROW, 0, 280}}; /* Registered Output */ +static pin_fuse_rows pal20ra10pinfuserows[] = { + { 14, 0, 0, 0 }, /* Registered Output */ + { 15, 0, 0, 0 }, /* Registered Output */ + { 16, 0, 0, 0 }, /* Registered Output */ + { 17, 0, 0, 0 }, /* Registered Output */ + { 18, 0, 0, 0 }, /* Registered Output */ + { 19, 0, 0, 0 }, /* Registered Output */ + { 20, 0, 0, 0 }, /* Registered Output */ + { 21, 0, 0, 0 }, /* Registered Output */ + { 22, 0, 0, 0 }, /* Registered Output */ + { 23, 0, 0, 0 }}; /* Registered Output */ + static pin_fuse_rows pal20x4pinfuserows[] = { {14, 1440, 1480, 1560}, {15, 1280, 1320, 1400}, @@ -920,6 +941,16 @@ static pin_fuse_rows pal20l2pinfuserows[] = { {18, NO_OUTPUT_ENABLE_FUSE_ROW, 320, 600}, {19, NO_OUTPUT_ENABLE_FUSE_ROW, 0, 280}}; +static pin_fuse_rows _82s100_pls100_pinfuserows[] = { + {18, NO_OUTPUT_ENABLE_FUSE_ROW, 0}, + {17, NO_OUTPUT_ENABLE_FUSE_ROW, 0}, + {16, NO_OUTPUT_ENABLE_FUSE_ROW, 0}, + {15, NO_OUTPUT_ENABLE_FUSE_ROW, 0}, + {13, NO_OUTPUT_ENABLE_FUSE_ROW, 0}, + {12, NO_OUTPUT_ENABLE_FUSE_ROW, 0}, + {11, NO_OUTPUT_ENABLE_FUSE_ROW, 0}, + {10, NO_OUTPUT_ENABLE_FUSE_ROW, 0}}; + static pin_fuse_columns pal10l8pinfusecolumns[] = { {1, 3, 2}, {2, 1, 0}, @@ -1336,6 +1367,28 @@ static pin_fuse_columns pal20r8pinfusecolumns[] = { {22, 7, 6}, {23, 3, 2}}; +static pin_fuse_columns pal20ra10pinfusecolumns[] = { + {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 pal20x4pinfusecolumns[] = { {2, 1, 0}, {3, 5, 4}, @@ -1903,6 +1956,24 @@ static pin_fuse_columns pal20l2pinfusecolumns[] = { {22, 11, 10}, {23, 7, 6}}; +static pin_fuse_columns _82s100_pls100_pinfusecolumns[] = { + {9, 1, 0}, + {8, 3, 2}, + {7, 5, 4}, + {6, 7, 6}, + {5, 9, 8}, + {4, 11, 10}, + {3, 13, 12}, + {2, 15, 14}, + {27, 17, 16}, + {26, 19, 18}, + {25, 21, 20}, + {24, 23, 22}, + {23, 25, 24}, + {22, 27, 26}, + {21, 29, 28}, + {20, 31, 30}}; + static pal_data paldata[] = { {"PAL10L8", 320, pal10l8pinfuserows, ARRAY_LENGTH(pal10l8pinfuserows), @@ -2068,7 +2139,14 @@ static pal_data paldata[] = { config_pal20r8_pins, nullptr, nullptr}, - {"PAL20X4", 1600, + {"PAL20RA10", 3210, + pal20ra10pinfuserows, ARRAY_LENGTH(pal20ra10pinfuserows), + pal20ra10pinfusecolumns, ARRAY_LENGTH(pal20ra10pinfusecolumns), + print_pal20ra10_product_terms, + config_pal20ra10_pins, + nullptr, + nullptr }, + {"PAL20X4", 1600, pal20x4pinfuserows, ARRAY_LENGTH(pal20x4pinfuserows), pal20x4pinfusecolumns, ARRAY_LENGTH(pal20x4pinfusecolumns), print_pal20x4_product_terms, @@ -2091,8 +2169,7 @@ static pal_data paldata[] = { nullptr}, /*{"PAL22V10", 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}, - {"PLS100", 0, NULL, 0, NULL, 0, NULL, NULL, NULL, NULL},*/ + {"GAL22V10", 0, NULL, 0, NULL, 0, NULL, NULL, NULL, NULL},*/ {"82S153", 1842, _82s153_pls153pinfuserows, ARRAY_LENGTH(_82s153_pls153pinfuserows), _82s153_pls153pinfusecolumns, ARRAY_LENGTH(_82s153_pls153pinfusecolumns), @@ -2311,6 +2388,34 @@ static pal_data paldata[] = { print_pal20l2_product_terms, config_pal20l2_pins, nullptr, + nullptr}, + {"82S100", 1928, + _82s100_pls100_pinfuserows, ARRAY_LENGTH(_82s100_pls100_pinfuserows), + _82s100_pls100_pinfusecolumns, ARRAY_LENGTH(_82s100_pls100_pinfusecolumns), + print_82s100_pls100_product_terms, + config_82s100_pls100_pins, + nullptr, + nullptr}, + {"PLS100", 1928, + _82s100_pls100_pinfuserows, ARRAY_LENGTH(_82s100_pls100_pinfuserows), + _82s100_pls100_pinfusecolumns, ARRAY_LENGTH(_82s100_pls100_pinfusecolumns), + print_82s100_pls100_product_terms, + config_82s100_pls100_pins, + nullptr, + nullptr}, + {"82S101", 1928, + _82s100_pls100_pinfuserows, ARRAY_LENGTH(_82s100_pls100_pinfuserows), + _82s100_pls100_pinfusecolumns, ARRAY_LENGTH(_82s100_pls100_pinfusecolumns), + print_82s100_pls100_product_terms, + config_82s100_pls100_pins, + nullptr, + nullptr}, + {"PLS101", 1928, + _82s100_pls100_pinfuserows, ARRAY_LENGTH(_82s100_pls100_pinfuserows), + _82s100_pls100_pinfusecolumns, ARRAY_LENGTH(_82s100_pls100_pinfusecolumns), + print_82s100_pls100_product_terms, + config_82s100_pls100_pins, + nullptr, nullptr}}; /*************************************************************************** @@ -3556,6 +3661,18 @@ static void print_pal20r8_product_terms(const pal_data* pal, const jed_data* jed +/*------------------------------------------------- +print_pal20ra10_product_terms - prints the product +terms for a PAL20RA10 +-------------------------------------------------*/ + +static void print_pal20ra10_product_terms(const pal_data* pal, const jed_data* jed) +{ + print_product_terms(pal, jed); +} + + + /*------------------------------------------------- print_pal20x4_product_terms - prints the product terms for a PAL20X4 @@ -4278,6 +4395,97 @@ static void print_pal20l2_product_terms(const pal_data* pal, const jed_data* jed +/*------------------------------------------------- + print_82s100_pls100_product_terms - prints the product + terms for a 82S100 and PLS100 +-------------------------------------------------*/ + +static void print_82s100_pls100_product_terms(const pal_data* pal, const jed_data* jed) +{ + uint16_t index, columncount, flags, row, haveterms, or_column, fuserow; + char buffer[200]; + int indent, indentindex; + + columncount = calc_fuse_column_count(pal); + + print_input_pins(); + print_output_pins(); + + printf("Equations:\n\n"); + + for (index = 0; index < outputpinscount; ++index) + { + flags = outputpins[index].flags; + + indent = 0; + + if (flags & OUTPUT_ACTIVELOW) + { + printf(LOW_SYMBOL); + + indent += strlen(LOW_SYMBOL); + } + + sprintf(buffer, OUTPUT_SYMBOL "%d " COMBINATORIAL_ASSIGNMENT " ", outputpins[index].pin); + + printf("%s", buffer); + + haveterms = 0; + indent += strlen(buffer); + + fuserow = 0; + + if (outputpins[index].pin >= 15) + { + or_column = 18 - outputpins[index].pin; + } + else + { + or_column = 17 - outputpins[index].pin; + } + + for (row = 0; row < 48; ++row) + { + if (!jed_get_fuse(jed, fuserow + columncount + or_column)) + { + generate_product_terms(pal, jed, fuserow, buffer); + + if (strlen(buffer) > 0) + { + if (haveterms) + { + printf(" " OR_SYMBOL "\n"); + + for (indentindex = 0; indentindex < indent; ++indentindex) + { + printf(" "); + } + } + else + { + haveterms = 1; + } + + printf("%s", buffer); + } + } + + fuserow += (columncount + 8); + } + + printf("\n"); + + /* output enable equations */ + + printf(OUTPUT_SYMBOL "%d.oe " COMBINATORIAL_ASSIGNMENT " ", outputpins[index].pin); + printf("OE\n"); + + printf("\n"); + } +} + + + /*------------------------------------------------- config_pal10l8_pins - configures the pins for a PAL10L8 @@ -5619,6 +5827,32 @@ static void config_pal20r8_pins(const pal_data* pal, const jed_data* jed) +/*------------------------------------------------- +config_pal20ra10_pins - configures the pins for +a PAL20RA10 +-------------------------------------------------*/ + +static void config_pal20ra10_pins(const pal_data* pal, const jed_data* jed) +{ + 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 }; + static pin_output_config output_pins[] = { + {14, OUTPUT_ACTIVELOW | OUTPUT_REGISTERED | OUTPUT_FEEDBACK_REGISTERED}, + {15, OUTPUT_ACTIVELOW | OUTPUT_REGISTERED | OUTPUT_FEEDBACK_REGISTERED}, + {16, OUTPUT_ACTIVELOW | OUTPUT_REGISTERED | OUTPUT_FEEDBACK_REGISTERED}, + {17, OUTPUT_ACTIVELOW | OUTPUT_REGISTERED | OUTPUT_FEEDBACK_REGISTERED}, + {18, OUTPUT_ACTIVELOW | OUTPUT_REGISTERED | OUTPUT_FEEDBACK_REGISTERED}, + {19, OUTPUT_ACTIVELOW | OUTPUT_REGISTERED | OUTPUT_FEEDBACK_REGISTERED}, + {20, OUTPUT_ACTIVELOW | OUTPUT_REGISTERED | OUTPUT_FEEDBACK_REGISTERED}, + {21, OUTPUT_ACTIVELOW | OUTPUT_REGISTERED | OUTPUT_FEEDBACK_REGISTERED}, + {22, OUTPUT_ACTIVELOW | OUTPUT_REGISTERED | OUTPUT_FEEDBACK_REGISTERED}, + {23, OUTPUT_ACTIVELOW | OUTPUT_REGISTERED | OUTPUT_FEEDBACK_REGISTERED}}; + + set_input_pins(input_pins, ARRAY_LENGTH(input_pins)); + set_output_pins(output_pins, ARRAY_LENGTH(output_pins)); +} + + + /*------------------------------------------------- config_pal20x4_pins - configures the pins for a PAL20X4 @@ -6842,6 +7076,37 @@ static void config_pal20l2_pins(const pal_data* pal, const jed_data* jed) +/*------------------------------------------------- + config_82s100_pls100_pins - configures the pins for + a 82S100 and PLS100 +-------------------------------------------------*/ + +static void config_82s100_pls100_pins(const pal_data* pal, const jed_data* jed) +{ + static uint16_t input_pins[] = {9, 8, 7, 6, 5, 4, 3, 2, 27, 26, 25, 24, 23, 22, 21, 20}; + pin_output_config output_pins[8]; + + for (uint16_t index = 0; index < ARRAY_LENGTH(output_pins); ++index) + { + output_pins[index].pin = pal->pinfuserows[index].pin; + output_pins[index].flags = OUTPUT_COMBINATORIAL | OUTPUT_FEEDBACK_NONE; + + if (jed_get_fuse(jed, 1920 + index)) + { + output_pins[index].flags |= OUTPUT_ACTIVELOW; + } + else + { + output_pins[index].flags |= OUTPUT_ACTIVEHIGH; + } + } + + set_input_pins(input_pins, ARRAY_LENGTH(input_pins)); + set_output_pins(output_pins, ARRAY_LENGTH(output_pins)); +} + + + /*------------------------------------------------- is_gal16v8_product_term_enabled - determines if a fuse row in a GAL16V8 is enabled -- cgit v1.2.3