diff --git a/.gitattributes b/.gitattributes index 92baa162974..b32fbd10ea8 100644 --- a/.gitattributes +++ b/.gitattributes @@ -8785,6 +8785,9 @@ src/regtests/jedutil/baseline/pal20l8/pal20l8.txt svneol=native#text/plain src/regtests/jedutil/baseline/pal20r4/pal20r4.txt svneol=native#text/plain src/regtests/jedutil/baseline/pal20r6/pal20r6.txt svneol=native#text/plain src/regtests/jedutil/baseline/pal20r8/pal20r8.txt svneol=native#text/plain +src/regtests/jedutil/baseline/pal20x10/pal20x10.txt svneol=native#text/plain +src/regtests/jedutil/baseline/pal20x4/pal20x4.txt svneol=native#text/plain +src/regtests/jedutil/baseline/pal20x8/pal20x8.txt svneol=native#text/plain src/regtests/jedutil/baseline/pls153/pls153.txt svneol=native#text/plain src/regtests/jedutil/eqns/ICT_Place/PEEL18CV8/18cv8_bi-directional_io.psf svneol=native#text/plain src/regtests/jedutil/eqns/ICT_Place/PEEL18CV8/18cv8_combinatorial_feedback.psf svneol=native#text/plain @@ -8808,6 +8811,9 @@ src/regtests/jedutil/eqns/Opal_Jr/pal20l8/pal20l8.eqn svneol=native#text/plain src/regtests/jedutil/eqns/Opal_Jr/pal20r4/pal20r4.eqn svneol=native#text/plain src/regtests/jedutil/eqns/Opal_Jr/pal20r6/pal20r6.eqn svneol=native#text/plain src/regtests/jedutil/eqns/Opal_Jr/pal20r8/pal20r8.eqn svneol=native#text/plain +src/regtests/jedutil/eqns/Opal_Jr/pal20x10/pal20x10.eqn svneol=native#text/plain +src/regtests/jedutil/eqns/Opal_Jr/pal20x4/pal20x4.eqn svneol=native#text/plain +src/regtests/jedutil/eqns/Opal_Jr/pal20x8/pal20x8.eqn svneol=native#text/plain src/regtests/jedutil/eqns/Opal_Jr/readme.txt svneol=native#text/plain src/regtests/jedutil/eqns/ispLEVER_Classic/gal18v10/test1/gal18v10-test1.abl svneol=native#text/plain src/regtests/jedutil/eqns/ispLEVER_Classic/gal18v10/test1/gal18v10-test1.syn svneol=native#text/plain @@ -8890,6 +8896,9 @@ src/regtests/jedutil/jeds/pal20l8/pal20l8.jed -text svneol=unset#application/oct src/regtests/jedutil/jeds/pal20r4/pal20r4.jed -text svneol=unset#application/octet-stream src/regtests/jedutil/jeds/pal20r6/pal20r6.jed -text svneol=unset#application/octet-stream src/regtests/jedutil/jeds/pal20r8/pal20r8.jed -text svneol=unset#application/octet-stream +src/regtests/jedutil/jeds/pal20x10/pal20x10.jed -text svneol=unset#application/octet-stream +src/regtests/jedutil/jeds/pal20x4/pal20x4.jed -text svneol=unset#application/octet-stream +src/regtests/jedutil/jeds/pal20x8/pal20x8.jed -text svneol=unset#application/octet-stream src/regtests/jedutil/jeds/pls153/pls153.jed -text svneol=unset#application/octet-stream src/regtests/jedutil/jedtest.py svneol=native#text/plain src/regtests/regtests.mak svneol=native#text/plain diff --git a/src/mame/drivers/decocass.c b/src/mame/drivers/decocass.c index 66a1c414022..b26eeead0fd 100644 --- a/src/mame/drivers/decocass.c +++ b/src/mame/drivers/decocass.c @@ -15,16 +15,17 @@ The DECO cassette system consists of three PCBS in a card cage: Early boardset: (1980-1983) (proms unknown for this boardset, no schematics for this boardset) - One RMS-3 pcb with a 6502 processor, two ay-3-8910s, and one 2716 eprom holding the audio bios. (audio) - One DSP-3 pcb with a 6502 processor, two 2716 eproms (main processor and bios, graphics, dipswitches?) - One BIO-3 pcb with an 8041 MCU (DECO Cassette control) + One DE-0069C-0 RMS-3 pcb with a 6502 processor, D8041C MCU (DECO Cassette control), two ay-3-8910s, and one 2708 eprom holding the audio bios. (audio, needs external amp and volume control) + One DE-0068B-0 DSP-3 pcb with a 'DECO CPU-3' custom, two 2716 eproms (main processor and bios, graphics, dipswitches?) + One DE-0070C-0 BIO-3 pcb with an analog ADC0908 8-bit adc + One DE-0066B-0 card rack board that the other three boards plug into. TODO: get more info about this older boardset: D. Widel has some info about it on his page at http://www.widel.com/stuff/decopin.htm Later boardset: (1984 onward, schematic is dated 10/83) One DE-0097C-0 RMS-8 pcb with a 6502 processor, two ay-3-8910s, two eproms (2716 and 2732) plus one prom, and 48k worth of 4116 16kx1 DRAMs; the 6502 processor has its own 4K of SRAM. (audio processor and RAM, Main processor's dram, dipswitches) One DE-0096C-0 DSP-8 board with a 'DECO 222' custom on it (labeled '8049 // C10707-2') which appears to really be a 'cleverly' disguised 6502, and two proms, plus 4K of sram, and three hm2511-1 1kx1 srams. (main processor and graphics) One DE-0098C-0 B10-8 (BIO-8 on schematics) board with an 8041, an analog devices ADC0908 8-bit adc, and 4K of SRAM on it (DECO Cassette control, inputs) - + One DE-0109C-0 card rack board that the other three boards plug into. The actual cassettes use a custom player hooked to the BIO board, and are roughly microcassette form factor, but are larger and will not fit in a conventional microcassette player. Each cassette has two tracks on it: a clock track and a data track, for a form of synchronous serial. The data is stored in blocks with headers and checksums. diff --git a/src/mame/drivers/freekick.c b/src/mame/drivers/freekick.c index 7788f8d347a..54a3b0dd045 100644 --- a/src/mame/drivers/freekick.c +++ b/src/mame/drivers/freekick.c @@ -809,7 +809,7 @@ ROM_START( freekick ) ROM_LOAD( "17.1r", 0x008000, 0x04000, CRC(e7894def) SHA1(5c97b7cce43d1e51c709603a0d2394b8119764bd) ) ROM_REGION( 0x0600, "proms", 0 ) /* verified correct */ - ROM_LOAD( "24s10n.8j", 0x0000, 0x0100, CRC(53a6bc21) SHA1(d4beedc226004c1aa9b6aae29bee9c8a9b0fff7c) ) /* Or compaitble type prom like the 82S129 */ + ROM_LOAD( "24s10n.8j", 0x0000, 0x0100, CRC(53a6bc21) SHA1(d4beedc226004c1aa9b6aae29bee9c8a9b0fff7c) ) /* Or compatible type prom like the 82S129 */ ROM_LOAD( "24s10n.7j", 0x0100, 0x0100, CRC(38dd97d8) SHA1(468a0f87a704982dc1bce1ca21f9bb252ac241a0) ) ROM_LOAD( "24s10n.8k", 0x0200, 0x0100, CRC(18e66087) SHA1(54857526179b738862d11ce87e9d0edcb7878488) ) ROM_LOAD( "24s10n.7k", 0x0300, 0x0100, CRC(bc21797a) SHA1(4d6cf05e51b7ef9147eeff051c3728764021cfdb) ) @@ -835,7 +835,7 @@ ROM_START( freekicka ) /* The bootlegs are derived from this set, "freekbl8.q7" ROM_LOAD( "17.1r", 0x008000, 0x04000, CRC(e7894def) SHA1(5c97b7cce43d1e51c709603a0d2394b8119764bd) ) ROM_REGION( 0x0600, "proms", 0 ) /* verified correct */ - ROM_LOAD( "24s10n.8j", 0x0000, 0x0100, CRC(53a6bc21) SHA1(d4beedc226004c1aa9b6aae29bee9c8a9b0fff7c) ) /* Or compaitble type prom like the 82S129 */ + ROM_LOAD( "24s10n.8j", 0x0000, 0x0100, CRC(53a6bc21) SHA1(d4beedc226004c1aa9b6aae29bee9c8a9b0fff7c) ) /* Or compatible type prom like the 82S129 */ ROM_LOAD( "24s10n.7j", 0x0100, 0x0100, CRC(38dd97d8) SHA1(468a0f87a704982dc1bce1ca21f9bb252ac241a0) ) ROM_LOAD( "24s10n.8k", 0x0200, 0x0100, CRC(18e66087) SHA1(54857526179b738862d11ce87e9d0edcb7878488) ) ROM_LOAD( "24s10n.7k", 0x0300, 0x0100, CRC(bc21797a) SHA1(4d6cf05e51b7ef9147eeff051c3728764021cfdb) ) @@ -861,12 +861,17 @@ ROM_START( freekickb1 ) ROM_LOAD( "17.1r", 0x008000, 0x04000, CRC(e7894def) SHA1(5c97b7cce43d1e51c709603a0d2394b8119764bd) ) // freekbl7.r2 ROM_REGION( 0x0600, "proms", 0 ) /* verified correct */ - ROM_LOAD( "24s10n.8j", 0x0000, 0x0100, CRC(53a6bc21) SHA1(d4beedc226004c1aa9b6aae29bee9c8a9b0fff7c) ) /* Or compaitble type prom like the 82S129 */ + ROM_LOAD( "24s10n.8j", 0x0000, 0x0100, CRC(53a6bc21) SHA1(d4beedc226004c1aa9b6aae29bee9c8a9b0fff7c) ) /* Or compatible type prom like the 82S129 */ ROM_LOAD( "24s10n.7j", 0x0100, 0x0100, CRC(38dd97d8) SHA1(468a0f87a704982dc1bce1ca21f9bb252ac241a0) ) ROM_LOAD( "24s10n.8k", 0x0200, 0x0100, CRC(18e66087) SHA1(54857526179b738862d11ce87e9d0edcb7878488) ) ROM_LOAD( "24s10n.7k", 0x0300, 0x0100, CRC(bc21797a) SHA1(4d6cf05e51b7ef9147eeff051c3728764021cfdb) ) ROM_LOAD( "24s10n.8h", 0x0400, 0x0100, CRC(8aac5fd0) SHA1(07a179603c0167c1f998b2337d66be95db9911cc) ) ROM_LOAD( "24s10n.7h", 0x0500, 0x0100, CRC(a507f941) SHA1(97619959ee4c366cb010525636ab5eefe5a3127a) ) + + ROM_REGION( 0x0003, "pals", 0 ) /* Replacements for custom chip on original? */ + ROM_LOAD( "pal16l8.q10.bin", 0x0000, 0x0001, NO_DUMP) /* PAL16L8ACN */ + ROM_LOAD( "pal16l8.r1.bin", 0x0001, 0x0001, NO_DUMP) /* PAL16L8ACN */ + ROM_LOAD( "pal16l8.s1.bin", 0x0002, 0x0001, NO_DUMP) /* PAL16L8ACN */ ROM_END ROM_START( freekickb2 ) @@ -896,7 +901,7 @@ ROM_START( freekickb2 ) /* no proms in the dump, but almost certainly identical */ ROM_REGION( 0x0600, "proms", 0 ) - ROM_LOAD( "24s10n.8j", 0x0000, 0x0100, CRC(53a6bc21) SHA1(d4beedc226004c1aa9b6aae29bee9c8a9b0fff7c) ) /* Or compaitble type prom like the 82S129 */ + ROM_LOAD( "24s10n.8j", 0x0000, 0x0100, CRC(53a6bc21) SHA1(d4beedc226004c1aa9b6aae29bee9c8a9b0fff7c) ) /* Or compatible type prom like the 82S129 */ ROM_LOAD( "24s10n.7j", 0x0100, 0x0100, CRC(38dd97d8) SHA1(468a0f87a704982dc1bce1ca21f9bb252ac241a0) ) ROM_LOAD( "24s10n.8k", 0x0200, 0x0100, CRC(18e66087) SHA1(54857526179b738862d11ce87e9d0edcb7878488) ) ROM_LOAD( "24s10n.7k", 0x0300, 0x0100, CRC(bc21797a) SHA1(4d6cf05e51b7ef9147eeff051c3728764021cfdb) ) @@ -924,7 +929,7 @@ ROM_START( freekickb3 ) ROM_LOAD( "17.1r", 0x008000, 0x04000, CRC(e7894def) SHA1(5c97b7cce43d1e51c709603a0d2394b8119764bd) ) // freekbl7.r2 ROM_REGION( 0x0700, "proms", 0 ) /* verified correct */ - ROM_LOAD( "24s10n.8j", 0x0000, 0x0100, CRC(53a6bc21) SHA1(d4beedc226004c1aa9b6aae29bee9c8a9b0fff7c) ) /* Or compaitble type prom like the 82S129 */ + ROM_LOAD( "24s10n.8j", 0x0000, 0x0100, CRC(53a6bc21) SHA1(d4beedc226004c1aa9b6aae29bee9c8a9b0fff7c) ) /* Or compatible type prom like the 82S129 */ ROM_LOAD( "24s10n.7j", 0x0100, 0x0100, CRC(38dd97d8) SHA1(468a0f87a704982dc1bce1ca21f9bb252ac241a0) ) ROM_LOAD( "24s10n.8k", 0x0200, 0x0100, CRC(18e66087) SHA1(54857526179b738862d11ce87e9d0edcb7878488) ) ROM_LOAD( "24s10n.7k", 0x0300, 0x0100, CRC(bc21797a) SHA1(4d6cf05e51b7ef9147eeff051c3728764021cfdb) ) @@ -960,7 +965,7 @@ ROM_START( countrun ) ROM_LOAD( "c-run.r1", 0x008000, 0x04000, CRC(4bb4a3e3) SHA1(179696464fce548ec333eec233025840fdb1eac2) ) // rom 7 ROM_REGION( 0x0600, "proms", 0 ) - ROM_LOAD( "24s10n.8j", 0x0000, 0x0100, CRC(63c114ad) SHA1(db881c4ff92cb04a94988587503346a44eb89b69) ) /* Or compaitble type prom like the 82S129 */ + ROM_LOAD( "24s10n.8j", 0x0000, 0x0100, CRC(63c114ad) SHA1(db881c4ff92cb04a94988587503346a44eb89b69) ) /* Or compatible type prom like the 82S129 */ ROM_LOAD( "24s10n.7j", 0x0100, 0x0100, CRC(d16f95cc) SHA1(041bb84576bd8492c1ad3e492d8cb3e04d316527) ) ROM_LOAD( "24s10n.8k", 0x0200, 0x0100, CRC(217db2c1) SHA1(f2af1a74b0ce56290b1c119e1a9707287132194a) ) ROM_LOAD( "24s10n.7k", 0x0300, 0x0100, CRC(8d983949) SHA1(d7331900d18a53ceb133f8a8848d3c108e03323a) ) @@ -986,7 +991,7 @@ ROM_START( countrunb ) ROM_LOAD( "c-run.r1", 0x008000, 0x04000, CRC(4bb4a3e3) SHA1(179696464fce548ec333eec233025840fdb1eac2) ) // rom 7 ROM_REGION( 0x0600, "proms", 0 ) - ROM_LOAD( "24s10n.8j", 0x0000, 0x0100, CRC(63c114ad) SHA1(db881c4ff92cb04a94988587503346a44eb89b69) ) /* Or compaitble type prom like the 82S129 */ + ROM_LOAD( "24s10n.8j", 0x0000, 0x0100, CRC(63c114ad) SHA1(db881c4ff92cb04a94988587503346a44eb89b69) ) /* Or compatible type prom like the 82S129 */ ROM_LOAD( "24s10n.7j", 0x0100, 0x0100, CRC(d16f95cc) SHA1(041bb84576bd8492c1ad3e492d8cb3e04d316527) ) ROM_LOAD( "24s10n.8k", 0x0200, 0x0100, CRC(217db2c1) SHA1(f2af1a74b0ce56290b1c119e1a9707287132194a) ) ROM_LOAD( "24s10n.7k", 0x0300, 0x0100, CRC(8d983949) SHA1(d7331900d18a53ceb133f8a8848d3c108e03323a) ) @@ -1015,7 +1020,7 @@ ROM_START( countrunb2 ) ROM_LOAD( "c-run.r1", 0x008000, 0x04000, CRC(4bb4a3e3) SHA1(179696464fce548ec333eec233025840fdb1eac2) ) // rom 7 ROM_REGION( 0x0600, "proms", 0 ) - ROM_LOAD( "24s10n.8j", 0x0000, 0x0100, CRC(63c114ad) SHA1(db881c4ff92cb04a94988587503346a44eb89b69) ) /* Or compaitble type prom like the 82S129 */ + ROM_LOAD( "24s10n.8j", 0x0000, 0x0100, CRC(63c114ad) SHA1(db881c4ff92cb04a94988587503346a44eb89b69) ) /* Or compatible type prom like the 82S129 */ ROM_LOAD( "24s10n.7j", 0x0100, 0x0100, CRC(d16f95cc) SHA1(041bb84576bd8492c1ad3e492d8cb3e04d316527) ) ROM_LOAD( "24s10n.8k", 0x0200, 0x0100, CRC(217db2c1) SHA1(f2af1a74b0ce56290b1c119e1a9707287132194a) ) ROM_LOAD( "24s10n.7k", 0x0300, 0x0100, CRC(8d983949) SHA1(d7331900d18a53ceb133f8a8848d3c108e03323a) ) diff --git a/src/mame/drivers/taito_f3.c b/src/mame/drivers/taito_f3.c index d555ac942ae..009d776143e 100644 --- a/src/mame/drivers/taito_f3.c +++ b/src/mame/drivers/taito_f3.c @@ -2849,109 +2849,119 @@ ROM_START( gekiridnj ) ROM_LOAD16_BYTE("e11-05.ic41", 0x400000, 0x200000, CRC(a4d08cf1) SHA1(ae2cabef7b7bcb8a788988c73d7af6fa4bb2c444) ) // CC CD -std- ROM_END +/* + ROM Board: J9100361A ROM PCB +*/ + ROM_START( tcobra2 ) ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ - ROM_LOAD32_BYTE("e15-14.bin", 0x000000, 0x40000, CRC(b527b733) SHA1(19efd647ea9c277b306714fe79ebf40d5f9d2187) ) - ROM_LOAD32_BYTE("e15-13.bin", 0x000001, 0x40000, CRC(0f03daf7) SHA1(de5aee5a339224dfe5e03a02d3ef5ffd5a39211e) ) - ROM_LOAD32_BYTE("e15-12.bin", 0x000002, 0x40000, CRC(59d832f2) SHA1(27019b4121b1f8b0b9e141234192b3da1a4af718) ) - ROM_LOAD32_BYTE("e15-18.bin", 0x000003, 0x40000, CRC(4908c3aa) SHA1(9b0230e6bafd0533ecbe89bc18fae6f3425ea1a3) ) + ROM_LOAD32_BYTE("e15-14.ic20", 0x000000, 0x40000, CRC(b527b733) SHA1(19efd647ea9c277b306714fe79ebf40d5f9d2187) ) + ROM_LOAD32_BYTE("e15-13.ic19", 0x000001, 0x40000, CRC(0f03daf7) SHA1(de5aee5a339224dfe5e03a02d3ef5ffd5a39211e) ) + ROM_LOAD32_BYTE("e15-12.ic18", 0x000002, 0x40000, CRC(59d832f2) SHA1(27019b4121b1f8b0b9e141234192b3da1a4af718) ) + ROM_LOAD32_BYTE("e15-18.ic17", 0x000003, 0x40000, CRC(4908c3aa) SHA1(9b0230e6bafd0533ecbe89bc18fae6f3425ea1a3) ) ROM_REGION(0xc00000, "gfx1" , 0) /* Sprites */ - ROM_LOAD16_BYTE("e15-04.bin", 0x000000, 0x200000, CRC(6ea8d9bd) SHA1(c31644e89752325ba2f174b60e31bd9659479391) ) - ROM_LOAD16_BYTE("e15-02.ic8", 0x000001, 0x200000, CRC(bf1232aa) SHA1(1381bae2a18ed62f4ca28bcdaf07debfc9bf21af) ) - ROM_LOAD16_BYTE("e15-03.bin", 0x400000, 0x100000, CRC(be45a52f) SHA1(5d9735a774233b43003057cbab6ae7d6e0195dd2) ) - ROM_LOAD16_BYTE("e15-01.bin", 0x400001, 0x100000, CRC(85421aac) SHA1(327e72f0107e024ec9fc9dc20d381e2e20f36248) ) - ROM_FILL ( 0x600000, 0x600000, 0 ) + ROM_LOAD16_BYTE("e15-04.ic12", 0x000000, 0x200000, CRC(6ea8d9bd) SHA1(c31644e89752325ba2f174b60e31bd9659479391) ) + ROM_LOAD16_BYTE("e15-02.ic8", 0x000001, 0x200000, CRC(bf1232aa) SHA1(1381bae2a18ed62f4ca28bcdaf07debfc9bf21af) ) + ROM_LOAD16_BYTE("e15-03.ic11", 0x400000, 0x100000, CRC(be45a52f) SHA1(5d9735a774233b43003057cbab6ae7d6e0195dd2) ) + ROM_LOAD16_BYTE("e15-01.ic7", 0x400001, 0x100000, CRC(85421aac) SHA1(327e72f0107e024ec9fc9dc20d381e2e20f36248) ) + ROM_FILL ( 0x600000, 0x600000, 0 ) ROM_REGION(0xc00000, "gfx2" , 0) /* Tiles */ - ROM_LOAD16_BYTE("e15-10.bin", 0x000000, 0x200000, CRC(d8c96b00) SHA1(9cd275abb66b3475433ea2649dc872d7d35eb5b8) ) - ROM_LOAD16_BYTE("e15-08.bin", 0x000001, 0x200000, CRC(4bdb2bf3) SHA1(1146b7a5d9f26d3173a7c64768e55d53a0ab7b8e) ) - ROM_LOAD16_BYTE("e15-09.bin", 0x400000, 0x100000, CRC(07c29f60) SHA1(3ca0f632e7047cc50ee3ce24cd6c0c8c7252a278) ) - ROM_LOAD16_BYTE("e15-07.bin", 0x400001, 0x100000, CRC(8164f7ee) SHA1(4550521f820e93ec08b86d148135966d016cbf22) ) - ROM_FILL ( 0x600000, 0x600000, 0 ) + ROM_LOAD16_BYTE("e15-10.ic47", 0x000000, 0x200000, CRC(d8c96b00) SHA1(9cd275abb66b3475433ea2649dc872d7d35eb5b8) ) + ROM_LOAD16_BYTE("e15-08.ic45", 0x000001, 0x200000, CRC(4bdb2bf3) SHA1(1146b7a5d9f26d3173a7c64768e55d53a0ab7b8e) ) + ROM_LOAD16_BYTE("e15-09.ic46", 0x400000, 0x100000, CRC(07c29f60) SHA1(3ca0f632e7047cc50ee3ce24cd6c0c8c7252a278) ) + ROM_LOAD16_BYTE("e15-07.ic44", 0x400001, 0x100000, CRC(8164f7ee) SHA1(4550521f820e93ec08b86d148135966d016cbf22) ) + ROM_FILL ( 0x600000, 0x600000, 0 ) ROM_REGION(0x140000, "audiocpu", 0) /* 68000 sound CPU */ - ROM_LOAD16_BYTE("e15-15.bin", 0x100000, 0x20000, CRC(22126dfb) SHA1(a1af17e5c3440f1bab50d79f92c251f1a4536ca0) ) - ROM_LOAD16_BYTE("e15-16.bin", 0x100001, 0x20000, CRC(f8b58ea0) SHA1(c9e196620765efc4c7b535793a5d1f586698ce55) ) + ROM_LOAD16_BYTE("e15-15.ic32", 0x100000, 0x20000, CRC(22126dfb) SHA1(a1af17e5c3440f1bab50d79f92c251f1a4536ca0) ) + ROM_LOAD16_BYTE("e15-16.ic33", 0x100001, 0x20000, CRC(f8b58ea0) SHA1(c9e196620765efc4c7b535793a5d1f586698ce55) ) ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated - ROM_LOAD16_BYTE("e15-05.bin", 0x000000, 0x200000, CRC(3e5da5f6) SHA1(da6fc8b26cd02c45cfc0f1aa5292614e4d28cae4) ) // C8 C9 CA CB - ROM_LOAD16_BYTE("e15-06.bin", 0x400000, 0x200000, CRC(b182a3e1) SHA1(db8569b069911bb84900b2aa5168c45ba3e985c7) ) // CC CD -std- + ROM_LOAD16_BYTE("e15-05.ic38", 0x000000, 0x200000, CRC(3e5da5f6) SHA1(da6fc8b26cd02c45cfc0f1aa5292614e4d28cae4) ) // C8 C9 CA CB + ROM_LOAD16_BYTE("e15-06.ic41", 0x400000, 0x200000, CRC(b182a3e1) SHA1(db8569b069911bb84900b2aa5168c45ba3e985c7) ) // CC CD -std- - ROM_REGION(0x180000, "pals", 0) - ROM_LOAD("palce16v8q.ic37.bin", 0x000, 0x117, CRC(6ccd8168) SHA1(98f85455585ba2f5ab834fa30addec498e94f814) ) - ROM_LOAD("d77-12.ic48.bin", 0x000, 0x117, CRC(6f93a4d8) SHA1(8c69688cf1159691439ebc4edfba52ab13f645b9) ) - ROM_LOAD("d77-14.ic21.bin", 0x000, 0x117, CRC(f2264f51) SHA1(6f18bad9e5318fa40dbce32c0a036b7588651660) ) + ROM_REGION( 0x034a, "pals", 0 ) + ROM_LOAD( "d77-12.ic48.bin", 0x0000, 0x0117, CRC(6f93a4d8) SHA1(8c69688cf1159691439ebc4edfba52ab13f645b9) ) /* D77-12 @ IC48 (PALCE16V8Q-15PC/4) */ + ROM_LOAD( "d77-14.ic21.bin", 0x0118, 0x0117, CRC(f2264f51) SHA1(6f18bad9e5318fa40dbce32c0a036b7588651660) ) /* D77-14 @ IC21 (PALCE16V8Q-15PC/4) */ + ROM_LOAD( "palce16v8.ic37.bin", 0x0230, 0x0117, CRC(6ccd8168) SHA1(98f85455585ba2f5ab834fa30addec498e94f814) ) /* Label unreadable @ IC37 (PALCE16V8Q-15PC/4) */ + ROM_LOAD( "d77-09.ic14.bin", 0x0348, 0x0001, NO_DUMP) /* D77-09 @ IC14 (PAL16L8ACN) */ + ROM_LOAD( "d77-10.ic28.bin", 0x0349, 0x0001, NO_DUMP) /* D77-10 @ IC28 (PAL16L8ACN) */ ROM_END ROM_START( tcobra2u ) ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ - ROM_LOAD32_BYTE("e15-14.bin", 0x000000, 0x40000, CRC(b527b733) SHA1(19efd647ea9c277b306714fe79ebf40d5f9d2187) ) - ROM_LOAD32_BYTE("e15-13.bin", 0x000001, 0x40000, CRC(0f03daf7) SHA1(de5aee5a339224dfe5e03a02d3ef5ffd5a39211e) ) - ROM_LOAD32_BYTE("e15-12.bin", 0x000002, 0x40000, CRC(59d832f2) SHA1(27019b4121b1f8b0b9e141234192b3da1a4af718) ) - ROM_LOAD32_BYTE("e15-17.bin", 0x000003, 0x40000, CRC(3e0ff33c) SHA1(6da0a69272172e03921417f3949817756c7894b4) ) + ROM_LOAD32_BYTE("e15-14.ic20", 0x000000, 0x40000, CRC(b527b733) SHA1(19efd647ea9c277b306714fe79ebf40d5f9d2187) ) + ROM_LOAD32_BYTE("e15-13.ic19", 0x000001, 0x40000, CRC(0f03daf7) SHA1(de5aee5a339224dfe5e03a02d3ef5ffd5a39211e) ) + ROM_LOAD32_BYTE("e15-12.ic18", 0x000002, 0x40000, CRC(59d832f2) SHA1(27019b4121b1f8b0b9e141234192b3da1a4af718) ) + ROM_LOAD32_BYTE("e15-17.ic17", 0x000003, 0x40000, CRC(3e0ff33c) SHA1(6da0a69272172e03921417f3949817756c7894b4) ) ROM_REGION(0xc00000, "gfx1" , 0) /* Sprites */ - ROM_LOAD16_BYTE("e15-04.bin", 0x000000, 0x200000, CRC(6ea8d9bd) SHA1(c31644e89752325ba2f174b60e31bd9659479391) ) - ROM_LOAD16_BYTE("e15-02.ic8", 0x000001, 0x200000, CRC(bf1232aa) SHA1(1381bae2a18ed62f4ca28bcdaf07debfc9bf21af) ) - ROM_LOAD16_BYTE("e15-03.bin", 0x400000, 0x100000, CRC(be45a52f) SHA1(5d9735a774233b43003057cbab6ae7d6e0195dd2) ) - ROM_LOAD16_BYTE("e15-01.bin", 0x400001, 0x100000, CRC(85421aac) SHA1(327e72f0107e024ec9fc9dc20d381e2e20f36248) ) - ROM_FILL ( 0x600000, 0x600000, 0 ) + ROM_LOAD16_BYTE("e15-04.ic12", 0x000000, 0x200000, CRC(6ea8d9bd) SHA1(c31644e89752325ba2f174b60e31bd9659479391) ) + ROM_LOAD16_BYTE("e15-02.ic8", 0x000001, 0x200000, CRC(bf1232aa) SHA1(1381bae2a18ed62f4ca28bcdaf07debfc9bf21af) ) + ROM_LOAD16_BYTE("e15-03.ic11", 0x400000, 0x100000, CRC(be45a52f) SHA1(5d9735a774233b43003057cbab6ae7d6e0195dd2) ) + ROM_LOAD16_BYTE("e15-01.ic7", 0x400001, 0x100000, CRC(85421aac) SHA1(327e72f0107e024ec9fc9dc20d381e2e20f36248) ) + ROM_FILL ( 0x600000, 0x600000, 0 ) ROM_REGION(0xc00000, "gfx2" , 0) /* Tiles */ - ROM_LOAD16_BYTE("e15-10.bin", 0x000000, 0x200000, CRC(d8c96b00) SHA1(9cd275abb66b3475433ea2649dc872d7d35eb5b8) ) - ROM_LOAD16_BYTE("e15-08.bin", 0x000001, 0x200000, CRC(4bdb2bf3) SHA1(1146b7a5d9f26d3173a7c64768e55d53a0ab7b8e) ) - ROM_LOAD16_BYTE("e15-09.bin", 0x400000, 0x100000, CRC(07c29f60) SHA1(3ca0f632e7047cc50ee3ce24cd6c0c8c7252a278) ) - ROM_LOAD16_BYTE("e15-07.bin", 0x400001, 0x100000, CRC(8164f7ee) SHA1(4550521f820e93ec08b86d148135966d016cbf22) ) - ROM_FILL ( 0x600000, 0x600000, 0 ) + ROM_LOAD16_BYTE("e15-10.ic47", 0x000000, 0x200000, CRC(d8c96b00) SHA1(9cd275abb66b3475433ea2649dc872d7d35eb5b8) ) + ROM_LOAD16_BYTE("e15-08.ic45", 0x000001, 0x200000, CRC(4bdb2bf3) SHA1(1146b7a5d9f26d3173a7c64768e55d53a0ab7b8e) ) + ROM_LOAD16_BYTE("e15-09.ic46", 0x400000, 0x100000, CRC(07c29f60) SHA1(3ca0f632e7047cc50ee3ce24cd6c0c8c7252a278) ) + ROM_LOAD16_BYTE("e15-07.ic44", 0x400001, 0x100000, CRC(8164f7ee) SHA1(4550521f820e93ec08b86d148135966d016cbf22) ) + ROM_FILL ( 0x600000, 0x600000, 0 ) ROM_REGION(0x140000, "audiocpu", 0) /* 68000 sound CPU */ - ROM_LOAD16_BYTE("e15-15.bin", 0x100000, 0x20000, CRC(22126dfb) SHA1(a1af17e5c3440f1bab50d79f92c251f1a4536ca0) ) - ROM_LOAD16_BYTE("e15-16.bin", 0x100001, 0x20000, CRC(f8b58ea0) SHA1(c9e196620765efc4c7b535793a5d1f586698ce55) ) + ROM_LOAD16_BYTE("e15-15.ic32", 0x100000, 0x20000, CRC(22126dfb) SHA1(a1af17e5c3440f1bab50d79f92c251f1a4536ca0) ) + ROM_LOAD16_BYTE("e15-16.ic33", 0x100001, 0x20000, CRC(f8b58ea0) SHA1(c9e196620765efc4c7b535793a5d1f586698ce55) ) ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated - ROM_LOAD16_BYTE("e15-05.bin", 0x000000, 0x200000, CRC(3e5da5f6) SHA1(da6fc8b26cd02c45cfc0f1aa5292614e4d28cae4) ) // C8 C9 CA CB - ROM_LOAD16_BYTE("e15-06.bin", 0x400000, 0x200000, CRC(b182a3e1) SHA1(db8569b069911bb84900b2aa5168c45ba3e985c7) ) // CC CD -std- + ROM_LOAD16_BYTE("e15-05.ic38", 0x000000, 0x200000, CRC(3e5da5f6) SHA1(da6fc8b26cd02c45cfc0f1aa5292614e4d28cae4) ) // C8 C9 CA CB + ROM_LOAD16_BYTE("e15-06.ic41", 0x400000, 0x200000, CRC(b182a3e1) SHA1(db8569b069911bb84900b2aa5168c45ba3e985c7) ) // CC CD -std- - ROM_REGION(0x180000, "pals", 0) - ROM_LOAD("palce16v8q.ic37.bin", 0x000, 0x117, CRC(6ccd8168) SHA1(98f85455585ba2f5ab834fa30addec498e94f814) ) - ROM_LOAD("d77-12.ic48.bin", 0x000, 0x117, CRC(6f93a4d8) SHA1(8c69688cf1159691439ebc4edfba52ab13f645b9) ) - ROM_LOAD("d77-14.ic21.bin", 0x000, 0x117, CRC(f2264f51) SHA1(6f18bad9e5318fa40dbce32c0a036b7588651660) ) + ROM_REGION( 0x034a, "pals", 0 ) + ROM_LOAD( "d77-12.ic48.bin", 0x0000, 0x0117, CRC(6f93a4d8) SHA1(8c69688cf1159691439ebc4edfba52ab13f645b9) ) /* D77-12 @ IC48 (PALCE16V8Q-15PC/4) */ + ROM_LOAD( "d77-14.ic21.bin", 0x0118, 0x0117, CRC(f2264f51) SHA1(6f18bad9e5318fa40dbce32c0a036b7588651660) ) /* D77-14 @ IC21 (PALCE16V8Q-15PC/4) */ + ROM_LOAD( "palce16v8.ic37.bin", 0x0230, 0x0117, CRC(6ccd8168) SHA1(98f85455585ba2f5ab834fa30addec498e94f814) ) /* Label unreadable @ IC37 (PALCE16V8Q-15PC/4) */ + ROM_LOAD( "d77-09.ic14.bin", 0x0348, 0x0001, NO_DUMP) /* D77-09 @ IC14 (PAL16L8ACN) */ + ROM_LOAD( "d77-10.ic28.bin", 0x0349, 0x0001, NO_DUMP) /* D77-10 @ IC28 (PAL16L8ACN) */ ROM_END ROM_START( ktiger2 ) ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */ - ROM_LOAD32_BYTE("e15-14.bin", 0x000000, 0x40000, CRC(b527b733) SHA1(19efd647ea9c277b306714fe79ebf40d5f9d2187) ) - ROM_LOAD32_BYTE("e15-13.bin", 0x000001, 0x40000, CRC(0f03daf7) SHA1(de5aee5a339224dfe5e03a02d3ef5ffd5a39211e) ) - ROM_LOAD32_BYTE("e15-12.bin", 0x000002, 0x40000, CRC(59d832f2) SHA1(27019b4121b1f8b0b9e141234192b3da1a4af718) ) - ROM_LOAD32_BYTE("e15-11.bin", 0x000003, 0x40000, CRC(a706a286) SHA1(c3d1cdb0c5b1004acadc926ffd9083c9afea8608) ) + ROM_LOAD32_BYTE("e15-14.ic20", 0x000000, 0x40000, CRC(b527b733) SHA1(19efd647ea9c277b306714fe79ebf40d5f9d2187) ) + ROM_LOAD32_BYTE("e15-13.ic19", 0x000001, 0x40000, CRC(0f03daf7) SHA1(de5aee5a339224dfe5e03a02d3ef5ffd5a39211e) ) + ROM_LOAD32_BYTE("e15-12.ic18", 0x000002, 0x40000, CRC(59d832f2) SHA1(27019b4121b1f8b0b9e141234192b3da1a4af718) ) + ROM_LOAD32_BYTE("e15-11.ic17", 0x000003, 0x40000, CRC(a706a286) SHA1(c3d1cdb0c5b1004acadc926ffd9083c9afea8608) ) ROM_REGION(0xc00000, "gfx1" , 0) /* Sprites */ - ROM_LOAD16_BYTE("e15-04.bin", 0x000000, 0x200000, CRC(6ea8d9bd) SHA1(c31644e89752325ba2f174b60e31bd9659479391) ) - ROM_LOAD16_BYTE("e15-02.ic8", 0x000001, 0x200000, CRC(bf1232aa) SHA1(1381bae2a18ed62f4ca28bcdaf07debfc9bf21af) ) - ROM_LOAD16_BYTE("e15-03.bin", 0x400000, 0x100000, CRC(be45a52f) SHA1(5d9735a774233b43003057cbab6ae7d6e0195dd2) ) - ROM_LOAD16_BYTE("e15-01.bin", 0x400001, 0x100000, CRC(85421aac) SHA1(327e72f0107e024ec9fc9dc20d381e2e20f36248) ) - ROM_FILL ( 0x600000, 0x600000, 0 ) + ROM_LOAD16_BYTE("e15-04.ic12", 0x000000, 0x200000, CRC(6ea8d9bd) SHA1(c31644e89752325ba2f174b60e31bd9659479391) ) + ROM_LOAD16_BYTE("e15-02.ic8", 0x000001, 0x200000, CRC(bf1232aa) SHA1(1381bae2a18ed62f4ca28bcdaf07debfc9bf21af) ) + ROM_LOAD16_BYTE("e15-03.ic11", 0x400000, 0x100000, CRC(be45a52f) SHA1(5d9735a774233b43003057cbab6ae7d6e0195dd2) ) + ROM_LOAD16_BYTE("e15-01.ic7", 0x400001, 0x100000, CRC(85421aac) SHA1(327e72f0107e024ec9fc9dc20d381e2e20f36248) ) + ROM_FILL ( 0x600000, 0x600000, 0 ) ROM_REGION(0xc00000, "gfx2" , 0) /* Tiles */ - ROM_LOAD16_BYTE("e15-10.bin", 0x000000, 0x200000, CRC(d8c96b00) SHA1(9cd275abb66b3475433ea2649dc872d7d35eb5b8) ) - ROM_LOAD16_BYTE("e15-08.bin", 0x000001, 0x200000, CRC(4bdb2bf3) SHA1(1146b7a5d9f26d3173a7c64768e55d53a0ab7b8e) ) - ROM_LOAD16_BYTE("e15-09.bin", 0x400000, 0x100000, CRC(07c29f60) SHA1(3ca0f632e7047cc50ee3ce24cd6c0c8c7252a278) ) - ROM_LOAD16_BYTE("e15-07.bin", 0x400001, 0x100000, CRC(8164f7ee) SHA1(4550521f820e93ec08b86d148135966d016cbf22) ) - ROM_FILL ( 0x600000, 0x600000, 0 ) + ROM_LOAD16_BYTE("e15-10.ic47", 0x000000, 0x200000, CRC(d8c96b00) SHA1(9cd275abb66b3475433ea2649dc872d7d35eb5b8) ) + ROM_LOAD16_BYTE("e15-08.ic45", 0x000001, 0x200000, CRC(4bdb2bf3) SHA1(1146b7a5d9f26d3173a7c64768e55d53a0ab7b8e) ) + ROM_LOAD16_BYTE("e15-09.ic46", 0x400000, 0x100000, CRC(07c29f60) SHA1(3ca0f632e7047cc50ee3ce24cd6c0c8c7252a278) ) + ROM_LOAD16_BYTE("e15-07.ic44", 0x400001, 0x100000, CRC(8164f7ee) SHA1(4550521f820e93ec08b86d148135966d016cbf22) ) + ROM_FILL ( 0x600000, 0x600000, 0 ) ROM_REGION(0x140000, "audiocpu", 0) /* 68000 sound CPU */ - ROM_LOAD16_BYTE("e15-15.bin", 0x100000, 0x20000, CRC(22126dfb) SHA1(a1af17e5c3440f1bab50d79f92c251f1a4536ca0) ) - ROM_LOAD16_BYTE("e15-16.bin", 0x100001, 0x20000, CRC(f8b58ea0) SHA1(c9e196620765efc4c7b535793a5d1f586698ce55) ) + ROM_LOAD16_BYTE("e15-15.ic32", 0x100000, 0x20000, CRC(22126dfb) SHA1(a1af17e5c3440f1bab50d79f92c251f1a4536ca0) ) + ROM_LOAD16_BYTE("e15-16.ic33", 0x100001, 0x20000, CRC(f8b58ea0) SHA1(c9e196620765efc4c7b535793a5d1f586698ce55) ) ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated - ROM_LOAD16_BYTE("e15-05.bin", 0x000000, 0x200000, CRC(3e5da5f6) SHA1(da6fc8b26cd02c45cfc0f1aa5292614e4d28cae4) ) // C8 C9 CA CB - ROM_LOAD16_BYTE("e15-06.bin", 0x400000, 0x200000, CRC(b182a3e1) SHA1(db8569b069911bb84900b2aa5168c45ba3e985c7) ) // CC CD -std- + ROM_LOAD16_BYTE("e15-05.ic38", 0x000000, 0x200000, CRC(3e5da5f6) SHA1(da6fc8b26cd02c45cfc0f1aa5292614e4d28cae4) ) // C8 C9 CA CB + ROM_LOAD16_BYTE("e15-06.ic41", 0x400000, 0x200000, CRC(b182a3e1) SHA1(db8569b069911bb84900b2aa5168c45ba3e985c7) ) // CC CD -std- - ROM_REGION(0x180000, "pals", 0) - ROM_LOAD("palce16v8q.ic37.bin", 0x000, 0x117, CRC(6ccd8168) SHA1(98f85455585ba2f5ab834fa30addec498e94f814) ) - ROM_LOAD("d77-12.ic48.bin", 0x000, 0x117, CRC(6f93a4d8) SHA1(8c69688cf1159691439ebc4edfba52ab13f645b9) ) - ROM_LOAD("d77-14.ic21.bin", 0x000, 0x117, CRC(f2264f51) SHA1(6f18bad9e5318fa40dbce32c0a036b7588651660) ) + ROM_REGION( 0x034a, "pals", 0 ) + ROM_LOAD( "d77-12.ic48.bin", 0x0000, 0x0117, CRC(6f93a4d8) SHA1(8c69688cf1159691439ebc4edfba52ab13f645b9) ) /* D77-12 @ IC48 (PALCE16V8Q-15PC/4) */ + ROM_LOAD( "d77-14.ic21.bin", 0x0118, 0x0117, CRC(f2264f51) SHA1(6f18bad9e5318fa40dbce32c0a036b7588651660) ) /* D77-14 @ IC21 (PALCE16V8Q-15PC/4) */ + ROM_LOAD( "palce16v8.ic37.bin", 0x0230, 0x0117, CRC(6ccd8168) SHA1(98f85455585ba2f5ab834fa30addec498e94f814) ) /* Label unreadable @ IC37 (PALCE16V8Q-15PC/4) */ + ROM_LOAD( "d77-09.ic14.bin", 0x0348, 0x0001, NO_DUMP) /* D77-09 @ IC14 (PAL16L8ACN) */ + ROM_LOAD( "d77-10.ic28.bin", 0x0349, 0x0001, NO_DUMP) /* D77-10 @ IC28 (PAL16L8ACN) */ ROM_END ROM_START( bubblem ) diff --git a/src/regtests/jedutil/baseline/pal20x10/pal20x10.txt b/src/regtests/jedutil/baseline/pal20x10/pal20x10.txt new file mode 100644 index 00000000000..dc25356f61f --- /dev/null +++ b/src/regtests/jedutil/baseline/pal20x10/pal20x10.txt @@ -0,0 +1,79 @@ +Inputs: + +2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23 + +Outputs: + +14 (Registered, Output feedback registered, Active low) +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) +23 (Registered, Output feedback registered, Active low) + +Equations: + +/rf14 := /i2 & rf15 + + i11 & /rf15 + + i3 & i4 + + /i5 & i10 +rf14.oe = OE + +/rf15 := i2 & i6 & i7 + + i6 & rf16 + + i3 & /rf16 + + i7 +rf15.oe = OE + +/rf16 := /i3 & /rf17 + + /i4 + + /i3 & i4 + + /i7 & rf17 +rf16.oe = OE + +/rf17 := /i2 + + /rf18 + + i5 & i6 + + rf18 +rf17.oe = OE + +/rf18 := /i2 & i5 & i6 & /i7 & /i11 + + i3 & rf19 + + /i2 & /i7 + + /i3 & /rf19 +rf18.oe = OE + +/rf19 := i5 & i6 & /i7 & i10 + + i3 & i6 & i7 + + i5 & rf20 + + /i4 & /rf20 & rf23 +rf19.oe = OE + +/rf20 := /i10 & rf17 + + /i11 + + i4 & /rf17 + + i2 & /rf23 +rf20.oe = OE + +/rf21 := /i2 & rf17 + + /i10 & i11 + + /rf14 & rf15 + + i8 & i9 & /rf22 +rf21.oe = OE + +/rf22 := rf14 & /rf15 + + i3 & /rf21 + + /i8 & rf21 + + rf16 & /rf20 +rf22.oe = OE + +/rf23 := /rf14 + + i6 & rf14 + + i7 & rf22 + + i2 & i4 & i6 & i8 & /rf15 +rf23.oe = OE + diff --git a/src/regtests/jedutil/baseline/pal20x4/pal20x4.txt b/src/regtests/jedutil/baseline/pal20x4/pal20x4.txt new file mode 100644 index 00000000000..868d3f73393 --- /dev/null +++ b/src/regtests/jedutil/baseline/pal20x4/pal20x4.txt @@ -0,0 +1,73 @@ +Inputs: + +2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23 + +Outputs: + +14 (Combinatorial, Output feedback output, Active low) +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) +23 (Combinatorial, Output feedback output, Active low) + +Equations: + +/o14 = /i2 & o15 + + i11 & /o15 + + i3 & i4 & /i5 & i10 +o14.oe = i6 + +/o15 = i2 & i6 & i7 + + i3 & /o16 + + i7 +o15.oe = i6 & o16 + +/o16 = /i3 & /rf17 + + /i4 + + /i7 & rf17 +o16.oe = /i3 & i4 + +/rf17 := /i2 + + /rf18 + + i5 & i6 + + rf18 +rf17.oe = OE + +/rf18 := /i2 & i5 & i6 & /i7 & /i11 + + i3 & rf19 + + /i2 & /i7 + + /i3 & /rf19 +rf18.oe = OE + +/rf19 := i5 & i6 & /i7 & i10 + + i3 & i6 & i7 + + i5 & rf20 + + /i4 & /rf20 & o23 +rf19.oe = OE + +/rf20 := /i10 & rf17 + + /i11 + + i4 & /rf17 + + i2 & /o23 +rf20.oe = OE + +/o21 = /i2 & rf17 + + /o14 & o15 + + i8 & i9 & /o22 +o21.oe = /i10 & i11 + +/o22 = o14 & /o15 + + i3 & /o21 + + /i8 & o21 +o22.oe = o16 & /rf20 + +/o23 = /o14 + + i2 & i4 & i6 & i8 & o14 + + i7 & /o15 & o22 +o23.oe = /i3 + diff --git a/src/regtests/jedutil/baseline/pal20x8/pal20x8.txt b/src/regtests/jedutil/baseline/pal20x8/pal20x8.txt new file mode 100644 index 00000000000..04e25dcc799 --- /dev/null +++ b/src/regtests/jedutil/baseline/pal20x8/pal20x8.txt @@ -0,0 +1,77 @@ +Inputs: + +2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23 + +Outputs: + +14 (Combinatorial, Output feedback output, Active low) +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) +23 (Combinatorial, Output feedback output, Active low) + +Equations: + +/o14 = /i2 & rf15 + + i11 & /rf15 + + i3 & i4 & /i5 & i10 +o14.oe = i6 + +/rf15 := i2 & i6 & i7 + + i6 & rf16 + + i3 & /rf16 + + i7 +rf15.oe = OE + +/rf16 := /i3 & /rf17 + + /i4 + + /i3 & i4 + + /i7 & rf17 +rf16.oe = OE + +/rf17 := /i2 + + /rf18 + + i5 & i6 + + rf18 +rf17.oe = OE + +/rf18 := /i2 & i5 & i6 & /i7 & /i11 + + i3 & rf19 + + /i2 & /i7 + + /i3 & /rf19 +rf18.oe = OE + +/rf19 := i5 & i6 & /i7 & i10 + + i3 & i6 & i7 + + i5 & rf20 + + /i4 & /rf20 & o23 +rf19.oe = OE + +/rf20 := /i10 & rf17 + + /i11 + + i4 & /rf17 + + i2 & /o23 +rf20.oe = OE + +/rf21 := /i2 & rf17 + + /i10 & i11 + + /o14 & rf15 + + i8 & i9 & /rf22 +rf21.oe = OE + +/rf22 := o14 & /rf15 + + i3 & /rf21 + + /i8 & rf21 + + rf16 & /rf20 +rf22.oe = OE + +/o23 = /o14 + + i2 & i4 & i6 & i8 & o14 + + i7 & /rf15 & rf22 +o23.oe = /i3 + diff --git a/src/regtests/jedutil/eqns/Opal_Jr/pal20x10/pal20x10.eqn b/src/regtests/jedutil/eqns/Opal_Jr/pal20x10/pal20x10.eqn new file mode 100644 index 00000000000..3b7046af50c --- /dev/null +++ b/src/regtests/jedutil/eqns/Opal_Jr/pal20x10/pal20x10.eqn @@ -0,0 +1,66 @@ +chip pal20x10 PAL20X10 + +CLK=1 i2=2 i3=3 i4=4 i5=5 i6=6 i7=7 i8=8 i9=9 i10=10 i11=11 GND=12 +/OE=13 rf14=14 rf15=15 rf16=16 rf17=17 rf18=18 rf19=19 rf20=20 rf21=21 rf22=22 rf23=23 VCC=24 + +equations + +/rf14 := /i2 & rf15 + + /rf15 & i11 + + i3 & i4 + + /i5 & i10 +rf14.oe = OE + +/rf15 := i2 & i6 & i7 + + i6 & rf16 + + i3 & /rf16 + + i7 +rf15.oe = OE + +/rf16 := /i3 & /rf17 + + /i4 + + /i3 & i4 + + /i7 & rf17 +rf16.oe = OE + +/rf17 := /i2 + + /rf18 + + i5 & i6 + + rf18 +rf17.oe = OE + +/rf18 := /i2 & i5 & i6 & /i7 & /i11 + + i3 & rf19 + + /i2 & /i7 + + /i3 & /rf19 +rf18.oe = OE + +/rf19 := i5 & i6 & /i7 & i10 + + i3 & i6 & i7 + + i5 & rf20 + + /i4 & /rf20 & rf23 +rf19.oe = OE + +/rf20 := /i10 & rf17 + + /i11 + + i4 & /rf17 + + i2 & /rf23 +rf20.oe = OE + +/rf21 := /i2 & rf17 + + i11 & /i10 + + /rf14 & rf15 + + i8 & i9 & /rf22 +rf21.oe = OE + +/rf22 := rf14 & /rf15 + + i3 & /rf21 + + /i8 & rf21 + + rf16 & /rf20 +rf22.oe = OE + +/rf23 := /rf14 + + i6 & rf14 + + i7 & rf22 + + i2 & i4 & i6 & i8 & /rf15 +rf23.oe = OE diff --git a/src/regtests/jedutil/eqns/Opal_Jr/pal20x4/pal20x4.eqn b/src/regtests/jedutil/eqns/Opal_Jr/pal20x4/pal20x4.eqn new file mode 100644 index 00000000000..5f077daa049 --- /dev/null +++ b/src/regtests/jedutil/eqns/Opal_Jr/pal20x4/pal20x4.eqn @@ -0,0 +1,60 @@ +chip pal20x4 PAL20X4 + +CLK=1 i2=2 i3=3 i4=4 i5=5 i6=6 i7=7 i8=8 i9=9 i10=10 i11=11 GND=12 +/OE=13 o14=14 o15=15 o16=16 rf17=17 rf18=18 rf19=19 rf20=20 o21=21 o22=22 o23=23 VCC=24 + +equations + +/o14 = /i2 & o15 + + /o15 & i11 + + i3 & i4 & /i5 & i10 +o14.oe = i6 + +/o15 = i2 & i6 & i7 + + i3 & /o16 + + i7 +o15.oe = i6 & o16 + +/o16 = /i3 & /rf17 + + /i4 + + /i7 & rf17 +o16.oe = /i3 & i4 + +/rf17 := /i2 + + /rf18 + + i5 & i6 + + rf18 +rf17.oe = OE + +/rf18 := /i2 & i5 & i6 & /i7 & /i11 + + i3 & rf19 + + /i2 & /i7 + + /i3 & /rf19 +rf18.oe = OE + +/rf19 := i5 & i6 & /i7 & i10 + + i3 & i6 & i7 + + i5 & rf20 + + /i4 & /rf20 & o23 +rf19.oe = OE + +/rf20 := /i10 & rf17 + + /i11 + + i4 & /rf17 + + i2 & /o23 +rf20.oe = OE + +/o21 = /i2 & rf17 + + /o14 & o15 + + i8 & i9 & /o22 +o21.oe = i11 & /i10 + +/o22 = o14 & /o15 + + i3 & /o21 + + /i8 & o21 +o22.oe = o16 & /rf20 + +/o23 = /o14 + + i2 & i4 & i6 & i8 & o14 + + i7 & /o15 & o22 +o23.oe = /i3 diff --git a/src/regtests/jedutil/eqns/Opal_Jr/pal20x8/pal20x8.eqn b/src/regtests/jedutil/eqns/Opal_Jr/pal20x8/pal20x8.eqn new file mode 100644 index 00000000000..579e742b674 --- /dev/null +++ b/src/regtests/jedutil/eqns/Opal_Jr/pal20x8/pal20x8.eqn @@ -0,0 +1,64 @@ +chip pal20x8 PAL20X8 + +CLK=1 i2=2 i3=3 i4=4 i5=5 i6=6 i7=7 i8=8 i9=9 i10=10 i11=11 GND=12 +/OE=13 o14=14 rf15=15 rf16=16 rf17=17 rf18=18 rf19=19 rf20=20 rf21=21 rf22=22 o23=23 VCC=24 + +equations + +/o14 = /i2 & rf15 + + /rf15 & i11 + + i3 & i4 & /i5 & i10 +o14.oe = i6 + +/rf15 := i2 & i6 & i7 + + i6 & rf16 + + i3 & /rf16 + + i7 +rf15.oe = OE + +/rf16 := /i3 & /rf17 + + /i4 + + /i3 & i4 + + /i7 & rf17 +rf16.oe = OE + +/rf17 := /i2 + + /rf18 + + i5 & i6 + + rf18 +rf17.oe = OE + +/rf18 := /i2 & i5 & i6 & /i7 & /i11 + + i3 & rf19 + + /i2 & /i7 + + /i3 & /rf19 +rf18.oe = OE + +/rf19 := i5 & i6 & /i7 & i10 + + i3 & i6 & i7 + + i5 & rf20 + + /i4 & /rf20 & o23 +rf19.oe = OE + +/rf20 := /i10 & rf17 + + /i11 + + i4 & /rf17 + + i2 & /o23 +rf20.oe = OE + +/rf21 := /i2 & rf17 + + i11 & /i10 + + /o14 & rf15 + + i8 & i9 & /rf22 +rf21.oe = OE + +/rf22 := o14 & /rf15 + + i3 & /rf21 + + /i8 & rf21 + + rf16 & /rf20 +rf22.oe = OE + +/o23 = /o14 + + i2 & i4 & i6 & i8 & o14 + + i7 & /rf15 & rf22 +o23.oe = /i3 diff --git a/src/regtests/jedutil/jeds/pal20x10/pal20x10.jed b/src/regtests/jedutil/jeds/pal20x10/pal20x10.jed new file mode 100644 index 00000000000..bb4e7dfbd05 --- /dev/null +++ b/src/regtests/jedutil/jeds/pal20x10/pal20x10.jed @@ -0,0 +1,62 @@ + +PAL20X10 +EQN2JED - Boolean Equations to JEDEC file assembler (Version V101) +Copyright (c) National Semiconductor Corporation 1990-1993 +Assembled from "pal20x10.eqn". Date: 7-7-113 +* +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 rf14:14 rf15:15 rf16:16 rf17:17* +NOTE PINS rf18:18 rf19:19 rf20:20 rf21:21 rf22:22 rf23:23 VCC:24* +QF1600*QP24*F0* +L0000 +1111111111111111111111111111111111111110 +1111111111111111011111111111111111111101 +1111110111111111111101111111111111111111 +0111111101111111011111110111111111101111* +L0160 +1111111111111111111111111111111111101101 +1111011111101111111111111111111111111111 +1111111111011111111111111011111111111111 +1111111111111110111111111111110111111111* +L0320 +1011111111111111111111111101111111111111 +1111111111111111111111111111111110110111 +1111111111111111111111111111111111011110 +1111111011111111111111110111011111111111* +L0480 +1111111111111111111111111101111110111111 +1111111111111111111111111111111111111011 +1111111101111111111111111110111111111111 +0110111111111111111111111111111111111111* +L0640 +1111111111110111011110111111111101111111 +1111011111111111011101111111111111111111 +1111111111110101111111111111111111111111 +1101111110111110111111111111111111111111* +L0800 +1011111111110111011110111111111111111011 +1111011111111111110111111111111111111111 +1011111111111111111110111111111111111111 +1111101111111111111011111111111111111111* +L0960 +1011111111111111111111111111111111111111 +1111111111111111111111101111111111111111 +1111111111110111011111111111111111111111 +1111111111111111111111011111111111111111* +L1120 +1111101111111111111111111110111111111111 +1111111110111111111111111111111111111111 +1111101101111111111111111111111111111111 +1111111111111111111110111101111111111111* +L1280 +0111111111111111011101111111111111111111 +1111111111111111011111111111110111111111 +1111011111111111111111111111111011111111 +1111111111111111111101111111111111111111* +L1440 +1011111111111111111111111111111111011111 +1111111111111111111111111111111111100111 +1111011101111111111111111111111111111111 +1111111111111011111111111111111101111111* +CBF31* +0000 diff --git a/src/regtests/jedutil/jeds/pal20x4/pal20x4.jed b/src/regtests/jedutil/jeds/pal20x4/pal20x4.jed new file mode 100644 index 00000000000..b24087aca72 --- /dev/null +++ b/src/regtests/jedutil/jeds/pal20x4/pal20x4.jed @@ -0,0 +1,62 @@ + +PAL20X4 +EQN2JED - Boolean Equations to JEDEC file assembler (Version V101) +Copyright (c) National Semiconductor Corporation 1990-1993 +Assembled from "pal20x4.eqn". Date: 8-18-113 +* +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 o14:14 o15:15 o16:16 rf17:17 rf18:18* +NOTE PINS rf19:19 rf20:20 o21:21 o22:22 o23:23 VCC:24* +QF1600*QP24*F0* +L0000 +1111101111111111111111111111111111111111 +1111111111111111111111111111111111111110 +0111111101111111011111110111111111111101 +1111110111111111111101111111111111101111* +L0160 +1111111111111110111111111111110111111111 +1111111111111111111111111111111111101101 +1111011111101111111111111111111111111111 +1111111111011111111111111011111111111111* +L0320 +1111111111111111111111111111111110110111 +1011111111111111111111111101111111111111 +1111111111111111111111111111111111011110 +1111111011111111111111110111011111111111* +L0480 +1111111111111111111111111101111110111111 +1111111111111111111111111111111111111011 +1111111101111111111111111110111111111111 +0110111111111111111111111111111111111111* +L0640 +1111111111110111011110111111111101111111 +1111011111111111011101111111111111111111 +1111111111110101111111111111111111111111 +1101111110111110111111111111111111111111* +L0800 +1011111111110111011110111111111111111011 +1111011111111111110111111111111111111111 +1011111111111111111110111111111111111111 +1111101111111111111011111111111111111111* +L0960 +1011111111111111111111111111111111111111 +1111111111111111111111101111111111111111 +1111111111110111011111111111111111111111 +1111111111111111111111011111111111111111* +L1120 +1111101101111111111111111111111111111111 +1111101111111111111111111110111111111111 +1111111110111111111111111111111111111111 +1111111111111111111110111101111111111111* +L1280 +1111111111111111011111111111110111111111 +0111111111111111011101111111111111111111 +1111011111111111111111111111111011111111 +1111111111111111111101111111111111111111* +L1440 +1111111111111111011111111111111111111111 +1011111111111111111111111111111111011111 +1111111111111111111111111111111111100111 +1111011101111011111111111111111101111111* +CBF11* +0000 diff --git a/src/regtests/jedutil/jeds/pal20x8/pal20x8.jed b/src/regtests/jedutil/jeds/pal20x8/pal20x8.jed new file mode 100644 index 00000000000..c6ddecdfa87 --- /dev/null +++ b/src/regtests/jedutil/jeds/pal20x8/pal20x8.jed @@ -0,0 +1,62 @@ + +PAL20X8 +EQN2JED - Boolean Equations to JEDEC file assembler (Version V101) +Copyright (c) National Semiconductor Corporation 1990-1993 +Assembled from "pal20x8.eqn". Date: 8-18-113 +* +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 o14:14 rf15:15 rf16:16 rf17:17* +NOTE PINS rf18:18 rf19:19 rf20:20 rf21:21 rf22:22 o23:23 VCC:24* +QF1600*QP24*F0* +L0000 +1111101111111111111111111111111111111111 +1111111111111111111111111111111111111110 +0111111101111111011111110111111111111101 +1111110111111111111101111111111111101111* +L0160 +1111111111111111111111111111111111101101 +1111011111101111111111111111111111111111 +1111111111011111111111111011111111111111 +1111111111111110111111111111110111111111* +L0320 +1011111111111111111111111101111111111111 +1111111111111111111111111111111110110111 +1111111111111111111111111111111111011110 +1111111011111111111111110111011111111111* +L0480 +1111111111111111111111111101111110111111 +1111111111111111111111111111111111111011 +1111111101111111111111111110111111111111 +0110111111111111111111111111111111111111* +L0640 +1111111111110111011110111111111101111111 +1111011111111111011101111111111111111111 +1111111111110101111111111111111111111111 +1101111110111110111111111111111111111111* +L0800 +1011111111110111011110111111111111111011 +1111011111111111110111111111111111111111 +1011111111111111111110111111111111111111 +1111101111111111111011111111111111111111* +L0960 +1011111111111111111111111111111111111111 +1111111111111111111111101111111111111111 +1111111111110111011111111111111111111111 +1111111111111111111111011111111111111111* +L1120 +1111101111111111111111111110111111111111 +1111111110111111111111111111111111111111 +1111101101111111111111111111111111111111 +1111111111111111111110111101111111111111* +L1280 +0111111111111111011101111111111111111111 +1111111111111111011111111111110111111111 +1111011111111111111111111111111011111111 +1111111111111111111101111111111111111111* +L1440 +1111111111111111011111111111111111111111 +1011111111111111111111111111111111011111 +1111111111111111111111111111111111100111 +1111011101111011111111111111111101111111* +CBF11* +0000 diff --git a/src/tools/jedutil.c b/src/tools/jedutil.c index 1874dddaa11..52dff1f1b29 100644 --- a/src/tools/jedutil.c +++ b/src/tools/jedutil.c @@ -99,7 +99,7 @@ **************************************************************************** Thanks to Charles MacDonald for providing information on how to decode - the PLS153 and CK2605 fuse map. + the PLS153/82S153 and CK2605 fuse map. ***************************************************************************/ @@ -248,6 +248,7 @@ static void print_pal16l8_product_terms(const pal_data* pal, const jed_data* jed static void print_pal16r4_product_terms(const pal_data* pal, const jed_data* jed); static void print_pal16r6_product_terms(const pal_data* pal, const jed_data* jed); static void print_pal16r8_product_terms(const pal_data* pal, const jed_data* jed); +static void print_palce16v8_product_terms(const pal_data* pal, const jed_data* jed); static void print_gal16v8_product_terms(const pal_data* pal, const jed_data* jed); static void print_peel18cv8_product_terms(const pal_data* pal, const jed_data* jed); static void print_gal18v10_product_terms(const pal_data* pal, const jed_data* jed); @@ -256,8 +257,10 @@ 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_82s153_product_terms(const pal_data* pal, const jed_data* jed); -static void print_pls153_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); +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); @@ -275,6 +278,7 @@ static void config_pal16l8_pins(const pal_data* pal, const jed_data* jed); static void config_pal16r4_pins(const pal_data* pal, const jed_data* jed); static void config_pal16r6_pins(const pal_data* pal, const jed_data* jed); static void config_pal16r8_pins(const pal_data* pal, const jed_data* jed); +static void config_palce16v8_pins(const pal_data* pal, const jed_data* jed); static void config_gal16v8_pins(const pal_data* pal, const jed_data* jed); static void config_peel18cv8_pins(const pal_data* pal, const jed_data* jed); static void config_gal18v10_pins(const pal_data* pal, const jed_data* jed); @@ -283,8 +287,10 @@ 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_82s153_pins(const pal_data* pal, const jed_data* jed); -static void config_pls153_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_82s153_pls153_pins(const pal_data* pal, const jed_data* jed); static void config_ck2605_pins(const pal_data* pal, const jed_data* jed); @@ -413,6 +419,16 @@ static pin_fuse_rows pal16r8pinfuserows[] = { {18, NO_OUTPUT_ENABLE_FUSE_ROW, 256, 480}, /* Registered Output */ {19, NO_OUTPUT_ENABLE_FUSE_ROW, 0, 224}}; /* Registered Output */ +static pin_fuse_rows palce16v8pinfuserows[] = { + {12, 1792, 1824, 2016}, + {13, 1536, 1568, 1760}, + {14, 1280, 1312, 1504}, + {15, 1024, 1056, 1248}, + {16, 768, 800, 992}, + {17, 512, 544, 736}, + {18, 256, 288, 480}, + {19, 0, 32, 224}}; + static pin_fuse_rows gal16v8pinfuserows[] = { {12, 0, 0, 0}, {13, 0, 0, 0}, @@ -497,41 +513,65 @@ 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 _82s153pinfuserows[] = { - {9, NO_OUTPUT_ENABLE_FUSE_ROW, 0, 0}, - {11, NO_OUTPUT_ENABLE_FUSE_ROW, 0, 0}, - {12, NO_OUTPUT_ENABLE_FUSE_ROW, 0, 0}, - {13, NO_OUTPUT_ENABLE_FUSE_ROW, 0, 0}, - {14, NO_OUTPUT_ENABLE_FUSE_ROW, 0, 0}, - {15, NO_OUTPUT_ENABLE_FUSE_ROW, 0, 0}, - {16, NO_OUTPUT_ENABLE_FUSE_ROW, 0, 0}, - {17, NO_OUTPUT_ENABLE_FUSE_ROW, 0, 0}, - {18, NO_OUTPUT_ENABLE_FUSE_ROW, 0, 0}, - {19, NO_OUTPUT_ENABLE_FUSE_ROW, 0, 0}}; +static pin_fuse_rows pal20x4pinfuserows[] = { + {14, 1440, 1480, 1560}, + {15, 1280, 1320, 1400}, + {16, 1120, 1160, 1240}, + {17, NO_OUTPUT_ENABLE_FUSE_ROW, 960, 1080}, /* Registered Output */ + {18, NO_OUTPUT_ENABLE_FUSE_ROW, 800, 920}, /* Registered Output */ + {19, NO_OUTPUT_ENABLE_FUSE_ROW, 640, 760}, /* Registered Output */ + {20, NO_OUTPUT_ENABLE_FUSE_ROW, 480, 600}, /* Registered Output */ + {21, 320, 360, 440}, + {22, 160, 200, 280}, + {23, 0, 40, 120}}; -static pin_fuse_rows pls153pinfuserows[] = { - {9, 1472, 0, 0}, - {11, 1508, 0, 0}, - {12, 1544, 0, 0}, - {13, 1580, 0, 0}, - {14, 1616, 0, 0}, - {15, 1652, 0, 0}, - {16, 1688, 0, 0}, - {17, 1724, 0, 0}, - {18, 1760, 0, 0}, - {19, 1796, 0, 0}}; +static pin_fuse_rows pal20x8pinfuserows[] = { + {14, 1440, 1480, 1560}, + {15, NO_OUTPUT_ENABLE_FUSE_ROW, 1280, 1400}, /* Registered Output */ + {16, NO_OUTPUT_ENABLE_FUSE_ROW, 1120, 1240}, /* Registered Output */ + {17, NO_OUTPUT_ENABLE_FUSE_ROW, 960, 1080}, /* Registered Output */ + {18, NO_OUTPUT_ENABLE_FUSE_ROW, 800, 920}, /* Registered Output */ + {19, NO_OUTPUT_ENABLE_FUSE_ROW, 640, 760}, /* Registered Output */ + {20, NO_OUTPUT_ENABLE_FUSE_ROW, 480, 600}, /* Registered Output */ + {21, NO_OUTPUT_ENABLE_FUSE_ROW, 320, 440}, /* Registered Output */ + {22, NO_OUTPUT_ENABLE_FUSE_ROW, 160, 280}, /* Registered Output */ + {23, 0, 40, 120}}; + +static pin_fuse_rows pal20x10pinfuserows[] = { + {14, NO_OUTPUT_ENABLE_FUSE_ROW, 1440, 1560}, /* Registered Output */ + {15, NO_OUTPUT_ENABLE_FUSE_ROW, 1280, 1400}, /* Registered Output */ + {16, NO_OUTPUT_ENABLE_FUSE_ROW, 1120, 1240}, /* Registered Output */ + {17, NO_OUTPUT_ENABLE_FUSE_ROW, 960, 1080}, /* Registered Output */ + {18, NO_OUTPUT_ENABLE_FUSE_ROW, 800, 920}, /* Registered Output */ + {19, NO_OUTPUT_ENABLE_FUSE_ROW, 640, 760}, /* Registered Output */ + {20, NO_OUTPUT_ENABLE_FUSE_ROW, 480, 600}, /* Registered Output */ + {21, NO_OUTPUT_ENABLE_FUSE_ROW, 320, 440}, /* Registered Output */ + {22, NO_OUTPUT_ENABLE_FUSE_ROW, 160, 280}, /* Registered Output */ + {23, NO_OUTPUT_ENABLE_FUSE_ROW, 0, 120}}; /* Registered Output */ + +static pin_fuse_rows _82s153_pls153pinfuserows[] = { + {9, 1472, 0, 0}, + {11, 1508, 0, 0}, + {12, 1544, 0, 0}, + {13, 1580, 0, 0}, + {14, 1616, 0, 0}, + {15, 1652, 0, 0}, + {16, 1688, 0, 0}, + {17, 1724, 0, 0}, + {18, 1760, 0, 0}, + {19, 1796, 0, 0}}; static pin_fuse_rows ck2605pinfuserows[] = { - {9, 736, 0, 0}, - {11, 772, 0, 0}, - {12, 808, 0, 0}, - {13, 844, 0, 0}, - {14, 880, 0, 0}, - {15, 916, 0, 0}, - {16, 952, 0, 0}, - {17, 988, 0, 0}, - {18, 1024, 0, 0}, - {19, 1060, 0, 0}}; + {9, 736, 0, 0}, + {11, 772, 0, 0}, + {12, 808, 0, 0}, + {13, 844, 0, 0}, + {14, 880, 0, 0}, + {15, 916, 0, 0}, + {16, 952, 0, 0}, + {17, 988, 0, 0}, + {18, 1024, 0, 0}, + {19, 1060, 0, 0}}; static pin_fuse_columns pal10l8pinfusecolumns[] = { {1, 3, 2}, @@ -743,6 +783,24 @@ static pin_fuse_columns pal16r8pinfusecolumns[] = { {18, 7, 6}, /* Registered Output */ {19, 3, 2}}; /* Registered Output */ +static pin_fuse_columns palce16v8pinfusecolumns[] = { + {2, 1, 0}, + {3, 5, 4}, + {4, 9, 8}, + {5, 13, 12}, + {6, 17, 16}, + {7, 21, 20}, + {8, 25, 24}, + {9, 29, 28}, + {12, 31, 30}, + {13, 27, 26}, + {14, 23, 22}, + {15, 19, 18}, + {16, 15, 14}, + {17, 11, 10}, + {18, 7, 6}, + {19, 3, 2}}; + static pin_fuse_columns gal16v8pinfusecolumns[] = { {0, 0, 0}, {0, 0, 0}, @@ -911,65 +969,112 @@ static pin_fuse_columns pal20r8pinfusecolumns[] = { {22, 7, 6}, {23, 3, 2}}; -static pin_fuse_columns _82s153pinfusecolumns[] = { - {1, 0, 0}, - {2, 0, 0}, - {3, 0, 0}, - {4, 0, 0}, - {5, 0, 0}, - {6, 0, 0}, - {7, 0, 0}, - {8, 0, 0}, - {9, 0, 0}, - {11, 0, 0}, - {12, 0, 0}, - {13, 0, 0}, - {14, 0, 0}, - {15, 0, 0}, - {16, 0, 0}, - {17, 0, 0}, - {18, 0, 0}, - {19, 0, 0}}; +static pin_fuse_columns pal20x4pinfusecolumns[] = { + {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 pls153pinfusecolumns[] = { - {1, 1, 0}, - {2, 3, 2}, - {3, 5, 4}, - {4, 7, 6}, - {5, 9, 8}, - {6, 11, 10}, - {7, 13, 12}, - {8, 15, 14}, - {9, 17, 16}, - {11, 19, 18}, - {12, 21, 20}, - {13, 23, 22}, - {14, 25, 24}, - {15, 27, 26}, - {16, 29, 28}, - {17, 31, 30}, - {18, 33, 32}, - {19, 35, 34}}; +static pin_fuse_columns pal20x8pinfusecolumns[] = { + {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 pal20x10pinfusecolumns[] = { + {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 _82s153_pls153pinfusecolumns[] = { + {1, 1, 0}, + {2, 3, 2}, + {3, 5, 4}, + {4, 7, 6}, + {5, 9, 8}, + {6, 11, 10}, + {7, 13, 12}, + {8, 15, 14}, + {9, 17, 16}, + {11, 19, 18}, + {12, 21, 20}, + {13, 23, 22}, + {14, 25, 24}, + {15, 27, 26}, + {16, 29, 28}, + {17, 31, 30}, + {18, 33, 32}, + {19, 35, 34}}; static pin_fuse_columns ck2605pinfusecolumns[] = { - {1, 1, 0}, - {2, 3, 2}, - {3, 5, 4}, - {4, 7, 6}, - {5, 9, 8}, - {6, 11, 10}, - {7, 13, 12}, - {8, 15, 14}, - {9, 17, 16}, - {11, 19, 18}, - {12, 21, 20}, - {13, 23, 22}, - {14, 25, 24}, - {15, 27, 26}, - {16, 29, 28}, - {17, 31, 30}, - {18, 33, 32}, - {19, 35, 34}}; + {1, 1, 0}, + {2, 3, 2}, + {3, 5, 4}, + {4, 7, 6}, + {5, 9, 8}, + {6, 11, 10}, + {7, 13, 12}, + {8, 15, 14}, + {9, 17, 16}, + {11, 19, 18}, + {12, 21, 20}, + {13, 23, 22}, + {14, 25, 24}, + {15, 27, 26}, + {16, 29, 28}, + {17, 31, 30}, + {18, 33, 32}, + {19, 35, 34}}; static pal_data paldata[] = { {"PAL10L8", @@ -1065,8 +1170,14 @@ static pal_data paldata[] = { NULL, NULL}, /*{"PAL16RA8", NULL, 0, NULL, 0, NULL, NULL, NULL, NULL}, - {"PAL16V8R", NULL, 0, NULL, 0, NULL, NULL, NULL, NULL}, - {"PALCE16V8", NULL, 0, NULL, 0, NULL, NULL, NULL, NULL},*/ + {"PAL16V8R", NULL, 0, NULL, 0, NULL, NULL, NULL, NULL},*/ + {"PALCE16V8", + palce16v8pinfuserows, ARRAY_LEN(palce16v8pinfuserows), + palce16v8pinfusecolumns, ARRAY_LEN(palce16v8pinfusecolumns), + print_palce16v8_product_terms, + config_palce16v8_pins, + NULL, + NULL}, {"GAL16V8", gal16v8pinfuserows, ARRAY_LEN(gal16v8pinfuserows), gal16v8pinfusecolumns, ARRAY_LEN(gal16v8pinfusecolumns), @@ -1081,7 +1192,7 @@ static pal_data paldata[] = { config_peel18cv8_pins, NULL, get_peel18cv8_pin_fuse_state}, - {"GAL18V10", + {"GAL18V10", gal18v10pinfuserows, ARRAY_LEN(gal18v10pinfuserows), gal18v10pinfusecolumns, ARRAY_LEN(gal18v10pinfusecolumns), print_gal18v10_product_terms, @@ -1122,29 +1233,47 @@ static pal_data paldata[] = { print_pal20r8_product_terms, config_pal20r8_pins, NULL, - NULL},/* - {"PAL20X4", NULL, 0, NULL, 0, NULL, NULL, NULL, NULL}, - {"PAL20X8", NULL, 0, NULL, 0, NULL, NULL, NULL, NULL}, - {"PAL20X10", NULL, 0, NULL, 0, NULL, NULL, NULL, NULL}, - {"PAL22V10", NULL, 0, NULL, 0, NULL, NULL, NULL, NULL}, - {"GAL20V8A", NULL, 0, NULL, 0, NULL, NULL, NULL, NULL}, - {"GAL22V10", NULL, 0, NULL, 0, NULL, NULL, NULL, NULL}, - {"PLS100", NULL, 0, NULL, 0, NULL, NULL, NULL, NULL},*/ + NULL}, + {"PAL20X4", + pal20x4pinfuserows, ARRAY_LEN(pal20x4pinfuserows), + pal20x4pinfusecolumns, ARRAY_LEN(pal20x4pinfusecolumns), + print_pal20x4_product_terms, + config_pal20x4_pins, + NULL, + NULL}, + {"PAL20X8", + pal20x8pinfuserows, ARRAY_LEN(pal20x8pinfuserows), + pal20x8pinfusecolumns, ARRAY_LEN(pal20x8pinfusecolumns), + print_pal20x8_product_terms, + config_pal20x8_pins, + NULL, + NULL}, + {"PAL20X10", + pal20x10pinfuserows, ARRAY_LEN(pal20x10pinfuserows), + pal20x10pinfusecolumns, ARRAY_LEN(pal20x10pinfusecolumns), + print_pal20x10_product_terms, + config_pal20x10_pins, + NULL, + NULL}, + /*{"PAL22V10", NULL, 0, NULL, 0, NULL, NULL, NULL, NULL}, + {"GAL20V8A", NULL, 0, NULL, 0, NULL, NULL, NULL, NULL}, + {"GAL22V10", NULL, 0, NULL, 0, NULL, NULL, NULL, NULL}, + {"PLS100", NULL, 0, NULL, 0, NULL, NULL, NULL, NULL},*/ {"82S153", - _82s153pinfuserows, ARRAY_LEN(_82s153pinfuserows), - _82s153pinfusecolumns, ARRAY_LEN(_82s153pinfusecolumns), - print_82s153_product_terms, - config_82s153_pins, + _82s153_pls153pinfuserows, ARRAY_LEN(_82s153_pls153pinfuserows), + _82s153_pls153pinfusecolumns, ARRAY_LEN(_82s153_pls153pinfusecolumns), + print_82s153_pls153_product_terms, + config_82s153_pls153_pins, NULL, NULL}, {"PLS153", - pls153pinfuserows, ARRAY_LEN(pls153pinfuserows), - pls153pinfusecolumns, ARRAY_LEN(pls153pinfusecolumns), - print_pls153_product_terms, - config_pls153_pins, + _82s153_pls153pinfuserows, ARRAY_LEN(_82s153_pls153pinfuserows), + _82s153_pls153pinfusecolumns, ARRAY_LEN(_82s153_pls153pinfusecolumns), + print_82s153_pls153_product_terms, + config_82s153_pls153_pins, NULL, NULL}, - {"CK2605", + {"CK2605", ck2605pinfuserows, ARRAY_LEN(ck2605pinfuserows), ck2605pinfusecolumns, ARRAY_LEN(ck2605pinfusecolumns), print_ck2605_product_terms, @@ -2004,6 +2133,20 @@ static void print_pal16r8_product_terms(const pal_data* pal, const jed_data* jed +/*------------------------------------------------- + print_palce16v8_product_terms - prints the product + terms for a PALCE16V8 +-------------------------------------------------*/ + +static void print_palce16v8_product_terms(const pal_data* pal, const jed_data* jed) +{ + fprintf(stderr, "Printing product terms for PALCE16V8 not supported!\n"); + + /*print_product_terms(pal, jed);*/ +} + + + /*------------------------------------------------- print_gal16v8_product_terms - prints the product terms for a GAL16V8 @@ -2149,23 +2292,47 @@ static void print_pal20r8_product_terms(const pal_data* pal, const jed_data* jed /*------------------------------------------------- - print_82s153_product_terms - prints the product - terms for a 82S153 + print_pal20x4_product_terms - prints the product + terms for a PAL20X4 -------------------------------------------------*/ -static void print_82s153_product_terms(const pal_data* pal, const jed_data* jed) +static void print_pal20x4_product_terms(const pal_data* pal, const jed_data* jed) { - fprintf(stderr, "Print of product terms not supported for this device\n"); + print_product_terms(pal, jed); } /*------------------------------------------------- - print_pls153_product_terms - prints the product - terms for a PLS153 + print_pal20x8_product_terms - prints the product + terms for a PAL20X8 -------------------------------------------------*/ -static void print_pls153_product_terms(const pal_data* pal, const jed_data* jed) +static void print_pal20x8_product_terms(const pal_data* pal, const jed_data* jed) +{ + print_product_terms(pal, jed); +} + + + +/*------------------------------------------------- + print_pal20x10_product_terms - prints the product + terms for a PAL20X10 +-------------------------------------------------*/ + +static void print_pal20x10_product_terms(const pal_data* pal, const jed_data* jed) +{ + print_product_terms(pal, jed); +} + + + +/*------------------------------------------------- + print_82s153_pls153_product_terms - prints the product + terms for a 82S153/PLS153 +-------------------------------------------------*/ + +static void print_82s153_pls153_product_terms(const pal_data* pal, const jed_data* jed) { UINT16 index, columncount, flags, row, haveterms, or_column, fuserow; char buffer[200]; @@ -2180,7 +2347,7 @@ static void print_pls153_product_terms(const pal_data* pal, const jed_data* jed) printf("Equations:\n\n"); for (index = 0; index < outputpinscount; ++index) - { + { flags = outputpins[index].flags; indent = 0; @@ -2196,51 +2363,51 @@ static void print_pls153_product_terms(const pal_data* pal, const jed_data* jed) printf("%s", buffer); - haveterms = 0; + haveterms = 0; indent += strlen(buffer); fuse_rows = find_fuse_rows(pal, outputpins[index].pin); - fuserow = 0; + fuserow = 0; - if (outputpins[index].pin != 9) - { - or_column = 19 - outputpins[index].pin; - } - else - { - or_column = 9; - } + if (outputpins[index].pin != 9) + { + or_column = 19 - outputpins[index].pin; + } + else + { + or_column = 9; + } - for (row = 0; row < 32; ++row) - { - if (!jed_get_fuse(jed, fuserow + columncount + or_column)) - { - generate_product_terms(pal, jed, fuserow, buffer); + for (row = 0; row < 32; ++row) + { + if (!jed_get_fuse(jed, fuserow + columncount + or_column)) + { + generate_product_terms(pal, jed, fuserow, buffer); - if (strlen(buffer) > 0) - { - if (haveterms) - { - printf(" +\n"); + if (strlen(buffer) > 0) + { + if (haveterms) + { + printf(" +\n"); - for (indentindex = 0; indentindex < indent; ++indentindex) - { - printf(" "); - } - } - else - { - haveterms = 1; - } + for (indentindex = 0; indentindex < indent; ++indentindex) + { + printf(" "); + } + } + else + { + haveterms = 1; + } - printf("%s", buffer); - } - } + printf("%s", buffer); + } + } - fuserow += (columncount + 10); - } - - printf("\n"); + fuserow += (columncount + 10); + } + + printf("\n"); /* output enable equations */ @@ -2258,7 +2425,7 @@ static void print_pls153_product_terms(const pal_data* pal, const jed_data* jed) } printf("\n"); - } + } } @@ -2283,7 +2450,7 @@ static void print_ck2605_product_terms(const pal_data* pal, const jed_data* jed) printf("Equations:\n\n"); for (index = 0; index < outputpinscount; ++index) - { + { flags = outputpins[index].flags; indent = 0; @@ -2299,51 +2466,51 @@ static void print_ck2605_product_terms(const pal_data* pal, const jed_data* jed) printf("%s", buffer); - haveterms = 0; + haveterms = 0; indent += strlen(buffer); fuse_rows = find_fuse_rows(pal, outputpins[index].pin); - fuserow = 0; + fuserow = 0; - if (outputpins[index].pin != 9) - { - or_column = 19 - outputpins[index].pin; - } - else - { - or_column = 9; - } + if (outputpins[index].pin != 9) + { + or_column = 19 - outputpins[index].pin; + } + else + { + or_column = 9; + } - for (row = 0; row < 16; ++row) - { - if (!jed_get_fuse(jed, fuserow + columncount + or_column)) - { - generate_product_terms(pal, jed, fuserow, buffer); + for (row = 0; row < 16; ++row) + { + if (!jed_get_fuse(jed, fuserow + columncount + or_column)) + { + generate_product_terms(pal, jed, fuserow, buffer); - if (strlen(buffer) > 0) - { - if (haveterms) - { - printf(" +\n"); + if (strlen(buffer) > 0) + { + if (haveterms) + { + printf(" +\n"); - for (indentindex = 0; indentindex < indent; ++indentindex) - { - printf(" "); - } - } - else - { - haveterms = 1; - } + for (indentindex = 0; indentindex < indent; ++indentindex) + { + printf(" "); + } + } + else + { + haveterms = 1; + } - printf("%s", buffer); - } - } + printf("%s", buffer); + } + } - fuserow += (columncount + 10); - } - - printf("\n"); + fuserow += (columncount + 10); + } + + printf("\n"); /* output enable equations */ @@ -2361,7 +2528,7 @@ static void print_ck2605_product_terms(const pal_data* pal, const jed_data* jed) } printf("\n"); - } + } } @@ -2710,6 +2877,70 @@ static void config_pal16r8_pins(const pal_data* pal, const jed_data* jed) +/*------------------------------------------------- + config_palce16v8_pins - configures the pins for + a PALCE16V8 +-------------------------------------------------*/ + +static void config_palce16v8_pins(const pal_data* pal, const jed_data* jed) +{ + typedef struct _output_logic_macrocell output_logic_macrocell; + struct _output_logic_macrocell + { + UINT16 pin; + UINT16 sl0_fuse; /* registers allowed */ + UINT16 sl1_fuse; /* output polarity 0 - low, 1 - high */ + }; + + static output_logic_macrocell macrocells[] = { + {12, 2127, 2055}, + {13, 2126, 2054}, + {14, 2125, 2053}, + {15, 2124, 2052}, + {16, 2123, 2051}, + {17, 2122, 2050}, + {18, 2121, 2049}, + {19, 2120, 2048}}; + UINT16 sg0 = 2192; /* guessing on fuse here */ + UINT16 sg1 = 2193; /* guessing on fuse here */ + UINT16 index; + + for (index = 0; index < ARRAY_LEN(macrocells); ++index) + { + if (jed_get_fuse(jed, sg0)) + { + /* Device uses no registers */ + + if (jed_get_fuse(jed, sg1)) + { + /* Combinatorial I/O */ + } + else + { + /* Combinatorial Output or Input */ + } + } + else + { + /* Device uses registers */ + + if (jed_get_fuse(jed, sg1)) + { + } + else + { + fprintf(stderr, "Unknown configuration type!\n"); + } + } + } + + /* 2056 - 2119 are the 64 bit signature fuses */ + + fprintf(stderr, "Configuring product terms for PALCE16V8 not supported!\n"); +} + + + /*------------------------------------------------- config_gal16v8_pins - configures the pins for a GAL16V8 @@ -3402,23 +3633,87 @@ static void config_pal20r8_pins(const pal_data* pal, const jed_data* jed) /*------------------------------------------------- - config_82s153_pins - configures the pins for - a 82S153 + config_pal20x4_pins - configures the pins for + a PAL20X4 -------------------------------------------------*/ -static void config_82s153_pins(const pal_data* pal, const jed_data* jed) +static void config_pal20x4_pins(const pal_data* pal, const jed_data* jed) { - fprintf(stderr, "Config not supported for this device\n"); + static UINT16 input_pins[] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23}; + static pin_output_config output_pins[] = { + {14, OUTPUT_ACTIVELOW | OUTPUT_COMBINATORIAL | OUTPUT_FEEDBACK_OUTPUT}, + {15, OUTPUT_ACTIVELOW | OUTPUT_COMBINATORIAL | OUTPUT_FEEDBACK_OUTPUT}, + {16, OUTPUT_ACTIVELOW | OUTPUT_COMBINATORIAL | OUTPUT_FEEDBACK_OUTPUT}, + {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_COMBINATORIAL | OUTPUT_FEEDBACK_OUTPUT}, + {22, OUTPUT_ACTIVELOW | OUTPUT_COMBINATORIAL | OUTPUT_FEEDBACK_OUTPUT}, + {23, OUTPUT_ACTIVELOW | OUTPUT_COMBINATORIAL | OUTPUT_FEEDBACK_OUTPUT}}; + + set_input_pins(input_pins, ARRAY_LEN(input_pins)); + set_output_pins(output_pins, ARRAY_LEN(output_pins)); +} + +/*------------------------------------------------- + config_pal20x10_pins - configures the pins for + a PAL20X8 +-------------------------------------------------*/ + +static void config_pal20x8_pins(const pal_data* pal, const jed_data* jed) +{ + static UINT16 input_pins[] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23}; + static pin_output_config output_pins[] = { + {14, OUTPUT_ACTIVELOW | OUTPUT_COMBINATORIAL | OUTPUT_FEEDBACK_OUTPUT}, + {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_COMBINATORIAL | OUTPUT_FEEDBACK_OUTPUT}}; + + set_input_pins(input_pins, ARRAY_LEN(input_pins)); + set_output_pins(output_pins, ARRAY_LEN(output_pins)); } /*------------------------------------------------- - config_pls153_pins - configures the pins for - a PLS153 + config_pal20x10_pins - configures the pins for + a PAL20X10 -------------------------------------------------*/ -static void config_pls153_pins(const pal_data* pal, const jed_data* jed) +static void config_pal20x10_pins(const pal_data* pal, const jed_data* jed) +{ + static UINT16 input_pins[] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 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_LEN(input_pins)); + set_output_pins(output_pins, ARRAY_LEN(output_pins)); +} + + + +/*------------------------------------------------- + config_82s153_pls153_pins - configures the pins for + a 82S153/PLS153 +-------------------------------------------------*/ + +static void config_82s153_pls153_pins(const pal_data* pal, const jed_data* jed) { static UINT16 input_pins[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19}; pin_output_config output_pins[10]; @@ -3426,12 +3721,12 @@ static void config_pls153_pins(const pal_data* pal, const jed_data* jed) output_pin_count = 0; - for (index = 0; index < pal->pinfuserowscount; ++index) - { - if (does_output_enable_fuse_row_allow_output(pal, jed, pal->pinfuserows[index].fuserowoutputenable)) - { - output_pins[output_pin_count].pin = pal->pinfuserows[index].pin; - output_pins[output_pin_count].flags = OUTPUT_COMBINATORIAL | OUTPUT_FEEDBACK_OUTPUT; + for (index = 0; index < pal->pinfuserowscount; ++index) + { + if (does_output_enable_fuse_row_allow_output(pal, jed, pal->pinfuserows[index].fuserowoutputenable)) + { + output_pins[output_pin_count].pin = pal->pinfuserows[index].pin; + output_pins[output_pin_count].flags = OUTPUT_COMBINATORIAL | OUTPUT_FEEDBACK_OUTPUT; if (jed_get_fuse(jed, 1832 + (9 - index))) { @@ -3442,9 +3737,9 @@ static void config_pls153_pins(const pal_data* pal, const jed_data* jed) output_pins[output_pin_count].flags |= OUTPUT_ACTIVEHIGH; } - ++output_pin_count; - } - } + ++output_pin_count; + } + } set_input_pins(input_pins, ARRAY_LEN(input_pins)); set_output_pins(output_pins, output_pin_count); @@ -3465,12 +3760,12 @@ static void config_ck2605_pins(const pal_data* pal, const jed_data* jed) output_pin_count = 0; - for (index = 0; index < pal->pinfuserowscount; ++index) - { - if (does_output_enable_fuse_row_allow_output(pal, jed, pal->pinfuserows[index].fuserowoutputenable)) - { - output_pins[output_pin_count].pin = pal->pinfuserows[index].pin; - output_pins[output_pin_count].flags = OUTPUT_COMBINATORIAL | OUTPUT_FEEDBACK_OUTPUT; + for (index = 0; index < pal->pinfuserowscount; ++index) + { + if (does_output_enable_fuse_row_allow_output(pal, jed, pal->pinfuserows[index].fuserowoutputenable)) + { + output_pins[output_pin_count].pin = pal->pinfuserows[index].pin; + output_pins[output_pin_count].flags = OUTPUT_COMBINATORIAL | OUTPUT_FEEDBACK_OUTPUT; if (jed_get_fuse(jed, 1096 + (9 - index))) { @@ -3481,9 +3776,9 @@ static void config_ck2605_pins(const pal_data* pal, const jed_data* jed) output_pins[output_pin_count].flags |= OUTPUT_ACTIVEHIGH; } - ++output_pin_count; - } - } + ++output_pin_count; + } + } set_input_pins(input_pins, ARRAY_LEN(input_pins)); set_output_pins(output_pins, output_pin_count);