Revert "8255: missed one driver (nw)"

This reverts commit f115aa8c66.

Revert "8255: set default tristate to 0 (nw)"

This reverts commit 716d06341d.

This has been shown to break bw2, and it's very likely it breaks other
computers in subtle ways or in ways that are only noticeable when you
use a certain peripheral.  It's far too dangerous, particularly late in
a development cycle and with Christmas/new year coming.  You can't push
a change like this without checking every use of the device.

Please fix any drivers you subsequently modified to depend on the change.
This commit is contained in:
Vas Crabb 2019-12-17 13:58:52 +11:00
parent d0d032606c
commit e53b995a47
15 changed files with 26 additions and 3 deletions

View File

@ -121,4 +121,5 @@ void poly_fdc_device::device_add_mconfig(machine_config &config)
m_pio->out_pa_callback().set(FUNC(poly_fdc_device::pa_w));
m_pio->in_pb_callback().set(FUNC(poly_fdc_device::pb_r));
m_pio->out_pc_callback().set(FUNC(poly_fdc_device::pc_w));
m_pio->tri_pc_callback().set_constant(0xfe);
}

View File

@ -249,9 +249,9 @@ void i8255_device::device_resolve_objects()
m_out_pa_cb.resolve_safe();
m_out_pb_cb.resolve_safe();
m_out_pc_cb.resolve_safe();
m_tri_pa_cb.resolve_safe(0);
m_tri_pb_cb.resolve_safe(0);
m_tri_pc_cb.resolve_safe(0);
m_tri_pa_cb.resolve_safe(0xff);
m_tri_pb_cb.resolve_safe(0xff);
m_tri_pc_cb.resolve_safe(0xff);
}
//-------------------------------------------------

View File

@ -386,6 +386,7 @@ void cabaret_state::cabaret(machine_config &config)
i8255_device &ppi3(I8255(config, "ppi3"));
ppi3.out_pa_callback().set(FUNC(cabaret_state::nmi_and_coins_w));
ppi3.tri_pa_callback().set_constant(0xf0);
ppi3.in_pb_callback().set_ioport("DSW1");
ppi3.in_pc_callback().set_ioport("DSW2");

View File

@ -774,6 +774,7 @@ void cgang_state::cgang(machine_config &config)
m_ppi[1]->in_pb_callback().set(FUNC(cgang_state::ppi2_b_r));
m_ppi[1]->in_pc_callback().set_ioport("SW4").lshift(4);
m_ppi[1]->out_pc_callback().set(FUNC(cgang_state::ppi2_c_w));
m_ppi[1]->tri_pc_callback().set_constant(0);
I8255(config, m_ppi[2]); // 0x80: all = output
m_ppi[2]->out_pa_callback().set(FUNC(cgang_state::ppi3_a_w));

View File

@ -229,7 +229,9 @@ void cc1_state::cc1(machine_config &config)
I8255(config, m_ppi8255);
m_ppi8255->in_pa_callback().set(FUNC(cc1_state::ppi_porta_r));
m_ppi8255->out_pb_callback().set(FUNC(cc1_state::ppi_portb_w));
m_ppi8255->tri_pb_callback().set_constant(0);
m_ppi8255->out_pc_callback().set(FUNC(cc1_state::ppi_portc_w));
m_ppi8255->tri_pc_callback().set_constant(0);
TIMER(config, "delay").configure_generic(nullptr);

View File

@ -298,8 +298,10 @@ void ccx_state::acr(machine_config &config)
I8255(config, m_ppi8255);
m_ppi8255->out_pa_callback().set(FUNC(ccx_state::ppi_porta_w));
m_ppi8255->tri_pa_callback().set_constant(0);
m_ppi8255->in_pb_callback().set_constant(0);
m_ppi8255->out_pb_callback().set(FUNC(ccx_state::ppi_portb_w));
m_ppi8255->tri_pb_callback().set_constant(0);
m_ppi8255->in_pc_callback().set(FUNC(ccx_state::ppi_portc_r));
m_ppi8255->out_pc_callback().set(FUNC(ccx_state::ppi_portc_w));

View File

@ -469,8 +469,10 @@ void elite_state::eas(machine_config &config)
I8255(config, m_ppi8255); // port B: input, port A & C: output
m_ppi8255->out_pa_callback().set(FUNC(elite_state::ppi_porta_w));
m_ppi8255->tri_pa_callback().set_constant(0);
m_ppi8255->in_pb_callback().set(FUNC(elite_state::ppi_portb_r));
m_ppi8255->out_pc_callback().set(FUNC(elite_state::ppi_portc_w));
m_ppi8255->tri_pc_callback().set_constant(0);
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);

View File

