summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Vas Crabb <vas@vastheman.com>2019-12-17 13:58:52 +1100
committer Vas Crabb <vas@vastheman.com>2019-12-17 14:00:43 +1100
commite53b995a475a995420d19fe08aa3f70d74b404f6 (patch)
tree38a1e36e54ff3133cc226eba835aa81798cda525
parentd0d032606c2cd9aefc8f93269009f55df9fe3866 (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.cpp1
-rw-r--r--src/devices/machine/i8255.cpp6
-rw-r--r--src/mame/drivers/cabaret.cpp1
-rw-r--r--src/mame/drivers/cgang.cpp1
-rw-r--r--src/mame/drivers/fidel_cc1.cpp2
-rw-r--r--src/mame/drivers/fidel_cc10.cpp2
-rw-r--r--src/mame/drivers/fidel_elite.cpp2
-rw-r--r--src/mame/drivers/fidel_vcc.cpp2
-rw-r--r--src/mame/drivers/intellect02.cpp1
-rw-r--r--src/mame/drivers/kingdrby.cpp2
-rw-r--r--src/mame/drivers/rotaryf.cpp4
-rw-r--r--src/mame/drivers/rulechan.cpp1
-rw-r--r--src/mame/drivers/segae.cpp1
-rw-r--r--src/mame/drivers/subsino.cpp2
-rw-r--r--src/mame/drivers/suprloco.cpp1
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();