mirror of
https://github.com/holub/mame
synced 2025-07-02 16:49:22 +03:00
Added support for the AMPAL18P8
This commit is contained in:
parent
a18fb2ccb1
commit
ee9f7d9655
@ -57,11 +57,13 @@
|
||||
|
||||
18CV8 = QP20 QF2696
|
||||
|
||||
AMPAL18P8 = QP20 QF2600
|
||||
|
||||
EPL10P8 = QP20
|
||||
EPL12P6 = QP20
|
||||
EPL14P4 = QP20
|
||||
EPL16P2 = QP20
|
||||
EPL16P8 = QP20
|
||||
EPL16P8 = QP20 QF2072
|
||||
EPL16RP8 = QP20
|
||||
EPL16RP6 = QP20
|
||||
EPL16RP4 = QP20
|
||||
@ -272,6 +274,7 @@ 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_ampal18p8_product_terms(const pal_data* pal, const jed_data* jed);
|
||||
static void print_gal18v10_product_terms(const pal_data* pal, const jed_data* jed);
|
||||
static void print_pal20l8_product_terms(const pal_data* pal, const jed_data* jed);
|
||||
static void print_pal20l10_product_terms(const pal_data* pal, const jed_data* jed);
|
||||
@ -332,6 +335,7 @@ 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_ampal18p8_pins(const pal_data* pal, const jed_data* jed);
|
||||
static void config_gal18v10_pins(const pal_data* pal, const jed_data* jed);
|
||||
static void config_pal20l8_pins(const pal_data* pal, const jed_data* jed);
|
||||
static void config_pal20l10_pins(const pal_data* pal, const jed_data* jed);
|
||||
@ -530,6 +534,16 @@ static pin_fuse_rows peel18cv8pinfuserows[] = {
|
||||
{18, 2340, 288, 540},
|
||||
{19, 2304, 0, 252}};
|
||||
|
||||
static pin_fuse_rows ampal18p8pinfuserows[] = {
|
||||
{12, 2268, 2304, 2556},
|
||||
{13, 1944, 1980, 2232},
|
||||
{14, 1620, 1656, 1908},
|
||||
{15, 1296, 1332, 1584},
|
||||
{16, 972, 1008, 1260},
|
||||
{17, 648, 684, 936},
|
||||
{18, 324, 360, 612},
|
||||
{19, 0, 36, 288}};
|
||||
|
||||
static pin_fuse_rows gal18v10pinfuserows[] = {
|
||||
{9, 3096, 3132, 3384},
|
||||
{11, 2772, 2808, 3060},
|
||||
@ -1172,6 +1186,26 @@ static pin_fuse_columns peel18cv8pinfusecolumns[] = {
|
||||
{18, 11, 10},
|
||||
{19, 7, 6}};
|
||||
|
||||
static pin_fuse_columns ampal18p8pinfusecolumns[] = {
|
||||
{1, 3, 2},
|
||||
{2, 1, 0},
|
||||
{3, 5, 4},
|
||||
{4, 9, 8},
|
||||
{5, 13, 12},
|
||||
{6, 17, 16},
|
||||
{7, 21, 20},
|
||||
{8, 25, 24},
|
||||
{9, 29, 28},
|
||||
{11, 31, 30},
|
||||
{12, 35, 34},
|
||||
{13, 27, 26},
|
||||
{14, 23, 22},
|
||||
{15, 19, 18},
|
||||
{16, 15, 14},
|
||||
{17, 11, 10},
|
||||
{18, 7, 6},
|
||||
{19, 33, 32}};
|
||||
|
||||
static pin_fuse_columns gal18v10pinfusecolumns[] = {
|
||||
{1, 1, 0},
|
||||
{2, 5, 4},
|
||||
@ -1985,6 +2019,13 @@ static pal_data paldata[] = {
|
||||
config_peel18cv8_pins,
|
||||
nullptr,
|
||||
get_peel18cv8_pin_fuse_state},
|
||||
{"AMPAL18P8", 2600,
|
||||
ampal18p8pinfuserows, ARRAY_LENGTH(ampal18p8pinfuserows),
|
||||
ampal18p8pinfusecolumns, ARRAY_LENGTH(ampal18p8pinfusecolumns),
|
||||
print_ampal18p8_product_terms,
|
||||
config_ampal18p8_pins,
|
||||
nullptr,
|
||||
nullptr},
|
||||
{"GAL18V10", 3540,
|
||||
gal18v10pinfuserows, ARRAY_LENGTH(gal18v10pinfuserows),
|
||||
gal18v10pinfusecolumns, ARRAY_LENGTH(gal18v10pinfusecolumns),
|
||||
@ -2079,57 +2120,57 @@ static pal_data paldata[] = {
|
||||
epl10p8pinfusecolumns, ARRAY_LENGTH(epl10p8pinfusecolumns),
|
||||
print_epl10p8_product_terms,
|
||||
config_epl10p8_pins,
|
||||
NULL,
|
||||
NULL},
|
||||
nullptr,
|
||||
nullptr},
|
||||
{"EPL12P6", 786,
|
||||
epl12p6pinfuserows, ARRAY_LENGTH(epl12p6pinfuserows),
|
||||
epl12p6pinfusecolumns, ARRAY_LENGTH(epl12p6pinfusecolumns),
|
||||
print_epl12p6_product_terms,
|
||||
config_epl12p6_pins,
|
||||
NULL,
|
||||
NULL},
|
||||
nullptr,
|
||||
nullptr},
|
||||
{"EPL14P4", 908,
|
||||
epl14p4pinfuserows, ARRAY_LENGTH(epl14p4pinfuserows),
|
||||
epl14p4pinfusecolumns, ARRAY_LENGTH(epl14p4pinfusecolumns),
|
||||
print_epl14p4_product_terms,
|
||||
config_epl14p4_pins,
|
||||
NULL,
|
||||
NULL},
|
||||
nullptr,
|
||||
nullptr},
|
||||
{"EPL16P2", 1030,
|
||||
epl16p2pinfuserows, ARRAY_LENGTH(epl16p2pinfuserows),
|
||||
epl16p2pinfusecolumns, ARRAY_LENGTH(epl16p2pinfusecolumns),
|
||||
print_epl16p2_product_terms,
|
||||
config_epl16p2_pins,
|
||||
NULL,
|
||||
NULL},
|
||||
nullptr,
|
||||
nullptr},
|
||||
{"EPL16P8", 2072,
|
||||
epl16p8pinfuserows, ARRAY_LENGTH(epl16p8pinfuserows),
|
||||
epl16p8pinfusecolumns, ARRAY_LENGTH(epl16p8pinfusecolumns),
|
||||
print_epl16p8_product_terms,
|
||||
config_epl16p8_pins,
|
||||
NULL,
|
||||
NULL},
|
||||
nullptr,
|
||||
nullptr},
|
||||
{"EPL16RP8", 2072,
|
||||
epl16rp8pinfuserows, ARRAY_LENGTH(epl16rp8pinfuserows),
|
||||
epl16rp8pinfusecolumns, ARRAY_LENGTH(epl16rp8pinfusecolumns),
|
||||
print_epl16rp8_product_terms,
|
||||
config_epl16rp8_pins,
|
||||
NULL,
|
||||
NULL},
|
||||
nullptr,
|
||||
nullptr},
|
||||
{"EPL16RP6", 2072,
|
||||
epl16rp6pinfuserows, ARRAY_LENGTH(epl16rp6pinfuserows),
|
||||
epl16rp6pinfusecolumns, ARRAY_LENGTH(epl16rp6pinfusecolumns),
|
||||
print_epl16rp6_product_terms,
|
||||
config_epl16rp6_pins,
|
||||
NULL,
|
||||
NULL},
|
||||
nullptr,
|
||||
nullptr},
|
||||
{"EPL16RP4", 2072,
|
||||
epl16rp4pinfuserows, ARRAY_LENGTH(epl16rp4pinfuserows),
|
||||
epl16rp4pinfusecolumns, ARRAY_LENGTH(epl16rp4pinfusecolumns),
|
||||
print_epl16rp4_product_terms,
|
||||
config_epl16rp4_pins,
|
||||
NULL,
|
||||
NULL},
|
||||
nullptr,
|
||||
nullptr},
|
||||
#endif
|
||||
{"PAL10P8", 328,
|
||||
pal10p8pinfuserows, ARRAY_LENGTH(pal10p8pinfuserows),
|
||||
@ -3408,6 +3449,17 @@ static void print_peel18cv8_product_terms(const pal_data* pal, const jed_data* j
|
||||
|
||||
|
||||
|
||||
/*-------------------------------------------------
|
||||
print_ampal18p8_product_terms - prints the product
|
||||
terms for an AMPAL18P8
|
||||
-------------------------------------------------*/
|
||||
|
||||
static void print_ampal18p8_product_terms(const pal_data* pal, const jed_data* jed)
|
||||
{
|
||||
print_product_terms(pal, jed);
|
||||
}
|
||||
|
||||
|
||||
/*-------------------------------------------------
|
||||
print_gal18v10_product_terms - prints the product
|
||||
terms for a GAL18V10
|
||||
@ -5238,6 +5290,46 @@ static void config_peel18cv8_pins(const pal_data* pal, const jed_data* jed)
|
||||
|
||||
|
||||
|
||||
/*-------------------------------------------------
|
||||
config_ampal18p8_pins - configures the pins
|
||||
for an AMPAL18P8
|
||||
-------------------------------------------------*/
|
||||
|
||||
static void config_ampal18p8_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[8];
|
||||
UINT16 index, output_pin_count;
|
||||
|
||||
set_input_pins(input_pins, ARRAY_LENGTH(input_pins));
|
||||
|
||||
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;
|
||||
|
||||
if (jed_get_fuse(jed, 2591 + (8 - index)))
|
||||
{
|
||||
output_pins[output_pin_count].flags |= OUTPUT_ACTIVEHIGH;
|
||||
}
|
||||
else
|
||||
{
|
||||
output_pins[output_pin_count].flags |= OUTPUT_ACTIVELOW;
|
||||
}
|
||||
|
||||
++output_pin_count;
|
||||
}
|
||||
}
|
||||
|
||||
set_output_pins(output_pins, output_pin_count);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*-------------------------------------------------
|
||||
config_gal18v10_pins - configures the pins
|
||||
for a GAL18V10
|
||||
|
Loading…
Reference in New Issue
Block a user