mirror of
https://github.com/holub/mame
synced 2025-04-23 08:49:55 +03:00
Revert "8255: missed one driver (nw)"
This reverts commitf115aa8c66
. Revert "8255: set default tristate to 0 (nw)" This reverts commit716d06341d
. 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:
parent
d0d032606c
commit
e53b995a47
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
|
@ -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");
|
||||
|
||||
|
@ -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));
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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));
|
||||
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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));
|
||||
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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");
|
||||
|
@ -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));
|
||||
|
@ -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));
|
||||
|
@ -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,
|
||||
|
@ -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);
|
||||
|
@ -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();
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user