@ -333,8 +333,10 @@ void vcc_state::vcc(machine_config &config)
I8255(config, m_ppi8255);
m_ppi8255->out_pa_callback().set(FUNC(vcc_state::ppi_porta_w));
m_ppi8255->tri_pa_callback().set_constant(0);
m_ppi8255->in_pb_callback().set(FUNC(vcc_state::ppi_portb_r));
m_ppi8255->out_pb_callback().set(FUNC(vcc_state::ppi_portb_w));
m_ppi8255->tri_pb_callback().set_constant(0);
m_ppi8255->in_pc_callback().set(FUNC(vcc_state::ppi_portc_r));
m_ppi8255->out_pc_callback().set(FUNC(vcc_state::ppi_portc_w));

View File

@ -239,6 +239,7 @@ void intel02_state::intel02(machine_config &config)
I8255(config, m_ppi8255);
m_ppi8255->in_pa_callback().set(FUNC(intel02_state::input_r));
m_ppi8255->out_pb_callback().set(FUNC(intel02_state::digit_w));
m_ppi8255->tri_pb_callback().set_constant(0);
m_ppi8255->out_pc_callback().set(FUNC(intel02_state::control_w));
m_ppi8255->tri_pc_callback().set_constant(0x80);

View File

@ -995,6 +995,7 @@ void kingdrby_state::kingdrby(machine_config &config)
// 6000-6003 PPI group modes 0/0 - B & C (lower) as input, A & C (upper) as output.
I8255A(config, m_ppi[1]);
m_ppi[1]->out_pa_callback().set(FUNC(kingdrby_state::sound_cmd_w));
m_ppi[1]->tri_pa_callback().set_constant(0x7f);
m_ppi[1]->in_pb_callback().set(FUNC(kingdrby_state::key_matrix_r));
m_ppi[1]->in_pc_callback().set(FUNC(kingdrby_state::input_mux_r));
m_ppi[1]->out_pc_callback().set(FUNC(kingdrby_state::outport2_w));
@ -1031,6 +1032,7 @@ void kingdrby_state::kingdrbb(machine_config &config)
/* C as input, (all) as output */
m_ppi[0]->out_pa_callback().set(FUNC(kingdrby_state::sound_cmd_w));
m_ppi[0]->in_pa_callback().set_constant(0);
m_ppi[0]->tri_pa_callback().set_constant(0x7f);
m_ppi[0]->in_pb_callback().set_ioport("IN0");
m_ppi[0]->out_pb_callback().set(FUNC(kingdrby_state::outportb_w));
m_ppi[0]->in_pc_callback().set_ioport("IN1");

View File

@ -123,6 +123,9 @@ WRITE8_MEMBER(rotaryf_state::porta_w)
WRITE8_MEMBER(rotaryf_state::portc_w)
{
if (data == 0xff)
return;
machine().bookkeeping().coin_counter_w(0, BIT(data, 1));
// bit 5 set when game starts, but isn't coin lockout?
@ -272,6 +275,7 @@ void rotaryf_state::rotaryf(machine_config &config)
ppi.out_pa_callback().set(FUNC(rotaryf_state::porta_w));
ppi.in_pb_callback().set(FUNC(rotaryf_state::portb_r));
ppi.out_pc_callback().set(FUNC(rotaryf_state::portc_w));
//ppi.tri_pc_callback().set_constant(0);
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));

View File

@ -727,6 +727,7 @@ void rulechan_state::rulechan(machine_config &config)
ppi1.in_pa_callback().set(FUNC(rulechan_state::port30_r));
ppi1.out_pb_callback().set(FUNC(rulechan_state::port31_w)); // Must read back as 0x00 at power-up.
ppi1.out_pc_callback().set(FUNC(rulechan_state::port32_w));
ppi1.tri_pc_callback().set_constant(0xf0); // Motor off at startup
/* video hardware */
v9938_device &v9938(V9938(config, "v9938", VID_CLOCK));

View File

@ -887,6 +887,7 @@ void systeme_state::systeme(machine_config &config)
I8255(config, m_ppi);
m_ppi->out_pb_callback().set(FUNC(systeme_state::coin_counters_write));
m_ppi->tri_pb_callback().set_constant(0);
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
screen.set_raw(XTAL(10'738'635)/2,

View File

@ -2696,7 +2696,9 @@ void subsino_state::victor21(machine_config &config)
i8255_device &ppi(I8255A(config, "ppi"));
ppi.out_pa_callback().set(FUNC(subsino_state::out_a_w));
ppi.tri_pa_callback().set_constant(0);
ppi.out_pb_callback().set(FUNC(subsino_state::out_b_w));
ppi.tri_pb_callback().set_constant(0);
ppi.in_pc_callback().set_ioport("INC");
TICKET_DISPENSER(config, m_hopper, attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW);

View File

@ -178,6 +178,7 @@ void suprloco_state::suprloco(machine_config &config)
i8255_device &ppi(I8255A(config, "ppi"));
ppi.out_pb_callback().set(FUNC(suprloco_state::control_w));
ppi.tri_pb_callback().set_constant(0);
ppi.out_pc_callback().set_output("lamp0").bit(0).invert(); // set by 8255 bit mode when no credits inserted
ppi.out_pc_callback().append_inputline(m_audiocpu, INPUT_LINE_NMI).bit(7).invert();