-i8255: Removed MCFG, nw

This commit is contained in:
mooglyguy 2018-09-03 20:48:47 +02:00
parent 21cca10414
commit 11fa365606
200 changed files with 2056 additions and 2070 deletions

View File

@ -52,16 +52,16 @@ INPUT_PORTS_END
//-------------------------------------------------
MACHINE_CONFIG_START(a2bus_agat7_ports_device::device_add_mconfig)
MCFG_DEVICE_ADD("d9", I8255, 0)
MCFG_I8255_OUT_PORTA_CB(WRITE8("cent_data_out", output_latch_device, bus_w))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, a2bus_agat7_ports_device, write_portb))
MCFG_I8255_IN_PORTC_CB(READ8(*this, a2bus_agat7_ports_device, read_portc))
I8255(config, m_d9);
m_d9->out_pa_callback().set("cent_data_out", FUNC(output_latch_device::bus_w));
m_d9->out_pb_callback().set(FUNC(a2bus_agat7_ports_device::write_portb));
m_d9->in_pc_callback().set(FUNC(a2bus_agat7_ports_device::read_portc));
MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer")
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(*this, a2bus_agat7_ports_device, write_centronics_busy))
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics")
MCFG_DEVICE_ADD("d10", I8251, 0)
I8251(config, "d10", 0);
MACHINE_CONFIG_END
//-------------------------------------------------

View File

@ -59,16 +59,16 @@ MACHINE_CONFIG_START(a2bus_agat840k_hle_device::device_add_mconfig)
MCFG_LEGACY_FLOPPY_CONFIG(agat840k_hle_floppy_interface)
MCFG_LEGACY_FLOPPY_IDX_CB(WRITELINE(*this, a2bus_agat840k_hle_device, index_1_w))
MCFG_DEVICE_ADD("d14", I8255, 0)
I8255(config, m_d14);
// PA not connected
MCFG_I8255_IN_PORTB_CB(READ8(*this, a2bus_agat840k_hle_device, d14_i_b)) // status signals from drive
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, a2bus_agat840k_hle_device, d14_o_c)) // control
m_d14->in_pb_callback().set(FUNC(a2bus_agat840k_hle_device::d14_i_b)); // status signals from drive
m_d14->out_pc_callback().set(FUNC(a2bus_agat840k_hle_device::d14_o_c)); // control
MCFG_DEVICE_ADD("d15", I8255, 0)
MCFG_I8255_IN_PORTA_CB(READ8(*this, a2bus_agat840k_hle_device, d15_i_a)) // read data
// MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, a2bus_agat840k_hle_device, d15_o_b)) // write data
MCFG_I8255_IN_PORTC_CB(READ8(*this, a2bus_agat840k_hle_device, d15_i_c))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, a2bus_agat840k_hle_device, d15_o_c))
I8255(config, m_d15);
m_d15->in_pa_callback().set(FUNC(a2bus_agat840k_hle_device::d15_i_a)); // read data
// m_d15->out_pb_callback().set(FUNC(a2bus_agat840k_hle_device::d15_o_b)); // write data
m_d15->in_pc_callback().set(FUNC(a2bus_agat840k_hle_device::d15_i_c));
m_d15->out_pc_callback().set(FUNC(a2bus_agat840k_hle_device::d15_o_c));
MACHINE_CONFIG_END
//-------------------------------------------------

View File

@ -159,10 +159,10 @@ void dmv_k220_device::device_reset()
//-------------------------------------------------
MACHINE_CONFIG_START(dmv_k220_device::device_add_mconfig)
MCFG_DEVICE_ADD("ppi8255", I8255, 0)
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, dmv_k220_device, porta_w))
MCFG_I8255_IN_PORTB_CB(IOPORT("SWITCH"))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, dmv_k220_device, portc_w))
I8255(config, m_ppi);
m_ppi->out_pa_callback().set(FUNC(dmv_k220_device::porta_w));
m_ppi->in_pb_callback().set_ioport("SWITCH");
m_ppi->out_pc_callback().set(FUNC(dmv_k220_device::portc_w));
MCFG_DEVICE_ADD("pit8253", PIT8253, 0)
MCFG_PIT8253_CLK0(XTAL(1'000'000)) // CLK1

View File

@ -438,11 +438,11 @@ MACHINE_CONFIG_START(ecb_grip21_device::device_add_mconfig)
// MCFG_MC6845_ADD(HD6345_TAG, HD6345, SCREEN_TAG, XTAL(16'000'000)/4)
MCFG_DEVICE_ADD(I8255A_TAG, I8255A, 0)
MCFG_I8255_IN_PORTA_CB(READ8(*this, ecb_grip21_device, ppi_pa_r))
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, ecb_grip21_device, ppi_pa_w))
MCFG_I8255_IN_PORTB_CB(READ8(*this, ecb_grip21_device, ppi_pb_r))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, ecb_grip21_device, ppi_pc_w))
I8255A(config, m_ppi);
m_ppi->in_pa_callback().set(FUNC(ecb_grip21_device::ppi_pa_r));
m_ppi->out_pa_callback().set(FUNC(ecb_grip21_device::ppi_pa_w));
m_ppi->in_pb_callback().set(FUNC(ecb_grip21_device::ppi_pb_r));
m_ppi->out_pc_callback().set(FUNC(ecb_grip21_device::ppi_pc_w));
Z80STI(config, m_sti, XTAL(16'000'000)/4);
m_sti->out_int_cb().set_inputline(Z80_TAG, INPUT_LINE_IRQ0);

View File

@ -274,16 +274,16 @@ MACHINE_CONFIG_START(hardbox_device::device_add_mconfig)
MCFG_DEVICE_IO_MAP(hardbox_io)
// devices
MCFG_DEVICE_ADD(I8255_0_TAG, I8255A, 0)
MCFG_I8255_IN_PORTA_CB(READ8(*this, hardbox_device, ppi0_pa_r))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, hardbox_device, ppi0_pb_w))
MCFG_I8255_IN_PORTC_CB(READ8(*this, hardbox_device, ppi0_pc_r))
i8255_device &ppi0(I8255A(config, I8255_0_TAG));
ppi0.in_pa_callback().set(FUNC(hardbox_device::ppi0_pa_r));
ppi0.out_pb_callback().set(FUNC(hardbox_device::ppi0_pb_w));
ppi0.in_pc_callback().set(FUNC(hardbox_device::ppi0_pc_r));
MCFG_DEVICE_ADD(I8255_1_TAG, I8255A, 0)
MCFG_I8255_IN_PORTA_CB(READ8(*this, hardbox_device, ppi1_pa_r))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, hardbox_device, ppi1_pb_w))
MCFG_I8255_IN_PORTC_CB(READ8(*this, hardbox_device, ppi1_pc_r))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, hardbox_device, ppi1_pc_w))
i8255_device &ppi1(I8255A(config, I8255_1_TAG));
ppi1.in_pa_callback().set(FUNC(hardbox_device::ppi1_pa_r));
ppi1.out_pb_callback().set(FUNC(hardbox_device::ppi1_pb_w));
ppi1.in_pc_callback().set(FUNC(hardbox_device::ppi1_pc_r));
ppi1.out_pc_callback().set(FUNC(hardbox_device::ppi1_pc_w));
MCFG_DEVICE_ADD(CORVUS_HDC_TAG, CORVUS_HDC, 0)
MCFG_HARDDISK_ADD("harddisk1")

View File

@ -249,16 +249,16 @@ MACHINE_CONFIG_START(softbox_device::device_add_mconfig)
MCFG_RS232_DSR_HANDLER(WRITELINE(I8251_TAG, i8251_device, write_dsr))
MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", terminal)
MCFG_DEVICE_ADD(I8255_0_TAG, I8255A, 0)
MCFG_I8255_IN_PORTA_CB(READ8(*this, softbox_device, ppi0_pa_r))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, softbox_device, ppi0_pb_w))
MCFG_I8255_IN_PORTC_CB(IOPORT("SW1"))
i8255_device &ppi0(I8255A(config, I8255_0_TAG));
ppi0.in_pa_callback().set(FUNC(softbox_device::ppi0_pa_r));
ppi0.out_pb_callback().set(FUNC(softbox_device::ppi0_pb_w));
ppi0.in_pc_callback().set_ioport("SW1");
MCFG_DEVICE_ADD(I8255_1_TAG, I8255A, 0)
MCFG_I8255_IN_PORTA_CB(READ8(*this, softbox_device, ppi1_pa_r))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, softbox_device, ppi1_pb_w))
MCFG_I8255_IN_PORTC_CB(READ8(*this, softbox_device, ppi1_pc_r))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, softbox_device, ppi1_pc_w))
i8255_device &ppi1(I8255A(config, I8255_1_TAG));
ppi1.in_pa_callback().set(FUNC(softbox_device::ppi1_pa_r));
ppi1.out_pb_callback().set(FUNC(softbox_device::ppi1_pb_w));
ppi1.in_pc_callback().set(FUNC(softbox_device::ppi1_pc_r));
ppi1.out_pc_callback().set(FUNC(softbox_device::ppi1_pc_w));
COM8116(config, m_dbrg, 5.0688_MHz_XTAL);
m_dbrg->fr_handler().set(I8251_TAG, FUNC(i8251_device::write_rxc));

View File

@ -66,12 +66,13 @@ void iq151_grafik_device::device_reset()
// device_add_mconfig - add device configuration
//-------------------------------------------------
MACHINE_CONFIG_START(iq151_grafik_device::device_add_mconfig)
MCFG_DEVICE_ADD("ppi8255", I8255, 0)
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, iq151_grafik_device, x_write))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, iq151_grafik_device, y_write))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, iq151_grafik_device, control_w))
MACHINE_CONFIG_END
void iq151_grafik_device::device_add_mconfig(machine_config &config)
{
I8255(config, m_ppi8255);
m_ppi8255->out_pa_callback().set(FUNC(iq151_grafik_device::x_write));
m_ppi8255->out_pb_callback().set(FUNC(iq151_grafik_device::y_write));
m_ppi8255->out_pc_callback().set(FUNC(iq151_grafik_device::control_w));
}
//-------------------------------------------------
// I8255 port a

View File

@ -60,14 +60,15 @@ void iq151_staper_device::device_start()
// device_add_mconfig - add device configuration
//-------------------------------------------------
MACHINE_CONFIG_START(iq151_staper_device::device_add_mconfig)
MCFG_DEVICE_ADD("ppi8255", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(READ8(*this, iq151_staper_device, ppi_porta_r))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, iq151_staper_device, ppi_portb_w))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, iq151_staper_device, ppi_portc_w))
void iq151_staper_device::device_add_mconfig(machine_config &config)
{
I8255A(config, m_ppi);
m_ppi->in_pa_callback().set(FUNC(iq151_staper_device::ppi_porta_r));
m_ppi->out_pb_callback().set(FUNC(iq151_staper_device::ppi_portb_w));
m_ppi->out_pc_callback().set(FUNC(iq151_staper_device::ppi_portc_w));
MCFG_DEVICE_ADD("printer", PRINTER, 0)
MACHINE_CONFIG_END
PRINTER(config, "printer", 0);
}
//-------------------------------------------------
// device_timer - handler timer events

View File

@ -379,18 +379,18 @@ MACHINE_CONFIG_START(isa8_ibm_mfc_device::device_add_mconfig)
MCFG_DEVICE_PROGRAM_MAP(prg_map)
MCFG_DEVICE_IO_MAP(io_map)
MCFG_DEVICE_ADD("d71055c_0", I8255, 0)
MCFG_I8255_IN_PORTA_CB(READ8(*this, isa8_ibm_mfc_device, ppi0_i_a))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, isa8_ibm_mfc_device, ppi0_o_b))
MCFG_I8255_IN_PORTC_CB(READ8(*this, isa8_ibm_mfc_device, ppi0_i_c))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, isa8_ibm_mfc_device, ppi0_o_c))
I8255(config, m_d71055c_0);
m_d71055c_0->in_pa_callback().set(FUNC(isa8_ibm_mfc_device::ppi0_i_a));
m_d71055c_0->out_pb_callback().set(FUNC(isa8_ibm_mfc_device::ppi0_o_b));
m_d71055c_0->in_pc_callback().set(FUNC(isa8_ibm_mfc_device::ppi0_i_c));
m_d71055c_0->out_pc_callback().set(FUNC(isa8_ibm_mfc_device::ppi0_o_c));
MCFG_DEVICE_ADD("d71055c_1", I8255, 0)
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, isa8_ibm_mfc_device, ppi1_o_a))
MCFG_I8255_IN_PORTB_CB(READ8(*this, isa8_ibm_mfc_device, ppi1_i_b))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, isa8_ibm_mfc_device, ppi1_o_c))
I8255(config, m_d71055c_1);
m_d71055c_1->out_pa_callback().set(FUNC(isa8_ibm_mfc_device::ppi1_o_a));
m_d71055c_1->in_pb_callback().set(FUNC(isa8_ibm_mfc_device::ppi1_i_b));
m_d71055c_1->out_pc_callback().set(FUNC(isa8_ibm_mfc_device::ppi1_o_c));
MCFG_DEVICE_ADD("d71051", I8251, 0)
I8251(config, "d71051", 0);
MCFG_DEVICE_ADD("usart_clock", CLOCK, XTAL(4'000'000) / 8) // 500KHz
MCFG_CLOCK_SIGNAL_HANDLER(WRITELINE(*this, isa8_ibm_mfc_device, write_usart_clock))

View File

@ -34,10 +34,10 @@ DEFINE_DEVICE_TYPE(POFO_HPC101, pofo_hpc101_device, "pofo_hpc101", "Atari Portfo
//-------------------------------------------------
MACHINE_CONFIG_START(pofo_hpc101_device::device_add_mconfig)
MCFG_DEVICE_ADD(M82C55A_TAG, I8255A, 0)
MCFG_I8255_OUT_PORTA_CB(WRITE8("cent_data_out", output_latch_device, bus_w))
MCFG_I8255_OUT_PORTB_CB(WRITE8("cent_ctrl_out", output_latch_device, bus_w))
MCFG_I8255_IN_PORTC_CB(READ8("cent_status_in", input_buffer_device, bus_r))
I8255A(config, m_ppi);
m_ppi->out_pa_callback().set("cent_data_out", FUNC(output_latch_device::bus_w));
m_ppi->out_pb_callback().set("cent_ctrl_out", FUNC(output_latch_device::bus_w));
m_ppi->in_pc_callback().set("cent_status_in", FUNC(input_buffer_device::bus_r));
MCFG_DEVICE_ADD(CENTRONICS_TAG, CENTRONICS, centronics_devices, "printer")
MCFG_CENTRONICS_ACK_HANDLER(WRITELINE("cent_status_in", input_buffer_device, write_bit5))

View File

@ -156,10 +156,10 @@ ioport_constructor sega_sk1100_device::device_input_ports() const
MACHINE_CONFIG_START(sega_sk1100_device::device_add_mconfig)
/* devices */
MCFG_DEVICE_ADD(UPD9255_0_TAG, I8255, 0)
MCFG_I8255_IN_PORTA_CB(READ8(*this, sega_sk1100_device, ppi_pa_r))
MCFG_I8255_IN_PORTB_CB(READ8(*this, sega_sk1100_device, ppi_pb_r))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, sega_sk1100_device, ppi_pc_w))
I8255(config, m_ppi);
m_ppi->in_pa_callback().set(FUNC(sega_sk1100_device::ppi_pa_r));
m_ppi->in_pb_callback().set(FUNC(sega_sk1100_device::ppi_pb_r));
m_ppi->out_pc_callback().set(FUNC(sega_sk1100_device::ppi_pc_w));
// MCFG_PRINTER_ADD("sp400") /* serial printer */

View File

@ -87,12 +87,12 @@ MACHINE_CONFIG_START(spc1000_fdd_exp_device::device_add_mconfig)
MCFG_DEVICE_PROGRAM_MAP(sd725_mem)
MCFG_DEVICE_IO_MAP(sd725_io)
MCFG_DEVICE_ADD("d8255_master", I8255, 0)
MCFG_I8255_IN_PORTA_CB(READ8("d8255_master", i8255_device, pb_r))
MCFG_I8255_IN_PORTB_CB(READ8("d8255_master", i8255_device, pa_r))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, spc1000_fdd_exp_device, i8255_b_w))
MCFG_I8255_IN_PORTC_CB(READ8(*this, spc1000_fdd_exp_device, i8255_c_r))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, spc1000_fdd_exp_device, i8255_c_w))
I8255(config, m_ppi);
m_ppi->in_pa_callback().set(m_ppi, FUNC(i8255_device::pb_r));
m_ppi->in_pb_callback().set(m_ppi, FUNC(i8255_device::pa_r));
m_ppi->out_pb_callback().set(FUNC(spc1000_fdd_exp_device::i8255_b_w));
m_ppi->in_pc_callback().set(FUNC(spc1000_fdd_exp_device::i8255_c_r));
m_ppi->out_pc_callback().set(FUNC(spc1000_fdd_exp_device::i8255_c_w));
// floppy disk controller
MCFG_UPD765A_ADD("upd765", true, true)
@ -137,7 +137,7 @@ spc1000_fdd_exp_device::spc1000_fdd_exp_device(const machine_config &mconfig, co
device_spc1000_card_interface(mconfig, *this),
m_cpu(*this, "fdccpu"),
m_fdc(*this, "upd765"),
m_pio(*this, "d8255_master"),
m_ppi(*this, "d8255_master"),
m_fd0(nullptr), m_fd1(nullptr), m_timer_tc(nullptr), m_i8255_0_pc(0), m_i8255_1_pc(0), m_i8255_portb(0)
{
}
@ -184,7 +184,7 @@ void spc1000_fdd_exp_device::device_timer(emu_timer &timer, device_timer_id id,
READ8_MEMBER(spc1000_fdd_exp_device::read)
{
// this should be m_pio->read on the whole 0x00-0x03 range?
// this should be m_ppi->read on the whole 0x00-0x03 range?
if (offset >= 3)
return 0xff;
else
@ -209,13 +209,13 @@ READ8_MEMBER(spc1000_fdd_exp_device::read)
WRITE8_MEMBER(spc1000_fdd_exp_device::write)
{
// this should be m_pio->write on the whole 0x00-0x03 range?
// this should be m_ppi->write on the whole 0x00-0x03 range?
if (offset < 3)
{
switch (offset)
{
case 0:
m_pio->write(space, 1, data);
m_ppi->write(space, 1, data);
break;
case 2:
m_i8255_0_pc = data;

View File

@ -39,7 +39,7 @@ private:
// internal state
required_device<z80_device> m_cpu;
required_device<upd765a_device> m_fdc;
required_device<i8255_device> m_pio;
required_device<i8255_device> m_ppi;
floppy_image_device *m_fd0;
floppy_image_device *m_fd1;

View File

@ -126,12 +126,13 @@ bus_mouse_device::bus_mouse_device(const machine_config &mconfig, const char *ta
}
MACHINE_CONFIG_START(bus_mouse_device::device_add_mconfig)
MCFG_DEVICE_ADD("ppi", I8255, 0)
MCFG_I8255_IN_PORTA_CB(READ8(*this, bus_mouse_device, ppi_a_r))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, bus_mouse_device, ppi_c_w))
MCFG_I8255_IN_PORTC_CB(READ8(*this, bus_mouse_device, ppi_c_r))
MACHINE_CONFIG_END
void bus_mouse_device::device_add_mconfig(machine_config &config)
{
i8255_device &ppi(I8255(config, "ppi"));
ppi.in_pa_callback().set(FUNC(bus_mouse_device::ppi_a_r));
ppi.out_pc_callback().set(FUNC(bus_mouse_device::ppi_c_w));
ppi.in_pc_callback().set(FUNC(bus_mouse_device::ppi_c_r));
}
//-------------------------------------------------

View File

@ -596,9 +596,8 @@ MACHINE_CONFIG_START(ibm5150_mb_device::device_add_mconfig)
MCFG_DEVICE_MODIFY("pc_kbdc")
MCFG_PC_KBDC_OUT_CLOCK_CB(WRITELINE(*this, ibm5150_mb_device, keyboard_clock_w))
MCFG_DEVICE_MODIFY("ppi8255")
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, ibm5150_mb_device, pc_ppi_portb_w))
MCFG_I8255_IN_PORTC_CB(READ8(*this, ibm5150_mb_device, pc_ppi_portc_r))
m_ppi8255->out_pb_callback().set(FUNC(ibm5150_mb_device::pc_ppi_portb_w));
m_ppi8255->in_pc_callback().set(FUNC(ibm5150_mb_device::pc_ppi_portc_r));
MCFG_CASSETTE_ADD( "cassette" )
MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_PLAY | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_ENABLED)
@ -771,9 +770,8 @@ DEFINE_DEVICE_TYPE(EC1841_MOTHERBOARD, ec1841_mb_device, "ec1841_mb", "EC-1840 m
MACHINE_CONFIG_START(ec1841_mb_device::device_add_mconfig)
ibm5160_mb_device::device_add_mconfig(config);
MCFG_DEVICE_MODIFY("ppi8255")
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, ec1841_mb_device, pc_ppi_portb_w))
MCFG_I8255_IN_PORTC_CB(READ8(*this, ec1841_mb_device, pc_ppi_portc_r))
m_ppi8255->out_pb_callback().set(FUNC(ec1841_mb_device::pc_ppi_portb_w));
m_ppi8255->in_pc_callback().set(FUNC(ec1841_mb_device::pc_ppi_portc_r));
MCFG_DEVICE_MODIFY("pc_kbdc")
MCFG_PC_KBDC_OUT_CLOCK_CB(WRITELINE(*this, ec1841_mb_device, keyboard_clock_w))

View File

@ -172,7 +172,7 @@ class ams40489_ppi_device : public i8255_device
{
public:
// construction/destruction
ams40489_ppi_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
ams40489_ppi_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0);
};
// device type definition

View File

@ -281,16 +281,16 @@ MACHINE_CONFIG_START(pioneer_ldv1000_device::device_add_mconfig)
Z80CTC(config, m_z80_ctc, XTAL(5'000'000)/2);
m_z80_ctc->intr_callback().set(FUNC(pioneer_ldv1000_device::ctc_interrupt));
MCFG_DEVICE_ADD("ldvppi0", I8255, 0)
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, pioneer_ldv1000_device, ppi0_porta_w))
MCFG_I8255_IN_PORTB_CB(READ8(*this, pioneer_ldv1000_device, ppi0_portb_r))
MCFG_I8255_IN_PORTC_CB(READ8(*this, pioneer_ldv1000_device, ppi0_portc_r))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, pioneer_ldv1000_device, ppi0_portc_w))
i8255_device &ldvppi0(I8255(config, "ldvppi0"));
ldvppi0.out_pa_callback().set(FUNC(pioneer_ldv1000_device::ppi0_porta_w));
ldvppi0.in_pb_callback().set(FUNC(pioneer_ldv1000_device::ppi0_portb_r));
ldvppi0.in_pc_callback().set(FUNC(pioneer_ldv1000_device::ppi0_portc_r));
ldvppi0.out_pc_callback().set(FUNC(pioneer_ldv1000_device::ppi0_portc_w));
MCFG_DEVICE_ADD("ldvppi1", I8255, 0)
MCFG_I8255_IN_PORTA_CB(READ8(*this, pioneer_ldv1000_device, ppi1_porta_r))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, pioneer_ldv1000_device, ppi1_portb_w))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, pioneer_ldv1000_device, ppi1_portc_w))
i8255_device &ldvppi1(I8255(config, "ldvppi1"));
ldvppi1.in_pa_callback().set(FUNC(pioneer_ldv1000_device::ppi1_porta_r));
ldvppi1.out_pb_callback().set(FUNC(pioneer_ldv1000_device::ppi1_portb_w));
ldvppi1.out_pc_callback().set(FUNC(pioneer_ldv1000_device::ppi1_portc_w));
MACHINE_CONFIG_END

View File

@ -134,23 +134,24 @@ WRITE8_MEMBER( mb89363b_device::write )
}
MACHINE_CONFIG_START(mb89363b_device::device_add_mconfig)
MCFG_DEVICE_ADD("i8255_a", I8255, 0)
MCFG_I8255_IN_PORTA_CB(READ8(*this, mb89363b_device, i8255_a_port_a_r))
MCFG_I8255_IN_PORTB_CB(READ8(*this, mb89363b_device, i8255_a_port_b_r))
MCFG_I8255_IN_PORTC_CB(READ8(*this, mb89363b_device, i8255_a_port_c_r))
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, mb89363b_device, i8255_a_port_a_w))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, mb89363b_device, i8255_a_port_b_w))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, mb89363b_device, i8255_a_port_c_w))
void mb89363b_device::device_add_mconfig(machine_config &config)
{
I8255(config, m_i8255_a);
m_i8255_a->in_pa_callback().set(FUNC(mb89363b_device::i8255_a_port_a_r));
m_i8255_a->in_pb_callback().set(FUNC(mb89363b_device::i8255_a_port_b_r));
m_i8255_a->in_pc_callback().set(FUNC(mb89363b_device::i8255_a_port_c_r));
m_i8255_a->out_pa_callback().set(FUNC(mb89363b_device::i8255_a_port_a_w));
m_i8255_a->out_pb_callback().set(FUNC(mb89363b_device::i8255_a_port_b_w));
m_i8255_a->out_pc_callback().set(FUNC(mb89363b_device::i8255_a_port_c_w));
MCFG_DEVICE_ADD("i8255_b", I8255, 0)
MCFG_I8255_IN_PORTA_CB(READ8(*this, mb89363b_device, i8255_b_port_a_r))
MCFG_I8255_IN_PORTB_CB(READ8(*this, mb89363b_device, i8255_b_port_b_r))
MCFG_I8255_IN_PORTC_CB(READ8(*this, mb89363b_device, i8255_b_port_c_r))
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, mb89363b_device, i8255_b_port_a_w))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, mb89363b_device, i8255_b_port_b_w))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, mb89363b_device, i8255_b_port_c_w))
MACHINE_CONFIG_END
I8255(config, m_i8255_b);
m_i8255_b->in_pa_callback().set(FUNC(mb89363b_device::i8255_b_port_a_r));
m_i8255_b->in_pb_callback().set(FUNC(mb89363b_device::i8255_b_port_b_r));
m_i8255_b->in_pc_callback().set(FUNC(mb89363b_device::i8255_b_port_c_r));
m_i8255_b->out_pa_callback().set(FUNC(mb89363b_device::i8255_b_port_a_w));
m_i8255_b->out_pb_callback().set(FUNC(mb89363b_device::i8255_b_port_b_w));
m_i8255_b->out_pc_callback().set(FUNC(mb89363b_device::i8255_b_port_c_w));
}
void mb89363b_device::device_start()

View File

@ -23,6 +23,8 @@ public:
// configuration helpers
template <class Object> devcb_base &set_bsy_handler(Object &&cb) { return m_bsy_handler.set_callback(std::forward<Object>(cb)); }
template <class Object> devcb_base &set_ext_read_handler(Object &&cb) { return m_ext_read_handler.set_callback(std::forward<Object>(cb)); }
auto bsy() { return m_bsy_handler.bind(); }
auto ext_read() { return m_ext_read_handler.bind(); }
DECLARE_READ_LINE_MEMBER(busy_r); // /BUSY (pin 40)
DECLARE_READ_LINE_MEMBER(romen_r); // ROM /EN (pin 9)

View File

@ -417,9 +417,9 @@ static const char *const sega005_sample_names[] =
MACHINE_CONFIG_START(segag80r_state::sega005_sound_board)
MCFG_DEVICE_ADD("ppi8255", I8255A, 0)
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, segag80r_state, sega005_sound_a_w))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, segag80r_state, sega005_sound_b_w))
i8255_device &ppi(I8255A(config, "ppi8255"));
ppi.out_pa_callback().set(FUNC(segag80r_state::sega005_sound_a_w));
ppi.out_pb_callback().set(FUNC(segag80r_state::sega005_sound_b_w));
/* sound hardware */

View File

