diff options
author | 2019-12-17 13:58:52 +1100 | |
---|---|---|
committer | 2019-12-17 14:00:43 +1100 | |
commit | e53b995a475a995420d19fe08aa3f70d74b404f6 (patch) | |
tree | 38a1e36e54ff3133cc226eba835aa81798cda525 | |
parent | d0d032606c2cd9aefc8f93269009f55df9fe3866 (diff) |
Revert "8255: missed one driver (nw)"
This reverts commit f115aa8c665fe6b531cf344e0956ff23e7043def.
Revert "8255: set default tristate to 0 (nw)"
This reverts commit 716d06341dba3ab9ee883ce82abe1d4fe8202b8b.
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.
-rw-r--r-- | src/devices/bus/s100/polyfdc.cpp | 1 | ||||
-rw-r--r-- | src/devices/machine/i8255.cpp | 6 | ||||
-rw-r--r-- | src/mame/drivers/cabaret.cpp | 1 | ||||
-rw-r--r-- | src/mame/drivers/cgang.cpp | 1 | ||||
-rw-r--r-- | src/mame/drivers/fidel_cc1.cpp | 2 | ||||
-rw-r--r-- | src/mame/drivers/fidel_cc10.cpp | 2 | ||||
-rw-r--r-- | src/mame/drivers/fidel_elite.cpp | 2 | ||||
-rw-r--r-- | src/mame/drivers/fidel_vcc.cpp | 2 | ||||
-rw-r--r-- | src/mame/drivers/intellect02.cpp | 1 | ||||
-rw-r--r-- | src/mame/drivers/kingdrby.cpp | 2 | ||||
-rw-r--r-- | src/mame/drivers/rotaryf.cpp | 4 | ||||
-rw-r--r-- | src/mame/drivers/rulechan.cpp | 1 | ||||
-rw-r--r-- | src/mame/drivers/segae.cpp | 1 | ||||
-rw-r--r-- | src/mame/drivers/subsino.cpp | 2 | ||||
-rw-r--r-- | src/mame/drivers/suprloco.cpp | 1 |
15 files changed, 26 insertions, 3 deletions
diff --git a/src/devices/bus/s100/polyfdc.cpp b/src/devices/bus/s100/polyfdc.cpp index 8f6d885302b..962424324e0 100644 --- a/src/devices/bus/s100/polyfdc.cpp +++ b/src/devices/bus/s100/polyfdc.cpp @@ -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); } diff --git a/src/devices/machine/i8255.cpp b/src/devices/machine/i8255.cpp index ffb8f503ce9..212eeda644f 100644 --- a/src/devices/machine/i8255.cpp +++ b/src/devices/machine/i8255.cpp @@ -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); } //------------------------------------------------- diff --git a/src/mame/drivers/cabaret.cpp b/src/mame/drivers/cabaret.cpp index 7ec5eacd779..126c9a7856c 100644 --- a/src/mame/drivers/cabaret.cpp +++ b/src/mame/drivers/cabaret.cpp @@ -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"); diff --git a/src/mame/drivers/cgang.cpp b/src/mame/drivers/cgang.cpp index cf5d3790ce8..2a5ac175cd7 100644 --- a/src/mame/drivers/cgang.cpp +++ b/src/mame/drivers/cgang.cpp @@ -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)); diff --git a/src/mame/drivers/fidel_cc1.cpp b/src/mame/drivers/fidel_cc1.cpp index 66eec8aeab2..3d9cfec2334 100644 --- a/src/mame/drivers/fidel_cc1.cpp +++ b/src/mame/drivers/fidel_cc1.cpp @@ -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); diff --git a/src/mame/drivers/fidel_cc10.cpp b/src/mame/drivers/fidel_cc10.cpp index 0e2fc2ec4c2..a7bb7e43860 100644 --- a/src/mame/drivers/fidel_cc10.cpp +++ b/src/mame/drivers/fidel_cc10.cpp @@ -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)); diff --git a/src/mame/drivers/fidel_elite.cpp b/src/mame/drivers/fidel_elite.cpp index beb2a6b6b3b..46ead41491d 100644 --- a/src/mame/drivers/fidel_elite.cpp +++ b/src/mame/drivers/fidel_elite.cpp @@ -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); diff --git a/src/mame/drivers/fidel_vcc.cpp b/src/mame/drivers/fidel_vcc.cpp index 430b58b8ee4..ddf9b772864 100644 --- a/src/mame/drivers/fidel_vcc.cpp +++ b/src/mame/drivers/fidel_vcc.cpp @@ -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)); diff --git a/src/mame/drivers/intellect02.cpp b/src/mame/drivers/intellect02.cpp index 7b83669c247..3a2b9f731f0 100644 --- a/src/mame/drivers/intellect02.cpp +++ b/src/mame/drivers/intellect02.cpp @@ -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); diff --git a/src/mame/drivers/kingdrby.cpp b/src/mame/drivers/kingdrby.cpp index 053027b9e25..e6039a808e6 100644 --- a/src/mame/drivers/kingdrby.cpp +++ b/src/mame/drivers/kingdrby.cpp @@ -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"); diff --git a/src/mame/drivers/rotaryf.cpp b/src/mame/drivers/rotaryf.cpp index df9bec07129..362f81b2388 100644 --- a/src/mame/drivers/rotaryf.cpp +++ b/src/mame/drivers/rotaryf.cpp @@ -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)); diff --git a/src/mame/drivers/rulechan.cpp b/src/mame/drivers/rulechan.cpp index 9dc2868130b..bcb87ddfc3c 100644 --- a/src/mame/drivers/rulechan.cpp +++ b/src/mame/drivers/rulechan.cpp @@ -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)); diff --git a/src/mame/drivers/segae.cpp b/src/mame/drivers/segae.cpp index 76a20aa5918..1ab6b3be2f9 100644 --- a/src/mame/drivers/segae.cpp +++ b/src/mame/drivers/segae.cpp @@ -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, diff --git a/src/mame/drivers/subsino.cpp b/src/mame/drivers/subsino.cpp index 629849a48e6..331eb20bde6 100644 --- a/src/mame/drivers/subsino.cpp +++ b/src/mame/drivers/subsino.cpp @@ -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); diff --git a/src/mame/drivers/suprloco.cpp b/src/mame/drivers/suprloco.cpp index 21dadda23b5..0125c1bab1b 100644 --- a/src/mame/drivers/suprloco.cpp +++ b/src/mame/drivers/suprloco.cpp @@ -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(); |