@ -558,11 +558,11 @@ MACHINE_CONFIG_START(tx1_sound_device::device_add_mconfig)
MCFG_DEVICE_IO_MAP(tx1_sound_io)
MCFG_DEVICE_PERIODIC_INT_DEVICE(DEVICE_SELF, tx1_sound_device, z80_irq, TX1_PIXEL_CLOCK / 4 / 2048 / 2)
MCFG_DEVICE_ADD(m_ppi, I8255A, 0)
MCFG_I8255_IN_PORTA_CB(READ8(*this, tx1_sound_device, tx1_ppi_porta_r))
MCFG_I8255_IN_PORTB_CB(READ8(*this, tx1_sound_device, tx1_ppi_portb_r))
MCFG_I8255_IN_PORTC_CB(IOPORT("PPI_PORTC"))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, tx1_sound_device, tx1_coin_cnt_w))
I8255A(config, m_ppi);
m_ppi->in_pa_callback().set(FUNC(tx1_sound_device::tx1_ppi_porta_r));
m_ppi->in_pb_callback().set(FUNC(tx1_sound_device::tx1_ppi_portb_r));
m_ppi->in_pc_callback().set_ioport("PPI_PORTC");
m_ppi->out_pc_callback().set(FUNC(tx1_sound_device::tx1_coin_cnt_w));
SPEAKER(config, "frontleft", -0.2, 0.0, 1.0);
SPEAKER(config, "frontright", 0.2, 0.0, 1.0);
@ -1065,11 +1065,11 @@ MACHINE_CONFIG_START(buggyboy_sound_device::device_add_mconfig)
MCFG_DEVICE_PERIODIC_INT_DEVICE(DEVICE_SELF, buggyboy_sound_device, z80_irq, BUGGYBOY_ZCLK / 2 / 4 / 2048)
MCFG_DEVICE_IO_MAP(buggyboy_sound_io)
MCFG_DEVICE_ADD(m_ppi, I8255A, 0)
I8255A(config, m_ppi);
/* Buggy Boy uses an 8255 PPI instead of YM2149 ports for inputs! */
MCFG_I8255_IN_PORTA_CB(IOPORT("PPI_PORTA"))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, buggyboy_sound_device, bb_coin_cnt_w))
MCFG_I8255_IN_PORTC_CB(IOPORT("PPI_PORTC"))
m_ppi->in_pa_callback().set_ioport("PPI_PORTA");
m_ppi->out_pb_callback().set(FUNC(buggyboy_sound_device::bb_coin_cnt_w));
m_ppi->in_pc_callback().set_ioport("PPI_PORTC");
SPEAKER(config, "frontleft", -0.2, 0.0, 1.0);
SPEAKER(config, "frontright", 0.2, 0.0, 1.0);

View File

@ -292,19 +292,19 @@ MACHINE_CONFIG_START(midcoin24cdjuke_state::midcoin24cdjuke)
config.set_default_layout(layout_24cdjuke);
MCFG_DEVICE_ADD("ic11", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("MD1"))
MCFG_I8255_IN_PORTB_CB(IOPORT("MD2"))
MCFG_I8255_IN_PORTC_CB(IOPORT("MD3"))
i8255_device &ic11(I8255A(config, "ic11"));
ic11.in_pa_callback().set_ioport("MD1");
ic11.in_pb_callback().set_ioport("MD2");
ic11.in_pc_callback().set_ioport("MD3");
MCFG_DEVICE_ADD("ic25", I8255A, 0)
MCFG_I8255_IN_PORTB_CB(IOPORT("PB"))
MCFG_I8255_IN_PORTC_CB(READ8(*this, midcoin24cdjuke_state, kb_row_r))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, midcoin24cdjuke_state, kb_col_w))
i8255_device &ic25(I8255A(config, "ic25"));
ic25.in_pb_callback().set_ioport("PB");
ic25.in_pc_callback().set(FUNC(midcoin24cdjuke_state::kb_row_r));
ic25.out_pc_callback().set(FUNC(midcoin24cdjuke_state::kb_col_w));
i8255_device &ic32(I8255A(config, "ic31", 0));
ic32.out_pb_callback().set_log("PPI8255 - unmapped write port B");
ic32.in_pc_callback().set_ioport("MD4");
i8255_device &ic31(I8255A(config, "ic31", 0));
ic31.out_pb_callback().set_log("PPI8255 - unmapped write port B");
ic31.in_pc_callback().set_ioport("MD4");
MACHINE_CONFIG_END

View File

@ -485,10 +485,10 @@ MACHINE_CONFIG_START(a7150_state::a7150)
MCFG_PIC8259_OUT_INT_CB(INPUTLINE("maincpu", 0))
// IFSP port on processor card
MCFG_DEVICE_ADD("ppi8255", I8255, 0)
// MCFG_I8255_IN_PORTA_CB(READ8("cent_status_in", input_buffer_device, bus_r))
// MCFG_I8255_OUT_PORTB_CB(WRITE8("cent_data_out", output_latch_device, bus_w))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, a7150_state, ppi_c_w))
i8255_device &ppi(I8255(config, "ppi8255"));
// ppi.in_pa_callback().set("cent_status_in", FUNC(input_buffer_device::bus_r));
// ppi.out_pb_callback().set("cent_data_out", output_latch_device::bus_w));
ppi.out_pc_callback().set(FUNC(a7150_state::ppi_c_w));
PIT8253(config, m_pit8253, 0);
m_pit8253->set_clk<0>(14.7456_MHz_XTAL/4);

View File

@ -457,22 +457,22 @@ MACHINE_CONFIG_START(aces1_state::aces1)
MCFG_DEVICE_IO_MAP(aces1_portmap)
// 0xafb0 IC24 - lamps, 7segs
MCFG_DEVICE_ADD("ic24", I8255A, 0)
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, aces1_state, ic24_write_a)) // 7segs
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, aces1_state, ic24_write_b)) // lamps
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, aces1_state, ic24_write_c)) // strobe
i8255_device &ic24(I8255A(config, "ic24"));
ic24.out_pa_callback().set(FUNC(aces1_state::ic24_write_a)); // 7segs
ic24.out_pb_callback().set(FUNC(aces1_state::ic24_write_b)); // lamps
ic24.out_pc_callback().set(FUNC(aces1_state::ic24_write_c)); // strobe
// 0xafd0 IC25 - lamps, meters, reel comms (writes)
MCFG_DEVICE_ADD("ic25", I8255A, 0)
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, aces1_state, ic25_write_a)) // extra lamps
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, aces1_state, ic25_write_b)) // meters, extra lamp select
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, aces1_state, ic25_write_c)) // reel write, extra lamp strobe
i8255_device &ic25(I8255A(config, "ic25"));
ic25.out_pa_callback().set(FUNC(aces1_state::ic25_write_a)); // extra lamps
ic25.out_pb_callback().set(FUNC(aces1_state::ic25_write_b)); // meters, extra lamp select
ic25.out_pc_callback().set(FUNC(aces1_state::ic25_write_c)); // reel write, extra lamp strobe
// 0xafe0 IC37 - doors, coins, reel optics (reads)
MCFG_DEVICE_ADD("ic37", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(READ8(*this, aces1_state, ic37_read_a)) // extra lamps
MCFG_I8255_IN_PORTB_CB(READ8(*this, aces1_state, ic37_read_b)) // meters, extra lamp select
MCFG_I8255_IN_PORTC_CB(READ8(*this, aces1_state, ic37_read_c)) // reel write, extra lamp strobe
i8255_device &ic37(I8255A(config, "ic37"));
ic37.in_pa_callback().set(FUNC(aces1_state::ic37_read_a)); // extra lamps
ic37.in_pb_callback().set(FUNC(aces1_state::ic37_read_b)); // meters, extra lamp select
ic37.in_pc_callback().set(FUNC(aces1_state::ic37_read_c)); // reel write, extra lamp strobe
config.set_default_layout(layout_aces1);

View File

@ -372,10 +372,10 @@ MACHINE_CONFIG_START(albazg_state::yumefuda)
MCFG_WATCHDOG_ADD("watchdog")
MCFG_WATCHDOG_VBLANK_INIT("screen", 8) // timing is unknown
MCFG_DEVICE_ADD("ppi8255_0", I8255A, 0)
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, albazg_state, mux_w))
MCFG_I8255_IN_PORTB_CB(IOPORT("SYSTEM"))
MCFG_I8255_IN_PORTC_CB(READ8(*this, albazg_state, mux_r))
i8255_device &ppi(I8255A(config, "ppi8255_0"));
ppi.out_pa_callback().set(FUNC(albazg_state::mux_w));
ppi.in_pb_callback().set_ioport("SYSTEM");
ppi.in_pc_callback().set(FUNC(albazg_state::mux_r));
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)

View File

@ -852,15 +852,15 @@ MACHINE_CONFIG_START(amaticmg_state::amaticmg)
// NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
/* 3x 8255 */
MCFG_DEVICE_ADD("ppi8255_0", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("IN0"))
MCFG_I8255_IN_PORTB_CB(IOPORT("IN1"))
MCFG_I8255_IN_PORTC_CB(IOPORT("IN2"))
i8255_device &ppi0(I8255A(config, "ppi8255_0"));
ppi0.in_pa_callback().set_ioport("IN0");
ppi0.in_pb_callback().set_ioport("IN1");
ppi0.in_pc_callback().set_ioport("IN2");
MCFG_DEVICE_ADD("ppi8255_1", I8255A, 0)
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, amaticmg_state, out_a_w))
MCFG_I8255_IN_PORTB_CB(IOPORT("SW1"))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, amaticmg_state, out_c_w))
i8255_device &ppi1(I8255A(config, "ppi8255_1"));
ppi1.out_pa_callback().set(FUNC(amaticmg_state::out_a_w));
ppi1.in_pb_callback().set_ioport("SW1");
ppi1.out_pc_callback().set(FUNC(amaticmg_state::out_c_w));
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@ -902,7 +902,7 @@ MACHINE_CONFIG_START(amaticmg_state::amaticmg2)
MCFG_DEVICE_MODIFY("maincpu")
MCFG_DEVICE_IO_MAP(amaticmg2_portmap)
MCFG_DEVICE_ADD("ppi8255_2", I8255A, 0) // MG4: 0x89 -> A:out; B:out; C(h):in; C(l):in.
I8255A(config, "ppi8255_2"); // MG4: 0x89 -> A:out; B:out; C(h):in; C(l):in.
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_DRIVER(amaticmg_state, screen_update_amaticmg2)
@ -923,7 +923,7 @@ MACHINE_CONFIG_START(amaticmg_state::amaticmg4)
MCFG_DEVICE_MODIFY("maincpu")
MCFG_DEVICE_IO_MAP(amaticmg4_portmap)
MCFG_DEVICE_ADD("ppi8255_2", I8255A, 0) // MG4: 0x89 -> A:out; B:out; C(h):in; C(l):in.
I8255A(config, "ppi8255_2"); // MG4: 0x89 -> A:out; B:out; C(h):in; C(l):in.
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_DRIVER(amaticmg_state, screen_update_amaticmg2)

View File

@ -223,11 +223,11 @@ MACHINE_CONFIG_START(amico2k_state::amico2k)
/* video hardware */
config.set_default_layout(layout_amico2k);
MCFG_DEVICE_ADD("i8255", I8255, 0)
MCFG_I8255_IN_PORTA_CB(READ8(*this, amico2k_state, ppi_pa_r))
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, amico2k_state, ppi_pa_w))
MCFG_I8255_IN_PORTB_CB(READ8(*this, amico2k_state, ppi_pb_r))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, amico2k_state, ppi_pb_w))
i8255_device &ppi(I8255(config, "i8255"));
ppi.in_pa_callback().set(FUNC(amico2k_state::ppi_pa_r));
ppi.out_pa_callback().set(FUNC(amico2k_state::ppi_pa_w));
ppi.in_pb_callback().set(FUNC(amico2k_state::ppi_pb_r));
ppi.out_pb_callback().set(FUNC(amico2k_state::ppi_pb_w));
MACHINE_CONFIG_END

View File

@ -919,11 +919,11 @@ MACHINE_CONFIG_START(amstrad_state::amstrad_base)
MCFG_MACHINE_START_OVERRIDE(amstrad_state, amstrad )
MCFG_MACHINE_RESET_OVERRIDE(amstrad_state, amstrad )
MCFG_DEVICE_ADD("ppi8255", I8255, 0)
MCFG_I8255_IN_PORTA_CB(READ8(*this, amstrad_state, amstrad_ppi_porta_r))
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, amstrad_state, amstrad_ppi_porta_w))
MCFG_I8255_IN_PORTB_CB(READ8(*this, amstrad_state, amstrad_ppi_portb_r))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, amstrad_state, amstrad_ppi_portc_w))
i8255_device &ppi(I8255(config, "ppi8255"));
ppi.in_pa_callback().set(FUNC(amstrad_state::amstrad_ppi_porta_r));
ppi.out_pa_callback().set(FUNC(amstrad_state::amstrad_ppi_porta_w));
ppi.in_pb_callback().set(FUNC(amstrad_state::amstrad_ppi_portb_r));
ppi.out_pc_callback().set(FUNC(amstrad_state::amstrad_ppi_portc_w));
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@ -1041,11 +1041,11 @@ MACHINE_CONFIG_START(amstrad_state::cpcplus)
MCFG_MACHINE_START_OVERRIDE(amstrad_state, plus )
MCFG_MACHINE_RESET_OVERRIDE(amstrad_state, plus )
MCFG_DEVICE_ADD("ppi8255", AMS40489_PPI, 0)
MCFG_I8255_IN_PORTA_CB(READ8(*this, amstrad_state, amstrad_ppi_porta_r))
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, amstrad_state, amstrad_ppi_porta_w))
MCFG_I8255_IN_PORTB_CB(READ8(*this, amstrad_state, amstrad_ppi_portb_r))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, amstrad_state, amstrad_ppi_portc_w))
ams40489_ppi_device &ppi(AMS40489_PPI(config, "ppi8255"));
ppi.in_pa_callback().set(FUNC(amstrad_state::amstrad_ppi_porta_r));
ppi.out_pa_callback().set(FUNC(amstrad_state::amstrad_ppi_porta_w));
ppi.in_pb_callback().set(FUNC(amstrad_state::amstrad_ppi_portb_r));
ppi.out_pc_callback().set(FUNC(amstrad_state::amstrad_ppi_portc_w));
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@ -1119,11 +1119,11 @@ MACHINE_CONFIG_START(amstrad_state::gx4000)
MCFG_MACHINE_START_OVERRIDE(amstrad_state, gx4000 )
MCFG_MACHINE_RESET_OVERRIDE(amstrad_state, gx4000 )
MCFG_DEVICE_ADD("ppi8255", AMS40489_PPI, 0)
MCFG_I8255_IN_PORTA_CB(READ8(*this, amstrad_state, amstrad_ppi_porta_r))
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, amstrad_state, amstrad_ppi_porta_w))
MCFG_I8255_IN_PORTB_CB(READ8(*this, amstrad_state, amstrad_ppi_portb_r))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, amstrad_state, amstrad_ppi_portc_w))
ams40489_ppi_device &ppi(AMS40489_PPI(config, "ppi8255"));
ppi.in_pa_callback().set(FUNC(amstrad_state::amstrad_ppi_porta_r));
ppi.out_pa_callback().set(FUNC(amstrad_state::amstrad_ppi_porta_w));
ppi.in_pb_callback().set(FUNC(amstrad_state::amstrad_ppi_portb_r));
ppi.out_pc_callback().set(FUNC(amstrad_state::amstrad_ppi_portc_w));
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)

View File

@ -548,15 +548,15 @@ MACHINE_CONFIG_START(amusco_state::amusco)
MCFG_PIT8253_CLK1(PIT_CLOCK1)
MCFG_PIT8253_OUT1_HANDLER(WRITELINE("pic8259", pic8259_device, ir2_w))
MCFG_DEVICE_ADD("ppi_outputs", I8255, 0)
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, amusco_state, output_a_w))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, amusco_state, output_b_w))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, amusco_state, output_c_w))
i8255_device &ppi_outputs(I8255(config, "ppi_outputs"));
ppi_outputs.out_pa_callback().set(FUNC(amusco_state::output_a_w));
ppi_outputs.out_pb_callback().set(FUNC(amusco_state::output_b_w));
ppi_outputs.out_pc_callback().set(FUNC(amusco_state::output_c_w));
MCFG_DEVICE_ADD("ppi_inputs", I8255, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("IN0"))
MCFG_I8255_IN_PORTB_CB(IOPORT("IN1"))
MCFG_I8255_IN_PORTC_CB(IOPORT("IN2"))
i8255_device &ppi_inputs(I8255(config, "ppi_inputs"));
ppi_inputs.in_pa_callback().set_ioport("IN0");
ppi_inputs.in_pb_callback().set_ioport("IN1");
ppi_inputs.in_pc_callback().set_ioport("IN2");
i8155_device &i8155a(I8155(config, "lpt_interface", 0));
i8155a.out_pa_callback().set(FUNC(amusco_state::lpt_data_w));

View File

@ -436,19 +436,19 @@ MACHINE_CONFIG_START(amust_state::amust)
MCFG_DEVICE_ADD("pit", PIT8253, 0)
MCFG_DEVICE_ADD("ppi1", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(READ8(*this, amust_state, port04_r))
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, amust_state, port04_w))
MCFG_I8255_IN_PORTB_CB(READ8(*this, amust_state, port05_r))
MCFG_I8255_IN_PORTC_CB(READ8(*this, amust_state, port06_r))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, amust_state, port06_w))
i8255_device &ppi1(I8255A(config, "ppi1"));
ppi1.in_pa_callback().set(FUNC(amust_state::port04_r));
ppi1.out_pa_callback().set(FUNC(amust_state::port04_w));
ppi1.in_pb_callback().set(FUNC(amust_state::port05_r));
ppi1.in_pc_callback().set(FUNC(amust_state::port06_r));
ppi1.out_pc_callback().set(FUNC(amust_state::port06_w));
MCFG_DEVICE_ADD("ppi2", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(READ8(*this, amust_state, port08_r))
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, amust_state, port08_w))
MCFG_I8255_IN_PORTB_CB(READ8(*this, amust_state, port09_r))
MCFG_I8255_IN_PORTC_CB(READ8(*this, amust_state, port0a_r))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, amust_state, port0a_w))
i8255_device &ppi2(I8255A(config, "ppi2"));
ppi2.in_pa_callback().set(FUNC(amust_state::port08_r));
ppi2.out_pa_callback().set(FUNC(amust_state::port08_w));
ppi2.in_pb_callback().set(FUNC(amust_state::port09_r));
ppi2.in_pc_callback().set(FUNC(amust_state::port0a_r));
ppi2.out_pc_callback().set(FUNC(amust_state::port0a_w));
MACHINE_CONFIG_END
/* ROM definition */

View File

@ -528,16 +528,16 @@ MACHINE_CONFIG_START(angelkds_state::angelkds)
MCFG_DEVICE_PROGRAM_MAP(sub_map)
MCFG_DEVICE_IO_MAP(sub_portmap)
MCFG_DEVICE_ADD("ppi8255_0", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("I40"))
MCFG_I8255_IN_PORTB_CB(IOPORT("I41"))
MCFG_I8255_IN_PORTC_CB(READ8(*this, angelkds_state, angeklds_ff_r)) // or left inputs don't work
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, angelkds_state, angelkds_cpu_bank_write))
i8255_device &ppi0(I8255A(config, "ppi8255_0"));
ppi0.in_pa_callback().set_ioport("I40");
ppi0.in_pb_callback().set_ioport("I41");
ppi0.in_pc_callback().set(FUNC(angelkds_state::angeklds_ff_r)); // or left inputs don't work
ppi0.out_pc_callback().set(FUNC(angelkds_state::angelkds_cpu_bank_write));
MCFG_DEVICE_ADD("ppi8255_1", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("I80"))
MCFG_I8255_IN_PORTB_CB(IOPORT("I81"))
MCFG_I8255_IN_PORTC_CB(IOPORT("I82"))
i8255_device &ppi1(I8255A(config, "ppi8255_1"));
ppi1.in_pa_callback().set_ioport("I80");
ppi1.in_pb_callback().set_ioport("I81");
ppi1.in_pc_callback().set_ioport("I82");
MCFG_QUANTUM_TIME(attotime::from_hz(6000))

View File

@ -228,11 +228,11 @@ MACHINE_CONFIG_START(apogee_state::apogee)
MCFG_PIT8253_CLK2(XTAL(16'000'000)/9)
MCFG_PIT8253_OUT2_HANDLER(WRITELINE(*this, apogee_state,pit8253_out2_changed))
MCFG_DEVICE_ADD("ppi8255_1", I8255, 0)
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, radio86_state, radio86_8255_porta_w2))
MCFG_I8255_IN_PORTB_CB(READ8(*this, radio86_state, radio86_8255_portb_r2))
MCFG_I8255_IN_PORTC_CB(READ8(*this, radio86_state, radio86_8255_portc_r2))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, radio86_state, radio86_8255_portc_w2))
I8255(config, m_ppi8255_1);
m_ppi8255_1->out_pa_callback().set(FUNC(radio86_state::radio86_8255_porta_w2));
m_ppi8255_1->in_pb_callback().set(FUNC(radio86_state::radio86_8255_portb_r2));
m_ppi8255_1->in_pc_callback().set(FUNC(radio86_state::radio86_8255_portc_r2));
m_ppi8255_1->out_pc_callback().set(FUNC(radio86_state::radio86_8255_portc_w2));
//MCFG_DEVICE_ADD("ppi8255_2", I8255, 0)

View File

@ -678,14 +678,14 @@ MACHINE_CONFIG_START(astinvad_state::kamikaze)
MCFG_MACHINE_START_OVERRIDE(astinvad_state, kamikaze)
MCFG_MACHINE_RESET_OVERRIDE(astinvad_state, kamikaze)
MCFG_DEVICE_ADD("ppi8255_0", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("IN0"))
MCFG_I8255_IN_PORTB_CB(IOPORT("IN1"))
MCFG_I8255_IN_PORTC_CB(IOPORT("IN2"))
I8255A(config, m_ppi8255_0);
m_ppi8255_0->in_pa_callback().set_ioport("IN0");
m_ppi8255_0->in_pb_callback().set_ioport("IN1");
m_ppi8255_0->in_pc_callback().set_ioport("IN2");
MCFG_DEVICE_ADD("ppi8255_1", I8255A, 0)
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, astinvad_state, kamikaze_sound1_w))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, astinvad_state, kamikaze_sound2_w))
I8255A(config, m_ppi8255_1);
m_ppi8255_1->out_pa_callback().set(FUNC(astinvad_state::kamikaze_sound1_w));
m_ppi8255_1->out_pb_callback().set(FUNC(astinvad_state::kamikaze_sound2_w));
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@ -708,10 +708,9 @@ MACHINE_CONFIG_START(astinvad_state::spcking2)
kamikaze(config);
/* basic machine hardware */
MCFG_DEVICE_MODIFY("ppi8255_1")
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, astinvad_state, spcking2_sound1_w))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, astinvad_state, spcking2_sound2_w))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, astinvad_state, spcking2_sound3_w))
m_ppi8255_1->out_pa_callback().set(FUNC(astinvad_state::spcking2_sound1_w));
m_ppi8255_1->out_pb_callback().set(FUNC(astinvad_state::spcking2_sound2_w));
m_ppi8255_1->out_pc_callback().set(FUNC(astinvad_state::spcking2_sound3_w));
/* video hardware */
MCFG_SCREEN_MODIFY("screen")

View File

@ -732,11 +732,11 @@ MACHINE_CONFIG_START(atom_state::atom)
via.ca2_handler().set(m_centronics, FUNC(centronics_device::write_strobe));
via.irq_handler().set_inputline(SY6502_TAG, M6502_IRQ_LINE);
MCFG_DEVICE_ADD(INS8255_TAG, I8255, 0)
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, atom_state, ppi_pa_w))
MCFG_I8255_IN_PORTB_CB(READ8(*this, atom_state, ppi_pb_r))
MCFG_I8255_IN_PORTC_CB(READ8(*this, atom_state, ppi_pc_r))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, atom_state, ppi_pc_w))
i8255_device &ppi(I8255(config, INS8255_TAG));
ppi.out_pa_callback().set(FUNC(atom_state::ppi_pa_w));
ppi.in_pb_callback().set(FUNC(atom_state::ppi_pb_r));
ppi.in_pc_callback().set(FUNC(atom_state::ppi_pc_r));
ppi.out_pc_callback().set(FUNC(atom_state::ppi_pc_w));
I8271(config, m_fdc, 0);
m_fdc->intrq_wr_callback().set(FUNC(atom_state::atom_8271_interrupt_callback));
@ -839,11 +839,11 @@ MACHINE_CONFIG_START(atom_state::atombb)
via.ca2_handler().set(m_centronics, FUNC(centronics_device::write_strobe));
via.irq_handler().set_inputline(SY6502_TAG, M6502_IRQ_LINE);
MCFG_DEVICE_ADD(INS8255_TAG, I8255, 0)
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, atom_state, ppi_pa_w))
MCFG_I8255_IN_PORTB_CB(READ8(*this, atom_state, ppi_pb_r))
MCFG_I8255_IN_PORTC_CB(READ8(*this, atom_state, ppi_pc_r))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, atom_state, ppi_pc_w))
i8255_device &ppi(I8255(config, INS8255_TAG));
ppi.out_pa_callback().set(FUNC(atom_state::ppi_pa_w));
ppi.in_pb_callback().set(FUNC(atom_state::ppi_pb_r));
ppi.in_pc_callback().set(FUNC(atom_state::ppi_pc_r));
ppi.out_pc_callback().set(FUNC(atom_state::ppi_pc_w));
MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer")
MCFG_CENTRONICS_ACK_HANDLER(WRITELINE(R6522_TAG, via6522_device, write_ca1))

View File

@ -217,19 +217,19 @@ MACHINE_CONFIG_START(b2m_state::b2m)
MCFG_PIT8253_CLK2(2000000)
MCFG_PIT8253_OUT2_HANDLER(WRITELINE("pit8253", pit8253_device, write_clk0))
MCFG_DEVICE_ADD("ppi8255_1", I8255, 0)
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, b2m_state, b2m_8255_porta_w))
MCFG_I8255_IN_PORTB_CB(READ8(*this, b2m_state, b2m_8255_portb_r))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, b2m_state, b2m_8255_portb_w))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, b2m_state, b2m_8255_portc_w))
i8255_device &ppi1(I8255(config, "ppi8255_1"));
ppi1.out_pa_callback().set(FUNC(b2m_state::b2m_8255_porta_w));
ppi1.in_pb_callback().set(FUNC(b2m_state::b2m_8255_portb_r));
ppi1.out_pb_callback().set(FUNC(b2m_state::b2m_8255_portb_w));
ppi1.out_pc_callback().set(FUNC(b2m_state::b2m_8255_portc_w));
MCFG_DEVICE_ADD("ppi8255_2", I8255, 0)
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, b2m_state, b2m_ext_8255_portc_w))
i8255_device &ppi2(I8255(config, "ppi8255_2"));
ppi2.out_pc_callback().set(FUNC(b2m_state::b2m_ext_8255_portc_w));
MCFG_DEVICE_ADD("ppi8255_3", I8255, 0)
MCFG_I8255_IN_PORTA_CB(READ8(*this, b2m_state, b2m_romdisk_porta_r))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, b2m_state, b2m_romdisk_portb_w))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, b2m_state, b2m_romdisk_portc_w))
i8255_device &ppi3(I8255(config, "ppi8255_3"));
ppi3.in_pa_callback().set(FUNC(b2m_state::b2m_romdisk_porta_r));
ppi3.out_pb_callback().set(FUNC(b2m_state::b2m_romdisk_portb_w));
ppi3.out_pc_callback().set(FUNC(b2m_state::b2m_romdisk_portc_w));
MCFG_DEVICE_ADD("pic8259", PIC8259, 0)
MCFG_PIC8259_OUT_INT_CB(INPUTLINE("maincpu", 0))

View File

@ -569,11 +569,11 @@ MACHINE_CONFIG_START(bw2_state::bw2)
m_pit->set_clk<2>(0); // Floppy /MTRON
m_pit->out_handler<2>().set(FUNC(bw2_state::mtron_w));
MCFG_DEVICE_ADD(I8255A_TAG, I8255A, 0)
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, bw2_state, ppi_pa_w))
MCFG_I8255_IN_PORTB_CB(READ8(*this, bw2_state, ppi_pb_r))
MCFG_I8255_IN_PORTC_CB(READ8(*this, bw2_state, ppi_pc_r))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, bw2_state, ppi_pc_w))
i8255_device &ppi(I8255A(config, I8255A_TAG));
ppi.out_pa_callback().set(FUNC(bw2_state::ppi_pa_w));
ppi.in_pb_callback().set(FUNC(bw2_state::ppi_pb_r));
ppi.in_pc_callback().set(FUNC(bw2_state::ppi_pc_r));
ppi.out_pc_callback().set(FUNC(bw2_state::ppi_pc_w));
MCFG_DEVICE_ADD(MSM6255_TAG, MSM6255, 16_MHz_XTAL)
MCFG_DEVICE_ADDRESS_MAP(0, lcdc_map)

View File

@ -372,21 +372,21 @@ MACHINE_CONFIG_START(cabaret_state::cabaret)
MCFG_DEVICE_IO_MAP(cabaret_portmap)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", cabaret_state, cabaret_interrupt)
MCFG_DEVICE_ADD("ppi1", I8255, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("BUTTONS2"))
MCFG_I8255_IN_PORTB_CB(IOPORT("SERVICE"))
MCFG_I8255_IN_PORTC_CB(IOPORT("COINS"))
i8255_device &ppi1(I8255(config, "ppi1"));
ppi1.in_pa_callback().set_ioport("BUTTONS2");
ppi1.in_pb_callback().set_ioport("SERVICE");
ppi1.in_pc_callback().set_ioport("COINS");
MCFG_DEVICE_ADD("ppi2", I8255, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("BUTTONS1"))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, cabaret_state, ppi2_b_w))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, cabaret_state, ppi2_c_w))
i8255_device &ppi2(I8255(config, "ppi2"));
ppi2.in_pa_callback().set_ioport("BUTTONS1");
ppi2.out_pb_callback().set(FUNC(cabaret_state::ppi2_b_w));
ppi2.out_pc_callback().set(FUNC(cabaret_state::ppi2_c_w));
MCFG_DEVICE_ADD("ppi3", I8255, 0)
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, cabaret_state, nmi_and_coins_w))
MCFG_I8255_TRISTATE_PORTA_CB(CONSTANT(0xf0))
MCFG_I8255_IN_PORTB_CB(IOPORT("DSW1"))
MCFG_I8255_IN_PORTC_CB(IOPORT("DSW2"))
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");
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)

View File

@ -828,15 +828,15 @@ MACHINE_CONFIG_START(cb2001_state::cb2001)
MCFG_DEVICE_IO_MAP(cb2001_io)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", cb2001_state, vblank_irq)
MCFG_DEVICE_ADD("ppi8255_0", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("IN0"))
MCFG_I8255_IN_PORTB_CB(IOPORT("IN1"))
MCFG_I8255_IN_PORTC_CB(IOPORT("IN2"))
i8255_device &ppi0(I8255A(config, "ppi8255_0"));
ppi0.in_pa_callback().set_ioport("IN0");
ppi0.in_pb_callback().set_ioport("IN1");
ppi0.in_pc_callback().set_ioport("IN2");
MCFG_DEVICE_ADD("ppi8255_1", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("DSW1"))
MCFG_I8255_IN_PORTB_CB(IOPORT("DSW2"))
MCFG_I8255_IN_PORTC_CB(IOPORT("DSW3"))
i8255_device &ppi1(I8255A(config, "ppi8255_1"));
ppi1.in_pa_callback().set_ioport("DSW1");
ppi1.in_pb_callback().set_ioport("DSW2");
ppi1.in_pc_callback().set_ioport("DSW3");
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_cb2001)

View File

@ -334,9 +334,9 @@ MACHINE_CONFIG_START(cdc721_state::cdc721)
ctc.zc_callback<1>().set("ctc", FUNC(z80ctc_device::trg2));
//ctc.zc_callback<2>().set("comuart", FUNC(ins8250_device::rclk_w));
MCFG_DEVICE_ADD("ppi", I8255A, 0)
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, cdc721_state, interrupt_mask_w))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, cdc721_state, misc_w))
i8255_device &ppi(I8255A(config, "ppi"));
ppi.out_pb_callback().set(FUNC(cdc721_state::interrupt_mask_w));
ppi.out_pc_callback().set(FUNC(cdc721_state::misc_w));
output_latch_device &ledlatch(OUTPUT_LATCH(config, "ledlatch"));
ledlatch.bit_handler<0>().set_output("error").invert();

View File

@ -515,10 +515,10 @@ MACHINE_CONFIG_START(chinsan_state::chinsan)
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
MCFG_DEVICE_ADD("ppi", I8255A, 0)
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, chinsan_state, input_select_w))
MCFG_I8255_IN_PORTB_CB(READ8(*this, chinsan_state, input_p2_r))
MCFG_I8255_IN_PORTC_CB(READ8(*this, chinsan_state, input_p1_r))
i8255_device &ppi(I8255A(config, "ppi"));
ppi.out_pa_callback().set(FUNC(chinsan_state::input_select_w));
ppi.in_pb_callback().set(FUNC(chinsan_state::input_p2_r));
ppi.in_pc_callback().set(FUNC(chinsan_state::input_p1_r));
// video hardware
MCFG_SCREEN_ADD("screen", RASTER)

View File

@ -340,11 +340,11 @@ MACHINE_CONFIG_START(clayshoo_state::clayshoo)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_UPDATE_DRIVER(clayshoo_state, screen_update_clayshoo)
MCFG_DEVICE_ADD("ppi8255_0", I8255A, 0)
I8255A(config, "ppi8255_0");
MCFG_DEVICE_ADD("ppi8255_1", I8255A, 0)
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, clayshoo_state, input_port_select_w))
MCFG_I8255_IN_PORTB_CB(READ8(*this, clayshoo_state, input_port_r))
i8255_device &ppi1(I8255A(config, "ppi8255_1"));
ppi1.out_pa_callback().set(FUNC(clayshoo_state::input_port_select_w));
ppi1.in_pb_callback().set(FUNC(clayshoo_state::input_port_r));
MACHINE_CONFIG_END

View File

@ -261,15 +261,15 @@ MACHINE_CONFIG_START(clpoker_state::clpoker)
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); // HY6116ALP-12
MCFG_DEVICE_ADD("ppi_outputs", I8255, 0) // M5L8255AP-5
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, clpoker_state, output_a_w))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, clpoker_state, output_b_w))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, clpoker_state, output_c_w))
i8255_device &ppi_outputs(I8255(config, "ppi_outputs")); // M5L8255AP-5
ppi_outputs.out_pa_callback().set(FUNC(clpoker_state::output_a_w));
ppi_outputs.out_pb_callback().set(FUNC(clpoker_state::output_b_w));
ppi_outputs.out_pc_callback().set(FUNC(clpoker_state::output_c_w));
MCFG_DEVICE_ADD("ppi_inputs", I8255, 0) // M5L8255AP-5
MCFG_I8255_IN_PORTA_CB(IOPORT("INA"))
MCFG_I8255_IN_PORTB_CB(IOPORT("INB"))
MCFG_I8255_IN_PORTC_CB(IOPORT("INC"))
i8255_device &ppi_inputs(I8255(config, "ppi_inputs")); // M5L8255AP-5
ppi_inputs.in_pa_callback().set_ioport("INA");
ppi_inputs.in_pb_callback().set_ioport("INB");
ppi_inputs.in_pc_callback().set_ioport("INC");
MCFG_TICKET_DISPENSER_ADD("hopper", attotime::from_msec(60), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW)

View File

@ -421,7 +421,7 @@ void compis_state::compis2_mem(address_map &map)
void compis_state::compis_io(address_map &map)
{
map.unmap_value_high();
map(0x0000, 0x0007) /* PCS0 */ .mirror(0x78).rw(I8255_TAG, FUNC(i8255_device::read), FUNC(i8255_device::write)).umask16(0xff00);
map(0x0000, 0x0007) /* PCS0 */ .mirror(0x78).rw(m_ppi, FUNC(i8255_device::read), FUNC(i8255_device::write)).umask16(0xff00);
map(0x0080, 0x0087) /* PCS1 */ .mirror(0x78).rw(I8253_TAG, FUNC(pit8253_device::read), FUNC(pit8253_device::write)).umask16(0x00ff);
map(0x0100, 0x011f) /* PCS2 */ .mirror(0x60).rw(MM58174A_TAG, FUNC(mm58274c_device::read), FUNC(mm58274c_device::write)).umask16(0x00ff);
map(0x0180, 0x01ff) /* PCS3 */ .rw(GRAPHICS_TAG, FUNC(compis_graphics_slot_device::pcs3_r), FUNC(compis_graphics_slot_device::pcs3_w));
@ -774,10 +774,10 @@ MACHINE_CONFIG_START(compis_state::compis)
MCFG_PIT8253_CLK2(15.36_MHz_XTAL/8)
MCFG_PIT8253_OUT2_HANDLER(WRITELINE(*this, compis_state, tmr5_w))
MCFG_DEVICE_ADD(I8255_TAG, I8255, 0)
MCFG_I8255_OUT_PORTA_CB(WRITE8("cent_data_out", output_latch_device, bus_w))
MCFG_I8255_IN_PORTB_CB(READ8(*this, compis_state, ppi_pb_r))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, compis_state, ppi_pc_w))
I8255(config, m_ppi);
m_ppi->out_pa_callback().set("cent_data_out", FUNC(output_latch_device::bus_w));
m_ppi->in_pb_callback().set(FUNC(compis_state::ppi_pb_r));
m_ppi->out_pc_callback().set(FUNC(compis_state::ppi_pc_w));
I8251(config, m_uart, 0);
m_uart->txd_handler().set(COMPIS_KEYBOARD_TAG, FUNC(compis_keyboard_device::si_w));

View File

@ -626,10 +626,10 @@ MACHINE_CONFIG_START(dblcrown_state::dblcrown)
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
MCFG_DEVICE_ADD("ppi", I8255, 0)
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, dblcrown_state, lamps_w))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, dblcrown_state, bank_w))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, dblcrown_state, mux_w))
i8255_device &ppi(I8255(config, "ppi"));
ppi.out_pa_callback().set(FUNC(dblcrown_state::lamps_w));
ppi.out_pb_callback().set(FUNC(dblcrown_state::bank_w));
ppi.out_pc_callback().set(FUNC(dblcrown_state::mux_w));
/* sound hardware */
SPEAKER(config, "mono").front_center();

View File

@ -397,10 +397,10 @@ MACHINE_CONFIG_START(dfruit_state::dfruit)
MCFG_DEVICE_ADD("tc0091lvc", TC0091LVC, 0)
MCFG_TC0091LVC_GFXDECODE("gfxdecode")
MCFG_DEVICE_ADD("ppi8255_0", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("IN0"))
MCFG_I8255_IN_PORTB_CB(IOPORT("IN1"))
MCFG_I8255_IN_PORTC_CB(IOPORT("IN2"))
i8255_device &ppi(I8255A(config, "ppi8255_0"));
ppi.in_pa_callback().set_ioport("IN0");
ppi.in_pb_callback().set_ioport("IN1");
ppi.in_pc_callback().set_ioport("IN2");
/* sound hardware */
SPEAKER(config, "mono").front_center();

View File

@ -276,16 +276,16 @@ MACHINE_CONFIG_START(dribling_state::dribling)
MCFG_DEVICE_IO_MAP(io_map)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", dribling_state, dribling_irq_gen)
MCFG_DEVICE_ADD("ppi8255_0", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(READ8(*this, dribling_state, dsr_r))
MCFG_I8255_IN_PORTB_CB(READ8(*this, dribling_state, input_mux0_r))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, dribling_state, misc_w))
I8255A(config, m_ppi8255_0);
m_ppi8255_0->in_pa_callback().set(FUNC(dribling_state::dsr_r));
m_ppi8255_0->in_pb_callback().set(FUNC(dribling_state::input_mux0_r));
m_ppi8255_0->out_pc_callback().set(FUNC(dribling_state::misc_w));
MCFG_DEVICE_ADD("ppi8255_1", I8255A, 0)
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, dribling_state, sound_w))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, dribling_state, pb_w))
MCFG_I8255_IN_PORTC_CB(IOPORT("IN0"))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, dribling_state, shr_w))
I8255A(config, m_ppi8255_1);
m_ppi8255_1->out_pa_callback().set(FUNC(dribling_state::sound_w));
m_ppi8255_1->out_pb_callback().set(FUNC(dribling_state::pb_w));
m_ppi8255_1->in_pc_callback().set_ioport("IN0");
m_ppi8255_1->out_pc_callback().set(FUNC(dribling_state::shr_w));
MCFG_WATCHDOG_ADD("watchdog")

View File

@ -441,11 +441,11 @@ MACHINE_CONFIG_START(ksm_state::ksm)
MCFG_PIC8259_OUT_INT_CB(INPUTLINE("maincpu", 0))
// D30
MCFG_DEVICE_ADD("ppi8255", I8255, 0)
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, ksm_state, ksm_ppi_porta_w))
MCFG_I8255_IN_PORTB_CB(IOPORT("SA1"))
MCFG_I8255_IN_PORTC_CB(IOPORT("SA2"))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, ksm_state, ksm_ppi_portc_w))
i8255_device &ppi(I8255(config, "ppi8255"));
ppi.out_pa_callback().set(FUNC(ksm_state::ksm_ppi_porta_w));
ppi.in_pb_callback().set_ioport("SA1");
ppi.in_pc_callback().set_ioport("SA2");
ppi.out_pc_callback().set(FUNC(ksm_state::ksm_ppi_portc_w));
// D42 - serial connection to host
I8251(config, m_i8251line, 0);

View File

@ -505,31 +505,31 @@ MACHINE_CONFIG_START(ecoinf2_state::ecoinf2_oxo)
config.set_default_layout(layout_ecoinf2);
MCFG_DEVICE_ADD("ic10_lamp", I8255, 0)
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, ecoinf2_state, ppi8255_ic10_write_a_strobedat0))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, ecoinf2_state, ppi8255_ic10_write_b_strobedat1))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, ecoinf2_state, ppi8255_ic10_write_c_strobe))
i8255_device &ic10_lamp(I8255(config, "ic10_lamp"));
ic10_lamp.out_pa_callback().set(FUNC(ecoinf2_state::ppi8255_ic10_write_a_strobedat0));
ic10_lamp.out_pb_callback().set(FUNC(ecoinf2_state::ppi8255_ic10_write_b_strobedat1));
ic10_lamp.out_pc_callback().set(FUNC(ecoinf2_state::ppi8255_ic10_write_c_strobe));
// IC24 is the workhorse of the Phoenix, it seems to handle meters, payslides, coin lamps, inhibits and the watchdog! */
MCFG_DEVICE_ADD("ic24_coin", I8255, 0)
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, ecoinf2_state, ppi8255_ic24_write_a_meters))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, ecoinf2_state, ppi8255_ic24_write_b_payouts))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, ecoinf2_state, ppi8255_ic24_write_c_inhibits))
i8255_device &ic24_coin(I8255(config, "ic24_coin"));
ic24_coin.out_pa_callback().set(FUNC(ecoinf2_state::ppi8255_ic24_write_a_meters));
ic24_coin.out_pb_callback().set(FUNC(ecoinf2_state::ppi8255_ic24_write_b_payouts));
ic24_coin.out_pc_callback().set(FUNC(ecoinf2_state::ppi8255_ic24_write_c_inhibits));
MCFG_DEVICE_ADD("ic22_inpt", I8255, 0)
MCFG_I8255_IN_PORTA_CB(READ8(*this, ecoinf2_state, ppi8255_ic22_read_a_levels)) // manual says level switches
MCFG_I8255_IN_PORTB_CB(READ8(*this, ecoinf2_state, ppi8255_ic22_read_b_coins))
MCFG_I8255_IN_PORTC_CB(READ8(*this, ecoinf2_state, ppi8255_ic22_read_c_misc)) // 0x20 appears to be meter power
i8255_device &ic22_inpt(I8255(config, "ic22_inpt"));
ic22_inpt.in_pa_callback().set(FUNC(ecoinf2_state::ppi8255_ic22_read_a_levels)); // manual says level switches
ic22_inpt.in_pb_callback().set(FUNC(ecoinf2_state::ppi8255_ic22_read_b_coins));
ic22_inpt.in_pc_callback().set(FUNC(ecoinf2_state::ppi8255_ic22_read_c_misc)); // 0x20 appears to be meter power
MCFG_DEVICE_ADD("ic23_reel", I8255, 0)
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, ecoinf2_state, ppi8255_ic23_write_a_reel01))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, ecoinf2_state, ppi8255_ic23_write_b_reel23))
MCFG_I8255_IN_PORTC_CB(READ8(*this, ecoinf2_state, ppi8255_ic23_read_c_key)) // optos and keys
i8255_device &ic23_reel(I8255(config, "ic23_reel"));
ic23_reel.out_pa_callback().set(FUNC(ecoinf2_state::ppi8255_ic23_write_a_reel01));
ic23_reel.out_pb_callback().set(FUNC(ecoinf2_state::ppi8255_ic23_write_b_reel23));
ic23_reel.in_pc_callback().set(FUNC(ecoinf2_state::ppi8255_ic23_read_c_key)); // optos and keys
MCFG_DEVICE_ADD("ic13_leds", I8255, 0)
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, ecoinf2_state, ppi8255_ic13_write_a_strobedat0))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, ecoinf2_state, ppi8255_ic13_write_b_strobedat1))
MCFG_I8255_IN_PORTC_CB(READ8(*this, ecoinf2_state, ppi8255_ic13_read_c_panel))
i8255_device &ic13_leds(I8255(config, "ic13_leds"));
ic13_leds.out_pa_callback().set(FUNC(ecoinf2_state::ppi8255_ic13_write_a_strobedat0));
ic13_leds.out_pb_callback().set(FUNC(ecoinf2_state::ppi8255_ic13_write_b_strobedat1));
ic13_leds.in_pc_callback().set(FUNC(ecoinf2_state::ppi8255_ic13_read_c_panel));
MCFG_DEVICE_ADD("reel0", REEL, ECOIN_200STEP_REEL, 12, 24, 0x09, 7, 200*2)
MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(*this, ecoinf2_state, reel_optic_cb<0>))

View File

@ -675,69 +675,69 @@ MACHINE_CONFIG_START(ecoinf3_state::ecoinf3_pyramid)
MCFG_DEVICE_ADD("sn1", SN76489, 4000000) // no idea what the sound chip is, this sounds terrible
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
MCFG_DEVICE_ADD("ppi8255_a", I8255, 0)
MCFG_I8255_IN_PORTA_CB(READ8(*this, ecoinf3_state, ppi8255_intf_a_read_a))
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, ecoinf3_state, ppi8255_intf_a_write_a_strobedat0))
MCFG_I8255_IN_PORTB_CB(READ8(*this, ecoinf3_state, ppi8255_intf_a_read_b))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, ecoinf3_state, ppi8255_intf_a_write_b_strobedat1))
MCFG_I8255_IN_PORTC_CB(READ8(*this, ecoinf3_state, ppi8255_intf_a_read_c))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, ecoinf3_state, ppi8255_intf_a_write_c_strobe))
i8255_device &ppia(I8255(config, "ppi8255_a"));
ppia.in_pa_callback().set(FUNC(ecoinf3_state::ppi8255_intf_a_read_a));
ppia.out_pa_callback().set(FUNC(ecoinf3_state::ppi8255_intf_a_write_a_strobedat0));
ppia.in_pb_callback().set(FUNC(ecoinf3_state::ppi8255_intf_a_read_b));
ppia.out_pb_callback().set(FUNC(ecoinf3_state::ppi8255_intf_a_write_b_strobedat1));
ppia.in_pc_callback().set(FUNC(ecoinf3_state::ppi8255_intf_a_read_c));
ppia.out_pc_callback().set(FUNC(ecoinf3_state::ppi8255_intf_a_write_c_strobe));
MCFG_DEVICE_ADD("ppi8255_b", I8255, 0)
MCFG_I8255_IN_PORTA_CB(READ8(*this, ecoinf3_state, ppi8255_intf_b_read_a))
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, ecoinf3_state, ppi8255_intf_b_write_a))
MCFG_I8255_IN_PORTB_CB(READ8(*this, ecoinf3_state, ppi8255_intf_b_read_b))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, ecoinf3_state, ppi8255_intf_b_write_b))
MCFG_I8255_IN_PORTC_CB(READ8(*this, ecoinf3_state, ppi8255_intf_b_read_c))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, ecoinf3_state, ppi8255_intf_b_write_c))
i8255_device &ppib(I8255(config, "ppi8255_b"));
ppib.in_pa_callback().set(FUNC(ecoinf3_state::ppi8255_intf_b_read_a));
ppib.out_pa_callback().set(FUNC(ecoinf3_state::ppi8255_intf_b_write_a));
ppib.in_pb_callback().set(FUNC(ecoinf3_state::ppi8255_intf_b_read_b));
ppib.out_pb_callback().set(FUNC(ecoinf3_state::ppi8255_intf_b_write_b));
ppib.in_pc_callback().set(FUNC(ecoinf3_state::ppi8255_intf_b_read_c));
ppib.out_pc_callback().set(FUNC(ecoinf3_state::ppi8255_intf_b_write_c));
MCFG_DEVICE_ADD("ppi8255_c", I8255, 0)
MCFG_I8255_IN_PORTA_CB(READ8(*this, ecoinf3_state, ppi8255_intf_c_read_a))
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, ecoinf3_state, ppi8255_intf_c_write_a))
MCFG_I8255_IN_PORTB_CB(READ8(*this, ecoinf3_state, ppi8255_intf_c_read_b))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, ecoinf3_state, ppi8255_intf_c_write_b))
MCFG_I8255_IN_PORTC_CB(READ8(*this, ecoinf3_state, ppi8255_intf_c_read_c))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, ecoinf3_state, ppi8255_intf_c_write_c))
i8255_device &ppic(I8255(config, "ppi8255_c"));
ppic.in_pa_callback().set(FUNC(ecoinf3_state::ppi8255_intf_c_read_a));
ppic.out_pa_callback().set(FUNC(ecoinf3_state::ppi8255_intf_c_write_a));
ppic.in_pb_callback().set(FUNC(ecoinf3_state::ppi8255_intf_c_read_b));
ppic.out_pb_callback().set(FUNC(ecoinf3_state::ppi8255_intf_c_write_b));
ppic.in_pc_callback().set(FUNC(ecoinf3_state::ppi8255_intf_c_read_c));
ppic.out_pc_callback().set(FUNC(ecoinf3_state::ppi8255_intf_c_write_c));
MCFG_DEVICE_ADD("ppi8255_d", I8255, 0)
MCFG_I8255_IN_PORTA_CB(READ8(*this, ecoinf3_state, ppi8255_intf_d_read_a))
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, ecoinf3_state, ppi8255_intf_d_write_a_reel01))
MCFG_I8255_IN_PORTB_CB(READ8(*this, ecoinf3_state, ppi8255_intf_d_read_b))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, ecoinf3_state, ppi8255_intf_d_write_b_reel23))
MCFG_I8255_IN_PORTC_CB(READ8(*this, ecoinf3_state, ppi8255_intf_d_read_c))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, ecoinf3_state, ppi8255_intf_d_write_c))
i8255_device &ppid(I8255(config, "ppi8255_d"));
ppid.in_pa_callback().set(FUNC(ecoinf3_state::ppi8255_intf_d_read_a));
ppid.out_pa_callback().set(FUNC(ecoinf3_state::ppi8255_intf_d_write_a_reel01));
ppid.in_pb_callback().set(FUNC(ecoinf3_state::ppi8255_intf_d_read_b));
ppid.out_pb_callback().set(FUNC(ecoinf3_state::ppi8255_intf_d_write_b_reel23));
ppid.in_pc_callback().set(FUNC(ecoinf3_state::ppi8255_intf_d_read_c));
ppid.out_pc_callback().set(FUNC(ecoinf3_state::ppi8255_intf_d_write_c));
MCFG_DEVICE_ADD("ppi8255_e", I8255, 0)
MCFG_I8255_IN_PORTA_CB(READ8(*this, ecoinf3_state, ppi8255_intf_e_read_a))
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, ecoinf3_state, ppi8255_intf_e_write_a_alpha_display)) // alpha display characters
MCFG_I8255_IN_PORTB_CB(READ8(*this, ecoinf3_state, ppi8255_intf_e_read_b))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, ecoinf3_state, ppi8255_intf_e_write_b)) // not written at an appropriate time for it to be a 'send' address for the text
MCFG_I8255_IN_PORTC_CB(READ8(*this, ecoinf3_state, ppi8255_intf_e_read_c))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, ecoinf3_state, ppi8255_intf_e_write_c)) // not written at an appropriate time for it to be a 'send' address for the text
i8255_device &ppie(I8255(config, "ppi8255_e"));
ppie.in_pa_callback().set(FUNC(ecoinf3_state::ppi8255_intf_e_read_a));
ppie.out_pa_callback().set(FUNC(ecoinf3_state::ppi8255_intf_e_write_a_alpha_display)); // alpha display characters
ppie.in_pb_callback().set(FUNC(ecoinf3_state::ppi8255_intf_e_read_b));
ppie.out_pb_callback().set(FUNC(ecoinf3_state::ppi8255_intf_e_write_b)); // not written at an appropriate time for it to be a 'send' address for the text
ppie.in_pc_callback().set(FUNC(ecoinf3_state::ppi8255_intf_e_read_c));
ppie.out_pc_callback().set(FUNC(ecoinf3_state::ppi8255_intf_e_write_c)); // not written at an appropriate time for it to be a 'send' address for the text
MCFG_DEVICE_ADD("ppi8255_f", I8255, 0)
MCFG_I8255_IN_PORTA_CB(READ8(*this, ecoinf3_state, ppi8255_intf_f_read_a))
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, ecoinf3_state, ppi8255_intf_f_write_a))
MCFG_I8255_IN_PORTB_CB(READ8(*this, ecoinf3_state, ppi8255_intf_f_read_b))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, ecoinf3_state, ppi8255_intf_f_write_b))
MCFG_I8255_IN_PORTC_CB(READ8(*this, ecoinf3_state, ppi8255_intf_f_read_c))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, ecoinf3_state, ppi8255_intf_f_write_c))
i8255_device &ppif(I8255(config, "ppi8255_f"));
ppif.in_pa_callback().set(FUNC(ecoinf3_state::ppi8255_intf_f_read_a));
ppif.out_pa_callback().set(FUNC(ecoinf3_state::ppi8255_intf_f_write_a));
ppif.in_pb_callback().set(FUNC(ecoinf3_state::ppi8255_intf_f_read_b));
ppif.out_pb_callback().set(FUNC(ecoinf3_state::ppi8255_intf_f_write_b));
ppif.in_pc_callback().set(FUNC(ecoinf3_state::ppi8255_intf_f_read_c));
ppif.out_pc_callback().set(FUNC(ecoinf3_state::ppi8255_intf_f_write_c));
MCFG_DEVICE_ADD("ppi8255_g", I8255, 0)
MCFG_I8255_IN_PORTA_CB(READ8(*this, ecoinf3_state, ppi8255_intf_g_read_a))
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, ecoinf3_state, ppi8255_intf_g_write_a))
MCFG_I8255_IN_PORTB_CB(READ8(*this, ecoinf3_state, ppi8255_intf_g_read_b))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, ecoinf3_state, ppi8255_intf_g_write_b))
MCFG_I8255_IN_PORTC_CB(READ8(*this, ecoinf3_state, ppi8255_intf_g_read_c))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, ecoinf3_state, ppi8255_intf_g_write_c))
i8255_device &ppig(I8255(config, "ppi8255_g"));
ppig.in_pa_callback().set(FUNC(ecoinf3_state::ppi8255_intf_g_read_a));
ppig.out_pa_callback().set(FUNC(ecoinf3_state::ppi8255_intf_g_write_a));
ppig.in_pb_callback().set(FUNC(ecoinf3_state::ppi8255_intf_g_read_b));
ppig.out_pb_callback().set(FUNC(ecoinf3_state::ppi8255_intf_g_write_b));
ppig.in_pc_callback().set(FUNC(ecoinf3_state::ppi8255_intf_g_read_c));
ppig.out_pc_callback().set(FUNC(ecoinf3_state::ppi8255_intf_g_write_c));
MCFG_DEVICE_ADD("ppi8255_h", I8255, 0)
MCFG_I8255_IN_PORTA_CB(READ8(*this, ecoinf3_state, ppi8255_intf_h_read_a))
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, ecoinf3_state, ppi8255_intf_h_write_a))
MCFG_I8255_IN_PORTB_CB(READ8(*this, ecoinf3_state, ppi8255_intf_h_read_b))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, ecoinf3_state, ppi8255_intf_h_write_b))
MCFG_I8255_IN_PORTC_CB(READ8(*this, ecoinf3_state, ppi8255_intf_h_read_c))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, ecoinf3_state, ppi8255_intf_h_write_c))
i8255_device &ppih(I8255(config, "ppi8255_h"));
ppih.in_pa_callback().set(FUNC(ecoinf3_state::ppi8255_intf_h_read_a));
ppih.out_pa_callback().set(FUNC(ecoinf3_state::ppi8255_intf_h_write_a));
ppih.in_pb_callback().set(FUNC(ecoinf3_state::ppi8255_intf_h_read_b));
ppih.out_pb_callback().set(FUNC(ecoinf3_state::ppi8255_intf_h_write_b));
ppih.in_pc_callback().set(FUNC(ecoinf3_state::ppi8255_intf_h_read_c));
ppih.out_pc_callback().set(FUNC(ecoinf3_state::ppi8255_intf_h_write_c));
MCFG_DEVICE_ADD("reel0", REEL, ECOIN_200STEP_REEL, 12, 24, 0x09, 7, 200*2)
MCFG_STEPPER_OPTIC_CALLBACK(WRITELINE(*this, ecoinf3_state, reel_optic_cb<0>))

View File

@ -493,9 +493,9 @@ MACHINE_CONFIG_START(epos_state::dealer) /* EPOS TRISTAR 9000 PCB */
MCFG_DEVICE_IO_MAP(dealer_io_map)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", epos_state, irq0_line_hold)
MCFG_DEVICE_ADD("ppi8255", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(READ8(*this, epos_state, i8255_porta_r))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, epos_state, i8255_portc_w))
i8255_device &ppi(I8255A(config, "ppi8255"));
ppi.in_pa_callback().set(FUNC(epos_state::i8255_porta_r));
ppi.out_pc_callback().set(FUNC(epos_state::i8255_portc_w));
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);

View File

@ -571,11 +571,11 @@ MACHINE_CONFIG_START(excali64_state::excali64)
//MCFG_PIT8253_OUT1_HANDLER(WRITELINE(*this, excali64_state, write_uart_clock))
//MCFG_PIT8253_CLK2(16_MHz_XTAL / 16) /* Timer 2: not used */
MCFG_DEVICE_ADD("ppi", I8255A, 0)
MCFG_I8255_OUT_PORTA_CB(WRITE8("cent_data_out", output_latch_device, bus_w)) // parallel port
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, excali64_state, ppib_w))
MCFG_I8255_IN_PORTC_CB(READ8(*this, excali64_state, ppic_r))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, excali64_state, ppic_w))
i8255_device &ppi(I8255A(config, "ppi"));
ppi.out_pa_callback().set("cent_data_out", FUNC(output_latch_device::bus_w)); // parallel port
ppi.out_pb_callback().set(FUNC(excali64_state::ppib_w));
ppi.in_pc_callback().set(FUNC(excali64_state::ppic_r));
ppi.out_pc_callback().set(FUNC(excali64_state::ppic_w));
/* sound hardware */
SPEAKER(config, "mono").front_center();

View File

@ -471,6 +471,7 @@ class fidel6502_state : public fidelbase_state
public:
fidel6502_state(const machine_config &mconfig, device_type type, const char *tag)
: fidelbase_state(mconfig, type, tag),
m_maincpu(*this, "maincpu"),
m_ppi8255(*this, "ppi8255"),
m_rombank(*this, "rombank"),
m_mainmap(*this, "mainmap"),
@ -482,7 +483,7 @@ public:
void rsc(machine_config &config);
DECLARE_INPUT_CHANGED_MEMBER(su9_cpu_freq);
void eas(machine_config &config);
void eas(machine_config &config, bool with_ppi_and_nvram = true);
void eag(machine_config &config);
void pc(machine_config &config);
void init_eag();
@ -523,6 +524,7 @@ public:
private:
// devices/pointers
required_device<cpu_device> m_maincpu;
optional_device<i8255_device> m_ppi8255;
optional_memory_bank m_rombank;
optional_device<address_map_bank_device> m_mainmap;
@ -1833,10 +1835,12 @@ INPUT_PORTS_END
MACHINE_CONFIG_START(fidel6502_state::rsc)
/* basic machine hardware */
MCFG_DEVICE_ADD("maincpu", M6502, 1800000) // measured approx 1.81MHz
MCFG_DEVICE_PROGRAM_MAP(rsc_map)
M6502(config, m_maincpu, 1800000); // measured approx 1.81MHz
m_maincpu->set_addrmap(AS_PROGRAM, &fidel6502_state::rsc_map);
MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_on", fidel6502_state, irq_on, attotime::from_hz(546)) // from 555 timer, measured
MCFG_TIMER_START_DELAY(attotime::from_hz(546) - attotime::from_usec(38)) // active for 38us
MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_off", fidel6502_state, irq_off, attotime::from_hz(546))
pia6821_device &pia(PIA6821(config, "pia", 0)); // MOS 6520
@ -1853,16 +1857,18 @@ MACHINE_CONFIG_START(fidel6502_state::rsc)
/* sound hardware */
SPEAKER(config, "speaker").front_center();
MCFG_DEVICE_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
DAC_1BIT(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.25);
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
MACHINE_CONFIG_END
MACHINE_CONFIG_START(fidel6502_state::csc)
/* basic machine hardware */
MCFG_DEVICE_ADD("maincpu", M6502, 3.9_MHz_XTAL/2) // from 3.9MHz resonator
MCFG_DEVICE_PROGRAM_MAP(csc_map)
M6502(config, m_maincpu, 3.9_MHz_XTAL/2); // from 3.9MHz resonator
m_maincpu->set_addrmap(AS_PROGRAM, &fidel6502_state::csc_map);
MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_on", fidel6502_state, irq_on, attotime::from_hz(38.4_kHz_XTAL/64)) // through 4060 IC, 600Hz
MCFG_TIMER_START_DELAY(attotime::from_hz(38.4_kHz_XTAL/64) - attotime::from_hz(38.4_kHz_XTAL*2)) // edge!
MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_off", fidel6502_state, irq_off, attotime::from_hz(38.4_kHz_XTAL/64))
@ -1887,82 +1893,84 @@ MACHINE_CONFIG_START(fidel6502_state::csc)
/* sound hardware */
SPEAKER(config, "speaker").front_center();
MCFG_DEVICE_ADD("speech", S14001A, 25000) // R/C circuit, around 25khz
MCFG_S14001A_EXT_READ_HANDLER(READ8(*this, fidel6502_state, csc_speech_r))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.75)
s14001a_device &speech(S14001A(config, "speech", 25000)); // R/C circuit, around 25khz
speech.ext_read().set(FUNC(fidel6502_state::csc_speech_r));
speech.add_route(ALL_OUTPUTS, "speaker", 0.75);
MCFG_DEVICE_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
DAC_1BIT(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.25);
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
MACHINE_CONFIG_END
MACHINE_CONFIG_START(fidel6502_state::su9)
void fidel6502_state::su9(machine_config &config)
{
csc(config);
/* basic machine hardware */
MCFG_DEVICE_MODIFY("maincpu")
MCFG_DEVICE_PROGRAM_MAP(su9_map)
m_maincpu->set_addrmap(AS_PROGRAM, &fidel6502_state::su9_map);
MCFG_MACHINE_RESET_OVERRIDE(fidel6502_state, su9)
config.set_default_layout(layout_fidel_su9);
MACHINE_CONFIG_END
MACHINE_CONFIG_START(fidel6502_state::eas)
}
void fidel6502_state::eas(machine_config &config, bool with_ppi_and_nvram)
{
/* basic machine hardware */
MCFG_DEVICE_ADD("maincpu", R65C02, 3_MHz_XTAL)
MCFG_DEVICE_PROGRAM_MAP(div_trampoline)
R65C02(config, m_maincpu, 3_MHz_XTAL);
m_maincpu->set_addrmap(AS_PROGRAM, &fidel6502_state::div_trampoline);
device_t *device;
MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_on", fidel6502_state, irq_on, attotime::from_hz(38.4_kHz_XTAL/64)) // through 4060 IC, 600Hz
MCFG_TIMER_START_DELAY(attotime::from_hz(38.4_kHz_XTAL/64) - attotime::from_hz(38.4_kHz_XTAL*2)) // edge!
MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_off", fidel6502_state, irq_off, attotime::from_hz(38.4_kHz_XTAL/64))
MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_off", fidel6502_state, irq_off, attotime::from_hz(38.4_kHz_XTAL/64))
MCFG_TIMER_DRIVER_ADD_PERIODIC("dummy_timer", fidel6502_state, dummy, attotime::from_hz(3_MHz_XTAL))
ADDRESS_MAP_BANK(config, "mainmap").set_map(&fidel6502_state::eas_map).set_options(ENDIANNESS_LITTLE, 8, 16);
ADDRESS_MAP_BANK(config, m_mainmap).set_map(&fidel6502_state::eas_map).set_options(ENDIANNESS_LITTLE, 8, 16);
MCFG_DEVICE_ADD("ppi8255", I8255, 0) // port B: input, port A & C: output
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, fidel6502_state, eas_ppi_porta_w))
MCFG_I8255_TRISTATE_PORTA_CB(CONSTANT(0))
MCFG_I8255_IN_PORTB_CB(READ8(*this, fidel6502_state, eas_ppi_portb_r))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, fidel6502_state, eas_ppi_portc_w))
if (with_ppi_and_nvram)
{
I8255(config, m_ppi8255); // port B: input, port A & C: output
m_ppi8255->out_pa_callback().set(FUNC(fidel6502_state::eas_ppi_porta_w));
m_ppi8255->tri_pa_callback().set_constant(0);
m_ppi8255->in_pb_callback().set(FUNC(fidel6502_state::eas_ppi_portb_r));
m_ppi8255->out_pc_callback().set(FUNC(fidel6502_state::eas_ppi_portc_w));
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
}
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", fidelbase_state, display_decay_tick, attotime::from_msec(1))
config.set_default_layout(layout_fidel_eas);
/* sound hardware */
SPEAKER(config, "speaker").front_center();
MCFG_DEVICE_ADD("speech", S14001A, 25000) // R/C circuit, around 25khz
MCFG_S14001A_EXT_READ_HANDLER(READ8(*this, fidel6502_state, csc_speech_r))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.75)
s14001a_device &speech(S14001A(config, "speech", 25000)); // R/C circuit, around 25khz
speech.ext_read().set(FUNC(fidel6502_state::csc_speech_r));
speech.add_route(ALL_OUTPUTS, "speaker", 0.75);
MCFG_DEVICE_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
DAC_1BIT(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.25);
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
/* cartridge */
MCFG_GENERIC_CARTSLOT_ADD("cartslot", generic_plain_slot, "fidel_scc")
MCFG_GENERIC_EXTENSIONS("bin,dat")
MCFG_GENERIC_LOAD(fidelbase_state, scc_cartridge)
MCFG_SOFTWARE_LIST_ADD("cart_list", "fidel_scc")
MACHINE_CONFIG_END
generic_cartslot_device &cartslot(GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "fidel_scc", "bin,dat"));
cartslot.set_device_load(device_image_load_delegate(&fidelbase_state::device_image_load_scc_cartridge, this));
SOFTWARE_LIST(config, "cart_list").set_original("fidel_scc");
}
MACHINE_CONFIG_START(fidel6502_state::pc)
eas(config);
eas(config, false);
/* basic machine hardware */
MCFG_DEVICE_MODIFY("maincpu")
MCFG_DEVICE_CLOCK(4_MHz_XTAL) // R65C02P4
m_maincpu->set_clock(4_MHz_XTAL); // R65C02P4
MCFG_DEVICE_REMOVE("dummy_timer")
MCFG_TIMER_DRIVER_ADD_PERIODIC("dummy_timer", fidel6502_state, dummy, attotime::from_hz(4_MHz_XTAL))
MCFG_DEVICE_MODIFY("mainmap")
MCFG_DEVICE_PROGRAM_MAP(pc_map)
MCFG_DEVICE_REMOVE("ppi8255")
MCFG_DEVICE_REMOVE("nvram")
m_mainmap->set_addrmap(AS_PROGRAM, &fidel6502_state::pc_map);
config.set_default_layout(layout_fidel_pc);
MACHINE_CONFIG_END
@ -1971,13 +1979,12 @@ MACHINE_CONFIG_START(fidel6502_state::eag)
eas(config);
/* basic machine hardware */
MCFG_DEVICE_MODIFY("maincpu")
MCFG_DEVICE_CLOCK(5_MHz_XTAL) // R65C02P4
m_maincpu->set_clock(5_MHz_XTAL); // R65C02P4
MCFG_DEVICE_REMOVE("dummy_timer")
MCFG_TIMER_DRIVER_ADD_PERIODIC("dummy_timer", fidel6502_state, dummy, attotime::from_hz(5_MHz_XTAL))
MCFG_DEVICE_MODIFY("mainmap")
MCFG_DEVICE_PROGRAM_MAP(eag_map)
m_mainmap->set_addrmap(AS_PROGRAM, &fidel6502_state::eag_map);
config.set_default_layout(layout_fidel_eag);
MACHINE_CONFIG_END

View File

@ -1700,14 +1700,14 @@ MACHINE_CONFIG_START(fidelz80_state::cc10)
MCFG_DEVICE_PROGRAM_MAP(cc10_map)
MCFG_DEVICE_IO_MAP(vcc_io)
MCFG_DEVICE_ADD("ppi8255", I8255, 0)
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, fidelz80_state, cc10_ppi_porta_w))
MCFG_I8255_TRISTATE_PORTA_CB(CONSTANT(0))
MCFG_I8255_IN_PORTB_CB(IOPORT("LEVEL"))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, fidelz80_state, vcc_ppi_portb_w))
MCFG_I8255_IN_PORTC_CB(READ8(*this, fidelz80_state, vcc_ppi_portc_r))
MCFG_I8255_TRISTATE_PORTB_CB(CONSTANT(0))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, fidelz80_state, vcc_ppi_portc_w))
I8255(config, m_ppi8255);
m_ppi8255->out_pa_callback().set(FUNC(fidelz80_state::cc10_ppi_porta_w));
m_ppi8255->tri_pa_callback().set_constant(0);
m_ppi8255->in_pb_callback().set_ioport("LEVEL");
m_ppi8255->out_pb_callback().set(FUNC(fidelz80_state::vcc_ppi_portb_w));
m_ppi8255->in_pc_callback().set(FUNC(fidelz80_state::vcc_ppi_portc_r));
m_ppi8255->tri_pb_callback().set_constant(0);
m_ppi8255->out_pc_callback().set(FUNC(fidelz80_state::vcc_ppi_portc_w));
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", fidelbase_state, display_decay_tick, attotime::from_msec(1))
config.set_default_layout(layout_fidel_cc);
@ -1726,14 +1726,14 @@ MACHINE_CONFIG_START(fidelz80_state::vcc)
MCFG_DEVICE_PROGRAM_MAP(vcc_map)
MCFG_DEVICE_IO_MAP(vcc_io)
MCFG_DEVICE_ADD("ppi8255", I8255, 0)
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, fidelz80_state, vcc_ppi_porta_w))
MCFG_I8255_TRISTATE_PORTA_CB(CONSTANT(0))
MCFG_I8255_IN_PORTB_CB(READ8(*this, fidelz80_state, vcc_ppi_portb_r))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, fidelz80_state, vcc_ppi_portb_w))
MCFG_I8255_TRISTATE_PORTB_CB(CONSTANT(0))
MCFG_I8255_IN_PORTC_CB(READ8(*this, fidelz80_state, vcc_ppi_portc_r))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, fidelz80_state, vcc_ppi_portc_w))
I8255(config, m_ppi8255);
m_ppi8255->out_pa_callback().set(FUNC(fidelz80_state::vcc_ppi_porta_w));
m_ppi8255->tri_pa_callback().set_constant(0);
m_ppi8255->in_pb_callback().set(FUNC(fidelz80_state::vcc_ppi_portb_r));
m_ppi8255->out_pb_callback().set(FUNC(fidelz80_state::vcc_ppi_portb_w));
m_ppi8255->tri_pb_callback().set_constant(0);
m_ppi8255->in_pc_callback().set(FUNC(fidelz80_state::vcc_ppi_portc_r));
m_ppi8255->out_pc_callback().set(FUNC(fidelz80_state::vcc_ppi_portc_w));
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", fidelbase_state, display_decay_tick, attotime::from_msec(1))
config.set_default_layout(layout_fidel_vcc);
@ -1755,10 +1755,10 @@ MACHINE_CONFIG_START(fidelz80_state::vsc)
MCFG_DEVICE_IO_MAP(vsc_io)
MCFG_DEVICE_PERIODIC_INT_DRIVER(fidelz80_state, nmi_line_pulse, 587) // 555 timer, measured
MCFG_DEVICE_ADD("ppi8255", I8255, 0)
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, fidelz80_state, vsc_ppi_porta_w))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, fidelz80_state, vsc_ppi_portb_w))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, fidelz80_state, vsc_ppi_portc_w))
I8255(config, m_ppi8255);
m_ppi8255->out_pa_callback().set(FUNC(fidelz80_state::vsc_ppi_porta_w));
m_ppi8255->out_pb_callback().set(FUNC(fidelz80_state::vsc_ppi_portb_w));
m_ppi8255->out_pc_callback().set(FUNC(fidelz80_state::vsc_ppi_portc_w));
Z80PIO(config, m_z80pio, 3.9_MHz_XTAL);
m_z80pio->in_pa_callback().set(FUNC(fidelz80_state::vsc_pio_porta_r));

View File

@ -439,27 +439,27 @@ MACHINE_CONFIG_START(fk1_state::fk1)
MCFG_PIT8253_CLK2(0)
MCFG_PIT8253_OUT2_HANDLER(WRITELINE(*this, fk1_state, fk1_pit_out2))
MCFG_DEVICE_ADD("ppi8255_1", I8255, 0)
MCFG_I8255_IN_PORTA_CB(READ8(*this, fk1_state, fk1_ppi_1_a_r))
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, fk1_state, fk1_ppi_1_a_w))
MCFG_I8255_IN_PORTB_CB(READ8(*this, fk1_state, fk1_ppi_1_b_r))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, fk1_state, fk1_ppi_1_b_w))
MCFG_I8255_IN_PORTC_CB(READ8(*this, fk1_state, fk1_ppi_1_c_r))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, fk1_state, fk1_ppi_1_c_w))
i8255_device &ppi1(I8255(config, "ppi8255_1"));
ppi1.in_pa_callback().set(FUNC(fk1_state::fk1_ppi_1_a_r));
ppi1.out_pa_callback().set(FUNC(fk1_state::fk1_ppi_1_a_w));
ppi1.in_pb_callback().set(FUNC(fk1_state::fk1_ppi_1_b_r));
ppi1.out_pb_callback().set(FUNC(fk1_state::fk1_ppi_1_b_w));
ppi1.in_pc_callback().set(FUNC(fk1_state::fk1_ppi_1_c_r));
ppi1.out_pc_callback().set(FUNC(fk1_state::fk1_ppi_1_c_w));
MCFG_DEVICE_ADD("ppi8255_2", I8255, 0)
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, fk1_state, fk1_ppi_2_a_w))
MCFG_I8255_IN_PORTB_CB(READ8(*this, fk1_state, fk1_ppi_2_b_r))
MCFG_I8255_IN_PORTC_CB(READ8(*this, fk1_state, fk1_ppi_2_c_r))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, fk1_state, fk1_ppi_2_c_w))
i8255_device &ppi2(I8255(config, "ppi8255_2"));
ppi2.out_pa_callback().set(FUNC(fk1_state::fk1_ppi_2_a_w));
ppi2.in_pb_callback().set(FUNC(fk1_state::fk1_ppi_2_b_r));
ppi2.in_pc_callback().set(FUNC(fk1_state::fk1_ppi_2_c_r));
ppi2.out_pc_callback().set(FUNC(fk1_state::fk1_ppi_2_c_w));
MCFG_DEVICE_ADD("ppi8255_3", I8255, 0)
MCFG_I8255_IN_PORTA_CB(READ8(*this, fk1_state, fk1_ppi_3_a_r))
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, fk1_state, fk1_ppi_3_a_w))
MCFG_I8255_IN_PORTB_CB(READ8(*this, fk1_state, fk1_ppi_3_b_r))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, fk1_state, fk1_ppi_3_b_w))
MCFG_I8255_IN_PORTC_CB(READ8(*this, fk1_state, fk1_ppi_3_c_r))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, fk1_state, fk1_ppi_3_c_w))
i8255_device &ppi3(I8255(config, "ppi8255_3"));
ppi3.in_pa_callback().set(FUNC(fk1_state::fk1_ppi_3_a_r));
ppi3.out_pa_callback().set(FUNC(fk1_state::fk1_ppi_3_a_w));
ppi3.in_pb_callback().set(FUNC(fk1_state::fk1_ppi_3_b_r));
ppi3.out_pb_callback().set(FUNC(fk1_state::fk1_ppi_3_b_w));
ppi3.in_pc_callback().set(FUNC(fk1_state::fk1_ppi_3_c_r));
ppi3.out_pc_callback().set(FUNC(fk1_state::fk1_ppi_3_c_w));
/* uart */
MCFG_DEVICE_ADD("uart", I8251, 0)

View File

@ -461,11 +461,11 @@ MACHINE_CONFIG_START(flipjack_state::flipjack)
MCFG_DEVICE_IO_MAP(flipjack_sound_io_map)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", flipjack_state, nmi_line_assert)
MCFG_DEVICE_ADD("ppi8255", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("P1"))
MCFG_I8255_IN_PORTB_CB(IOPORT("P2"))
MCFG_I8255_IN_PORTC_CB(IOPORT("P3"))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, flipjack_state, flipjack_portc_w))
i8255_device &ppi(I8255A(config, "ppi8255"));
ppi.in_pa_callback().set_ioport("P1");
ppi.in_pb_callback().set_ioport("P2");
ppi.in_pc_callback().set_ioport("P3");
ppi.out_pc_callback().set(FUNC(flipjack_state::flipjack_portc_w));
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)

View File

@ -703,13 +703,13 @@ MACHINE_CONFIG_START(fortecar_state::fortecar)
EEPROM_93C56_16BIT(config, "eeprom").default_value(0);
MCFG_DEVICE_ADD("fcppi0", I8255A, 0)
i8255_device &fcppi0(I8255A(config, "fcppi0"));
/* Init with 0x9a... A, B and high C as input
Serial Eprom connected to Port C */
MCFG_I8255_IN_PORTA_CB(IOPORT("SYSTEM"))
MCFG_I8255_IN_PORTB_CB(IOPORT("INPUT"))
MCFG_I8255_IN_PORTC_CB(READ8(*this, fortecar_state, ppi0_portc_r))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, fortecar_state, ppi0_portc_w))
fcppi0.in_pa_callback().set_ioport("SYSTEM");
fcppi0.in_pb_callback().set_ioport("INPUT");
fcppi0.in_pc_callback().set(FUNC(fortecar_state::ppi0_portc_r));
fcppi0.out_pc_callback().set(FUNC(fortecar_state::ppi0_portc_w));
MCFG_V3021_ADD("rtc")

View File

@ -844,15 +844,15 @@ MACHINE_CONFIG_START(freekick_state::freekick)
MCFG_MACHINE_START_OVERRIDE(freekick_state,freekick)
MCFG_MACHINE_RESET_OVERRIDE(freekick_state,freekick)
MCFG_DEVICE_ADD("ppi8255_0", I8255A, 0)
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, freekick_state, snd_rom_addr_l_w))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, freekick_state, snd_rom_addr_h_w))
MCFG_I8255_IN_PORTC_CB(READ8(*this, freekick_state, snd_rom_r))
i8255_device &ppi0(I8255A(config, "ppi8255_0"));
ppi0.out_pa_callback().set(FUNC(freekick_state::snd_rom_addr_l_w));
ppi0.out_pb_callback().set(FUNC(freekick_state::snd_rom_addr_h_w));
ppi0.in_pc_callback().set(FUNC(freekick_state::snd_rom_r));
MCFG_DEVICE_ADD("ppi8255_1", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("DSW1"))
MCFG_I8255_IN_PORTB_CB(IOPORT("DSW2"))
MCFG_I8255_IN_PORTC_CB(IOPORT("DSW3"))
i8255_device &ppi1(I8255A(config, "ppi8255_1"));
ppi1.in_pa_callback().set_ioport("DSW1");
ppi1.in_pb_callback().set_ioport("DSW2");
ppi1.in_pc_callback().set_ioport("DSW3");
/* video hardware */
MCFG_SCREEN_MODIFY("screen")

View File

@ -5966,21 +5966,22 @@ MACHINE_CONFIG_START(galaxian_state::sidam_bootleg_base)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(galaxian_state::konami_base)
void galaxian_state::konami_base(machine_config &config)
{
galaxian_base(config);
MCFG_DEVICE_ADD("ppi8255_0", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("IN0"))
MCFG_I8255_IN_PORTB_CB(IOPORT("IN1"))
MCFG_I8255_IN_PORTC_CB(IOPORT("IN2"))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, galaxian_state, konami_portc_0_w))
I8255A(config, m_ppi8255[0]);
m_ppi8255[0]->in_pa_callback().set_ioport("IN0");
m_ppi8255[0]->in_pb_callback().set_ioport("IN1");
m_ppi8255[0]->in_pc_callback().set_ioport("IN2");
m_ppi8255[0]->out_pc_callback().set(FUNC(galaxian_state::konami_portc_0_w));
MCFG_DEVICE_ADD("ppi8255_1", I8255A, 0)
MCFG_I8255_OUT_PORTA_CB(WRITE8("soundlatch", generic_latch_8_device, write))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, galaxian_state, konami_sound_control_w))
MCFG_I8255_IN_PORTC_CB(IOPORT("IN3"))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, galaxian_state, konami_portc_1_w))
MACHINE_CONFIG_END
I8255A(config, m_ppi8255[1]);
m_ppi8255[1]->out_pa_callback().set("soundlatch", FUNC(generic_latch_8_device::write));
m_ppi8255[1]->out_pb_callback().set(FUNC(galaxian_state::konami_sound_control_w));
m_ppi8255[1]->in_pc_callback().set_ioport("IN3");
m_ppi8255[1]->out_pc_callback().set(FUNC(galaxian_state::konami_portc_1_w));
}
MACHINE_CONFIG_START(galaxian_state::konami_sound_1x_ay8910)
@ -6358,12 +6359,10 @@ MACHINE_CONFIG_START(galaxian_state::theend)
MCFG_DEVICE_MODIFY("maincpu")
MCFG_DEVICE_PROGRAM_MAP(theend_map)
MCFG_DEVICE_MODIFY("ppi8255_0")
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, galaxian_state, theend_coin_counter_w))
m_ppi8255[0]->out_pc_callback().set(FUNC(galaxian_state::theend_coin_counter_w));
MCFG_DEVICE_MODIFY("ppi8255_1")
MCFG_I8255_IN_PORTC_CB(READ8(*this, galaxian_state, theend_protection_r))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, galaxian_state, theend_protection_w))
m_ppi8255[1]->in_pc_callback().set(FUNC(galaxian_state::theend_protection_r));
m_ppi8255[1]->out_pc_callback().set(FUNC(galaxian_state::theend_protection_w));
MACHINE_CONFIG_END
@ -6374,9 +6373,8 @@ MACHINE_CONFIG_START(galaxian_state::scramble)
MCFG_DEVICE_MODIFY("maincpu")
MCFG_DEVICE_PROGRAM_MAP(theend_map)
MCFG_DEVICE_MODIFY("ppi8255_1")
MCFG_I8255_IN_PORTC_CB(READ8(*this, galaxian_state, theend_protection_r))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, galaxian_state, theend_protection_w))
m_ppi8255[1]->in_pc_callback().set(FUNC(galaxian_state::theend_protection_r));
m_ppi8255[1]->out_pc_callback().set(FUNC(galaxian_state::theend_protection_w));
MACHINE_CONFIG_END
MACHINE_CONFIG_START(galaxian_state::jungsub)
@ -6473,9 +6471,8 @@ MACHINE_CONFIG_START(galaxian_state::scorpion)
MCFG_DEVICE_PROGRAM_MAP(scorpion_sound_map)
MCFG_DEVICE_IO_MAP(scorpion_sound_portmap)
MCFG_DEVICE_MODIFY("ppi8255_1")
MCFG_I8255_IN_PORTC_CB(READ8(*this, galaxian_state, scorpion_protection_r))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, galaxian_state, scorpion_protection_w))
m_ppi8255[1]->in_pc_callback().set(FUNC(galaxian_state::scorpion_protection_r));
m_ppi8255[1]->out_pc_callback().set(FUNC(galaxian_state::scorpion_protection_w));
/* extra AY8910 with I/O ports */
MCFG_DEVICE_ADD("8910.2", AY8910, KONAMI_SOUND_CLOCK/8)
@ -6501,8 +6498,8 @@ MACHINE_CONFIG_START(galaxian_state::sfx)
MCFG_DEVICE_PROGRAM_MAP(sfx_sample_map)
MCFG_DEVICE_IO_MAP(sfx_sample_portmap)
MCFG_DEVICE_ADD("ppi8255_2", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(READ8("soundlatch2", generic_latch_8_device, read))
I8255A(config, m_ppi8255[2]);
m_ppi8255[2]->in_pa_callback().set("soundlatch2", FUNC(generic_latch_8_device::read));
MCFG_GENERIC_LATCH_8_ADD("soundlatch2")
@ -6526,9 +6523,9 @@ MACHINE_CONFIG_START(galaxian_state::monsterz)
MCFG_DEVICE_PROGRAM_MAP(monsterz_map)
MCFG_DEVICE_MODIFY("ppi8255_1")
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, galaxian_state, monsterz_porta_1_w))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, galaxian_state, monsterz_portb_1_w))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, galaxian_state, monsterz_portc_1_w))
m_ppi8255[1]->out_pa_callback().set(FUNC(galaxian_state::monsterz_porta_1_w));
m_ppi8255[1]->out_pb_callback().set(FUNC(galaxian_state::monsterz_portb_1_w));
m_ppi8255[1]->out_pc_callback().set(FUNC(galaxian_state::monsterz_portc_1_w));
/* there are likely other differences too, but those can wait until after protection is sorted out */
@ -6662,8 +6659,7 @@ MACHINE_CONFIG_END
MACHINE_CONFIG_START(galaxian_state::moonwar)
scobra(config);
MCFG_DEVICE_MODIFY("ppi8255_0")
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, galaxian_state, moonwar_port_select_w))
m_ppi8255[0]->out_pc_callback().set(FUNC(galaxian_state::moonwar_port_select_w));
MCFG_PALETTE_MODIFY("palette")
MCFG_PALETTE_INIT_OWNER(galaxian_state,moonwar) // bullets are less yellow

View File

@ -572,10 +572,10 @@ MACHINE_CONFIG_START(gatron_state::gat)
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
MCFG_DEVICE_ADD("ppi8255", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("IN0"))
MCFG_I8255_IN_PORTB_CB(IOPORT("IN1"))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, gatron_state, output_port_1_w))
i8255_device &ppi(I8255A(config, "ppi8255"));
ppi.in_pa_callback().set_ioport("IN0");
ppi.in_pb_callback().set_ioport("IN1");
ppi.out_pc_callback().set(FUNC(gatron_state::output_port_1_w));
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)

View File

@ -89,6 +89,7 @@ public:
gei_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag)
, m_maincpu(*this, "maincpu")
, m_ppi(*this, "ppi8255_%u", 0U)
, m_dac(*this, "dac")
, m_ticket(*this, "ticket")
, m_screen(*this, "screen")
@ -157,6 +158,7 @@ private:
uint8_t m_nmi_mask;
required_device<cpu_device> m_maincpu;
required_device_array<i8255_device, 2> m_ppi;
required_device<dac_bit_interface> m_dac;
optional_device<ticket_dispenser_device> m_ticket;
required_device<screen_device> m_screen;
@ -355,8 +357,8 @@ void gei_state::getrivia_map(address_map &map)
map(0x0000, 0x1fff).rom();
map(0x2000, 0x3fff).bankr("rombank");
map(0x4000, 0x47ff).ram().share("nvram");
map(0x4800, 0x4803).rw("ppi8255_0", FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0x5000, 0x5003).rw("ppi8255_1", FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0x4800, 0x4803).rw(m_ppi[0], FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0x5000, 0x5003).rw(m_ppi[1], FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0x600f, 0x600f).w(FUNC(gei_state::banksel_w<8>));
map(0x6017, 0x6017).w(FUNC(gei_state::banksel_w<6>));
map(0x601b, 0x601b).w(FUNC(gei_state::banksel_w<4>));
@ -382,8 +384,8 @@ void gei_state::gselect_map(address_map &map)
map(0x4401, 0x4401).w(FUNC(gei_state::banksel_w<1>));
map(0x4402, 0x4402).w(FUNC(gei_state::banksel_w<2>));
map(0x4403, 0x4403).w(FUNC(gei_state::banksel_w<3>));
map(0x4800, 0x4803).rw("ppi8255_0", FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0x5000, 0x5003).rw("ppi8255_1", FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0x4800, 0x4803).rw(m_ppi[0], FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0x5000, 0x5003).rw(m_ppi[1], FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0x8000, 0x8002).w(FUNC(gei_state::gei_drawctrl_w));
map(0xc000, 0xffff).ram().w(FUNC(gei_state::gei_bitmap_w));
}
@ -394,8 +396,8 @@ void gei_state::amuse_map(address_map &map)
map(0x0000, 0x1fff).rom();
map(0x2000, 0x3fff).bankr("rombank");
map(0x4000, 0x47ff).ram().share("nvram");
map(0x4800, 0x4803).rw("ppi8255_0", FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0x5000, 0x5003).rw("ppi8255_1", FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0x4800, 0x4803).rw(m_ppi[0], FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0x5000, 0x5003).rw(m_ppi[1], FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0x606f, 0x606f).w(FUNC(gei_state::banksel_w<8>));
map(0x6077, 0x6077).w(FUNC(gei_state::banksel_w<6>));
map(0x607b, 0x607b).w(FUNC(gei_state::banksel_w<4>));
@ -411,8 +413,8 @@ void gei_state::gepoker_map(address_map &map)
map(0x0000, 0x1fff).rom();
map(0x2000, 0x3fff).bankr("rombank");
map(0x4000, 0x47ff).ram().share("nvram");
map(0x4800, 0x4803).rw("ppi8255_0", FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0x5000, 0x5003).rw("ppi8255_1", FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0x4800, 0x4803).rw(m_ppi[0], FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0x5000, 0x5003).rw(m_ppi[1], FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0x60ef, 0x60ef).w(FUNC(gei_state::banksel_w<4>));
map(0x60f7, 0x60f7).w(FUNC(gei_state::banksel_w<3>));
map(0x60fb, 0x60fb).w(FUNC(gei_state::banksel_w<2>));
@ -433,8 +435,8 @@ void gei_state::amuse1_map(address_map &map)
map(0x4401, 0x4401).w(FUNC(gei_state::banksel_w<2>));
map(0x4402, 0x4402).w(FUNC(gei_state::banksel_w<4>));
map(0x4403, 0x4403).w(FUNC(gei_state::banksel_w<6>));
map(0x4800, 0x4803).rw("ppi8255_0", FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0x5000, 0x5003).rw("ppi8255_1", FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0x4800, 0x4803).rw(m_ppi[0], FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0x5000, 0x5003).rw(m_ppi[1], FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0x5800, 0x5fff).rom();
map(0x8000, 0x8002).w(FUNC(gei_state::gei_drawctrl_w));
map(0x8000, 0xbfff).rom(); /* space for diagnostic ROM? */
@ -447,8 +449,8 @@ void gei_state::findout_map(address_map &map)
map(0x0000, 0xffff).r(FUNC(gei_state::catchall));
map(0x0000, 0x3fff).rom();
map(0x4000, 0x47ff).ram().share("nvram");
map(0x4800, 0x4803).rw("ppi8255_0", FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0x5000, 0x5003).rw("ppi8255_1", FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0x4800, 0x4803).rw(m_ppi[0], FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0x5000, 0x5003).rw(m_ppi[1], FUNC(i8255_device::read), FUNC(i8255_device::write));
/* banked ROMs are enabled by low 6 bits of the address */
map(0x601f, 0x601f).w(FUNC(gei_state::banksel_w<0>));
map(0x602f, 0x602f).w(FUNC(gei_state::banksel_w<5>));
@ -469,8 +471,8 @@ void gei_state::quizvid_map(address_map &map)
map(0x0000, 0xffff).r(FUNC(gei_state::catchall));
map(0x0000, 0x3fff).rom();
map(0x4000, 0x47ff).ram().share("nvram");
map(0x4800, 0x4803).rw("ppi8255_0", FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0x5000, 0x5003).rw("ppi8255_1", FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0x4800, 0x4803).rw(m_ppi[0], FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0x5000, 0x5003).rw(m_ppi[1], FUNC(i8255_device::read), FUNC(i8255_device::write));
/* banked ROMs are enabled by low 6 bits of the address */
map(0x602f, 0x602f).r(FUNC(gei_state::banksel_r<5>));
map(0x6037, 0x6037).r(FUNC(gei_state::banksel_r<4>));
@ -487,8 +489,8 @@ void gei_state::suprpokr_map(address_map &map)
{
map(0x0000, 0x3fff).rom();
map(0x4000, 0x47ff).ram().share("nvram");
map(0x4800, 0x4803).rw("ppi8255_0", FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0x5000, 0x5003).rw("ppi8255_1", FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0x4800, 0x4803).rw(m_ppi[0], FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0x5000, 0x5003).rw(m_ppi[1], FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0x6200, 0x6200).w(FUNC(gei_state::signature_w));
map(0x6400, 0x6400).r(FUNC(gei_state::signature_r));
map(0x8000, 0x8002).w(FUNC(gei_state::gei_drawctrl_w));
@ -500,8 +502,8 @@ void gei_state::sprtauth_map(address_map &map)
{
map(0x0000, 0x3fff).rom();
map(0x4000, 0x47ff).ram().share("nvram");
map(0x4800, 0x4803).rw("ppi8255_0", FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0x5000, 0x5003).rw("ppi8255_1", FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0x4800, 0x4803).rw(m_ppi[0], FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0x5000, 0x5003).rw(m_ppi[1], FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0x5600, 0x5600).r(FUNC(gei_state::signature_r));
map(0x5800, 0x5800).w(FUNC(gei_state::signature_w));
map(0x5a00, 0x5cff).w(FUNC(gei_state::geimulti_bank_w));
@ -994,15 +996,15 @@ MACHINE_CONFIG_START(gei_state::getrivia)
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
MCFG_DEVICE_ADD("ppi8255_0", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("DSWA"))
MCFG_I8255_IN_PORTB_CB(IOPORT("IN0"))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, gei_state, sound_w))
I8255A(config, m_ppi[0]);
m_ppi[0]->in_pa_callback().set_ioport("DSWA");
m_ppi[0]->in_pb_callback().set_ioport("IN0");
m_ppi[0]->out_pc_callback().set(FUNC(gei_state::sound_w));
MCFG_DEVICE_ADD("ppi8255_1", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("IN1"))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, gei_state, lamps_w))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, gei_state, lamps2_w))
I8255A(config, m_ppi[1]);
m_ppi[1]->in_pa_callback().set_ioport("IN1");
m_ppi[1]->out_pb_callback().set(FUNC(gei_state::lamps_w));
m_ppi[1]->out_pc_callback().set(FUNC(gei_state::lamps2_w));
MCFG_TICKET_DISPENSER_ADD("ticket", attotime::from_msec(100), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_HIGH)
@ -1019,11 +1021,8 @@ MACHINE_CONFIG_START(gei_state::findout)
MCFG_DEVICE_MODIFY("maincpu")
MCFG_DEVICE_PROGRAM_MAP(findout_map)
MCFG_DEVICE_REMOVE("ppi8255_1")
MCFG_DEVICE_ADD("ppi8255_1", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("IN1"))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, gei_state, lamps_w))
MCFG_I8255_IN_PORTC_CB(READ8(*this, gei_state, portC_r))
m_ppi[1]->in_pc_callback().set(FUNC(gei_state::portC_r));
m_ppi[1]->out_pc_callback().set_nop();
MACHINE_CONFIG_END
MACHINE_CONFIG_START(gei_state::quizvid)
@ -1046,19 +1045,10 @@ MACHINE_CONFIG_START(gei_state::gselect)
MCFG_DEVICE_MODIFY("maincpu")
MCFG_DEVICE_PROGRAM_MAP(gselect_map)
MCFG_DEVICE_REMOVE("ppi8255_0")
MCFG_DEVICE_REMOVE("ppi8255_1")
m_ppi[0]->out_pc_callback().set(FUNC(gei_state::sound2_w));
MCFG_DEVICE_ADD("ppi8255_0", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("DSWA"))
MCFG_I8255_IN_PORTB_CB(IOPORT("IN0"))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, gei_state, sound2_w))
MCFG_DEVICE_ADD("ppi8255_1", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("IN1"))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, gei_state, lamps_w))
MCFG_I8255_IN_PORTC_CB(IOPORT("IN2"))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, gei_state, nmi_w))
m_ppi[1]->in_pc_callback().set_ioport("IN2");
m_ppi[1]->out_pc_callback().set(FUNC(gei_state::nmi_w));
MACHINE_CONFIG_END
MACHINE_CONFIG_START(gei_state::jokpokera)

View File

@ -217,7 +217,6 @@
#include "cpu/z80/z80.h"
#include "cpu/mcs51/mcs51.h"
#include "machine/i8255.h"
#include "machine/nvram.h"
#include "sound/ay8910.h"
#include "sound/okim6295.h"
@ -8516,17 +8515,17 @@ MACHINE_CONFIG_START(cb3_state::ncb3)
MCFG_DEVICE_PROGRAM_MAP(ncb3_map)
MCFG_DEVICE_IO_MAP(ncb3_readwriteport)
MCFG_DEVICE_ADD("ppi8255_0", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("IN0"))
MCFG_I8255_IN_PORTB_CB(IOPORT("IN3")) //Player2 controls, confirmed
I8255A(config, m_ppi[0]);
m_ppi[0]->in_pa_callback().set_ioport("IN0");
m_ppi[0]->in_pb_callback().set_ioport("IN3"); //Player2 controls, confirmed
MCFG_DEVICE_ADD("ppi8255_1", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("IN1"))
MCFG_I8255_IN_PORTB_CB(IOPORT("IN2"))
MCFG_I8255_IN_PORTC_CB(IOPORT("DSW1"))
I8255A(config, m_ppi[1]);
m_ppi[1]->in_pa_callback().set_ioport("IN1");
m_ppi[1]->in_pb_callback().set_ioport("IN2");
m_ppi[1]->in_pc_callback().set_ioport("DSW1");
MCFG_DEVICE_ADD("ppi8255_2", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("DSW2"))
I8255A(config, m_ppi[2]);
m_ppi[2]->in_pa_callback().set_ioport("DSW2");
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@ -8591,17 +8590,17 @@ MACHINE_CONFIG_START(goldstar_state::wcherry)
MCFG_DEVICE_PROGRAM_MAP(wcherry_map)
MCFG_DEVICE_IO_MAP(wcherry_readwriteport)
MCFG_DEVICE_ADD("ppi8255_0", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("IN0"))
MCFG_I8255_IN_PORTB_CB(IOPORT("IN3")) //Player2 controls, confirmed
I8255A(config, m_ppi[0]);
m_ppi[0]->in_pa_callback().set_ioport("IN0");
m_ppi[0]->in_pb_callback().set_ioport("IN3"); //Player2 controls, confirmed
MCFG_DEVICE_ADD("ppi8255_1", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("IN1"))
MCFG_I8255_IN_PORTB_CB(IOPORT("IN2"))
MCFG_I8255_IN_PORTC_CB(IOPORT("DSW1"))
I8255A(config, m_ppi[1]);
m_ppi[1]->in_pa_callback().set_ioport("IN1");
m_ppi[1]->in_pb_callback().set_ioport("IN2");
m_ppi[1]->in_pc_callback().set_ioport("DSW1");
MCFG_DEVICE_ADD("ppi8255_2", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("DSW2"))
I8255A(config, m_ppi[2]);
m_ppi[2]->in_pa_callback().set_ioport("DSW2");
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@ -8640,15 +8639,15 @@ MACHINE_CONFIG_START(cmaster_state::cm)
MCFG_DEVICE_PROGRAM_MAP(cm_map)
MCFG_DEVICE_IO_MAP(cm_portmap)
MCFG_DEVICE_ADD("ppi8255_0", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("IN0"))
MCFG_I8255_IN_PORTB_CB(IOPORT("IN1"))
MCFG_I8255_IN_PORTC_CB(IOPORT("IN2"))
I8255A(config, m_ppi[0]);
m_ppi[0]->in_pa_callback().set_ioport("IN0");
m_ppi[0]->in_pb_callback().set_ioport("IN1");
m_ppi[0]->in_pc_callback().set_ioport("IN2");
MCFG_DEVICE_ADD("ppi8255_1", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("DSW1"))
MCFG_I8255_IN_PORTB_CB(IOPORT("DSW2"))
MCFG_I8255_IN_PORTC_CB(IOPORT("DSW3"))
I8255A(config, m_ppi[1]);
m_ppi[1]->in_pa_callback().set_ioport("DSW1");
m_ppi[1]->in_pb_callback().set_ioport("DSW2");
m_ppi[1]->in_pc_callback().set_ioport("DSW3");
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@ -8688,15 +8687,15 @@ MACHINE_CONFIG_START(goldstar_state::cmast91)
MCFG_DEVICE_PROGRAM_MAP(cm_map)
MCFG_DEVICE_IO_MAP(cmast91_portmap)
MCFG_DEVICE_ADD("ppi8255_0", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("IN0"))
MCFG_I8255_IN_PORTB_CB(IOPORT("IN1"))
MCFG_I8255_IN_PORTC_CB(IOPORT("IN2"))
I8255A(config, m_ppi[0]);
m_ppi[0]->in_pa_callback().set_ioport("IN0");
m_ppi[0]->in_pb_callback().set_ioport("IN1");
m_ppi[0]->in_pc_callback().set_ioport("IN2");
MCFG_DEVICE_ADD("ppi8255_1", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("DSW1"))
MCFG_I8255_IN_PORTB_CB(IOPORT("DSW2"))
MCFG_I8255_IN_PORTC_CB(IOPORT("DSW3"))
I8255A(config, m_ppi[1]);
m_ppi[1]->in_pa_callback().set_ioport("DSW1");
m_ppi[1]->in_pb_callback().set_ioport("DSW2");
m_ppi[1]->in_pc_callback().set_ioport("DSW3");
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@ -8738,21 +8737,21 @@ MACHINE_CONFIG_START(wingco_state::lucky8)
MCFG_DEVICE_PROGRAM_MAP(lucky8_map)
//MCFG_DEVICE_IO_MAP(goldstar_readport)
MCFG_DEVICE_ADD("ppi8255_0", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("IN0"))
MCFG_I8255_IN_PORTB_CB(IOPORT("IN1"))
MCFG_I8255_IN_PORTC_CB(IOPORT("IN2"))
I8255A(config, m_ppi[0]);
m_ppi[0]->in_pa_callback().set_ioport("IN0");
m_ppi[0]->in_pb_callback().set_ioport("IN1");
m_ppi[0]->in_pc_callback().set_ioport("IN2");
MCFG_DEVICE_ADD("ppi8255_1", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("IN3"))
MCFG_I8255_IN_PORTB_CB(IOPORT("IN4"))
MCFG_I8255_IN_PORTC_CB(IOPORT("DSW1"))
I8255A(config, m_ppi[1]);
m_ppi[1]->in_pa_callback().set_ioport("IN3");
m_ppi[1]->in_pb_callback().set_ioport("IN4");
m_ppi[1]->in_pc_callback().set_ioport("DSW1");
MCFG_DEVICE_ADD("ppi8255_2", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("DSW2"))
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, wingco_state, system_outputa_w))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, wingco_state, system_outputb_w))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, wingco_state, system_outputc_w))
I8255A(config, m_ppi[2]);
m_ppi[2]->in_pa_callback().set_ioport("DSW2");
m_ppi[2]->out_pa_callback().set(FUNC(wingco_state::system_outputa_w));
m_ppi[2]->out_pb_callback().set(FUNC(wingco_state::system_outputb_w));
m_ppi[2]->out_pc_callback().set(FUNC(wingco_state::system_outputc_w));
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@ -8793,21 +8792,21 @@ MACHINE_CONFIG_START(wingco_state::bingowng)
MCFG_DEVICE_PROGRAM_MAP(lucky8_map)
//MCFG_DEVICE_IO_MAP(goldstar_readport)
MCFG_DEVICE_ADD("ppi8255_0", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("IN0"))
MCFG_I8255_IN_PORTB_CB(IOPORT("IN1"))
MCFG_I8255_IN_PORTC_CB(IOPORT("IN2"))
I8255A(config, m_ppi[0]);
m_ppi[0]->in_pa_callback().set_ioport("IN0");
m_ppi[0]->in_pb_callback().set_ioport("IN1");
m_ppi[0]->in_pc_callback().set_ioport("IN2");
MCFG_DEVICE_ADD("ppi8255_1", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("IN3"))
MCFG_I8255_IN_PORTB_CB(IOPORT("IN4"))
MCFG_I8255_IN_PORTC_CB(IOPORT("DSW1"))
I8255A(config, m_ppi[1]);
m_ppi[1]->in_pa_callback().set_ioport("IN3");
m_ppi[1]->in_pb_callback().set_ioport("IN4");
m_ppi[1]->in_pc_callback().set_ioport("DSW1");
MCFG_DEVICE_ADD("ppi8255_2", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("DSW2"))
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, wingco_state, system_outputa_w))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, wingco_state, system_outputb_w))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, wingco_state, system_outputc_w))
I8255A(config, m_ppi[2]);
m_ppi[2]->in_pa_callback().set_ioport("DSW2");
m_ppi[2]->out_pa_callback().set(FUNC(wingco_state::system_outputa_w));
m_ppi[2]->out_pb_callback().set(FUNC(wingco_state::system_outputb_w));
m_ppi[2]->out_pc_callback().set(FUNC(wingco_state::system_outputc_w));
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@ -8852,8 +8851,7 @@ MACHINE_CONFIG_START(wingco_state::flam7_w4)
MCFG_DEVICE_MODIFY("maincpu")
MCFG_DEVICE_PROGRAM_MAP(flaming7_map)
MCFG_DEVICE_MODIFY("ppi8255_0")
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, wingco_state, fl7w4_outc802_w))
m_ppi[0]->out_pc_callback().set(FUNC(wingco_state::fl7w4_outc802_w));
MCFG_DEVICE_ADD(m_fl7w4_id, DS2401)
MACHINE_CONFIG_END
@ -8867,8 +8865,7 @@ MACHINE_CONFIG_START(wingco_state::flaming7)
MCFG_GFXDECODE_MODIFY("gfxdecode", gfx_flaming7)
// to do serial protection.
MCFG_DEVICE_MODIFY("ppi8255_0")
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, wingco_state, fl7w4_outc802_w))
m_ppi[0]->out_pc_callback().set(FUNC(wingco_state::fl7w4_outc802_w));
MCFG_DEVICE_ADD(m_fl7w4_id, DS2401)
MACHINE_CONFIG_END
@ -8882,8 +8879,7 @@ MACHINE_CONFIG_START(wingco_state::flam7_tw)
MCFG_GFXDECODE_MODIFY("gfxdecode", gfx_flam7_tw)
// to do serial protection.
MCFG_DEVICE_MODIFY("ppi8255_0")
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, wingco_state, fl7w4_outc802_w))
m_ppi[0]->out_pc_callback().set(FUNC(wingco_state::fl7w4_outc802_w));
MCFG_DEVICE_ADD(m_fl7w4_id, DS2401)
MACHINE_CONFIG_END
@ -8920,21 +8916,21 @@ MACHINE_CONFIG_START(wingco_state::magodds)
MCFG_DEVICE_PROGRAM_MAP(magodds_map)
//MCFG_DEVICE_IO_MAP(goldstar_readport)
MCFG_DEVICE_ADD("ppi8255_0", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("IN0"))
MCFG_I8255_IN_PORTB_CB(IOPORT("IN1"))
MCFG_I8255_IN_PORTC_CB(IOPORT("IN2"))
I8255A(config, m_ppi[0]);
m_ppi[0]->in_pa_callback().set_ioport("IN0");
m_ppi[0]->in_pb_callback().set_ioport("IN1");
m_ppi[0]->in_pc_callback().set_ioport("IN2");
MCFG_DEVICE_ADD("ppi8255_1", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("IN3"))
MCFG_I8255_IN_PORTB_CB(IOPORT("IN4"))
MCFG_I8255_IN_PORTC_CB(IOPORT("DSW1"))
I8255A(config, m_ppi[1]);
m_ppi[1]->in_pa_callback().set_ioport("IN3");
m_ppi[1]->in_pb_callback().set_ioport("IN4");
m_ppi[1]->in_pc_callback().set_ioport("DSW1");
MCFG_DEVICE_ADD("ppi8255_2", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("DSW2"))
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, wingco_state, system_outputa_w))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, wingco_state, system_outputb_w))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, wingco_state, system_outputc_w))
I8255A(config, m_ppi[2]);
m_ppi[2]->in_pa_callback().set_ioport("DSW2");
m_ppi[2]->out_pa_callback().set(FUNC(wingco_state::system_outputa_w));
m_ppi[2]->out_pb_callback().set(FUNC(wingco_state::system_outputb_w));
m_ppi[2]->out_pc_callback().set(FUNC(wingco_state::system_outputc_w));
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@ -8975,17 +8971,17 @@ MACHINE_CONFIG_START(goldstar_state::kkotnoli)
MCFG_DEVICE_PROGRAM_MAP(kkotnoli_map)
//MCFG_DEVICE_IO_MAP(goldstar_readport)
MCFG_DEVICE_ADD("ppi8255_0", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("IN0"))
MCFG_I8255_IN_PORTB_CB(IOPORT("IN1"))
MCFG_I8255_IN_PORTC_CB(IOPORT("IN2"))
I8255A(config, m_ppi[0]);
m_ppi[0]->in_pa_callback().set_ioport("IN0");
m_ppi[0]->in_pb_callback().set_ioport("IN1");
m_ppi[0]->in_pc_callback().set_ioport("IN2");
MCFG_DEVICE_ADD("ppi8255_1", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("IN3"))
MCFG_I8255_IN_PORTB_CB(IOPORT("IN4"))
I8255A(config, m_ppi[1]);
m_ppi[1]->in_pa_callback().set_ioport("IN3");
m_ppi[1]->in_pb_callback().set_ioport("IN4");
MCFG_DEVICE_ADD("ppi8255_2", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("DSW1"))
I8255A(config, m_ppi[2]);
m_ppi[2]->in_pa_callback().set_ioport("DSW1");
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@ -9019,13 +9015,13 @@ MACHINE_CONFIG_START(goldstar_state::ladylinr)
MCFG_DEVICE_PROGRAM_MAP(ladylinr_map)
//MCFG_DEVICE_IO_MAP(goldstar_readport)
MCFG_DEVICE_ADD("ppi8255_0", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("IN0"))
MCFG_I8255_IN_PORTB_CB(IOPORT("IN1"))
MCFG_I8255_IN_PORTC_CB(IOPORT("IN2"))
I8255A(config, m_ppi[0]);
m_ppi[0]->in_pa_callback().set_ioport("IN0");
m_ppi[0]->in_pb_callback().set_ioport("IN1");
m_ppi[0]->in_pc_callback().set_ioport("IN2");
MCFG_DEVICE_ADD("ppi8255_1", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("DSW1"))
I8255A(config, m_ppi[1]);
m_ppi[1]->in_pa_callback().set_ioport("DSW1");
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@ -9062,21 +9058,21 @@ MACHINE_CONFIG_START(wingco_state::wcat3)
MCFG_DEVICE_PROGRAM_MAP(wcat3_map)
//MCFG_DEVICE_IO_MAP(goldstar_readport)
MCFG_DEVICE_ADD("ppi8255_0", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("IN0"))
MCFG_I8255_IN_PORTB_CB(IOPORT("IN1"))
MCFG_I8255_IN_PORTC_CB(IOPORT("IN2"))
I8255A(config, m_ppi[0]);
m_ppi[0]->in_pa_callback().set_ioport("IN0");
m_ppi[0]->in_pb_callback().set_ioport("IN1");
m_ppi[0]->in_pc_callback().set_ioport("IN2");
MCFG_DEVICE_ADD("ppi8255_1", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("IN3"))
MCFG_I8255_IN_PORTB_CB(IOPORT("IN4"))
MCFG_I8255_IN_PORTC_CB(IOPORT("DSW1"))
I8255A(config, m_ppi[1]);
m_ppi[1]->in_pa_callback().set_ioport("IN3");
m_ppi[1]->in_pb_callback().set_ioport("IN4");
m_ppi[1]->in_pc_callback().set_ioport("DSW1");
MCFG_DEVICE_ADD("ppi8255_2", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("DSW2"))
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, wingco_state, system_outputa_w))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, wingco_state, system_outputb_w))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, wingco_state, system_outputc_w))
I8255A(config, m_ppi[2]);
m_ppi[2]->in_pa_callback().set_ioport("DSW2");
m_ppi[2]->out_pa_callback().set(FUNC(wingco_state::system_outputa_w));
m_ppi[2]->out_pb_callback().set(FUNC(wingco_state::system_outputb_w));
m_ppi[2]->out_pc_callback().set(FUNC(wingco_state::system_outputc_w));
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@ -9119,15 +9115,15 @@ MACHINE_CONFIG_START(cmaster_state::amcoe1)
MCFG_DEVICE_PROGRAM_MAP(cm_map)
MCFG_DEVICE_IO_MAP(amcoe1_portmap)
MCFG_DEVICE_ADD("ppi8255_0", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("IN0"))
MCFG_I8255_IN_PORTB_CB(IOPORT("IN1"))
MCFG_I8255_IN_PORTC_CB(IOPORT("IN2"))
I8255A(config, m_ppi[0]);
m_ppi[0]->in_pa_callback().set_ioport("IN0");
m_ppi[0]->in_pb_callback().set_ioport("IN1");
m_ppi[0]->in_pc_callback().set_ioport("IN2");
MCFG_DEVICE_ADD("ppi8255_1", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("DSW1"))
MCFG_I8255_IN_PORTB_CB(IOPORT("DSW2"))
MCFG_I8255_IN_PORTC_CB(IOPORT("DSW3"))
I8255A(config, m_ppi[1]);
m_ppi[1]->in_pa_callback().set_ioport("DSW1");
m_ppi[1]->in_pb_callback().set_ioport("DSW2");
m_ppi[1]->in_pc_callback().set_ioport("DSW3");
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@ -9176,15 +9172,15 @@ MACHINE_CONFIG_START(cmaster_state::amcoe2)
MCFG_DEVICE_PROGRAM_MAP(cm_map)
MCFG_DEVICE_IO_MAP(amcoe2_portmap)
MCFG_DEVICE_ADD("ppi8255_0", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("IN0"))
MCFG_I8255_IN_PORTB_CB(IOPORT("IN1"))
MCFG_I8255_IN_PORTC_CB(IOPORT("IN2"))
I8255A(config, m_ppi[0]);
m_ppi[0]->in_pa_callback().set_ioport("IN0");
m_ppi[0]->in_pb_callback().set_ioport("IN1");
m_ppi[0]->in_pc_callback().set_ioport("IN2");
MCFG_DEVICE_ADD("ppi8255_1", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("DSW1"))
MCFG_I8255_IN_PORTB_CB(IOPORT("DSW2"))
MCFG_I8255_IN_PORTC_CB(IOPORT("DSW3"))
I8255A(config, m_ppi[1]);
m_ppi[1]->in_pa_callback().set_ioport("DSW1");
m_ppi[1]->in_pb_callback().set_ioport("DSW2");
m_ppi[1]->in_pc_callback().set_ioport("DSW3");
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@ -9398,20 +9394,21 @@ MACHINE_CONFIG_START(unkch_state::feverch)
MCFG_DEVICE_PROGRAM_MAP(feverch_map)
MCFG_DEVICE_IO_MAP(feverch_portmap)
MCFG_DEVICE_ADD("ppi8255_0", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("IN0"))
MCFG_I8255_IN_PORTB_CB(IOPORT("IN1"))
MCFG_I8255_IN_PORTC_CB(IOPORT("IN2"))
I8255A(config, m_ppi[0]);
m_ppi[0]->in_pa_callback().set_ioport("IN0");
m_ppi[0]->in_pb_callback().set_ioport("IN1");
m_ppi[0]->in_pc_callback().set_ioport("IN2");
MCFG_DEVICE_ADD("ppi8255_1", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("IN3"))
MCFG_I8255_IN_PORTB_CB(IOPORT("IN4"))
MCFG_I8255_IN_PORTC_CB(IOPORT("DSW1"))
I8255A(config, m_ppi[1]);
m_ppi[1]->in_pa_callback().set_ioport("IN3");
m_ppi[1]->in_pb_callback().set_ioport("IN4");
m_ppi[1]->in_pc_callback().set_ioport("DSW1");
I8255A(config, m_ppi[2]);
m_ppi[2]->in_pa_callback().set_ioport("DSW4");
m_ppi[2]->in_pb_callback().set_ioport("DSW2");
m_ppi[2]->in_pc_callback().set_ioport("DSW3");
MCFG_DEVICE_ADD("ppi8255_2", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("DSW4"))
MCFG_I8255_IN_PORTB_CB(IOPORT("DSW2"))
MCFG_I8255_IN_PORTC_CB(IOPORT("DSW3"))
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(64*8, 32*8)

View File

@ -38,6 +38,7 @@ public:
gp_1_state(const machine_config &mconfig, device_type type, const char *tag)
: genpin_class(mconfig, type, tag)
, m_maincpu(*this, "maincpu")
, m_ppi(*this, "ppi")
, m_ctc(*this, "ctc")
, m_sn(*this, "snsnd")
, m_io_dsw0(*this, "DSW0")
@ -72,6 +73,7 @@ private:
virtual void machine_reset() override;
virtual void machine_start() override { m_digits.resolve(); }
required_device<z80_device> m_maincpu;
required_device<i8255_device> m_ppi;
required_device<z80ctc_device> m_ctc;
optional_device<sn76477_device> m_sn;
required_ioport m_io_dsw0;
@ -96,7 +98,7 @@ void gp_1_state::gp_1_map(address_map &map)
void gp_1_state::gp_1_io(address_map &map)
{
map.global_mask(0x0f);
map(0x04, 0x07).rw("ppi", FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0x04, 0x07).rw(m_ppi, FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0x08, 0x0b).rw(m_ctc, FUNC(z80ctc_device::read), FUNC(z80ctc_device::write));
}
@ -449,10 +451,10 @@ MACHINE_CONFIG_START(gp_1_state::gp_1)
genpin_audio(config);
/* Devices */
MCFG_DEVICE_ADD("ppi", I8255A, 0 )
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, gp_1_state, porta_w))
MCFG_I8255_IN_PORTB_CB(READ8(*this, gp_1_state, portb_r))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, gp_1_state, portc_w))
I8255A(config, m_ppi);
m_ppi->out_pa_callback().set(FUNC(gp_1_state::porta_w));
m_ppi->in_pb_callback().set(FUNC(gp_1_state::portb_r));
m_ppi->out_pc_callback().set(FUNC(gp_1_state::portc_w));
Z80CTC(config, m_ctc, 2457600);
m_ctc->intr_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); // Todo: absence of ints will cause a watchdog reset
@ -478,11 +480,7 @@ MACHINE_CONFIG_START(gp_1_state::gp_1s)
MCFG_SN76477_ENABLE(1) // enable
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MCFG_DEVICE_REMOVE("ppi")
MCFG_DEVICE_ADD("ppi", I8255A, 0 )
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, gp_1_state, portas_w))
MCFG_I8255_IN_PORTB_CB(READ8(*this, gp_1_state, portb_r))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, gp_1_state, portc_w))
m_ppi->out_pa_callback().set(FUNC(gp_1_state::portas_w));
MACHINE_CONFIG_END

View File

@ -598,10 +598,10 @@ MACHINE_CONFIG_START(gp_2_state::gp_2)
genpin_audio(config);
/* Devices */
MCFG_DEVICE_ADD("ppi", I8255A, 0 )
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, gp_2_state, porta_w))
MCFG_I8255_IN_PORTB_CB(READ8(*this, gp_2_state, portb_r))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, gp_2_state, portc_w))
i8255_device &ppi(I8255A(config, "ppi"));
ppi.out_pa_callback().set(FUNC(gp_2_state::porta_w));
ppi.in_pb_callback().set(FUNC(gp_2_state::portb_r));
ppi.out_pc_callback().set(FUNC(gp_2_state::portc_w));
Z80CTC(config, m_ctc, 2457600);
m_ctc->intr_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); // Todo: absence of ints will cause a watchdog reset

View File

@ -868,10 +868,10 @@ MACHINE_CONFIG_START(josvolly_state::josvolly)
mcu2.t0_in_cb().set("mcu1", FUNC(i8741_device::p2_r)).bit(0);
mcu2.t1_in_cb().set("mcu1", FUNC(i8741_device::p2_r)).bit(1);
MCFG_DEVICE_ADD("aa_007", I8255, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("IN1")) // 1PL
MCFG_I8255_IN_PORTB_CB(IOPORT("IN2")) // 2PL / ACK
MCFG_I8255_IN_PORTC_CB(IOPORT("IN0")) // START
i8255_device &ppi(I8255(config, "aa_007"));
ppi.in_pa_callback().set_ioport("IN1"); // 1PL
ppi.in_pb_callback().set_ioport("IN2"); // 2PL / ACK
ppi.in_pc_callback().set_ioport("IN0"); // START
// the second MCU polls the first MCU's outputs, so it needs tight sync
MCFG_QUANTUM_PERFECT_CPU("mcu2")

View File

@ -507,27 +507,27 @@ MACHINE_CONFIG_START(guab_state::guab)
ptm.set_external_clocks(0, 0, 0);
ptm.irq_callback().set_inputline("maincpu", 3);
MCFG_DEVICE_ADD("i8255_1", I8255, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("IN0"))
MCFG_I8255_IN_PORTB_CB(IOPORT("IN1"))
MCFG_I8255_IN_PORTC_CB(IOPORT("IN2"))
i8255_device &ppi1(I8255(config, "i8255_1"));
ppi1.in_pa_callback().set_ioport("IN0");
ppi1.in_pb_callback().set_ioport("IN1");
ppi1.in_pc_callback().set_ioport("IN2");
MCFG_DEVICE_ADD("i8255_2", I8255, 0)
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, guab_state, output1_w))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, guab_state, output2_w))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, guab_state, output3_w))
i8255_device &ppi2(I8255(config, "i8255_2"));
ppi2.out_pa_callback().set(FUNC(guab_state::output1_w));
ppi2.out_pb_callback().set(FUNC(guab_state::output2_w));
ppi2.out_pc_callback().set(FUNC(guab_state::output3_w));
MCFG_DEVICE_ADD("i8255_3", I8255, 0)
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, guab_state, output4_w))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, guab_state, output5_w))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, guab_state, output6_w))
i8255_device &ppi3(I8255(config, "i8255_3"));
ppi3.out_pa_callback().set(FUNC(guab_state::output4_w));
ppi3.out_pb_callback().set(FUNC(guab_state::output5_w));
ppi3.out_pc_callback().set(FUNC(guab_state::output6_w));
MCFG_DEVICE_ADD("i8255_4", I8255, 0)
MCFG_I8255_IN_PORTA_CB(READ8(*this, guab_state, sn76489_ready_r))
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, guab_state, sn76489_buffer_w))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, guab_state, system_w))
MCFG_I8255_IN_PORTC_CB(READ8(*this, guab_state, watchdog_r))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, guab_state, watchdog_w))
i8255_device &ppi4(I8255(config, "i8255_4"));
ppi4.in_pa_callback().set(FUNC(guab_state::sn76489_ready_r));
ppi4.out_pa_callback().set(FUNC(guab_state::sn76489_buffer_w));
ppi4.out_pb_callback().set(FUNC(guab_state::system_w));
ppi4.in_pc_callback().set(FUNC(guab_state::watchdog_r));
ppi4.out_pc_callback().set(FUNC(guab_state::watchdog_w));
acia6850_device &acia1(ACIA6850(config, "acia6850_1", 0));
acia1.txd_handler().set("rs232_1", FUNC(rs232_port_device::write_txd));

View File

@ -438,15 +438,15 @@ MACHINE_CONFIG_START(himesiki_state::himesiki)
MCFG_DEVICE_PROGRAM_MAP(himesiki_prm1)
MCFG_DEVICE_IO_MAP(himesiki_iom1)
MCFG_DEVICE_ADD("ppi8255_0", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("1P"))
MCFG_I8255_IN_PORTB_CB(IOPORT("2P"))
MCFG_I8255_IN_PORTC_CB(IOPORT("OTHERS"))
i8255_device &ppi0(I8255A(config, "ppi8255_0"));
ppi0.in_pa_callback().set_ioport("1P");
ppi0.in_pb_callback().set_ioport("2P");
ppi0.in_pc_callback().set_ioport("OTHERS");
MCFG_DEVICE_ADD("ppi8255_1", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("DSW1"))
MCFG_I8255_IN_PORTB_CB(IOPORT("DSW2"))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, himesiki_state, himesiki_rombank_w))
i8255_device &ppi1(I8255A(config, "ppi8255_1"));
ppi1.in_pa_callback().set_ioport("DSW1");
ppi1.in_pb_callback().set_ioport("DSW2");
ppi1.out_pc_callback().set(FUNC(himesiki_state::himesiki_rombank_w));
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)

View File

@ -358,10 +358,10 @@ MACHINE_CONFIG_START(homerun_state::dynashot)
MCFG_DEVICE_IO_MAP(homerun_iomap)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", homerun_state, irq0_line_hold)
MCFG_DEVICE_ADD("ppi8255", I8255A, 0)
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, homerun_state, homerun_scrollhi_w))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, homerun_state, homerun_scrolly_w))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, homerun_state, homerun_scrollx_w))
i8255_device &ppi(I8255A(config, "ppi8255"));
ppi.out_pa_callback().set(FUNC(homerun_state::homerun_scrollhi_w));
ppi.out_pb_callback().set(FUNC(homerun_state::homerun_scrolly_w));
ppi.out_pc_callback().set(FUNC(homerun_state::homerun_scrollx_w));
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)

View File

@ -904,11 +904,11 @@ MACHINE_CONFIG_START(ibm6580_state::ibm6580)
MCFG_DEVICE_ADD("pic8259", PIC8259, 0)
MCFG_PIC8259_OUT_INT_CB(INPUTLINE("maincpu", 0))
MCFG_DEVICE_ADD("ppi8255", I8255, 0)
MCFG_I8255_IN_PORTA_CB(READ8(*this, ibm6580_state, ppi_a_r))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, ibm6580_state, led_w))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, ibm6580_state, ppi_c_w))
MCFG_I8255_IN_PORTC_CB(READ8(*this, ibm6580_state, ppi_c_r))
i8255_device &ppi(I8255(config, "ppi8255"));
ppi.in_pa_callback().set(FUNC(ibm6580_state::ppi_a_r));
ppi.out_pb_callback().set(FUNC(ibm6580_state::led_w));
ppi.out_pc_callback().set(FUNC(ibm6580_state::ppi_c_w));
ppi.in_pc_callback().set(FUNC(ibm6580_state::ppi_c_r));
MCFG_DEVICE_ADD("pit8253", PIT8253, 0)

View File

@ -612,10 +612,10 @@ MACHINE_CONFIG_START(pcjr_state::ibmpcjr)
MCFG_DEVICE_ADD("pic8259", PIC8259, 0)
MCFG_PIC8259_OUT_INT_CB(WRITELINE(*this, pcjr_state, pic8259_set_int_line))
MCFG_DEVICE_ADD("ppi8255", I8255, 0)
MCFG_I8255_IN_PORTA_CB(CONSTANT(0xff))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, pcjr_state, pcjr_ppi_portb_w))
MCFG_I8255_IN_PORTC_CB(READ8(*this, pcjr_state, pcjr_ppi_portc_r))
i8255_device &ppi(I8255(config, "ppi8255"));
ppi.in_pa_callback().set_constant(0xff);
ppi.out_pb_callback().set(FUNC(pcjr_state::pcjr_ppi_portb_w));
ppi.in_pc_callback().set(FUNC(pcjr_state::pcjr_ppi_portc_r));
MCFG_DEVICE_ADD( "ins8250", INS8250, XTAL(1'843'200) )
MCFG_INS8250_OUT_TX_CB(WRITELINE("serport", rs232_port_device, write_txd))

View File

@ -73,10 +73,10 @@ MACHINE_CONFIG_START(ice_tbd_state::ice_tbd)
MCFG_DEVICE_PROGRAM_MAP(ice_tbd_map)
MCFG_DEVICE_IO_MAP(ice_tbd_io_map)
MCFG_DEVICE_ADD("ppi", I8255, 0)
MCFG_I8255_OUT_PORTA_CB(NOOP) // ?
MCFG_I8255_OUT_PORTB_CB(NOOP) // ?
MCFG_I8255_IN_PORTC_CB(CONSTANT(0)) // ?
i8255_device &ppi(I8255(config, "ppi"));
ppi.out_pa_callback().set_nop(); // ?
ppi.out_pb_callback().set_nop(); // ?
ppi.in_pc_callback().set_constant(0); // ?
MACHINE_CONFIG_END

View File

@ -368,14 +368,15 @@ MACHINE_CONFIG_START(idsa_state::bsktbllp)
MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(*this, idsa_state, ppi_control_w))
MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(*this, idsa_state, ppi_data_w))
MCFG_DEVICE_ADD("ppi1", I8255, 0)
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, idsa_state, ppi1_a_w))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, idsa_state, ppi1_b_w))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, idsa_state, ppi1_c_w))
MCFG_DEVICE_ADD("ppi2", I8255, 0)
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, idsa_state, ppi2_a_w))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, idsa_state, ppi2_b_w))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, idsa_state, ppi2_c_w))
I8255(config, m_ppi[0]);
m_ppi[0]->out_pa_callback().set(FUNC(idsa_state::ppi1_a_w));
m_ppi[0]->out_pb_callback().set(FUNC(idsa_state::ppi1_b_w));
m_ppi[0]->out_pc_callback().set(FUNC(idsa_state::ppi1_c_w));
I8255(config, m_ppi[1]);
m_ppi[1]->out_pa_callback().set(FUNC(idsa_state::ppi2_a_w));
m_ppi[1]->out_pb_callback().set(FUNC(idsa_state::ppi2_b_w));
m_ppi[1]->out_pc_callback().set(FUNC(idsa_state::ppi2_c_w));
MACHINE_CONFIG_END

View File

@ -836,15 +836,15 @@ MACHINE_CONFIG_START(igs009_state::jingbell)
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
MCFG_DEVICE_ADD("ppi8255_0", I8255A, 0)
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, igs009_state, nmi_and_coins_w))
MCFG_I8255_IN_PORTB_CB(IOPORT("SERVICE"))
MCFG_I8255_IN_PORTC_CB(IOPORT("COINS"))
i8255_device &ppi0(I8255A(config, "ppi8255_0"));
ppi0.out_pa_callback().set(FUNC(igs009_state::nmi_and_coins_w));
ppi0.in_pb_callback().set_ioport("SERVICE");
ppi0.in_pc_callback().set_ioport("COINS");
MCFG_DEVICE_ADD("ppi8255_1", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("BUTTONS1"))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, igs009_state, video_and_leds_w))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, igs009_state, leds_w))
i8255_device &ppi1(I8255A(config, "ppi8255_1"));
ppi1.in_pa_callback().set_ioport("BUTTONS1");
ppi1.out_pb_callback().set(FUNC(igs009_state::video_and_leds_w));
ppi1.out_pc_callback().set(FUNC(igs009_state::leds_w));
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)

View File

@ -3562,10 +3562,10 @@ MACHINE_CONFIG_START(igs017_state::iqblocka)
MCFG_MACHINE_RESET_OVERRIDE(igs017_state,iqblocka)
// i/o
MCFG_DEVICE_ADD("ppi8255", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("DSW1"))
MCFG_I8255_IN_PORTB_CB(IOPORT("DSW2"))
MCFG_I8255_IN_PORTC_CB(IOPORT("DSW3"))
i8255_device &ppi(I8255A(config, "ppi8255"));
ppi.in_pa_callback().set_ioport("DSW1");
ppi.in_pb_callback().set_ioport("DSW2");
ppi.in_pc_callback().set_ioport("DSW3");
// protection
MCFG_DEVICE_ADD("igs_bitswap", IGS_BITSWAP, 0)
@ -3659,9 +3659,9 @@ MACHINE_CONFIG_START(igs017_state::mgcs)
MCFG_MACHINE_RESET_OVERRIDE(igs017_state,mgcs)
// i/o
MCFG_DEVICE_ADD("ppi8255", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("COINS"))
MCFG_I8255_IN_PORTB_CB(READ8(*this, igs017_state, mgcs_keys_r))
i8255_device &ppi(I8255A(config, "ppi8255"));
ppi.in_pa_callback().set_ioport("COINS");
ppi.in_pb_callback().set(FUNC(igs017_state::mgcs_keys_r));
MCFG_TICKET_DISPENSER_ADD("hopper", attotime::from_msec(50), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW )
@ -3698,10 +3698,10 @@ MACHINE_CONFIG_START(igs017_state::lhzb2)
MCFG_MACHINE_RESET_OVERRIDE(igs017_state,mgcs)
// i/o
MCFG_DEVICE_ADD("ppi8255", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("COINS"))
MCFG_I8255_IN_PORTB_CB(IOPORT("DSW1"))
MCFG_I8255_IN_PORTC_CB(IOPORT("DSW2"))
i8255_device &ppi(I8255A(config, "ppi8255"));
ppi.in_pa_callback().set_ioport("COINS");
ppi.in_pb_callback().set_ioport("DSW1");
ppi.in_pc_callback().set_ioport("DSW2");
// protection
MCFG_DEVICE_ADD("igs025", IGS025, 0)
@ -3794,10 +3794,10 @@ MACHINE_CONFIG_START(igs017_state::slqz2)
MCFG_MACHINE_RESET_OVERRIDE(igs017_state,mgcs)
// i/o
MCFG_DEVICE_ADD("ppi8255", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("COINS"))
MCFG_I8255_IN_PORTB_CB(IOPORT("DSW1"))
MCFG_I8255_IN_PORTC_CB(IOPORT("DSW2"))
i8255_device &ppi(I8255A(config, "ppi8255"));
ppi.in_pa_callback().set_ioport("COINS");
ppi.in_pb_callback().set_ioport("DSW1");
ppi.in_pc_callback().set_ioport("DSW2");
// protection
MCFG_DEVICE_ADD("igs025", IGS025, 0)
@ -3838,9 +3838,9 @@ MACHINE_CONFIG_START(igs017_state::sdmg2)
MCFG_MACHINE_RESET_OVERRIDE(igs017_state,mgcs)
// i/o
MCFG_DEVICE_ADD("ppi8255", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("DSW1"))
MCFG_I8255_IN_PORTB_CB(IOPORT("DSW2"))
i8255_device &ppi(I8255A(config, "ppi8255"));
ppi.in_pa_callback().set_ioport("DSW1");
ppi.in_pb_callback().set_ioport("DSW2");
// video
MCFG_SCREEN_ADD("screen", RASTER)
@ -3885,8 +3885,8 @@ MACHINE_CONFIG_START(igs017_state::mgdha)
MCFG_MACHINE_RESET_OVERRIDE(igs017_state,mgcs)
// i/o
MCFG_DEVICE_ADD("ppi8255", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("DSW1"))
i8255_device &ppi(I8255A(config, "ppi8255"));
ppi.in_pa_callback().set_ioport("DSW1");
// video
MCFG_SCREEN_ADD("screen", RASTER)
@ -3921,10 +3921,10 @@ MACHINE_CONFIG_START(igs017_state::tjsb)
MCFG_MACHINE_RESET_OVERRIDE(igs017_state,iqblocka)
// i/o
MCFG_DEVICE_ADD("ppi8255", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("DSW1"))
MCFG_I8255_IN_PORTB_CB(IOPORT("DSW2"))
MCFG_I8255_IN_PORTC_CB(IOPORT("DSW3"))
i8255_device &ppi(I8255A(config, "ppi8255"));
ppi.in_pa_callback().set_ioport("DSW1");
ppi.in_pb_callback().set_ioport("DSW2");
ppi.in_pc_callback().set_ioport("DSW3");
// video
MCFG_SCREEN_ADD("screen", RASTER)
@ -3963,10 +3963,10 @@ MACHINE_CONFIG_START(igs017_state::spkrform)
MCFG_MACHINE_RESET_OVERRIDE(igs017_state,iqblocka)
// i/o
MCFG_DEVICE_ADD("ppi8255", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("DSW1"))
MCFG_I8255_IN_PORTB_CB(IOPORT("DSW2"))
MCFG_I8255_IN_PORTC_CB(IOPORT("DSW3"))
i8255_device &ppi(I8255A(config, "ppi8255"));
ppi.in_pa_callback().set_ioport("DSW1");
ppi.in_pb_callback().set_ioport("DSW2");
ppi.in_pc_callback().set_ioport("DSW3");
// video
MCFG_SCREEN_ADD("screen", RASTER)

View File

@ -1929,10 +1929,10 @@ MACHINE_CONFIG_START(igspoker_state::igspoker)
MCFG_DEVICE_IO_MAP(igspoker_io_map)
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", igspoker_state, igs_interrupt, "screen", 0, 1)
MCFG_DEVICE_ADD("ppi", I8255A, 0)
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, igspoker_state, igs_nmi_and_coins_w))
MCFG_I8255_IN_PORTB_CB(IOPORT("SERVICE"))
MCFG_I8255_IN_PORTC_CB(IOPORT("COINS"))
i8255_device &ppi(I8255A(config, "ppi"));
ppi.out_pa_callback().set(FUNC(igspoker_state::igs_nmi_and_coins_w));
ppi.in_pb_callback().set_ioport("SERVICE");
ppi.in_pc_callback().set_ioport("COINS");
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)

View File

@ -1441,45 +1441,23 @@ MACHINE_CONFIG_START(inder_state::inder)
m_msm->add_route(ALL_OUTPUTS, "msmvol", 1.0);
/* Devices */
MCFG_DEVICE_ADD("ppi60", I8255A, 0 )
//MCFG_I8255_IN_PORTA_CB(READ8(*this, inder_state, ppi60a_r))
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, inder_state, ppi60a_w))
//MCFG_I8255_IN_PORTB_CB(READ8(*this, inder_state, ppi60b_r))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, inder_state, ppi60b_w))
MCFG_I8255_IN_PORTC_CB(READ8(*this, inder_state, sw_r))
//MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, inder_state, ppi60c_w))
i8255_device &ppi60(I8255A(config, "ppi60"));
ppi60.out_pa_callback().set(FUNC(inder_state::ppi60a_w));
ppi60.out_pb_callback().set(FUNC(inder_state::ppi60b_w));
ppi60.in_pc_callback().set(FUNC(inder_state::sw_r));
MCFG_DEVICE_ADD("ppi64", I8255A, 0 )
//MCFG_I8255_IN_PORTA_CB(READ8(*this, inder_state, ppi64a_r))
//MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, inder_state, ppi64a_w))
//MCFG_I8255_IN_PORTB_CB(READ8(*this, inder_state, ppi64b_r))
//MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, inder_state, ppi64b_w))
//MCFG_I8255_IN_PORTC_CB(READ8(*this, inder_state, ppi64c_r))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, inder_state, ppi64c_w))
i8255_device &ppi64(I8255A(config, "ppi64"));
ppi64.out_pc_callback().set(FUNC(inder_state::ppi64c_w));
MCFG_DEVICE_ADD("ppi68", I8255A, 0 )
//MCFG_I8255_IN_PORTA_CB(READ8(*this, inder_state, ppi68a_r))
//MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, inder_state, ppi68a_w))
//MCFG_I8255_IN_PORTB_CB(READ8(*this, inder_state, ppi68b_r))
//MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, inder_state, ppi68b_w))
//MCFG_I8255_IN_PORTC_CB(READ8(*this, inder_state, ppi68c_r))
//MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, inder_state, ppi68c_w))
I8255A(config, "ppi68");
MCFG_DEVICE_ADD("ppi6c", I8255A, 0 )
//MCFG_I8255_IN_PORTA_CB(READ8(*this, inder_state, ppi6ca_r))
//MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, inder_state, ppi6ca_w))
//MCFG_I8255_IN_PORTB_CB(READ8(*this, inder_state, ppi6cb_r))
//MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, inder_state, ppi6cb_w))
//MCFG_I8255_IN_PORTC_CB(READ8(*this, inder_state, ppi6cc_r))
//MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, inder_state, ppi6cc_w))
I8255A(config, "ppi6c");
MCFG_DEVICE_ADD("ppi", I8255A, 0 )
//MCFG_I8255_IN_PORTA_CB(READ8(*this, inder_state, ppia_r))
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, inder_state, ppia_w))
//MCFG_I8255_IN_PORTB_CB(READ8(*this, inder_state, ppib_r))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, inder_state, ppib_w))
MCFG_I8255_IN_PORTC_CB(READ8(*this, inder_state, ppic_r))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, inder_state, ppic_w))
i8255_device &ppi(I8255A(config, "ppi"));
ppi.out_pa_callback().set(FUNC(inder_state::ppia_w));
ppi.out_pb_callback().set(FUNC(inder_state::ppib_w));
ppi.in_pc_callback().set(FUNC(inder_state::ppic_r));
ppi.out_pc_callback().set(FUNC(inder_state::ppic_w));
TTL7474(config, m_7a, 0);
m_7a->comp_output_cb().set(FUNC(inder_state::qc7a_w));

View File

@ -415,11 +415,11 @@ MACHINE_CONFIG_START(iq151_state::iq151)
MCFG_DEVICE_ADD("pic8259", PIC8259, 0)
MCFG_PIC8259_OUT_INT_CB(INPUTLINE("maincpu", 0))
MCFG_DEVICE_ADD("ppi8255", I8255, 0)
MCFG_I8255_IN_PORTA_CB(READ8(*this, iq151_state, keyboard_row_r))
MCFG_I8255_IN_PORTB_CB(READ8(*this, iq151_state, keyboard_column_r))
MCFG_I8255_IN_PORTC_CB(READ8(*this, iq151_state, ppi_portc_r))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, iq151_state, ppi_portc_w))
i8255_device &ppi(I8255(config, "ppi8255"));
ppi.in_pa_callback().set(FUNC(iq151_state::keyboard_row_r));
ppi.in_pb_callback().set(FUNC(iq151_state::keyboard_column_r));
ppi.in_pc_callback().set(FUNC(iq151_state::ppi_portc_r));
ppi.out_pc_callback().set(FUNC(iq151_state::ppi_portc_w));
MCFG_CASSETTE_ADD( "cassette" )
MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_STOPPED)

View File

@ -348,11 +348,11 @@ MACHINE_CONFIG_START(iqblock_state::iqblock)
MCFG_DEVICE_IO_MAP(main_portmap)
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", iqblock_state, irq, "screen", 0, 1)
MCFG_DEVICE_ADD("ppi8255", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("P1"))
MCFG_I8255_IN_PORTB_CB(IOPORT("P2"))
MCFG_I8255_IN_PORTC_CB(IOPORT("EXTRA"))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, iqblock_state, port_C_w))
i8255_device &ppi(I8255A(config, "ppi8255"));
ppi.in_pa_callback().set_ioport("P1");
ppi.in_pb_callback().set_ioport("P2");
ppi.in_pc_callback().set_ioport("EXTRA");
ppi.out_pc_callback().set(FUNC(iqblock_state::port_C_w));
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)

View File

@ -400,12 +400,12 @@ MACHINE_CONFIG_START(irisha_state::irisha)
m_pit->set_clk<2>(16_MHz_XTAL / 9);
m_pit->out_handler<2>().set(FUNC(irisha_state::speaker_w));
MCFG_DEVICE_ADD("ppi8255", I8255, 0)
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, irisha_state, irisha_8255_porta_w))
MCFG_I8255_IN_PORTB_CB(READ8(*this, irisha_state, irisha_8255_portb_r))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, irisha_state, irisha_8255_portb_w))
MCFG_I8255_IN_PORTC_CB(READ8(*this, irisha_state, irisha_8255_portc_r))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, irisha_state, irisha_8255_portc_w))
i8255_device &ppi(I8255(config, "ppi8255"));
ppi.out_pa_callback().set(FUNC(irisha_state::irisha_8255_porta_w));
ppi.in_pb_callback().set(FUNC(irisha_state::irisha_8255_portb_r));
ppi.out_pb_callback().set(FUNC(irisha_state::irisha_8255_portb_w));
ppi.in_pc_callback().set(FUNC(irisha_state::irisha_8255_portc_r));
ppi.out_pc_callback().set(FUNC(irisha_state::irisha_8255_portc_w));
MCFG_DEVICE_ADD("pic8259", PIC8259, 0)
MCFG_PIC8259_OUT_INT_CB(INPUTLINE("maincpu", 0))

View File

@ -342,7 +342,7 @@ MACHINE_CONFIG_START(isbc_state::isbc86)
MCFG_PIT8253_CLK2(XTAL(22'118'400)/18)
MCFG_PIT8253_OUT2_HANDLER(WRITELINE(*this, isbc_state, isbc86_tmr2_w))
MCFG_DEVICE_ADD("ppi", I8255A, 0)
I8255A(config, "ppi");
I8251(config, m_uart8251, 0);
m_uart8251->txd_handler().set("rs232", FUNC(rs232_port_device::write_txd));
@ -375,7 +375,7 @@ MACHINE_CONFIG_START(isbc_state::rpc86)
MCFG_PIT8253_CLK2(XTAL(22'118'400)/18)
MCFG_PIT8253_OUT2_HANDLER(WRITELINE(*this, isbc_state, isbc86_tmr2_w))
MCFG_DEVICE_ADD("ppi", I8255A, 0)
I8255A(config, "ppi");
I8251(config, m_uart8251, 0);
m_uart8251->txd_handler().set("rs232", FUNC(rs232_port_device::write_txd));
@ -453,10 +453,10 @@ MACHINE_CONFIG_START(isbc_state::isbc286)
MCFG_PIT8253_CLK2(XTAL(22'118'400)/18)
MCFG_PIT8253_OUT2_HANDLER(WRITELINE(*this, isbc_state, isbc286_tmr2_w))
MCFG_DEVICE_ADD("ppi", I8255A, 0)
MCFG_I8255_OUT_PORTA_CB(WRITE8("cent_data_out", output_latch_device, bus_w))
MCFG_I8255_IN_PORTB_CB(READ8("cent_status_in", input_buffer_device, bus_r))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, isbc_state, ppi_c_w))
i8255_device &ppi(I8255A(config, "ppi"));
ppi.out_pa_callback().set("cent_data_out", FUNC(output_latch_device::bus_w));
ppi.in_pb_callback().set("cent_status_in", FUNC(input_buffer_device::bus_r));
ppi.out_pc_callback().set(FUNC(isbc_state::ppi_c_w));
MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer")
MCFG_CENTRONICS_ACK_HANDLER(WRITELINE(*this, isbc_state, write_centronics_ack))

View File

@ -585,15 +585,15 @@ MACHINE_CONFIG_START(istrebiteli_state::istreb)
MCFG_DEVICE_PROGRAM_MAP(mem_map)
MCFG_DEVICE_IO_MAP(io_map)
MCFG_DEVICE_ADD("ppi0", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("IN1"))
MCFG_I8255_IN_PORTB_CB(IOPORT("IN0"))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, istrebiteli_state, sound_w))
i8255_device &ppi0(I8255A(config, "ppi0"));
ppi0.in_pa_callback().set_ioport("IN1");
ppi0.in_pb_callback().set_ioport("IN0");
ppi0.out_pc_callback().set(FUNC(istrebiteli_state::sound_w));
MCFG_DEVICE_ADD("ppi1", I8255A, 0)
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, istrebiteli_state, spr0_ctrl_w))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, istrebiteli_state, spr1_ctrl_w))
MCFG_I8255_IN_PORTC_CB(IOPORT("IN2"))
i8255_device &ppi1(I8255A(config, "ppi1"));
ppi1.out_pa_callback().set(FUNC(istrebiteli_state::spr0_ctrl_w));
ppi1.out_pb_callback().set(FUNC(istrebiteli_state::spr1_ctrl_w));
ppi1.in_pc_callback().set_ioport("IN2");
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@ -617,14 +617,14 @@ MACHINE_CONFIG_START(istrebiteli_state::motogonki)
MCFG_DEVICE_PROGRAM_MAP(moto_mem_map)
MCFG_DEVICE_IO_MAP(moto_io_map)
MCFG_DEVICE_ADD("ppi0", I8255A, 0)
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, istrebiteli_state, spr0_ctrl_w))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, istrebiteli_state, spr1_ctrl_w))
i8255_device &ppi0(I8255A(config, "ppi0"));
ppi0.out_pa_callback().set(FUNC(istrebiteli_state::spr0_ctrl_w));
ppi0.out_pb_callback().set(FUNC(istrebiteli_state::spr1_ctrl_w));
MCFG_DEVICE_ADD("ppi1", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("IN0"))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, istrebiteli_state, road_ctrl_w))
MCFG_I8255_IN_PORTC_CB(IOPORT("IN1"))
i8255_device &ppi1(I8255A(config, "ppi1"));
ppi1.in_pa_callback().set_ioport("IN0");
ppi1.out_pb_callback().set(FUNC(istrebiteli_state::road_ctrl_w));
ppi1.in_pc_callback().set_ioport("IN1");
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)

View File

@ -622,14 +622,14 @@ MACHINE_CONFIG_START(jackie_state::jackie)
MCFG_DEVICE_IO_MAP(jackie_io_map)
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", jackie_state, irq, "screen", 0, 1)
MCFG_DEVICE_ADD("ppi1", I8255A, 0) // D8255AC
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, jackie_state, nmi_and_coins_w))
MCFG_I8255_IN_PORTB_CB(IOPORT("SERVICE"))
MCFG_I8255_IN_PORTC_CB(IOPORT("COINS"))
i8255_device &ppi1(I8255A(config, "ppi1")); // D8255AC
ppi1.out_pa_callback().set(FUNC(jackie_state::nmi_and_coins_w));
ppi1.in_pb_callback().set_ioport("SERVICE");
ppi1.in_pc_callback().set_ioport("COINS");
MCFG_DEVICE_ADD("ppi2", I8255A, 0) // D8255AC
MCFG_I8255_IN_PORTA_CB(IOPORT("BUTTONS1"))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, jackie_state, lamps_w))
i8255_device &ppi2(I8255A(config, "ppi2")); // D8255AC
ppi2.in_pa_callback().set_ioport("BUTTONS1");
ppi2.out_pb_callback().set(FUNC(jackie_state::lamps_w));
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)

View File

@ -390,17 +390,17 @@ MACHINE_CONFIG_START(jankenmn_state::jankenmn)
m_maincpu->set_addrmap(AS_PROGRAM, &jankenmn_state::jankenmn_map);
m_maincpu->set_addrmap(AS_IO, &jankenmn_state::jankenmn_port_map);
MCFG_DEVICE_ADD("ppi8255_0", I8255, 0)
i8255_device &ppi0(I8255(config, "ppi8255_0"));
/* (10-13) Mode 0 - Ports A & B set as input, high C & low C as output. */
MCFG_I8255_IN_PORTA_CB(IOPORT("DSW"))
MCFG_I8255_IN_PORTB_CB(IOPORT("IN0"))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, jankenmn_state, lamps3_w))
ppi0.in_pa_callback().set_ioport("DSW");
ppi0.in_pb_callback().set_ioport("IN0");
ppi0.out_pc_callback().set(FUNC(jankenmn_state::lamps3_w));
MCFG_DEVICE_ADD("ppi8255_1", I8255, 0)
i8255_device &ppi1(I8255(config, "ppi8255_1"));
/* (20-23) Mode 0 - Ports A, B, high C & low C set as output. */
MCFG_I8255_OUT_PORTA_CB(WRITE8("dac", dac_byte_interface, data_w))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, jankenmn_state, lamps1_w))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, jankenmn_state, lamps2_w))
ppi1.out_pa_callback().set("dac", FUNC(dac_byte_interface::data_w));
ppi1.out_pb_callback().set(FUNC(jankenmn_state::lamps1_w));
ppi1.out_pc_callback().set(FUNC(jankenmn_state::lamps2_w));
z80ctc_device& ctc(Z80CTC(config, "ctc", MASTER_CLOCK));
ctc.intr_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);

View File

@ -228,29 +228,29 @@ MACHINE_CONFIG_START(jeutel_state::jeutel)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
/* Devices */
MCFG_DEVICE_ADD("ppi8255_0", I8255A, 0)
//MCFG_I8255_IN_PORTA_CB(IOPORT("P1"))
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, jeutel_state, ppi0a_w))
//MCFG_I8255_IN_PORTB_CB(IOPORT("P2"))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, jeutel_state, ppi0b_w))
//MCFG_I8255_IN_PORTC_CB(IOPORT("EXTRA"))
//MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, jeutel_state, ppi0c_w))
i8255_device &ppi0(I8255A(config, "ppi8255_0"));
//ppi0.in_pa_callback().set_ioport("P1");
ppi0.out_pa_callback().set(FUNC(jeutel_state::ppi0a_w));
//ppi0.in_pb_callback().set_ioport("P2");
ppi0.out_pb_callback().set(FUNC(jeutel_state::ppi0b_w));
//ppi0.in_pc_callback().set_ioport("EXTRA");
//ppi0.out_pc_callback().set(FUNC(jeutel_state::ppi0c_w));
MCFG_DEVICE_ADD("ppi8255_1", I8255A, 0)
//MCFG_I8255_IN_PORTA_CB(IOPORT("P1"))
//MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, jeutel_state, ppi1a_w))
//MCFG_I8255_IN_PORTB_CB(IOPORT("P2"))
//MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, jeutel_state, ppi1b_w))
//MCFG_I8255_IN_PORTC_CB(IOPORT("EXTRA"))
//MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, jeutel_state, ppi1c_w))
I8255A(config, "ppi8255_1");
//ppi1.in_pa_callback().set_ioport("P1");
//ppi1.out_pa_callback().set(FUNC(jeutel_state::ppi1a_w));
//ppi1.in_pb_callback().set_ioport("P2");
//ppi1.out_pb_callback().set(FUNC(jeutel_state::ppi1b_w));
//ppi1.in_pc_callback().set_ioport("EXTRA");
//ppi1.out_pc_callback().set(FUNC(jeutel_state::ppi1c_w));
MCFG_DEVICE_ADD("ppi8255_2", I8255A, 0)
//MCFG_I8255_IN_PORTA_CB(IOPORT("P1"))
//MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, jeutel_state, ppi2a_w))
//MCFG_I8255_IN_PORTB_CB(IOPORT("P2"))
//MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, jeutel_state, ppi2b_w))
//MCFG_I8255_IN_PORTC_CB(IOPORT("EXTRA"))
//MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, jeutel_state, ppi2c_w))
I8255A(config, "ppi8255_2");
//ppi2.in_pa_callback().set_ioport("P1");
//ppi2.out_pa_callback().set(FUNC(jeutel_state::ppi2a_w));
//ppi2.in_pb_callback().set_ioport("P2");
//ppi2.out_pb_callback().set(FUNC(jeutel_state::ppi2b_w));
//ppi2.in_pc_callback().set_ioport("EXTRA");
//ppi2.out_pc_callback().set(FUNC(jeutel_state::ppi2c_w));
MCFG_TIMER_DRIVER_ADD_PERIODIC("timer_a", jeutel_state, timer_a, attotime::from_hz(120))
MACHINE_CONFIG_END

View File

@ -1322,11 +1322,11 @@ MACHINE_CONFIG_START(jpmimpct_state::impctawp)
MCFG_MACHINE_RESET_OVERRIDE(jpmimpct_state,impctawp)
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
MCFG_DEVICE_ADD("ppi8255", I8255, 0)
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, jpmimpct_state, payen_a_w))
MCFG_I8255_IN_PORTB_CB(READ8(*this, jpmimpct_state, hopper_b_r))
MCFG_I8255_IN_PORTC_CB(READ8(*this, jpmimpct_state, hopper_c_r))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, jpmimpct_state, display_c_w))
i8255_device &ppi(I8255(config, "ppi8255"));
ppi.out_pa_callback().set(FUNC(jpmimpct_state::payen_a_w));
ppi.in_pb_callback().set(FUNC(jpmimpct_state::hopper_b_r));
ppi.in_pc_callback().set(FUNC(jpmimpct_state::hopper_c_r));
ppi.out_pc_callback().set(FUNC(jpmimpct_state::display_c_w));
MCFG_TIMER_DRIVER_ADD("duart_1_timer", jpmimpct_state, duart_1_timer_event)

View File

@ -267,17 +267,17 @@ MACHINE_CONFIG_START(jpmmps_state::jpmmps)
//MCFG_DEVICE_ADD("reelmcu", TMS7041, XTAL(5'000'000))
MCFG_DEVICE_ADD("ppi8255_ic26", I8255, 0)
i8255_device &ic26(I8255(config, "ppi8255_ic26"));
// Port B 0 is coin lockout
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, jpmmps_state, jpmmps_meters_w))
ic26.out_pc_callback().set(FUNC(jpmmps_state::jpmmps_meters_w));
MCFG_DEVICE_ADD("ppi8255_ic21", I8255, 0)
I8255(config, "ppi8255_ic21");
MCFG_DEVICE_ADD("ppi8255_ic22", I8255, 0)
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, jpmmps_state, jpmmps_psg_buf_w)) // SN chip data
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, jpmmps_state, jpmmps_ic22_portc_w)) // C3 is last meter, C2 latches in data
i8255_device &ic22(I8255(config, "ppi8255_ic22"));
ic22.out_pb_callback().set(FUNC(jpmmps_state::jpmmps_psg_buf_w)); // SN chip data
ic22.out_pc_callback().set(FUNC(jpmmps_state::jpmmps_ic22_portc_w)); // C3 is last meter, C2 latches in data
MCFG_DEVICE_ADD("ppi8255_ic25", I8255, 0)
I8255(config, "ppi8255_ic25");
TMS9902(config, m_uart_ic10, DUART_CLOCK); // Communication with Reel MCU
TMS9902(config, m_uart_ic5, DUART_CLOCK); // Communication with Security / Printer

View File

@ -793,9 +793,9 @@ MACHINE_CONFIG_START(ace_state::ace)
MCFG_SNAPSHOT_ADD("snapshot", ace_state, ace, "ace", 1)
MCFG_DEVICE_ADD(I8255_TAG, I8255A, 0)
MCFG_I8255_IN_PORTB_CB(READ8(*this, ace_state, sby_r))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, ace_state, ald_w))
I8255A(config, m_ppi);
m_ppi->in_pb_callback().set(FUNC(ace_state::sby_r));
m_ppi->out_pb_callback().set(FUNC(ace_state::ald_w));
Z80PIO(config, m_z80pio, XTAL(6'500'000)/2);
m_z80pio->out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);

View File

@ -94,6 +94,7 @@ public:
: driver_device(mconfig, type, tag)
, m_vram(*this, "vram")
, m_attr(*this, "attr")
, m_ppi(*this, "ppi8255_%u", 0U)
, m_spriteram(*this, "spriteram")
, m_soundcpu(*this, "soundcpu")
, m_gfxdecode(*this, "gfxdecode")
@ -146,6 +147,7 @@ private:
uint8_t m_p1_hopper;
uint8_t m_p2_hopper;
uint8_t m_mux_data;
required_device_array<i8255_device, 2> m_ppi;
required_shared_ptr<uint8_t> m_spriteram;
required_device<cpu_device> m_soundcpu;
required_device<gfxdecode_device> m_gfxdecode;
@ -448,8 +450,8 @@ void kingdrby_state::slave_map(address_map &map)
map(0x0000, 0x2fff).rom();
map(0x3000, 0x3fff).rom(); //sound rom, tested for the post check
map(0x4000, 0x43ff).ram().share("nvram"); //backup ram
map(0x5000, 0x5003).rw("ppi8255_0", FUNC(i8255_device::read), FUNC(i8255_device::write)); /* I/O Ports */
map(0x6000, 0x6003).rw("ppi8255_1", FUNC(i8255_device::read), FUNC(i8255_device::write)); /* I/O Ports */
map(0x5000, 0x5003).rw(m_ppi[0], FUNC(i8255_device::read), FUNC(i8255_device::write)); /* I/O Ports */
map(0x6000, 0x6003).rw(m_ppi[1], FUNC(i8255_device::read), FUNC(i8255_device::write)); /* I/O Ports */
map(0x7000, 0x73ff).ram().share("share1");
map(0x7400, 0x74ff).ram().share("spriteram");
map(0x7600, 0x7600).w("crtc", FUNC(mc6845_device::address_w));
@ -469,8 +471,8 @@ void kingdrby_state::slave_1986_map(address_map &map)
map(0x0000, 0x2fff).rom();
map(0x3000, 0x3fff).rom(); //sound rom tested for the post check
map(0x4000, 0x47ff).ram().share("nvram"); //backup ram
map(0x5000, 0x5003).rw("ppi8255_0", FUNC(i8255_device::read), FUNC(i8255_device::write)); /* I/O Ports */
// AM_RANGE(0x6000, 0x6003) AM_DEVREADWRITE("ppi8255_1", i8255_device, read, write) /* I/O Ports */
map(0x5000, 0x5003).rw(m_ppi[0], FUNC(i8255_device::read), FUNC(i8255_device::write)); /* I/O Ports */
// AM_RANGE(0x6000, 0x6003) AM_DEVREADWRITE(m_ppi[1], i8255_device, read, write) /* I/O Ports */
map(0x7000, 0x73ff).ram().share("share1");
map(0x7400, 0x74ff).ram().share("spriteram");
map(0x7600, 0x7600).w("crtc", FUNC(mc6845_device::address_w));
@ -979,18 +981,18 @@ MACHINE_CONFIG_START(kingdrby_state::kingdrby)
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
// 5000-5003 PPI group modes 0/0 - A & B as input, C (all) as output.
MCFG_DEVICE_ADD("ppi8255_0", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(READ8(*this, kingdrby_state, hopper_io_r))
MCFG_I8255_IN_PORTB_CB(IOPORT("IN1"))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, kingdrby_state, hopper_io_w))
I8255A(config, m_ppi[0]);
m_ppi[0]->in_pa_callback().set(FUNC(kingdrby_state::hopper_io_r));
m_ppi[0]->in_pb_callback().set_ioport("IN1");
m_ppi[0]->out_pc_callback().set(FUNC(kingdrby_state::hopper_io_w));
// 6000-6003 PPI group modes 0/0 - B & C (lower) as input, A & C (upper) as output.
MCFG_DEVICE_ADD("ppi8255_1", I8255A, 0)
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, kingdrby_state, sound_cmd_w))
MCFG_I8255_TRISTATE_PORTA_CB(CONSTANT(0x7f))
MCFG_I8255_IN_PORTB_CB(READ8(*this, kingdrby_state, key_matrix_r))
MCFG_I8255_IN_PORTC_CB(READ8(*this, kingdrby_state, input_mux_r))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, kingdrby_state, outport2_w))
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));
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_kingdrby)
MCFG_PALETTE_ADD("palette", 0x200)
@ -1023,19 +1025,22 @@ MACHINE_CONFIG_START(kingdrby_state::kingdrbb)
MCFG_PALETTE_MODIFY("palette")
MCFG_PALETTE_INIT_OWNER(kingdrby_state,kingdrbb)
MCFG_DEVICE_REMOVE("ppi8255_0")
MCFG_DEVICE_REMOVE("ppi8255_1")
MCFG_DEVICE_ADD("ppi8255_0", I8255A, 0)
/* C as input, (all) as output */
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, kingdrby_state, sound_cmd_w))
MCFG_I8255_TRISTATE_PORTA_CB(CONSTANT(0x7f))
MCFG_I8255_IN_PORTB_CB(IOPORT("IN0"))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, kingdrby_state, outportb_w))
MCFG_I8255_IN_PORTC_CB(IOPORT("IN1"))
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");
m_ppi[0]->out_pc_callback().set_nop();
MCFG_DEVICE_ADD("ppi8255_1", I8255A, 0)
/* actually unused */
/* PPI1 is actually unused */
m_ppi[1]->in_pa_callback().set_constant(0);
m_ppi[1]->in_pb_callback().set_constant(0);
m_ppi[1]->in_pc_callback().set_constant(0);
m_ppi[1]->out_pa_callback().set_nop();
m_ppi[1]->out_pb_callback().set_nop();
m_ppi[1]->out_pc_callback().set_nop();
MACHINE_CONFIG_END
MACHINE_CONFIG_START(kingdrby_state::cowrace)

View File

@ -152,14 +152,14 @@ MACHINE_CONFIG_START(kingpin_state::kingpin)
MCFG_DEVICE_PROGRAM_MAP(kingpin_program_map)
MCFG_DEVICE_IO_MAP(kingpin_io_map)
MCFG_DEVICE_ADD("ppi8255_0", I8255A, 0)
i8255_device &ppi0(I8255A(config, "ppi8255_0"));
// PORT A read = watchdog?
MCFG_I8255_IN_PORTB_CB(IOPORT("DSW1"))
ppi0.in_pb_callback().set_ioport("DSW1");
// PORT C read = unused?
MCFG_DEVICE_ADD("ppi8255_1", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("IN0"))
MCFG_I8255_IN_PORTB_CB(IOPORT("IN1"))
i8255_device &ppi1(I8255A(config, "ppi8255_1"));
ppi1.in_pa_callback().set_ioport("IN0");
ppi1.in_pb_callback().set_ioport("IN1");
// PORT C read = unknown
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_1);

View File

@ -241,25 +241,25 @@ MACHINE_CONFIG_START(kopunch_state::kopunch)
MCFG_DEVICE_IO_MAP(kopunch_io_map)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", kopunch_state, vblank_interrupt)
MCFG_DEVICE_ADD("ppi8255_0", I8255A, 0)
i8255_device &ppi0(I8255A(config, "ppi8255_0"));
// $30 - always $9b (PPI mode 0, ports A & B & C as input)
MCFG_I8255_IN_PORTA_CB(IOPORT("P1"))
MCFG_I8255_IN_PORTB_CB(READ8(*this, kopunch_state, sensors1_r))
MCFG_I8255_IN_PORTC_CB(READ8(*this, kopunch_state, sensors2_r))
ppi0.in_pa_callback().set_ioport("P1");
ppi0.in_pb_callback().set(FUNC(kopunch_state::sensors1_r));
ppi0.in_pc_callback().set(FUNC(kopunch_state::sensors2_r));
i8255_device &ppi1(I8255A(config, "ppi8255_1", 0));
i8255_device &ppi1(I8255A(config, "ppi8255_1"));
// $34 - always $80 (PPI mode 0, ports A & B & C as output)
ppi1.out_pa_callback().set(FUNC(kopunch_state::coin_w));
ppi1.out_pb_callback().set_log("PPI8255 - unmapped write port B");
ppi1.out_pc_callback().set_log("PPI8255 - unmapped write port C");
i8255_device &ppi2(I8255A(config, "ppi8255_2", 0));
i8255_device &ppi2(I8255A(config, "ppi8255_2"));
// $38 - always $89 (PPI mode 0, ports A & B as output, port C as input)
ppi2.out_pa_callback().set(FUNC(kopunch_state::lamp_w));
ppi2.out_pb_callback().set_log("PPI8255 - unmapped write port B");
ppi2.in_pc_callback().set_ioport("DSW");
i8255_device &ppi3(I8255A(config, "ppi8255_3", 0));
i8255_device &ppi3(I8255A(config, "ppi8255_3"));
// $3c - always $88 (PPI mode 0, ports A & B & lower C as output, upper C as input)
ppi3.out_pa_callback().set(FUNC(kopunch_state::scroll_x_w));
ppi3.out_pb_callback().set(FUNC(kopunch_state::scroll_y_w));

View File

@ -303,18 +303,18 @@ MACHINE_CONFIG_START(kungfur_state::kungfur)
MCFG_DEVICE_PROGRAM_MAP(kungfur_map)
MCFG_DEVICE_PERIODIC_INT_DRIVER(kungfur_state, kungfur_irq, 975) // close approximation
MCFG_DEVICE_ADD("ppi8255_0", I8255A, 0)
i8255_device &ppi0(I8255A(config, "ppi8255_0"));
// $4008 - always $83 (PPI mode 0, ports B & lower C as input)
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, kungfur_state, kungfur_output_w))
MCFG_I8255_IN_PORTB_CB(IOPORT("IN0"))
MCFG_I8255_IN_PORTC_CB(IOPORT("IN1"))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, kungfur_state, kungfur_control_w))
ppi0.out_pa_callback().set(FUNC(kungfur_state::kungfur_output_w));
ppi0.in_pb_callback().set_ioport("IN0");
ppi0.in_pc_callback().set_ioport("IN1");
ppi0.out_pc_callback().set(FUNC(kungfur_state::kungfur_control_w));
MCFG_DEVICE_ADD("ppi8255_1", I8255A, 0)
i8255_device &ppi1(I8255A(config, "ppi8255_1"));
// $400c - always $80 (PPI mode 0, all ports as output)
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, kungfur_state, kungfur_latch1_w))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, kungfur_state, kungfur_latch2_w))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, kungfur_state, kungfur_latch3_w))
ppi1.out_pa_callback().set(FUNC(kungfur_state::kungfur_latch1_w));
ppi1.out_pb_callback().set(FUNC(kungfur_state::kungfur_latch2_w));
ppi1.out_pc_callback().set(FUNC(kungfur_state::kungfur_latch3_w));
/* no video! */

View File

@ -647,20 +647,20 @@ MACHINE_CONFIG_START(lordgun_state::lordgun)
MCFG_DEVICE_PROGRAM_MAP(lordgun_soundmem_map)
MCFG_DEVICE_IO_MAP(lordgun_soundio_map)
MCFG_DEVICE_ADD("ppi8255_0", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("DIP"))
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, lordgun_state, fake_w))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, lordgun_state, lordgun_eeprom_w))
MCFG_I8255_IN_PORTC_CB(IOPORT("SERVICE"))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, lordgun_state, fake2_w))
i8255_device &ppi0(I8255A(config, "ppi8255_0"));
ppi0.in_pa_callback().set_ioport("DIP");
ppi0.out_pa_callback().set(FUNC(lordgun_state::fake_w));
ppi0.out_pb_callback().set(FUNC(lordgun_state::lordgun_eeprom_w));
ppi0.in_pc_callback().set_ioport("SERVICE");
ppi0.out_pc_callback().set(FUNC(lordgun_state::fake2_w));
MCFG_DEVICE_ADD("ppi8255_1", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("START1"))
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, lordgun_state, fake_w))
MCFG_I8255_IN_PORTB_CB(IOPORT("START2"))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, lordgun_state, fake_w))
MCFG_I8255_IN_PORTC_CB(IOPORT("COIN"))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, lordgun_state, fake_w))
i8255_device &ppi1(I8255A(config, "ppi8255_1"));
ppi1.in_pa_callback().set_ioport("START1");
ppi1.out_pa_callback().set(FUNC(lordgun_state::fake_w));
ppi1.in_pb_callback().set_ioport("START2");
ppi1.out_pb_callback().set(FUNC(lordgun_state::fake_w));
ppi1.in_pc_callback().set_ioport("COIN");
ppi1.out_pc_callback().set(FUNC(lordgun_state::fake_w));
EEPROM_93C46_16BIT(config, "eeprom");
@ -699,20 +699,20 @@ MACHINE_CONFIG_START(lordgun_state::aliencha)
MCFG_DEVICE_PROGRAM_MAP(lordgun_soundmem_map)
MCFG_DEVICE_IO_MAP(aliencha_soundio_map)
MCFG_DEVICE_ADD("ppi8255_0", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(READ8(*this, lordgun_state, aliencha_dip_r))
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, lordgun_state, fake2_w))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, lordgun_state, aliencha_eeprom_w))
MCFG_I8255_IN_PORTC_CB(IOPORT("SERVICE"))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, lordgun_state, aliencha_dip_w))
i8255_device &ppi0(I8255A(config, "ppi8255_0"));
ppi0.in_pa_callback().set(FUNC(lordgun_state::aliencha_dip_r));
ppi0.out_pa_callback().set(FUNC(lordgun_state::fake2_w));
ppi0.out_pb_callback().set(FUNC(lordgun_state::aliencha_eeprom_w));
ppi0.in_pc_callback().set_ioport("SERVICE");
ppi0.out_pc_callback().set(FUNC(lordgun_state::aliencha_dip_w));
MCFG_DEVICE_ADD("ppi8255_1", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("P1"))
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, lordgun_state, fake_w))
MCFG_I8255_IN_PORTB_CB(IOPORT("P2"))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, lordgun_state, fake_w))
MCFG_I8255_IN_PORTC_CB(IOPORT("COIN"))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, lordgun_state, fake_w))
i8255_device &ppi1(I8255A(config, "ppi8255_1"));
ppi1.in_pa_callback().set_ioport("P1");
ppi1.out_pa_callback().set(FUNC(lordgun_state::fake_w));
ppi1.in_pb_callback().set_ioport("P2");
ppi1.out_pb_callback().set(FUNC(lordgun_state::fake_w));
ppi1.in_pc_callback().set_ioport("COIN");
ppi1.out_pc_callback().set(FUNC(lordgun_state::fake_w));
EEPROM_93C46_16BIT(config, "eeprom");

View File

@ -1475,24 +1475,24 @@ MACHINE_CONFIG_START(lucky74_state::lucky74)
// Each 82C255 behaves like 2x 8255 (in mode 0). Since MAME doesn't support it yet, I replaced
// both 82C255 with 4x 8255...
MCFG_DEVICE_ADD("ppi8255_0", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("IN0"))
MCFG_I8255_IN_PORTB_CB(IOPORT("IN1"))
i8255_device &ppi0(I8255A(config, "ppi8255_0"));
ppi0.in_pa_callback().set_ioport("IN0");
ppi0.in_pb_callback().set_ioport("IN1");
// Port C write: 0x00 after reset, 0xff during game, and 0xfd when tap F2 for percentage and run count
MCFG_DEVICE_ADD("ppi8255_1", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("IN2"))
MCFG_I8255_IN_PORTC_CB(IOPORT("IN4"))
i8255_device &ppi1(I8255A(config, "ppi8255_1"));
ppi1.in_pa_callback().set_ioport("IN2");
ppi1.in_pc_callback().set_ioport("IN4");
MCFG_DEVICE_ADD("ppi8255_2", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("DSW1"))
MCFG_I8255_IN_PORTB_CB(IOPORT("DSW2"))
MCFG_I8255_IN_PORTC_CB(IOPORT("DSW3"))
i8255_device &ppi2(I8255A(config, "ppi8255_2"));
ppi2.in_pa_callback().set_ioport("DSW1");
ppi2.in_pb_callback().set_ioport("DSW2");
ppi2.in_pc_callback().set_ioport("DSW3");
MCFG_DEVICE_ADD("ppi8255_3", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("DSW4"))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, lucky74_state, lamps_a_w))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, lucky74_state, lamps_b_w))
i8255_device &ppi3(I8255A(config, "ppi8255_3"));
ppi3.in_pa_callback().set_ioport("DSW4");
ppi3.out_pb_callback().set(FUNC(lucky74_state::lamps_a_w));
ppi3.out_pc_callback().set(FUNC(lucky74_state::lamps_b_w));
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)

View File

@ -217,7 +217,7 @@
Inputs...
4512 #0 4512 #1 4512 #2
.----v----. .----v----. .----v----.
.----v----. .----v----. .----v----.
| D0 |----> AUX IN | D0 |----> CREDITS IN | D0 |----> DSW #1
| D1 |----> N/C | D1 |----> PLAYER UP | D1 |----> DSW #2
| D2 |----> N/C | D2 |----> PLAYER BET | D2 |----> DSW #3
@ -232,7 +232,7 @@
Outputs...
4099 #0 4099 #1 4099 #2
.----v----. .----v----. .----v----.
.----v----. .----v----. .----v----.
| Q0 |----> PL. 1 | Q0 |----> AUX OUT1 | Q0 |----> N/C
| Q1 |----> PL. 2 | Q1 |----> AUX OUT2 (ULN2004) | Q1 |----> N/C
| Q2 |----> PL. 3 | Q2 |----> AUX OUT3 (ULN2004) | Q2 |----> N/C
@ -315,7 +315,7 @@ private:
DECLARE_WRITE8_MEMBER(output_port_c_w);
uint8_t m_trdr;
uint8_t m_led_on = 0;
uint8_t m_led_on = 0;
required_device<v9938_device> m_v9938;
required_device<cpu_device> m_maincpu;
@ -328,7 +328,7 @@ private:
void main_io(address_map &map);
void main_map(address_map &map);
virtual void machine_start() override { m_lamps.resolve(); }
output_finder<38> m_lamps;
};
@ -413,7 +413,7 @@ WRITE8_MEMBER(luckybal_state::output_port_a_w)
m_lamps[m_led_on] = 0;
m_lamps[m_trdr] = 1;
m_led_on = m_trdr;
m_dac->write(data);
}
@ -521,7 +521,7 @@ static INPUT_PORTS_START( luckybal )
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(6) PORT_CODE(KEYCODE_8_PAD) PORT_NAME("Player 6 - Down")
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) // 'Player 6 - Coins' in the schematics. Maybe for another game.
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(6) PORT_CODE(KEYCODE_6_PAD) PORT_NAME("Player 6 - Left")
PORT_START("AUX")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED )
@ -531,7 +531,7 @@ static INPUT_PORTS_START( luckybal )
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_CODE(KEYCODE_0) PORT_NAME("Operator Key") PORT_TOGGLE // Allow to credit in/out for all players.
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_CODE(KEYCODE_9) PORT_NAME("Test Mode / Books / Page") // Need the Oper Key active to work.
PORT_START("DSW")
PORT_DIPNAME( 0x01, 0x01, "Setting Access" ) PORT_DIPLOCATION("DSW:1")
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
@ -572,11 +572,11 @@ MACHINE_CONFIG_START(luckybal_state::luckybal)
MCFG_DEVICE_PROGRAM_MAP(main_map)
MCFG_DEVICE_IO_MAP(main_io)
MCFG_DEVICE_ADD("ppi", I8255A, 0)
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, luckybal_state, output_port_a_w))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, luckybal_state, output_port_b_w))
MCFG_I8255_IN_PORTC_CB(READ8(*this, luckybal_state, input_port_c_r))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, luckybal_state, output_port_c_w))
I8255A(config, m_ppi);
m_ppi->out_pa_callback().set(FUNC(luckybal_state::output_port_a_w));
m_ppi->out_pb_callback().set(FUNC(luckybal_state::output_port_b_w));
m_ppi->in_pc_callback().set(FUNC(luckybal_state::input_port_c_r));
m_ppi->out_pc_callback().set(FUNC(luckybal_state::output_port_c_w));
MCFG_DEVICE_ADD("latch1", CD4099, 0)
@ -586,7 +586,7 @@ MACHINE_CONFIG_START(luckybal_state::luckybal)
/* nvram */
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
/* video hardware */
MCFG_V9938_ADD("v9938", "screen", VDP_MEM, VID_CLOCK)
MCFG_V99X8_INTERRUPT_CALLBACK(INPUTLINE("maincpu", 0))
@ -657,7 +657,7 @@ void luckybal_state::init_luckybal()
}
membank("bank1")->configure_entries(0, 0x40, &rom[0x10000], 0x2000);
}
}
void luckybal_state::init_luckybala()
{
@ -669,7 +669,7 @@ void luckybal_state::init_luckybala()
{
rom[i] = bitswap<8>(rom[i], 6, 7, 4, 5, 2, 3, 0, 1);
}
/* The following patches are to avoid hardware verifications through
the unemulated synchronic serial comm of the z180...
*/
@ -682,7 +682,7 @@ void luckybal_state::init_luckybala()
rom[0x1D65] = 0x0E; //0C
rom[0x4499] = 0x00; //FF <------- Checksum.
rom[0x4AB6] = 0xAF; //B9
membank("bank1")->configure_entries(0, 0x40, &rom[0x10000], 0x2000);
}
@ -696,7 +696,7 @@ void luckybal_state::init_luckybald()
{
rom[i] = bitswap<8>(rom[i], 6, 7, 4, 5, 2, 3, 0, 1);
}
/* The following patches are to avoid hardware verifications through
the unemulated synchronic serial comm of the z180...
*/

View File

@ -428,21 +428,21 @@ MACHINE_CONFIG_START(lviv_state::lviv)
MCFG_DEVICE_IO_MAP(io_map)
MCFG_QUANTUM_TIME(attotime::from_hz(60))
MCFG_DEVICE_ADD(m_ppi[0], I8255, 0)
MCFG_I8255_IN_PORTA_CB(READ8(*this, lviv_state, ppi_0_porta_r))
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, lviv_state, ppi_0_porta_w))
MCFG_I8255_IN_PORTB_CB(READ8(*this, lviv_state, ppi_0_portb_r))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, lviv_state, ppi_0_portb_w))
MCFG_I8255_IN_PORTC_CB(READ8(*this, lviv_state, ppi_0_portc_r))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, lviv_state, ppi_0_portc_w))
I8255(config, m_ppi[0]);
m_ppi[0]->in_pa_callback().set(FUNC(lviv_state::ppi_0_porta_r));
m_ppi[0]->out_pa_callback().set(FUNC(lviv_state::ppi_0_porta_w));
m_ppi[0]->in_pb_callback().set(FUNC(lviv_state::ppi_0_portb_r));
m_ppi[0]->out_pb_callback().set(FUNC(lviv_state::ppi_0_portb_w));
m_ppi[0]->in_pc_callback().set(FUNC(lviv_state::ppi_0_portc_r));
m_ppi[0]->out_pc_callback().set(FUNC(lviv_state::ppi_0_portc_w));
MCFG_DEVICE_ADD(m_ppi[1], I8255, 0)
MCFG_I8255_IN_PORTA_CB(READ8(*this, lviv_state, ppi_1_porta_r))
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, lviv_state, ppi_1_porta_w))
MCFG_I8255_IN_PORTB_CB(READ8(*this, lviv_state, ppi_1_portb_r))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, lviv_state, ppi_1_portb_w))
MCFG_I8255_IN_PORTC_CB(READ8(*this, lviv_state, ppi_1_portc_r))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, lviv_state, ppi_1_portc_w))
I8255(config, m_ppi[1]);
m_ppi[1]->in_pa_callback().set(FUNC(lviv_state::ppi_1_porta_r));
m_ppi[1]->out_pa_callback().set(FUNC(lviv_state::ppi_1_porta_w));
m_ppi[1]->in_pb_callback().set(FUNC(lviv_state::ppi_1_portb_r));
m_ppi[1]->out_pb_callback().set(FUNC(lviv_state::ppi_1_portb_w));
m_ppi[1]->in_pc_callback().set(FUNC(lviv_state::ppi_1_portc_r));
m_ppi[1]->out_pc_callback().set(FUNC(lviv_state::ppi_1_portc_w));
MCFG_SCREEN_ADD(m_screen, RASTER)
MCFG_SCREEN_REFRESH_RATE(50)

View File

@ -1436,12 +1436,12 @@ MACHINE_CONFIG_START(m5_state::m5)
MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_PLAY)
MCFG_CASSETTE_INTERFACE("m5_cass")
MCFG_DEVICE_ADD(I8255A_TAG, I8255, 0)
MCFG_I8255_IN_PORTA_CB(READ8(*this, m5_state, ppi_pa_r))
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, m5_state, ppi_pa_w))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, m5_state, ppi_pb_w))
MCFG_I8255_IN_PORTC_CB(READ8(*this, m5_state, ppi_pc_r))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, m5_state, ppi_pc_w))
I8255(config, m_ppi);
m_ppi->in_pa_callback().set(FUNC(m5_state::ppi_pa_r));
m_ppi->out_pa_callback().set(FUNC(m5_state::ppi_pa_w));
m_ppi->out_pb_callback().set(FUNC(m5_state::ppi_pb_w));
m_ppi->in_pc_callback().set(FUNC(m5_state::ppi_pc_r));
m_ppi->out_pc_callback().set(FUNC(m5_state::ppi_pc_w));
MCFG_UPD765A_ADD(UPD765_TAG, true, true)
MCFG_UPD765_INTRQ_CALLBACK(INPUTLINE(Z80_FD5_TAG, INPUT_LINE_IRQ0))

View File

@ -335,15 +335,12 @@ MACHINE_CONFIG_START(mbc200_state::mbc200)
MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MCFG_DEVICE_ADD("ppi_1", I8255, 0)
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, mbc200_state, p1_portc_w))
I8255(config, "ppi_1").out_pc_callback().set(FUNC(mbc200_state::p1_portc_w));
I8255(config, "ppi_2").in_pa_callback().set(FUNC(mbc200_state::p2_porta_r));
MCFG_DEVICE_ADD("ppi_2", I8255, 0)
MCFG_I8255_IN_PORTA_CB(READ8(*this, mbc200_state, p2_porta_r))
MCFG_DEVICE_ADD("ppi_m", I8255, 0)
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, mbc200_state, pm_porta_w))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, mbc200_state, pm_portb_w))
I8255(config, m_ppi_m);
m_ppi_m->out_pa_callback().set(FUNC(mbc200_state::pm_porta_w));
m_ppi_m->out_pb_callback().set(FUNC(mbc200_state::pm_portb_w));
MCFG_DEVICE_ADD("uart1", I8251, 0) // INS8251N

View File

@ -280,13 +280,13 @@ MACHINE_CONFIG_START(mbc55x_state::mbc55x)
MCFG_DEVICE_ADD(PIC8259_TAG, PIC8259, 0)
MCFG_PIC8259_OUT_INT_CB(INPUTLINE(MAINCPU_TAG, INPUT_LINE_IRQ0))
MCFG_DEVICE_ADD(PPI8255_TAG, I8255, 0)
MCFG_I8255_IN_PORTA_CB(READ8(*this, mbc55x_state, mbc55x_ppi_porta_r))
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, mbc55x_state, mbc55x_ppi_porta_w))
MCFG_I8255_IN_PORTB_CB(READ8(*this, mbc55x_state, mbc55x_ppi_portb_r))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, mbc55x_state, mbc55x_ppi_portb_w))
MCFG_I8255_IN_PORTC_CB(READ8(*this, mbc55x_state, mbc55x_ppi_portc_r))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, mbc55x_state, mbc55x_ppi_portc_w))
I8255(config, m_ppi);
m_ppi->in_pa_callback().set(FUNC(mbc55x_state::mbc55x_ppi_porta_r));
m_ppi->out_pa_callback().set(FUNC(mbc55x_state::mbc55x_ppi_porta_w));
m_ppi->in_pb_callback().set(FUNC(mbc55x_state::mbc55x_ppi_portb_r));
m_ppi->out_pb_callback().set(FUNC(mbc55x_state::mbc55x_ppi_portb_w));
m_ppi->in_pc_callback().set(FUNC(mbc55x_state::mbc55x_ppi_portc_r));
m_ppi->out_pc_callback().set(FUNC(mbc55x_state::mbc55x_ppi_portc_w));
MCFG_MC6845_ADD(VID_MC6845_NAME, MC6845, SCREEN_TAG, 14.318181_MHz_XTAL / 8)
MCFG_MC6845_SHOW_BORDER_AREA(false)

View File

@ -250,17 +250,17 @@ MACHINE_CONFIG_START(mc1502_state::mc1502)
MCFG_DEVICE_ADD("pic8259", PIC8259, 0)
MCFG_PIC8259_OUT_INT_CB(INPUTLINE("maincpu", 0))
MCFG_DEVICE_ADD("ppi8255n1", I8255, 0)
MCFG_I8255_OUT_PORTA_CB(WRITE8("cent_data_out", output_latch_device, bus_w))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, mc1502_state, mc1502_ppi_portb_w))
MCFG_I8255_IN_PORTC_CB(READ8(*this, mc1502_state, mc1502_ppi_portc_r))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, mc1502_state, mc1502_ppi_portc_w))
I8255(config, m_ppi8255n1);
m_ppi8255n1->out_pa_callback().set("cent_data_out", FUNC(output_latch_device::bus_w));
m_ppi8255n1->out_pb_callback().set(FUNC(mc1502_state::mc1502_ppi_portb_w));
m_ppi8255n1->in_pc_callback().set(FUNC(mc1502_state::mc1502_ppi_portc_r));
m_ppi8255n1->out_pc_callback().set(FUNC(mc1502_state::mc1502_ppi_portc_w));
MCFG_DEVICE_ADD("ppi8255n2", I8255, 0)
MCFG_I8255_IN_PORTA_CB(READ8(*this, mc1502_state, mc1502_kppi_porta_r))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, mc1502_state, mc1502_kppi_portb_w))
MCFG_I8255_IN_PORTC_CB(READ8("cent_status_in", input_buffer_device, bus_r))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, mc1502_state, mc1502_kppi_portc_w))
I8255(config, m_ppi8255n2);
m_ppi8255n2->in_pa_callback().set(FUNC(mc1502_state::mc1502_kppi_porta_r));
m_ppi8255n2->out_pb_callback().set(FUNC(mc1502_state::mc1502_kppi_portb_w));
m_ppi8255n2->in_pc_callback().set("cent_status_in", FUNC(input_buffer_device::bus_r));
m_ppi8255n2->out_pc_callback().set(FUNC(mc1502_state::mc1502_kppi_portc_w));
I8251(config, m_upd8251, 0);
m_upd8251->txd_handler().set("rs232", FUNC(rs232_port_device::write_txd));

View File

@ -396,11 +396,11 @@ MACHINE_CONFIG_START(megaphx_state::megaphx)
m_dsw_shifter[1]->data_callback().set_ioport("DSW2");
m_dsw_shifter[1]->qh_callback().set(FUNC(megaphx_state::dsw_w));
MCFG_DEVICE_ADD("ppi8255_0", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("P1"))
MCFG_I8255_IN_PORTB_CB(IOPORT("P2"))
MCFG_I8255_IN_PORTC_CB(READ8(*this, megaphx_state, ppi_portc_r))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, megaphx_state, ppi_portc_w))
I8255A(config, m_ppi);
m_ppi->in_pa_callback().set_ioport("P1");
m_ppi->in_pb_callback().set_ioport("P2");
m_ppi->in_pc_callback().set(FUNC(megaphx_state::ppi_portc_r));
m_ppi->out_pc_callback().set(FUNC(megaphx_state::ppi_portc_w));
MCFG_INDER_VIDEO_ADD("inder_vid")

View File

@ -95,6 +95,7 @@ public:
, m_ram_video(*this, "ravideo")
, m_backup_ram(*this, "backup_ram")
, m_maincpu(*this, "maincpu")
, m_ppi(*this, "ppi8255_%u", 0U)
, m_screen(*this, "screen")
, m_leds(*this, "led%u", 0U)
{ }
@ -166,6 +167,7 @@ private:
int m_decryption_key;
optional_shared_ptr<uint8_t> m_backup_ram;
required_device<cpu_device> m_maincpu;
required_device_array<i8255_device, 2> m_ppi;
required_device<screen_device> m_screen;
output_finder<10> m_leds;
};
@ -418,8 +420,8 @@ void merit_state::pitboss_map(address_map &map)
{
map(0x0000, 0x5fff).rom();
map(0x6000, 0x67ff).ram();
map(0xa000, 0xa003).rw("ppi8255_0", FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0xc000, 0xc003).rw("ppi8255_1", FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0xa000, 0xa003).rw(m_ppi[0], FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0xc000, 0xc003).rw(m_ppi[1], FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0xe000, 0xe000).w("crtc", FUNC(mc6845_device::address_w));
map(0xe001, 0xe001).w("crtc", FUNC(mc6845_device::register_w));
map(0xe800, 0xefff).ram().share("raattr");
@ -435,8 +437,8 @@ void merit_state::casino5_map(address_map &map)
map(0x6000, 0x6fff).ram().share("nvram");
map(0x7000, 0x7000).w(FUNC(merit_state::casino5_bank_w));
map(0x7001, 0x7fff).ram();
map(0xa000, 0xa003).rw("ppi8255_0", FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0xc000, 0xc003).rw("ppi8255_1", FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0xa000, 0xa003).rw(m_ppi[0], FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0xc000, 0xc003).rw(m_ppi[1], FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0xe000, 0xe000).w("crtc", FUNC(mc6845_device::address_w));
map(0xe001, 0xe001).w("crtc", FUNC(mc6845_device::register_w));
map(0xe800, 0xefff).ram().share("raattr");
@ -448,8 +450,8 @@ void merit_state::bigappg_map(address_map &map)
{
map(0x0000, 0x7fff).rom();
map(0xa000, 0xbfff).ram().share("nvram");
map(0xc004, 0xc007).rw("ppi8255_1", FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0xc008, 0xc00b).rw("ppi8255_0", FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0xc004, 0xc007).rw(m_ppi[1], FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0xc008, 0xc00b).rw(m_ppi[0], FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0xe000, 0xe000).w("crtc", FUNC(mc6845_device::address_w));
map(0xe001, 0xe001).w("crtc", FUNC(mc6845_device::register_w));
map(0xe800, 0xefff).ram().share("raattr");
@ -462,8 +464,8 @@ void merit_state::misdraw_map(address_map &map)
map(0x0000, 0x7fff).rom();
map(0xa000, 0xbfff).ram().share("nvram");
map(0xb000, 0xb7ff).ram().share("cpunvram"); // overlays other NVRAM? or is it banked?
map(0xc004, 0xc007).rw("ppi8255_0", FUNC(i8255_device::read), FUNC(i8255_device::write)); // swapped compared to other set?
map(0xc008, 0xc00b).rw("ppi8255_1", FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0xc004, 0xc007).rw(m_ppi[0], FUNC(i8255_device::read), FUNC(i8255_device::write)); // swapped compared to other set?
map(0xc008, 0xc00b).rw(m_ppi[1], FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0xe000, 0xe000).w("crtc", FUNC(mc6845_device::address_w));
map(0xe001, 0xe001).w("crtc", FUNC(mc6845_device::register_w));
map(0xe800, 0xefff).ram().share("raattr");
@ -475,8 +477,8 @@ void merit_state::dodge_map(address_map &map)
{
map(0x0000, 0x7fff).rom();
map(0xa000, 0xbfff).ram().share("nvram");
map(0xc004, 0xc007).rw("ppi8255_0", FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0xc008, 0xc00b).rw("ppi8255_1", FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0xc004, 0xc007).rw(m_ppi[0], FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0xc008, 0xc00b).rw(m_ppi[1], FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0xe000, 0xe000).w("crtc", FUNC(mc6845_device::address_w));
map(0xe001, 0xe001).w("crtc", FUNC(mc6845_device::register_w));
map(0xe800, 0xefff).ram().share("raattr");
@ -496,8 +498,8 @@ void merit_state::trvwhiz_map(address_map &map)
map(0x5400, 0x54ff).w(FUNC(merit_state::low_offset_w));
map(0x5800, 0x58ff).w(FUNC(merit_state::med_offset_w));
map(0x6000, 0x67ff).ram();
map(0xa000, 0xa003).mirror(0x1df0).rw("ppi8255_0", FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0xc000, 0xc003).mirror(0x1df0).rw("ppi8255_1", FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0xa000, 0xa003).mirror(0x1df0).rw(m_ppi[0], FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0xc000, 0xc003).mirror(0x1df0).rw(m_ppi[1], FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0xe000, 0xe000).mirror(0x05f0).w("crtc", FUNC(mc6845_device::address_w));
map(0xe001, 0xe001).mirror(0x05f0).w("crtc", FUNC(mc6845_device::register_w));
map(0xe800, 0xefff).ram().share("raattr");
@ -516,8 +518,8 @@ void merit_state::phrcraze_map(address_map &map)
{
map(0x0000, 0x7fff).rom();
map(0xa000, 0xbfff).ram();
map(0xc008, 0xc00b).mirror(0x1df0).rw("ppi8255_1", FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0xc00c, 0xc00f).mirror(0x1df0).rw("ppi8255_0", FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0xc008, 0xc00b).mirror(0x1df0).rw(m_ppi[1], FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0xc00c, 0xc00f).mirror(0x1df0).rw(m_ppi[0], FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0xce00, 0xceff).rw(FUNC(merit_state::questions_r), FUNC(merit_state::high_offset_w));
map(0xd600, 0xd6ff).w(FUNC(merit_state::low_offset_w));
map(0xda00, 0xdaff).w(FUNC(merit_state::med_offset_w));
@ -539,8 +541,8 @@ void merit_state::tictac_map(address_map &map)
{
map(0x0000, 0x7fff).rom();
map(0x8000, 0x9fff).ram();
map(0xc004, 0xc007).mirror(0x1df0).rw("ppi8255_0", FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0xc008, 0xc00b).mirror(0x1df0).rw("ppi8255_1", FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0xc004, 0xc007).mirror(0x1df0).rw(m_ppi[0], FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0xc008, 0xc00b).mirror(0x1df0).rw(m_ppi[1], FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0xce00, 0xceff).rw(FUNC(merit_state::questions_r), FUNC(merit_state::high_offset_w));
map(0xd600, 0xd6ff).w(FUNC(merit_state::low_offset_w));
map(0xda00, 0xdaff).w(FUNC(merit_state::med_offset_w));
@ -562,8 +564,8 @@ void merit_state::trvwhziv_map(address_map &map)
{
map(0x0000, 0x7fff).rom();
map(0xa000, 0xbfff).ram();
map(0xc004, 0xc007).mirror(0x1df0).rw("ppi8255_0", FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0xc008, 0xc00b).mirror(0x1df0).rw("ppi8255_1", FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0xc004, 0xc007).mirror(0x1df0).rw(m_ppi[0], FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0xc008, 0xc00b).mirror(0x1df0).rw(m_ppi[1], FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0xce00, 0xceff).rw(FUNC(merit_state::questions_r), FUNC(merit_state::high_offset_w));
map(0xd600, 0xd6ff).w(FUNC(merit_state::low_offset_w));
map(0xda00, 0xdaff).w(FUNC(merit_state::med_offset_w));
@ -579,8 +581,8 @@ void merit_state::dtrvwz5_map(address_map &map)
map(0x0000, 0x7fff).rom();
map(0x8000, 0x9fff).ram().share("nvram");
map(0xb000, 0xb0ff).rom(); /* protection? code jumps here */
map(0xc004, 0xc007).mirror(0x1df0).rw("ppi8255_0", FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0xc008, 0xc00b).mirror(0x1df0).rw("ppi8255_1", FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0xc004, 0xc007).mirror(0x1df0).rw(m_ppi[0], FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0xc008, 0xc00b).mirror(0x1df0).rw(m_ppi[1], FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0xce00, 0xceff).rw(FUNC(merit_state::questions_r), FUNC(merit_state::high_offset_w));
map(0xd600, 0xd6ff).w(FUNC(merit_state::low_offset_w));
map(0xda00, 0xdaff).w(FUNC(merit_state::med_offset_w));
@ -596,8 +598,8 @@ void merit_state::couple_map(address_map &map)
map(0x0000, 0x7fff).rom();
map(0x8000, 0x9fff).bankr("bank1");
map(0xa000, 0xbfff).ram().share("backup_ram");
map(0xc004, 0xc007).rw("ppi8255_0", FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0xc008, 0xc00b).rw("ppi8255_1", FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0xc004, 0xc007).rw(m_ppi[0], FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0xc008, 0xc00b).rw(m_ppi[1], FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0xe000, 0xe000).w("crtc", FUNC(mc6845_device::address_w));
map(0xe001, 0xe001).w("crtc", FUNC(mc6845_device::register_w));
map(0xe800, 0xefff).ram().share("raattr");
@ -1412,15 +1414,15 @@ MACHINE_CONFIG_START(merit_state::pitboss)
MCFG_DEVICE_PROGRAM_MAP(pitboss_map)
MCFG_DEVICE_IO_MAP(trvwhiz_io_map)
MCFG_DEVICE_ADD("ppi8255_0", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("IN0"))
MCFG_I8255_IN_PORTB_CB(IOPORT("IN1"))
MCFG_I8255_IN_PORTC_CB(IOPORT("IN2"))
I8255A(config, m_ppi[0]);
m_ppi[0]->in_pa_callback().set_ioport("IN0");
m_ppi[0]->in_pb_callback().set_ioport("IN1");
m_ppi[0]->in_pc_callback().set_ioport("IN2");
MCFG_DEVICE_ADD("ppi8255_1", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("DSW"))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, merit_state, led1_w))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, merit_state, misc_w))
I8255A(config, m_ppi[1]);
m_ppi[1]->in_pa_callback().set_ioport("DSW");
m_ppi[1]->out_pb_callback().set(FUNC(merit_state::led1_w));
m_ppi[1]->out_pc_callback().set(FUNC(merit_state::misc_w));
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@ -1530,11 +1532,7 @@ MACHINE_CONFIG_START(merit_state::couple)
MCFG_DEVICE_PROGRAM_MAP(couple_map)
MCFG_DEVICE_IO_MAP(tictac_io_map)
MCFG_DEVICE_REMOVE("ppi8255_1")
MCFG_DEVICE_ADD("ppi8255_1", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("DSW"))
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, merit_state, led1_w))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, merit_state, misc_couple_w))
m_ppi[1]->out_pc_callback().set(FUNC(merit_state::misc_couple_w));
MACHINE_CONFIG_END

Some files were not shown because too many files have changed in this diff Show More