From f67038d5ad2a76038f4b204c2e869feb10d1df16 Mon Sep 17 00:00:00 2001 From: AJR Date: Sat, 2 Sep 2017 14:13:18 -0400 Subject: pic8259: Break up the MCFG_PIC8259_ADD macro (nw) --- src/devices/bus/a2bus/pc_xporter.cpp | 3 ++- src/devices/bus/dmv/k230.cpp | 3 ++- src/devices/bus/lpci/southbridge.cpp | 10 ++++++++-- src/devices/bus/s100/wunderbus.cpp | 7 ++++++- src/devices/cpu/nec/v53.cpp | 5 ++++- src/devices/machine/cs4031.cpp | 11 +++++++++-- src/devices/machine/genpc.cpp | 3 ++- src/devices/machine/i80130.cpp | 3 ++- src/devices/machine/i82371sb.cpp | 10 ++++++++-- src/devices/machine/pic8259.cpp | 6 +++--- src/devices/machine/pic8259.h | 20 +++++++++++++------- src/devices/machine/sis85c496.cpp | 10 ++++++++-- src/devices/machine/wd7600.cpp | 11 +++++++++-- src/mame/drivers/a7150.cpp | 3 ++- src/mame/drivers/altos486.cpp | 6 +++++- src/mame/drivers/altos8600.cpp | 15 ++++++++++++--- src/mame/drivers/amusco.cpp | 3 ++- src/mame/drivers/apc.cpp | 11 +++++++++-- src/mame/drivers/apricot.cpp | 3 ++- src/mame/drivers/apricotp.cpp | 5 ++++- src/mame/drivers/b2m.cpp | 3 ++- src/mame/drivers/bebox.cpp | 11 ++++++++--- src/mame/drivers/cbm2.cpp | 10 ++++++++-- src/mame/drivers/dvk_ksm.cpp | 3 ++- src/mame/drivers/fanucspmg.cpp | 10 ++++++++-- src/mame/drivers/fastinvaders.cpp | 3 ++- src/mame/drivers/fmtowns.cpp | 11 ++++++++--- src/mame/drivers/ibm6580.cpp | 3 ++- src/mame/drivers/ibmpcjr.cpp | 3 ++- src/mame/drivers/imds2.cpp | 9 +++++++-- src/mame/drivers/iq151.cpp | 3 ++- src/mame/drivers/irisha.cpp | 3 ++- src/mame/drivers/isbc.cpp | 16 ++++++++++++---- src/mame/drivers/isbc8030.cpp | 3 ++- src/mame/drivers/m107.cpp | 3 ++- src/mame/drivers/m20.cpp | 3 ++- src/mame/drivers/m72.cpp | 18 ++++++++++-------- src/mame/drivers/m92.cpp | 5 ++--- src/mame/drivers/mbc55x.cpp | 3 ++- src/mame/drivers/mc1502.cpp | 3 ++- src/mame/drivers/mrflea.cpp | 3 ++- src/mame/drivers/multi16.cpp | 3 ++- src/mame/drivers/ngen.cpp | 6 ++++-- src/mame/drivers/notetaker.cpp | 8 ++++++-- src/mame/drivers/octopus.cpp | 10 ++++++++-- src/mame/drivers/paso1600.cpp | 3 ++- src/mame/drivers/pc100.cpp | 4 +++- src/mame/drivers/pc1512.cpp | 8 ++++++-- src/mame/drivers/pc88va.cpp | 11 ++++++++--- src/mame/drivers/pc9801.cpp | 11 +++++++++-- src/mame/drivers/pcd.cpp | 7 +++++-- src/mame/drivers/peoplepc.cpp | 10 ++++++++-- src/mame/drivers/pg685.cpp | 15 +++++++++++---- src/mame/drivers/pk8020.cpp | 4 +++- src/mame/drivers/poisk1.cpp | 3 ++- src/mame/drivers/qx10.cpp | 10 ++++++++-- src/mame/drivers/rc759.cpp | 3 ++- src/mame/drivers/sage2.cpp | 3 ++- src/mame/drivers/sm7238.cpp | 3 ++- src/mame/drivers/superslave.cpp | 3 ++- src/mame/drivers/tandy2k.cpp | 6 ++++-- src/mame/drivers/tdv2324.cpp | 2 +- src/mame/drivers/trs80m2.cpp | 3 ++- src/mame/drivers/tsispch.cpp | 3 ++- src/mame/drivers/victor9k.cpp | 3 ++- src/mame/drivers/wangpc.cpp | 3 ++- src/mame/drivers/z100.cpp | 10 ++++++++-- src/mame/machine/apollo.cpp | 11 +++++++++-- src/mame/machine/at.cpp | 10 ++++++++-- src/mame/machine/pcshare.cpp | 11 +++++++++-- src/mame/machine/xbox.cpp | 11 +++++++++-- 71 files changed, 350 insertions(+), 125 deletions(-) diff --git a/src/devices/bus/a2bus/pc_xporter.cpp b/src/devices/bus/a2bus/pc_xporter.cpp index 25149f4d206..3583781a871 100644 --- a/src/devices/bus/a2bus/pc_xporter.cpp +++ b/src/devices/bus/a2bus/pc_xporter.cpp @@ -145,7 +145,8 @@ MACHINE_CONFIG_MEMBER( a2bus_pcxporter_device::device_add_mconfig ) MCFG_I8237_OUT_DACK_2_CB(WRITELINE(a2bus_pcxporter_device, pc_dack2_w)) MCFG_I8237_OUT_DACK_3_CB(WRITELINE(a2bus_pcxporter_device, pc_dack3_w)) - MCFG_PIC8259_ADD( "pic8259", INPUTLINE("v30", 0), VCC, NOOP) + MCFG_DEVICE_ADD("pic8259", PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(INPUTLINE("v30", 0)) MCFG_DEVICE_ADD("isa", ISA8, 0) MCFG_ISA8_CPU("^v30") diff --git a/src/devices/bus/dmv/k230.cpp b/src/devices/bus/dmv/k230.cpp index 48b5672f328..96ec71b182a 100644 --- a/src/devices/bus/dmv/k230.cpp +++ b/src/devices/bus/dmv/k230.cpp @@ -179,7 +179,8 @@ MACHINE_CONFIG_MEMBER( dmv_k235_device::device_add_mconfig ) MCFG_CPU_IO_MAP(k235_io) MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("pic8259", pic8259_device, inta_cb) - MCFG_PIC8259_ADD("pic8259", INPUTLINE("maincpu", 0), VCC, NOOP) + MCFG_DEVICE_ADD("pic8259", PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(INPUTLINE("maincpu", 0)) MACHINE_CONFIG_END //------------------------------------------------- diff --git a/src/devices/bus/lpci/southbridge.cpp b/src/devices/bus/lpci/southbridge.cpp index 3bc4108b28e..c571815ab06 100644 --- a/src/devices/bus/lpci/southbridge.cpp +++ b/src/devices/bus/lpci/southbridge.cpp @@ -70,8 +70,14 @@ MACHINE_CONFIG_MEMBER( southbridge_device::device_add_mconfig ) MCFG_I8237_OUT_DACK_2_CB(WRITELINE(southbridge_device, pc_dack6_w)) MCFG_I8237_OUT_DACK_3_CB(WRITELINE(southbridge_device, pc_dack7_w)) - MCFG_PIC8259_ADD( "pic8259_master", INPUTLINE(":maincpu", 0), VCC, READ8(southbridge_device, get_slave_ack) ) - MCFG_PIC8259_ADD( "pic8259_slave", DEVWRITELINE("pic8259_master", pic8259_device, ir2_w), GND, NOOP) + MCFG_DEVICE_ADD("pic8259_master", PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(INPUTLINE(":maincpu", 0)) + MCFG_PIC8259_IN_SP_CB(VCC) + MCFG_PIC8259_CASCADE_ACK_CB(READ8(southbridge_device, get_slave_ack)) + + MCFG_DEVICE_ADD("pic8259_slave", PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(DEVWRITELINE("pic8259_master", pic8259_device, ir2_w)) + MCFG_PIC8259_IN_SP_CB(GND) MCFG_DEVICE_ADD("keybc", AT_KEYBOARD_CONTROLLER, XTAL_12MHz) MCFG_AT_KEYBOARD_CONTROLLER_SYSTEM_RESET_CB(INPUTLINE(":maincpu", INPUT_LINE_RESET)) diff --git a/src/devices/bus/s100/wunderbus.cpp b/src/devices/bus/s100/wunderbus.cpp index 1c594bc7ac0..e0eec1b3b4f 100644 --- a/src/devices/bus/s100/wunderbus.cpp +++ b/src/devices/bus/s100/wunderbus.cpp @@ -88,17 +88,22 @@ WRITE_LINE_MEMBER( s100_wunderbus_device::rtc_tp_w ) MACHINE_CONFIG_MEMBER( s100_wunderbus_device::device_add_mconfig ) - MCFG_PIC8259_ADD(I8259A_TAG, DEVWRITELINE(DEVICE_SELF, s100_wunderbus_device, pic_int_w), VCC, NOOP) + MCFG_DEVICE_ADD(I8259A_TAG, PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(WRITELINE(s100_wunderbus_device, pic_int_w)) + MCFG_PIC8259_IN_SP_CB(VCC) + MCFG_DEVICE_ADD(INS8250_1_TAG, INS8250, XTAL_18_432MHz/10) MCFG_INS8250_OUT_TX_CB(DEVWRITELINE(RS232_A_TAG, rs232_port_device, write_txd)) MCFG_INS8250_OUT_DTR_CB(DEVWRITELINE(RS232_A_TAG, rs232_port_device, write_dtr)) MCFG_INS8250_OUT_RTS_CB(DEVWRITELINE(RS232_A_TAG, rs232_port_device, write_rts)) MCFG_INS8250_OUT_INT_CB(DEVWRITELINE(I8259A_TAG, pic8259_device, ir3_w)) + MCFG_DEVICE_ADD(INS8250_2_TAG, INS8250, XTAL_18_432MHz/10) MCFG_INS8250_OUT_TX_CB(DEVWRITELINE(RS232_B_TAG, rs232_port_device, write_txd)) MCFG_INS8250_OUT_DTR_CB(DEVWRITELINE(RS232_B_TAG, rs232_port_device, write_dtr)) MCFG_INS8250_OUT_RTS_CB(DEVWRITELINE(RS232_B_TAG, rs232_port_device, write_rts)) MCFG_INS8250_OUT_INT_CB(DEVWRITELINE(I8259A_TAG, pic8259_device, ir4_w)) + MCFG_DEVICE_ADD(INS8250_3_TAG, INS8250, XTAL_18_432MHz/10) MCFG_INS8250_OUT_TX_CB(DEVWRITELINE(RS232_C_TAG, rs232_port_device, write_txd)) MCFG_INS8250_OUT_DTR_CB(DEVWRITELINE(RS232_C_TAG, rs232_port_device, write_dtr)) diff --git a/src/devices/cpu/nec/v53.cpp b/src/devices/cpu/nec/v53.cpp index 7a1d087c1b7..2674c73813c 100644 --- a/src/devices/cpu/nec/v53.cpp +++ b/src/devices/cpu/nec/v53.cpp @@ -515,7 +515,10 @@ MACHINE_CONFIG_MEMBER( v53_base_device::device_add_mconfig ) MCFG_AM9517A_OUT_DACK_3_CB(WRITELINE(v53_base_device, dma_dack3_trampoline_w)) - MCFG_PIC8259_ADD( "upd71059pic", WRITELINE(v53_base_device, internal_irq_w), VCC, READ8(v53_base_device, get_pic_ack)) + MCFG_DEVICE_ADD("upd71059pic", PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(WRITELINE(v53_base_device, internal_irq_w)) + MCFG_PIC8259_IN_SP_CB(VCC) + MCFG_PIC8259_CASCADE_ACK_CB(READ8(v53_base_device, get_pic_ack)) diff --git a/src/devices/machine/cs4031.cpp b/src/devices/machine/cs4031.cpp index ecc3ec4b107..05f92c3d355 100644 --- a/src/devices/machine/cs4031.cpp +++ b/src/devices/machine/cs4031.cpp @@ -128,8 +128,15 @@ MACHINE_CONFIG_MEMBER( cs4031_device::device_add_mconfig ) MCFG_I8237_OUT_DACK_1_CB(WRITELINE(cs4031_device, dma2_dack1_w)) MCFG_I8237_OUT_DACK_2_CB(WRITELINE(cs4031_device, dma2_dack2_w)) MCFG_I8237_OUT_DACK_3_CB(WRITELINE(cs4031_device, dma2_dack3_w)) - MCFG_PIC8259_ADD("intc1", WRITELINE(cs4031_device, intc1_int_w), VCC, READ8(cs4031_device, intc1_slave_ack_r)) - MCFG_PIC8259_ADD("intc2", DEVWRITELINE("intc1", pic8259_device, ir2_w), GND, NOOP) + + MCFG_DEVICE_ADD("intc1", PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(WRITELINE(cs4031_device, intc1_int_w)) + MCFG_PIC8259_IN_SP_CB(VCC) + MCFG_PIC8259_CASCADE_ACK_CB(READ8(cs4031_device, intc1_slave_ack_r)) + + MCFG_DEVICE_ADD("intc2", PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(DEVWRITELINE("intc1", pic8259_device, ir2_w)) + MCFG_PIC8259_IN_SP_CB(GND) MCFG_DEVICE_ADD("ctc", PIT8254, 0) MCFG_PIT8253_CLK0(XTAL_14_31818MHz / 12.0) diff --git a/src/devices/machine/genpc.cpp b/src/devices/machine/genpc.cpp index aa8b8dbc18d..12457166cc6 100644 --- a/src/devices/machine/genpc.cpp +++ b/src/devices/machine/genpc.cpp @@ -426,7 +426,8 @@ MACHINE_CONFIG_MEMBER( ibm5160_mb_device::device_add_mconfig ) MCFG_I8237_OUT_DACK_2_CB(WRITELINE(ibm5160_mb_device, pc_dack2_w)) MCFG_I8237_OUT_DACK_3_CB(WRITELINE(ibm5160_mb_device, pc_dack3_w)) - MCFG_PIC8259_ADD( "pic8259", INPUTLINE(":maincpu", 0), VCC, NOOP) + MCFG_DEVICE_ADD("pic8259", PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(INPUTLINE(":maincpu", 0)) MCFG_DEVICE_ADD("ppi8255", I8255A, 0) MCFG_I8255_IN_PORTA_CB(READ8(ibm5160_mb_device, pc_ppi_porta_r)) diff --git a/src/devices/machine/i80130.cpp b/src/devices/machine/i80130.cpp index f4c24f8e191..9102a914d79 100644 --- a/src/devices/machine/i80130.cpp +++ b/src/devices/machine/i80130.cpp @@ -99,7 +99,8 @@ const tiny_rom_entry *i80130_device::device_rom_region() const //------------------------------------------------- MACHINE_CONFIG_MEMBER( i80130_device::device_add_mconfig ) - MCFG_PIC8259_ADD("pic", DEVWRITELINE(DEVICE_SELF, i80130_device, irq_w), VCC, NOOP) + MCFG_DEVICE_ADD("pic", PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(WRITELINE(i80130_device, irq_w)) MCFG_DEVICE_ADD("pit", PIT8254, 0) MCFG_PIT8253_CLK0(0) diff --git a/src/devices/machine/i82371sb.cpp b/src/devices/machine/i82371sb.cpp index 3139cefeb87..611c4fc6481 100644 --- a/src/devices/machine/i82371sb.cpp +++ b/src/devices/machine/i82371sb.cpp @@ -99,8 +99,14 @@ MACHINE_CONFIG_MEMBER( i82371sb_isa_device::device_add_mconfig ) MCFG_I8237_OUT_DACK_2_CB(WRITELINE(i82371sb_isa_device, pc_dack6_w)) MCFG_I8237_OUT_DACK_3_CB(WRITELINE(i82371sb_isa_device, pc_dack7_w)) - MCFG_PIC8259_ADD( "pic8259_master", INPUTLINE(":maincpu", 0), VCC, READ8(i82371sb_isa_device, get_slave_ack) ) - MCFG_PIC8259_ADD( "pic8259_slave", DEVWRITELINE("pic8259_master", pic8259_device, ir2_w), GND, NOOP) + MCFG_DEVICE_ADD("pic8259_master", PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(INPUTLINE(":maincpu", 0)) + MCFG_PIC8259_IN_SP_CB(VCC) + MCFG_PIC8259_CASCADE_ACK_CB(READ8(i82371sb_isa_device, get_slave_ack)) + + MCFG_DEVICE_ADD("pic8259_slave", PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(DEVWRITELINE("pic8259_master", pic8259_device, ir2_w)) + MCFG_PIC8259_IN_SP_CB(GND) MCFG_DEVICE_ADD("keybc", AT_KEYBOARD_CONTROLLER, XTAL_12MHz) MCFG_AT_KEYBOARD_CONTROLLER_SYSTEM_RESET_CB(INPUTLINE(":maincpu", INPUT_LINE_RESET)) diff --git a/src/devices/machine/pic8259.cpp b/src/devices/machine/pic8259.cpp index 4dea41992c2..e985518d47c 100644 --- a/src/devices/machine/pic8259.cpp +++ b/src/devices/machine/pic8259.cpp @@ -340,7 +340,7 @@ void pic8259_device::device_start() { // resolve callbacks m_out_int_func.resolve_safe(); - m_sp_en_func.resolve_safe(1); + m_in_sp_func.resolve_safe(1); m_read_slave_ack_func.resolve_safe(0); // Register save state items @@ -395,7 +395,7 @@ void pic8259_device::device_reset() m_vector_addr_low = 0; m_vector_addr_high = 0; - m_master = m_sp_en_func(); + m_master = m_in_sp_func(); } DEFINE_DEVICE_TYPE(PIC8259, pic8259_device, "pic8259", "Intel 8259 PIC") @@ -403,7 +403,7 @@ DEFINE_DEVICE_TYPE(PIC8259, pic8259_device, "pic8259", "Intel 8259 PIC") pic8259_device::pic8259_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : device_t(mconfig, PIC8259, tag, owner, clock) , m_out_int_func(*this) - , m_sp_en_func(*this) + , m_in_sp_func(*this) , m_read_slave_ack_func(*this) , m_irr(0) , m_irq_lines(0) diff --git a/src/devices/machine/pic8259.h b/src/devices/machine/pic8259.h index b788fead80e..af46b03569d 100644 --- a/src/devices/machine/pic8259.h +++ b/src/devices/machine/pic8259.h @@ -32,11 +32,17 @@ DEVICE CONFIGURATION MACROS ***************************************************************************/ -#define MCFG_PIC8259_ADD(_tag, _out_int, _sp_en, _read_slave_ack) \ - MCFG_DEVICE_ADD(_tag, PIC8259, 0) \ - devcb = &pic8259_device::static_set_out_int_callback( *device, DEVCB_##_out_int ); \ - devcb = &pic8259_device::static_set_sp_en_callback( *device, DEVCB_##_sp_en ); \ - devcb = &pic8259_device::static_set_read_slave_ack_callback( *device, DEVCB_##_read_slave_ack ); +// Interrupt request output to CPU or master 8259 (active high) +#define MCFG_PIC8259_OUT_INT_CB(_devcb) \ + devcb = &pic8259_device::static_set_out_int_callback(*device, DEVCB_##_devcb); + +// Slave program select (VCC = master; GND = slave; pin becomes EN output in buffered mode) +#define MCFG_PIC8259_IN_SP_CB(_devcb) \ + devcb = &pic8259_device::static_set_in_sp_callback(*device, DEVCB_##_devcb); + +// Cascaded interrupt acknowledge request for slave 8259 to place vector on data bus +#define MCFG_PIC8259_CASCADE_ACK_CB(_devcb) \ + devcb = &pic8259_device::static_set_read_slave_ack_callback(*device, DEVCB_##_devcb); class pic8259_device : public device_t @@ -45,7 +51,7 @@ public: pic8259_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); template static devcb_base &static_set_out_int_callback(device_t &device, Object &&cb) { return downcast(device).m_out_int_func.set_callback(std::forward(cb)); } - template static devcb_base &static_set_sp_en_callback(device_t &device, Object &&cb) { return downcast(device).m_sp_en_func.set_callback(std::forward(cb)); } + template static devcb_base &static_set_in_sp_callback(device_t &device, Object &&cb) { return downcast(device).m_in_sp_func.set_callback(std::forward(cb)); } template static devcb_base &static_set_read_slave_ack_callback(device_t &device, Object &&cb) { return downcast(device).m_read_slave_ack_func.set_callback(std::forward(cb)); } DECLARE_READ8_MEMBER( read ); @@ -86,7 +92,7 @@ private: }; devcb_write_line m_out_int_func; - devcb_read_line m_sp_en_func; + devcb_read_line m_in_sp_func; devcb_read8 m_read_slave_ack_func; state_t m_state; diff --git a/src/devices/machine/sis85c496.cpp b/src/devices/machine/sis85c496.cpp index 56505d1a9b1..572bc5dd28b 100644 --- a/src/devices/machine/sis85c496.cpp +++ b/src/devices/machine/sis85c496.cpp @@ -87,8 +87,14 @@ MACHINE_CONFIG_MEMBER(sis85c496_host_device::device_add_mconfig) MCFG_I8237_OUT_DACK_2_CB(WRITELINE(sis85c496_host_device, pc_dack6_w)) MCFG_I8237_OUT_DACK_3_CB(WRITELINE(sis85c496_host_device, pc_dack7_w)) - MCFG_PIC8259_ADD( "pic8259_master", INPUTLINE(":maincpu", 0), VCC, READ8(sis85c496_host_device, get_slave_ack) ) - MCFG_PIC8259_ADD( "pic8259_slave", DEVWRITELINE("pic8259_master", pic8259_device, ir2_w), GND, NOOP) + MCFG_DEVICE_ADD("pic8259_master", PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(INPUTLINE(":maincpu", 0)) + MCFG_PIC8259_IN_SP_CB(VCC) + MCFG_PIC8259_CASCADE_ACK_CB(READ8(sis85c496_host_device, get_slave_ack)) + + MCFG_DEVICE_ADD("pic8259_slave", PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(DEVWRITELINE("pic8259_master", pic8259_device, ir2_w)) + MCFG_PIC8259_IN_SP_CB(GND) MCFG_DEVICE_ADD("keybc", AT_KEYBOARD_CONTROLLER, XTAL_12MHz) MCFG_AT_KEYBOARD_CONTROLLER_SYSTEM_RESET_CB(INPUTLINE(":maincpu", INPUT_LINE_RESET)) diff --git a/src/devices/machine/wd7600.cpp b/src/devices/machine/wd7600.cpp index fba48197a59..ee2ed5bb195 100644 --- a/src/devices/machine/wd7600.cpp +++ b/src/devices/machine/wd7600.cpp @@ -53,8 +53,15 @@ MACHINE_CONFIG_MEMBER( wd7600_device::device_add_mconfig ) MCFG_I8237_OUT_DACK_1_CB(WRITELINE(wd7600_device, dma2_dack1_w)) MCFG_I8237_OUT_DACK_2_CB(WRITELINE(wd7600_device, dma2_dack2_w)) MCFG_I8237_OUT_DACK_3_CB(WRITELINE(wd7600_device, dma2_dack3_w)) - MCFG_PIC8259_ADD("intc1", WRITELINE(wd7600_device, pic1_int_w), VCC, READ8(wd7600_device, pic1_slave_ack_r)) - MCFG_PIC8259_ADD("intc2", DEVWRITELINE("intc1", pic8259_device, ir2_w), GND, NOOP) + + MCFG_DEVICE_ADD("intc1", PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(WRITELINE(wd7600_device, pic1_int_w)) + MCFG_PIC8259_IN_SP_CB(VCC) + MCFG_PIC8259_CASCADE_ACK_CB(READ8(wd7600_device, pic1_slave_ack_r)) + + MCFG_DEVICE_ADD("intc2", PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(DEVWRITELINE("intc1", pic8259_device, ir2_w)) + MCFG_PIC8259_IN_SP_CB(GND) MCFG_DEVICE_ADD("ctc", PIT8254, 0) MCFG_PIT8253_CLK0(XTAL_14_31818MHz / 12.0) diff --git a/src/mame/drivers/a7150.cpp b/src/mame/drivers/a7150.cpp index cc6974e19c3..a8316c24cb5 100644 --- a/src/mame/drivers/a7150.cpp +++ b/src/mame/drivers/a7150.cpp @@ -418,7 +418,8 @@ static MACHINE_CONFIG_START( a7150 ) MCFG_CPU_IO_MAP(a7150_io) MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("pic8259", pic8259_device, inta_cb) - MCFG_PIC8259_ADD("pic8259", INPUTLINE("maincpu", 0), VCC, NOOP) + MCFG_DEVICE_ADD("pic8259", PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(INPUTLINE("maincpu", 0)) // IFSP port on processor card MCFG_DEVICE_ADD("ppi8255", I8255, 0) diff --git a/src/mame/drivers/altos486.cpp b/src/mame/drivers/altos486.cpp index 4698f0be9e8..ff0f4b9bb4c 100644 --- a/src/mame/drivers/altos486.cpp +++ b/src/mame/drivers/altos486.cpp @@ -129,7 +129,11 @@ static MACHINE_CONFIG_START( altos486 ) MCFG_CPU_PROGRAM_MAP(altos486_z80_mem) MCFG_CPU_IO_MAP(altos486_z80_io) - MCFG_PIC8259_ADD("pic8259", DEVWRITELINE("maincpu", i80186_cpu_device, int0_w), VCC, READ8(altos486_state, read_rmx_ack)) + MCFG_DEVICE_ADD("pic8259", PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(DEVWRITELINE("maincpu", i80186_cpu_device, int0_w)) + MCFG_PIC8259_IN_SP_CB(VCC) + MCFG_PIC8259_CASCADE_ACK_CB(READ8(altos486_state, read_rmx_ack)) + MCFG_DEVICE_ADD("ppi8255", I8255, 0) MCFG_UPD765A_ADD("fdc", false, false) diff --git a/src/mame/drivers/altos8600.cpp b/src/mame/drivers/altos8600.cpp index b1773ee6e6c..44a29eb5e4e 100644 --- a/src/mame/drivers/altos8600.cpp +++ b/src/mame/drivers/altos8600.cpp @@ -454,9 +454,18 @@ static MACHINE_CONFIG_START(altos8600) MCFG_I8089_SINTR1(DEVWRITELINE("pic8259_2", pic8259_device, ir3_w)) MCFG_I8089_SINTR2(DEVWRITELINE("pic8259_2", pic8259_device, ir4_w)) - MCFG_PIC8259_ADD("pic8259_1", INPUTLINE("maincpu", 0), VCC, READ8(altos8600_state, get_slave_ack)) - MCFG_PIC8259_ADD("pic8259_2", DEVWRITELINE("pic8259_1", pic8259_device, ir2_w), GND, NOOP) - MCFG_PIC8259_ADD("pic8259_3", DEVWRITELINE("pic8259_1", pic8259_device, ir3_w), GND, NOOP) + MCFG_DEVICE_ADD("pic8259_1", PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(INPUTLINE("maincpu", 0)) + MCFG_PIC8259_IN_SP_CB(VCC) + MCFG_PIC8259_CASCADE_ACK_CB(READ8(altos8600_state, get_slave_ack)) + + MCFG_DEVICE_ADD("pic8259_2", PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(DEVWRITELINE("pic8259_1", pic8259_device, ir2_w)) + MCFG_PIC8259_IN_SP_CB(GND) + + MCFG_DEVICE_ADD("pic8259_3", PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(DEVWRITELINE("pic8259_1", pic8259_device, ir3_w)) + MCFG_PIC8259_IN_SP_CB(GND) MCFG_RAM_ADD(RAM_TAG) MCFG_RAM_DEFAULT_SIZE("1M") diff --git a/src/mame/drivers/amusco.cpp b/src/mame/drivers/amusco.cpp index d3e9bb2ecdd..f55d49fda8d 100644 --- a/src/mame/drivers/amusco.cpp +++ b/src/mame/drivers/amusco.cpp @@ -477,7 +477,8 @@ static MACHINE_CONFIG_START( amusco ) MCFG_CPU_IO_MAP(amusco_io_map) MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("pic8259", pic8259_device, inta_cb) - MCFG_PIC8259_ADD("pic8259", INPUTLINE("maincpu", 0), VCC, NOOP) + MCFG_DEVICE_ADD("pic8259", PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(INPUTLINE("maincpu", 0)) MCFG_DEVICE_ADD("pit8253", PIT8253, 0) MCFG_PIT8253_CLK0(PIT_CLOCK0) diff --git a/src/mame/drivers/apc.cpp b/src/mame/drivers/apc.cpp index 9f49de1e0f0..98952ae0cdb 100644 --- a/src/mame/drivers/apc.cpp +++ b/src/mame/drivers/apc.cpp @@ -923,8 +923,15 @@ static MACHINE_CONFIG_START( apc ) MCFG_PIT8253_CLK1(MAIN_CLOCK) /* Memory Refresh */ MCFG_PIT8253_CLK2(MAIN_CLOCK) /* RS-232c */ - MCFG_PIC8259_ADD( "pic8259_master", INPUTLINE("maincpu", 0), VCC, READ8(apc_state,get_slave_ack) ) - MCFG_PIC8259_ADD( "pic8259_slave", DEVWRITELINE("pic8259_master", pic8259_device, ir7_w), GND, NOOP) // TODO: check ir7_w + MCFG_DEVICE_ADD("pic8259_master", PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(INPUTLINE("maincpu", 0)) + MCFG_PIC8259_IN_SP_CB(VCC) + MCFG_PIC8259_CASCADE_ACK_CB(READ8(apc_state, get_slave_ack)) + + MCFG_DEVICE_ADD("pic8259_slave", PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(DEVWRITELINE("pic8259_master", pic8259_device, ir7_w)) // TODO: check ir7_w + MCFG_PIC8259_IN_SP_CB(GND) + MCFG_DEVICE_ADD("i8237", AM9517A, MAIN_CLOCK) MCFG_I8237_OUT_HREQ_CB(WRITELINE(apc_state, apc_dma_hrq_changed)) MCFG_I8237_OUT_EOP_CB(WRITELINE(apc_state, apc_tc_w)) diff --git a/src/mame/drivers/apricot.cpp b/src/mame/drivers/apricot.cpp index c317ae92fc3..f3460ddda8d 100644 --- a/src/mame/drivers/apricot.cpp +++ b/src/mame/drivers/apricot.cpp @@ -395,7 +395,8 @@ static MACHINE_CONFIG_START( apricot ) MCFG_I8255_IN_PORTC_CB(READ8(apricot_state, i8255_portc_r)) MCFG_I8255_OUT_PORTC_CB(WRITE8(apricot_state, i8255_portc_w)) - MCFG_PIC8259_ADD("ic31", INPUTLINE("ic91", 0), VCC, NOOP) + MCFG_DEVICE_ADD("ic31", PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(INPUTLINE("ic91", 0)) MCFG_DEVICE_ADD("ic16", PIT8253, 0) MCFG_PIT8253_CLK0(XTAL_4MHz / 16) diff --git a/src/mame/drivers/apricotp.cpp b/src/mame/drivers/apricotp.cpp index ee378250daf..3e8d5e862e1 100644 --- a/src/mame/drivers/apricotp.cpp +++ b/src/mame/drivers/apricotp.cpp @@ -619,11 +619,14 @@ static MACHINE_CONFIG_START( fp ) /* Devices */ MCFG_DEVICE_ADD(APRICOT_KEYBOARD_TAG, APRICOT_KEYBOARD, 0) + MCFG_DEVICE_ADD(I8237_TAG, AM9517A, 250000) MCFG_I8237_OUT_EOP_CB(DEVWRITELINE(I8259A_TAG, pic8259_device, ir7_w)) MCFG_I8237_IN_IOR_1_CB(DEVREAD8(WD2797_TAG, wd_fdc_device_base, data_r)) MCFG_I8237_OUT_IOW_1_CB(DEVWRITE8(WD2797_TAG, wd_fdc_device_base, data_w)) - MCFG_PIC8259_ADD(I8259A_TAG, INPUTLINE(I8086_TAG, INPUT_LINE_IRQ0), VCC, NOOP) + + MCFG_DEVICE_ADD(I8259A_TAG, PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(INPUTLINE(I8086_TAG, INPUT_LINE_IRQ0)) MCFG_DEVICE_ADD(I8253A5_TAG, PIT8253, 0) MCFG_PIT8253_CLK0(2000000) diff --git a/src/mame/drivers/b2m.cpp b/src/mame/drivers/b2m.cpp index d9c02c4d791..0d383ac4e06 100644 --- a/src/mame/drivers/b2m.cpp +++ b/src/mame/drivers/b2m.cpp @@ -227,7 +227,8 @@ static MACHINE_CONFIG_START( b2m ) MCFG_I8255_OUT_PORTB_CB(WRITE8(b2m_state, b2m_romdisk_portb_w)) MCFG_I8255_OUT_PORTC_CB(WRITE8(b2m_state, b2m_romdisk_portc_w)) - MCFG_PIC8259_ADD( "pic8259", INPUTLINE("maincpu", 0), VCC, NOOP) + MCFG_DEVICE_ADD("pic8259", PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(INPUTLINE("maincpu", 0)) /* sound */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/bebox.cpp b/src/mame/drivers/bebox.cpp index 63dc8be2c42..2743c90f9ef 100644 --- a/src/mame/drivers/bebox.cpp +++ b/src/mame/drivers/bebox.cpp @@ -172,9 +172,14 @@ static MACHINE_CONFIG_START( bebox ) MCFG_DEVICE_ADD( "dma8237_2", AM9517A, XTAL_14_31818MHz/3 ) - MCFG_PIC8259_ADD( "pic8259_1", WRITELINE(bebox_state,bebox_pic8259_master_set_int_line), VCC, READ8(bebox_state,get_slave_ack) ) - - MCFG_PIC8259_ADD( "pic8259_2", WRITELINE(bebox_state,bebox_pic8259_slave_set_int_line), GND, NOOP) + MCFG_DEVICE_ADD("pic8259_1", PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(WRITELINE(bebox_state, bebox_pic8259_master_set_int_line)) + MCFG_PIC8259_IN_SP_CB(VCC) + MCFG_PIC8259_CASCADE_ACK_CB(READ8(bebox_state, get_slave_ack)) + + MCFG_DEVICE_ADD("pic8259_2", PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(WRITELINE(bebox_state, bebox_pic8259_slave_set_int_line)) + MCFG_PIC8259_IN_SP_CB(GND) MCFG_DEVICE_ADD( "ns16550_0", NS16550, 0 ) /* TODO: Verify model */ MCFG_DEVICE_ADD( "ns16550_1", NS16550, 0 ) /* TODO: Verify model */ diff --git a/src/mame/drivers/cbm2.cpp b/src/mame/drivers/cbm2.cpp index 14dd1adcd86..6a36af382a8 100644 --- a/src/mame/drivers/cbm2.cpp +++ b/src/mame/drivers/cbm2.cpp @@ -2701,12 +2701,15 @@ static MACHINE_CONFIG_DERIVED( bx256hp, b256hp ) MCFG_CPU_IO_MAP(ext_io) MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE(EXT_I8259A_TAG, pic8259_device, inta_cb) - MCFG_PIC8259_ADD(EXT_I8259A_TAG, INPUTLINE(EXT_I8088_TAG, INPUT_LINE_IRQ0), VCC, NOOP) + MCFG_DEVICE_ADD(EXT_I8259A_TAG, PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(INPUTLINE(EXT_I8088_TAG, INPUT_LINE_IRQ0)) + MCFG_DEVICE_ADD(EXT_MOS6525_TAG, TPI6525, 0) MCFG_TPI6525_IN_PA_CB(DEVREAD8(EXT_MOS6526_TAG, mos6526_device, pa_r)) MCFG_TPI6525_IN_PB_CB(READ8(cbm2_state, ext_tpi_pb_r)) MCFG_TPI6525_OUT_PB_CB(WRITE8(cbm2_state, ext_tpi_pb_w)) MCFG_TPI6525_OUT_PC_CB(WRITE8(cbm2_state, ext_tpi_pc_w)) + MCFG_DEVICE_ADD(EXT_MOS6526_TAG, MOS6526, XTAL_18MHz/9) MCFG_MOS6526_TOD(60) MCFG_MOS6526_IRQ_CALLBACK(WRITELINE(cbm2_state, ext_cia_irq_w)) @@ -2764,12 +2767,15 @@ static MACHINE_CONFIG_DERIVED( cbm730, cbm720 ) MCFG_CPU_IO_MAP(ext_io) MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE(EXT_I8259A_TAG, pic8259_device, inta_cb) - MCFG_PIC8259_ADD(EXT_I8259A_TAG, INPUTLINE(EXT_I8088_TAG, INPUT_LINE_IRQ0), VCC, NOOP) + MCFG_DEVICE_ADD(EXT_I8259A_TAG, PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(INPUTLINE(EXT_I8088_TAG, INPUT_LINE_IRQ0)) + MCFG_DEVICE_ADD(EXT_MOS6525_TAG, TPI6525, 0) MCFG_TPI6525_IN_PA_CB(DEVREAD8(EXT_MOS6526_TAG, mos6526_device, pa_r)) MCFG_TPI6525_IN_PB_CB(READ8(cbm2_state, ext_tpi_pb_r)) MCFG_TPI6525_OUT_PB_CB(WRITE8(cbm2_state, ext_tpi_pb_w)) MCFG_TPI6525_OUT_PC_CB(WRITE8(cbm2_state, ext_tpi_pc_w)) + MCFG_DEVICE_ADD(EXT_MOS6526_TAG, MOS6526, XTAL_18MHz/9) MCFG_MOS6526_TOD(50) MCFG_MOS6526_IRQ_CALLBACK(WRITELINE(cbm2_state, ext_cia_irq_w)) diff --git a/src/mame/drivers/dvk_ksm.cpp b/src/mame/drivers/dvk_ksm.cpp index 0ca74a201a0..59c7a08dcea 100644 --- a/src/mame/drivers/dvk_ksm.cpp +++ b/src/mame/drivers/dvk_ksm.cpp @@ -428,7 +428,8 @@ static MACHINE_CONFIG_START( ksm ) MCFG_GFXDECODE_ADD("gfxdecode", "palette", ksm) MCFG_PALETTE_ADD_MONOCHROME("palette") - MCFG_PIC8259_ADD( "pic8259", INPUTLINE("maincpu", 0), VCC, NOOP) + MCFG_DEVICE_ADD("pic8259", PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(INPUTLINE("maincpu", 0)) // D30 MCFG_DEVICE_ADD("ppi8255", I8255, 0) diff --git a/src/mame/drivers/fanucspmg.cpp b/src/mame/drivers/fanucspmg.cpp index 7e2366bb5d6..459af673aea 100644 --- a/src/mame/drivers/fanucspmg.cpp +++ b/src/mame/drivers/fanucspmg.cpp @@ -986,8 +986,14 @@ static MACHINE_CONFIG_START( fanucspmg ) MCFG_I8257_IN_IOR_0_CB(READ8(fanucspmg_state, fdcdma_r)) MCFG_I8257_OUT_IOW_0_CB(WRITE8(fanucspmg_state, fdcdma_w)) - MCFG_PIC8259_ADD(PIC0_TAG, INPUTLINE("maincpu", 0), VCC, READ8(fanucspmg_state, get_slave_ack)) - MCFG_PIC8259_ADD(PIC1_TAG, DEVWRITELINE(PIC0_TAG, pic8259_device, ir7_w), GND, NOOP) + MCFG_DEVICE_ADD(PIC0_TAG, PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(INPUTLINE("maincpu", 0)) + MCFG_PIC8259_IN_SP_CB(VCC) + MCFG_PIC8259_CASCADE_ACK_CB(READ8(fanucspmg_state, get_slave_ack)) + + MCFG_DEVICE_ADD(PIC1_TAG, PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(DEVWRITELINE(PIC0_TAG, pic8259_device, ir7_w)) + MCFG_PIC8259_IN_SP_CB(GND) MCFG_UPD765A_ADD(FDC_TAG, true, true) MCFG_UPD765_INTRQ_CALLBACK(DEVWRITELINE(PIC0_TAG, pic8259_device, ir3_w)) diff --git a/src/mame/drivers/fastinvaders.cpp b/src/mame/drivers/fastinvaders.cpp index 76c9fc8770b..9b747d743b9 100644 --- a/src/mame/drivers/fastinvaders.cpp +++ b/src/mame/drivers/fastinvaders.cpp @@ -641,7 +641,8 @@ static MACHINE_CONFIG_START( fastinvaders ) MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("pic8259", pic8259_device, inta_cb) MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", fastinvaders_state, scanline_timer, "screen", 0, 1) - MCFG_PIC8259_ADD( "pic8259", INPUTLINE("maincpu", 0), VCC, NOOP) + MCFG_DEVICE_ADD("pic8259", PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(INPUTLINE("maincpu", 0)) MCFG_DEVICE_ADD("dma8257", I8257, 6144100) MCFG_I8257_IN_MEMR_CB(READ8(fastinvaders_state, memory_read_byte)) diff --git a/src/mame/drivers/fmtowns.cpp b/src/mame/drivers/fmtowns.cpp index 89d2af1efd7..83cd95e392e 100644 --- a/src/mame/drivers/fmtowns.cpp +++ b/src/mame/drivers/fmtowns.cpp @@ -2808,9 +2808,14 @@ static MACHINE_CONFIG_START( towns_base ) MCFG_PIT8253_OUT1_HANDLER(WRITELINE(towns_state, pit2_out1_changed)) MCFG_PIT8253_CLK2(307200) // reserved - MCFG_PIC8259_ADD( "pic8259_master", INPUTLINE("maincpu", 0), VCC, READ8(towns_state,get_slave_ack)) - - MCFG_PIC8259_ADD( "pic8259_slave", DEVWRITELINE("pic8259_master", pic8259_device, ir7_w), GND, NOOP) + MCFG_DEVICE_ADD("pic8259_master", PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(INPUTLINE("maincpu", 0)) + MCFG_PIC8259_IN_SP_CB(VCC) + MCFG_PIC8259_CASCADE_ACK_CB(READ8(towns_state, get_slave_ack)) + + MCFG_DEVICE_ADD("pic8259_slave", PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(DEVWRITELINE("pic8259_master", pic8259_device, ir7_w)) + MCFG_PIC8259_IN_SP_CB(GND) MCFG_MB8877_ADD("fdc",XTAL_8MHz/4) // clock unknown MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(towns_state,mb8877a_irq_w)) diff --git a/src/mame/drivers/ibm6580.cpp b/src/mame/drivers/ibm6580.cpp index b88d7feb381..ad5785c4e95 100644 --- a/src/mame/drivers/ibm6580.cpp +++ b/src/mame/drivers/ibm6580.cpp @@ -894,7 +894,8 @@ static MACHINE_CONFIG_START( ibm6580 ) MCFG_PALETTE_ADD("palette", 3) MCFG_PALETTE_INIT_OWNER(ibm6580_state, ibm6580) - MCFG_PIC8259_ADD("pic8259", INPUTLINE("maincpu", 0), VCC, NOOP) + 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(ibm6580_state, ppi_a_r)) diff --git a/src/mame/drivers/ibmpcjr.cpp b/src/mame/drivers/ibmpcjr.cpp index 5e211507869..ac5a3b14803 100644 --- a/src/mame/drivers/ibmpcjr.cpp +++ b/src/mame/drivers/ibmpcjr.cpp @@ -594,7 +594,8 @@ static MACHINE_CONFIG_START( ibmpcjr ) MCFG_PIT8253_CLK2(XTAL_14_31818MHz/12) MCFG_PIT8253_OUT2_HANDLER(WRITELINE(pcjr_state, out2_changed)) - MCFG_PIC8259_ADD( "pic8259", WRITELINE(pcjr_state, pic8259_set_int_line), VCC, NOOP) + MCFG_DEVICE_ADD("pic8259", PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(WRITELINE(pcjr_state, pic8259_set_int_line)) MCFG_DEVICE_ADD("ppi8255", I8255, 0) MCFG_I8255_IN_PORTA_CB(CONSTANT(0xff)) diff --git a/src/mame/drivers/imds2.cpp b/src/mame/drivers/imds2.cpp index 89d8e87dada..10ee69e7d4e 100644 --- a/src/mame/drivers/imds2.cpp +++ b/src/mame/drivers/imds2.cpp @@ -760,8 +760,13 @@ static MACHINE_CONFIG_START(imds2) MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("ipcsyspic" , pic8259_device , inta_cb) MCFG_QUANTUM_TIME(attotime::from_hz(100)) - MCFG_PIC8259_ADD("ipcsyspic" , WRITELINE(imds2_state , imds2_ipc_intr) , VCC, NOOP) - MCFG_PIC8259_ADD("ipclocpic" , DEVWRITELINE("ipcsyspic" , pic8259_device , ir7_w) , VCC, NOOP) + MCFG_DEVICE_ADD("ipcsyspic", PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(WRITELINE(imds2_state, imds2_ipc_intr)) + MCFG_PIC8259_IN_SP_CB(VCC) + + MCFG_DEVICE_ADD("ipclocpic", PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(DEVWRITELINE("ipcsyspic", pic8259_device, ir7_w)) + MCFG_PIC8259_IN_SP_CB(VCC) // ??? MCFG_DEVICE_ADD("ipctimer" , PIT8253 , 0) MCFG_PIT8253_CLK0(IPC_XTAL_Y1 / 16) diff --git a/src/mame/drivers/iq151.cpp b/src/mame/drivers/iq151.cpp index e1f76ff7d83..fdb244bb66a 100644 --- a/src/mame/drivers/iq151.cpp +++ b/src/mame/drivers/iq151.cpp @@ -404,7 +404,8 @@ static MACHINE_CONFIG_START( iq151 ) MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) - MCFG_PIC8259_ADD("pic8259", INPUTLINE("maincpu", 0), VCC, NOOP) + 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(iq151_state, keyboard_row_r)) diff --git a/src/mame/drivers/irisha.cpp b/src/mame/drivers/irisha.cpp index d39c175397d..2b6a456a4ab 100644 --- a/src/mame/drivers/irisha.cpp +++ b/src/mame/drivers/irisha.cpp @@ -417,7 +417,8 @@ static MACHINE_CONFIG_START( irisha ) MCFG_I8255_IN_PORTC_CB(READ8(irisha_state, irisha_8255_portc_r)) MCFG_I8255_OUT_PORTC_CB(WRITE8(irisha_state, irisha_8255_portc_w)) - MCFG_PIC8259_ADD( "pic8259", INPUTLINE("maincpu", 0), VCC, NOOP) + MCFG_DEVICE_ADD("pic8259", PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(INPUTLINE("maincpu", 0)) MACHINE_CONFIG_END /* ROM definition */ diff --git a/src/mame/drivers/isbc.cpp b/src/mame/drivers/isbc.cpp index 5d16479b5ff..e994047fe66 100644 --- a/src/mame/drivers/isbc.cpp +++ b/src/mame/drivers/isbc.cpp @@ -333,7 +333,8 @@ static MACHINE_CONFIG_START( isbc86 ) MCFG_CPU_IO_MAP(isbc_io) MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("pic_0", pic8259_device, inta_cb) - MCFG_PIC8259_ADD("pic_0", INPUTLINE(":maincpu", 0), VCC, NOOP) + MCFG_DEVICE_ADD("pic_0", PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(INPUTLINE("maincpu", 0)) MCFG_DEVICE_ADD("pit", PIT8253, 0) MCFG_PIT8253_CLK0(XTAL_22_1184MHz/18) @@ -365,7 +366,8 @@ static MACHINE_CONFIG_START( rpc86 ) MCFG_CPU_IO_MAP(rpc86_io) MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("pic_0", pic8259_device, inta_cb) - MCFG_PIC8259_ADD("pic_0", INPUTLINE(":maincpu", 0), VCC, NOOP) + MCFG_DEVICE_ADD("pic_0", PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(INPUTLINE("maincpu", 0)) MCFG_DEVICE_ADD("pit", PIT8253, 0) MCFG_PIT8253_CLK0(XTAL_22_1184MHz/18) @@ -433,8 +435,14 @@ static MACHINE_CONFIG_START( isbc286 ) MCFG_CPU_IO_MAP(isbc286_io) MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("pic_0", pic8259_device, inta_cb) - MCFG_PIC8259_ADD("pic_0", INPUTLINE(":maincpu", 0), VCC, READ8(isbc_state, get_slave_ack)) - MCFG_PIC8259_ADD("pic_1", DEVWRITELINE("pic_0", pic8259_device, ir7_w), GND, NOOP) + MCFG_DEVICE_ADD("pic_0", PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(INPUTLINE("maincpu", 0)) + MCFG_PIC8259_IN_SP_CB(VCC) + MCFG_PIC8259_CASCADE_ACK_CB(READ8(isbc_state, get_slave_ack)) + + MCFG_DEVICE_ADD("pic_1", PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(DEVWRITELINE("pic_0", pic8259_device, ir7_w)) + MCFG_PIC8259_IN_SP_CB(GND) MCFG_DEVICE_ADD("pit", PIT8254, 0) MCFG_PIT8253_CLK0(XTAL_22_1184MHz/18) diff --git a/src/mame/drivers/isbc8030.cpp b/src/mame/drivers/isbc8030.cpp index 0c4437fc8e5..82a817acef7 100644 --- a/src/mame/drivers/isbc8030.cpp +++ b/src/mame/drivers/isbc8030.cpp @@ -141,7 +141,8 @@ static MACHINE_CONFIG_START( isbc8030 ) MCFG_CPU_PROGRAM_MAP(isbc8030_mem) MCFG_CPU_IO_MAP(isbc8030_io) - MCFG_PIC8259_ADD(I8259A_TAG, INPUTLINE(":maincpu", 0), VCC, NOOP) + MCFG_DEVICE_ADD(I8259A_TAG, PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(INPUTLINE("maincpu", 0)) MCFG_DEVICE_ADD(I8253_TAG, PIT8253, 0) MCFG_PIT8253_CLK0(XTAL_22_1184MHz / 18) diff --git a/src/mame/drivers/m107.cpp b/src/mame/drivers/m107.cpp index 7f0e6106e7d..32ba33967da 100644 --- a/src/mame/drivers/m107.cpp +++ b/src/mame/drivers/m107.cpp @@ -723,7 +723,8 @@ static MACHINE_CONFIG_START( firebarr ) MCFG_CPU_PROGRAM_MAP(sound_map) MCFG_V25_CONFIG(rtypeleo_decryption_table) - MCFG_PIC8259_ADD( "upd71059c", INPUTLINE("maincpu", 0), VCC, NOOP) + MCFG_DEVICE_ADD("upd71059c", PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(INPUTLINE("maincpu", 0)) MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", m107_state, scanline_interrupt, "screen", 0, 1) diff --git a/src/mame/drivers/m20.cpp b/src/mame/drivers/m20.cpp index 5c39ecb5ade..d65ab8cb912 100644 --- a/src/mame/drivers/m20.cpp +++ b/src/mame/drivers/m20.cpp @@ -830,7 +830,8 @@ static MACHINE_CONFIG_START( m20 ) MCFG_PIT8253_CLK2(1230782) MCFG_PIT8253_OUT2_HANDLER(WRITELINE(m20_state, timer_tick_w)) - MCFG_PIC8259_ADD("i8259", WRITELINE(m20_state, int_w), VCC, NOOP) + MCFG_DEVICE_ADD("i8259", PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(WRITELINE(m20_state, int_w)) MCFG_RS232_PORT_ADD("kbd", keyboard, "m20") MCFG_RS232_RXD_HANDLER(DEVWRITELINE("i8251_1", i8251_device, write_rxd)) diff --git a/src/mame/drivers/m72.cpp b/src/mame/drivers/m72.cpp index 1cd77ee8f69..b79e7a58d90 100644 --- a/src/mame/drivers/m72.cpp +++ b/src/mame/drivers/m72.cpp @@ -1832,7 +1832,8 @@ static MACHINE_CONFIG_START( m72_base ) MCFG_CPU_PROGRAM_MAP(sound_ram_map) MCFG_CPU_IO_MAP(sound_portmap) - MCFG_PIC8259_ADD( "upd71059c", INPUTLINE("maincpu", 0), VCC, NOOP) + MCFG_DEVICE_ADD("upd71059c", PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(INPUTLINE("maincpu", 0)) /* video hardware */ MCFG_GFXDECODE_ADD("gfxdecode", "palette", m72) @@ -1945,7 +1946,8 @@ static MACHINE_CONFIG_START( rtype2 ) MCFG_CPU_PERIODIC_INT_DRIVER(m72_state, nmi_line_pulse, 128*55) /* clocked by V1? (Vigilante) */ /* IRQs are generated by main Z80 and YM2151 */ - MCFG_PIC8259_ADD( "upd71059c", INPUTLINE("maincpu", 0), VCC, NOOP) + MCFG_DEVICE_ADD("upd71059c", PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(INPUTLINE("maincpu", 0)) /* video hardware */ MCFG_GFXDECODE_ADD("gfxdecode", "palette", rtype2) @@ -1973,14 +1975,12 @@ MACHINE_CONFIG_END // M84 -// is the upd71059c present and unused, or has it been removed from the PCB? it isn't needed beacuse the V35 has it's own IRQ controller. static MACHINE_CONFIG_START( cosmccop ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", V35,MASTER_CLOCK/2) MCFG_CPU_PROGRAM_MAP(kengo_map) MCFG_CPU_IO_MAP(m84_v33_portmap) -// MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("upd71059c", pic8259_device, inta_cb) MCFG_CPU_ADD("soundcpu", Z80, SOUND_CLOCK) MCFG_CPU_PROGRAM_MAP(sound_rom_map) @@ -1988,11 +1988,11 @@ static MACHINE_CONFIG_START( cosmccop ) MCFG_CPU_PERIODIC_INT_DRIVER(m72_state, nmi_line_pulse, 128*55) /* clocked by V1? (Vigilante) */ /* IRQs are generated by main Z80 and YM2151 */ -// MCFG_PIC8259_ADD( "upd71059c", INPUTLINE("maincpu", 0), VCC, NOOP) - MCFG_MACHINE_START_OVERRIDE(m72_state,kengo) MCFG_MACHINE_RESET_OVERRIDE(m72_state,kengo) + // upd71059c isn't needed beacuse the V35 has its own IRQ controller + /* video hardware */ MCFG_GFXDECODE_ADD("gfxdecode", "palette", rtype2) MCFG_PALETTE_ADD("palette", 512) @@ -2034,7 +2034,8 @@ static MACHINE_CONFIG_START( m82 ) MCFG_CPU_PERIODIC_INT_DRIVER(m72_state, nmi_line_pulse, 128*55) /* clocked by V1? (Vigilante) */ /* IRQs are generated by main Z80 and YM2151 */ - MCFG_PIC8259_ADD( "upd71059c", INPUTLINE("maincpu", 0), VCC, NOOP) + MCFG_DEVICE_ADD("upd71059c", PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(INPUTLINE("maincpu", 0)) /* video hardware */ MCFG_GFXDECODE_ADD("gfxdecode", "palette", majtitle) @@ -2068,7 +2069,8 @@ static MACHINE_CONFIG_START( poundfor ) MCFG_CPU_PERIODIC_INT_DRIVER(m72_state, fake_nmi, 128*55) /* clocked by V1? (Vigilante) */ /* IRQs are generated by main Z80 and YM2151 */ - MCFG_PIC8259_ADD( "upd71059c", INPUTLINE("maincpu", 0), VCC, NOOP) + MCFG_DEVICE_ADD("upd71059c", PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(INPUTLINE("maincpu", 0)) MCFG_DEVICE_ADD("upd4701l", UPD4701A, 0) MCFG_UPD4701_PORTX("TRACK0_X") diff --git a/src/mame/drivers/m92.cpp b/src/mame/drivers/m92.cpp index f0f217d9cfb..efef6ad81e6 100644 --- a/src/mame/drivers/m92.cpp +++ b/src/mame/drivers/m92.cpp @@ -933,14 +933,13 @@ static MACHINE_CONFIG_START( m92 ) MCFG_CPU_ADD("maincpu",V33,XTAL_18MHz/2) MCFG_CPU_PROGRAM_MAP(m92_map) MCFG_CPU_IO_MAP(m92_portmap) -#ifndef USE_HACKED_IRQS MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("upd71059c", pic8259_device, inta_cb) -#endif MCFG_CPU_ADD("soundcpu" ,V35, XTAL_14_31818MHz) MCFG_CPU_PROGRAM_MAP(sound_map) - MCFG_PIC8259_ADD( "upd71059c", INPUTLINE("maincpu", 0), VCC, NOOP) + MCFG_DEVICE_ADD("upd71059c", PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(INPUTLINE("maincpu", 0)) MCFG_MACHINE_START_OVERRIDE(m92_state,m92) MCFG_MACHINE_RESET_OVERRIDE(m92_state,m92) diff --git a/src/mame/drivers/mbc55x.cpp b/src/mame/drivers/mbc55x.cpp index 7857eb5b514..38dd2683577 100644 --- a/src/mame/drivers/mbc55x.cpp +++ b/src/mame/drivers/mbc55x.cpp @@ -277,7 +277,8 @@ static MACHINE_CONFIG_START( mbc55x ) MCFG_PIT8253_CLK2(PIT_C2_CLOCK) MCFG_PIT8253_OUT2_HANDLER(WRITELINE(mbc55x_state, pit8253_t2)) - MCFG_PIC8259_ADD( PIC8259_TAG, INPUTLINE(MAINCPU_TAG, INPUT_LINE_IRQ0), VCC, NOOP) + 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(mbc55x_state, mbc55x_ppi_porta_r)) diff --git a/src/mame/drivers/mc1502.cpp b/src/mame/drivers/mc1502.cpp index 354fd549fb2..dcb17a6c0cc 100644 --- a/src/mame/drivers/mc1502.cpp +++ b/src/mame/drivers/mc1502.cpp @@ -258,7 +258,8 @@ static MACHINE_CONFIG_START( mc1502 ) MCFG_PIT8253_CLK2(XTAL_16MHz/12) /* pio port c pin 4, and speaker polling enough */ MCFG_PIT8253_OUT2_HANDLER(WRITELINE(mc1502_state, mc1502_pit8253_out2_changed)) - MCFG_PIC8259_ADD("pic8259", INPUTLINE("maincpu", 0), VCC, NOOP) + 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(DEVWRITE8("cent_data_out", output_latch_device, write)) diff --git a/src/mame/drivers/mrflea.cpp b/src/mame/drivers/mrflea.cpp index c6ffb6fe8e9..a9acc38e4a3 100644 --- a/src/mame/drivers/mrflea.cpp +++ b/src/mame/drivers/mrflea.cpp @@ -277,7 +277,8 @@ static MACHINE_CONFIG_START( mrflea ) MCFG_DEVCB_CHAIN_OUTPUT(DEVWRITELINE("pic", pic8259_device, ir0_w)) MCFG_DEVCB_BIT(3) // INTRA MCFG_DEVCB_CHAIN_OUTPUT(DEVWRITELINE("mainppi", i8255_device, pc2_w)) MCFG_DEVCB_BIT(1) // OBFB -> STBB - MCFG_PIC8259_ADD("pic", INPUTLINE("subcpu", 0), VCC, NOOP) + MCFG_DEVICE_ADD("pic", PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(INPUTLINE("subcpu", 0)) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/multi16.cpp b/src/mame/drivers/multi16.cpp index 9bbce125c59..0e90f79d5da 100644 --- a/src/mame/drivers/multi16.cpp +++ b/src/mame/drivers/multi16.cpp @@ -153,7 +153,8 @@ static MACHINE_CONFIG_START( multi16 ) MCFG_MC6845_SHOW_BORDER_AREA(false) MCFG_MC6845_CHAR_WIDTH(8) - MCFG_PIC8259_ADD( "pic8259", INPUTLINE("maincpu", 0), GND, NOOP) + MCFG_DEVICE_ADD("pic8259", PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(INPUTLINE("maincpu", 0)) MACHINE_CONFIG_END /* ROM definition */ diff --git a/src/mame/drivers/ngen.cpp b/src/mame/drivers/ngen.cpp index 974f1ccf8ad..0d76ea5176f 100644 --- a/src/mame/drivers/ngen.cpp +++ b/src/mame/drivers/ngen.cpp @@ -920,7 +920,8 @@ static MACHINE_CONFIG_START( ngen ) MCFG_80186_TMROUT0_HANDLER(WRITELINE(ngen_state, cpu_timer_w)) MCFG_80186_IRQ_SLAVE_ACK(READ8(ngen_state, irq_cb)) - MCFG_PIC8259_ADD( "pic", DEVWRITELINE("maincpu",i80186_cpu_device,int0_w), VCC, NOOP) + MCFG_DEVICE_ADD("pic", PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(DEVWRITELINE("maincpu", i80186_cpu_device, int0_w)) MCFG_DEVICE_ADD("pit", PIT8254, 0) MCFG_PIT8253_CLK0(78120/4) // 19.53kHz, /4 of the CPU timer output? @@ -1030,7 +1031,8 @@ static MACHINE_CONFIG_START( ngen386 ) MCFG_CPU_IO_MAP(ngen386_io) MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("pic", pic8259_device, inta_cb) - MCFG_PIC8259_ADD( "pic", INPUTLINE("i386cpu",0), VCC, NOOP) + MCFG_DEVICE_ADD("pic", PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(INPUTLINE("i386cpu", 0)) MCFG_DEVICE_ADD("pit", PIT8254, 0) MCFG_PIT8253_CLK0(78120/4) // 19.53kHz, /4 of the CPU timer output? diff --git a/src/mame/drivers/notetaker.cpp b/src/mame/drivers/notetaker.cpp index 4d25e7411a1..526b420cf8e 100644 --- a/src/mame/drivers/notetaker.cpp +++ b/src/mame/drivers/notetaker.cpp @@ -800,14 +800,18 @@ static MACHINE_CONFIG_START( notetakr ) MCFG_CPU_PROGRAM_MAP(notetaker_iocpu_mem) MCFG_CPU_IO_MAP(notetaker_iocpu_io) MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("iopic8259", pic8259_device, inta_cb) - MCFG_PIC8259_ADD("iopic8259", INPUTLINE("iocpu", 0), VCC, NOOP) // iP8259A-2 @ E6 + + MCFG_DEVICE_ADD("iopic8259", PIC8259, 0) // iP8259A-2 @ E6 + MCFG_PIC8259_OUT_INT_CB(INPUTLINE("iocpu", 0)) /* Emulator CPU: 8086@5MHz */ /*MCFG_CPU_ADD("emulatorcpu", I8086, XTAL_15MHz/3) MCFG_CPU_PROGRAM_MAP(notetaker_emulatorcpu_mem) MCFG_CPU_IO_MAP(notetaker_emulatorcpu_io) MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("emulatorpic8259", pic8259_device, inta_cb) - MCFG_PIC8259_ADD("emulatorpic8259", INPUTLINE("emulatorcpu", 0), VCC, NOOP) // iP8259A-2 @ E6 + + MCFG_DEVICE_ADD("emulatorpic8259", PIC8259, 0) // iP8259A-2 @ E6 + MCFG_PIC8259_OUT_INT_CB(INPUTLINE("emulatorcpu", 0)) */ /* video hardware */ diff --git a/src/mame/drivers/octopus.cpp b/src/mame/drivers/octopus.cpp index 44560cbbea2..c4074d67f5c 100644 --- a/src/mame/drivers/octopus.cpp +++ b/src/mame/drivers/octopus.cpp @@ -909,8 +909,14 @@ static MACHINE_CONFIG_START( octopus ) MCFG_I8237_OUT_DACK_2_CB(WRITELINE(octopus_state, dack6_w)) MCFG_I8237_OUT_DACK_3_CB(WRITELINE(octopus_state, dack7_w)) - MCFG_PIC8259_ADD("pic_master", INPUTLINE("maincpu",0), VCC, READ8(octopus_state,get_slave_ack)) - MCFG_PIC8259_ADD("pic_slave", DEVWRITELINE("pic_master",pic8259_device, ir7_w), GND, NOOP) + MCFG_DEVICE_ADD("pic_master", PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(INPUTLINE("maincpu", 0)) + MCFG_PIC8259_IN_SP_CB(VCC) + MCFG_PIC8259_CASCADE_ACK_CB(READ8(octopus_state, get_slave_ack)) + + MCFG_DEVICE_ADD("pic_slave", PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(DEVWRITELINE("pic_master", pic8259_device, ir7_w)) + MCFG_PIC8259_IN_SP_CB(GND) // RTC (MC146818 via i8255 PPI) MCFG_DEVICE_ADD("ppi", I8255, 0) diff --git a/src/mame/drivers/paso1600.cpp b/src/mame/drivers/paso1600.cpp index 91a196ab99c..1ffd41e6725 100644 --- a/src/mame/drivers/paso1600.cpp +++ b/src/mame/drivers/paso1600.cpp @@ -321,7 +321,8 @@ static MACHINE_CONFIG_START( paso1600 ) MCFG_MC6845_SHOW_BORDER_AREA(false) MCFG_MC6845_CHAR_WIDTH(8) - MCFG_PIC8259_ADD( "pic8259", INPUTLINE("maincpu", 0), GND, NOOP) + MCFG_DEVICE_ADD("pic8259", PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(INPUTLINE("maincpu", 0)) MCFG_DEVICE_ADD("8237dma", AM9517A, 16000000/4) MCFG_I8237_IN_MEMR_CB(READ8(paso1600_state, pc_dma_read_byte)) diff --git a/src/mame/drivers/pc100.cpp b/src/mame/drivers/pc100.cpp index a60f9ead634..fd25bfc9499 100644 --- a/src/mame/drivers/pc100.cpp +++ b/src/mame/drivers/pc100.cpp @@ -513,7 +513,9 @@ static MACHINE_CONFIG_START( pc100 ) MCFG_I8255_OUT_PORTB_CB(WRITE8(pc100_state, upper_mask_w)) MCFG_I8255_OUT_PORTC_CB(WRITE8(pc100_state, crtc_bank_w)) - MCFG_PIC8259_ADD( "pic8259", INPUTLINE("maincpu", 0), GND, NOOP) + MCFG_DEVICE_ADD("pic8259", PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(INPUTLINE("maincpu", 0)) + MCFG_PIC8259_IN_SP_CB(GND) // ??? MCFG_DEVICE_ADD("uart8251", I8251, 0) //MCFG_I8251_TXD_HANDLER(DEVWRITELINE("rs232", rs232_port_device, write_txd)) diff --git a/src/mame/drivers/pc1512.cpp b/src/mame/drivers/pc1512.cpp index 6e9ac05eb9b..d471a377828 100644 --- a/src/mame/drivers/pc1512.cpp +++ b/src/mame/drivers/pc1512.cpp @@ -1222,7 +1222,9 @@ static MACHINE_CONFIG_START( pc1512 ) MCFG_I8237_OUT_DACK_1_CB(WRITELINE(pc1512_state, dack1_w)) MCFG_I8237_OUT_DACK_2_CB(WRITELINE(pc1512_state, dack2_w)) MCFG_I8237_OUT_DACK_3_CB(WRITELINE(pc1512_state, dack3_w)) - MCFG_PIC8259_ADD(I8259A2_TAG, INPUTLINE(I8086_TAG, INPUT_LINE_IRQ0), VCC, NOOP) + + MCFG_DEVICE_ADD(I8259A2_TAG, PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(INPUTLINE(I8086_TAG, INPUT_LINE_IRQ0)) MCFG_DEVICE_ADD(I8253_TAG, PIT8253, 0) MCFG_PIT8253_CLK0(XTAL_28_63636MHz/24) @@ -1352,7 +1354,9 @@ static MACHINE_CONFIG_START( pc1640 ) MCFG_I8237_OUT_DACK_1_CB(WRITELINE(pc1512_state, dack1_w)) MCFG_I8237_OUT_DACK_2_CB(WRITELINE(pc1512_state, dack2_w)) MCFG_I8237_OUT_DACK_3_CB(WRITELINE(pc1512_state, dack3_w)) - MCFG_PIC8259_ADD(I8259A2_TAG, INPUTLINE(I8086_TAG, INPUT_LINE_IRQ0), VCC, NOOP) + + MCFG_DEVICE_ADD(I8259A2_TAG, PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(INPUTLINE(I8086_TAG, INPUT_LINE_IRQ0)) MCFG_DEVICE_ADD(I8253_TAG, PIT8253, 0) MCFG_PIT8253_CLK0(XTAL_28_63636MHz/24) diff --git a/src/mame/drivers/pc88va.cpp b/src/mame/drivers/pc88va.cpp index 894b6f370c9..57d5ebe0795 100644 --- a/src/mame/drivers/pc88va.cpp +++ b/src/mame/drivers/pc88va.cpp @@ -1825,9 +1825,14 @@ static MACHINE_CONFIG_START( pc88va ) MCFG_I8255_IN_PORTC_CB(READ8(pc88va_state, fdc_8255_c_r)) MCFG_I8255_OUT_PORTC_CB(WRITE8(pc88va_state, fdc_8255_c_w)) - MCFG_PIC8259_ADD( "pic8259_master", INPUTLINE("maincpu", 0), VCC, READ8(pc88va_state,get_slave_ack) ) - - MCFG_PIC8259_ADD( "pic8259_slave", DEVWRITELINE("pic8259_master", pic8259_device, ir7_w), GND, NOOP) + MCFG_DEVICE_ADD("pic8259_master", PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(INPUTLINE("maincpu", 0)) + MCFG_PIC8259_IN_SP_CB(VCC) + MCFG_PIC8259_CASCADE_ACK_CB(READ8(pc88va_state, get_slave_ack)) + + MCFG_DEVICE_ADD("pic8259_slave", PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(DEVWRITELINE("pic8259_master", pic8259_device, ir7_w)) + MCFG_PIC8259_IN_SP_CB(GND) MCFG_DEVICE_ADD("dmac", AM9517A, 8000000) /* ch2 is FDC, ch0/3 are "user". ch1 is unused */ MCFG_AM9517A_OUT_HREQ_CB(WRITELINE(pc88va_state, pc88va_hlda_w)) diff --git a/src/mame/drivers/pc9801.cpp b/src/mame/drivers/pc9801.cpp index 3ca6653994a..be1e38219af 100644 --- a/src/mame/drivers/pc9801.cpp +++ b/src/mame/drivers/pc9801.cpp @@ -2286,8 +2286,15 @@ static MACHINE_CONFIG_START( pc9801_common ) MCFG_I8237_OUT_DACK_1_CB(WRITELINE(pc9801_state, dack1_w)) MCFG_I8237_OUT_DACK_2_CB(WRITELINE(pc9801_state, dack2_w)) MCFG_I8237_OUT_DACK_3_CB(WRITELINE(pc9801_state, dack3_w)) - MCFG_PIC8259_ADD( "pic8259_master", INPUTLINE("maincpu", 0), VCC, READ8(pc9801_state,get_slave_ack) ) - MCFG_PIC8259_ADD( "pic8259_slave", DEVWRITELINE("pic8259_master", pic8259_device, ir7_w), GND, NOOP) // TODO: Check ir7_w + + MCFG_DEVICE_ADD("pic8259_master", PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(INPUTLINE("maincpu", 0)) + MCFG_PIC8259_IN_SP_CB(VCC) + MCFG_PIC8259_CASCADE_ACK_CB(READ8(pc9801_state, get_slave_ack)) + + MCFG_DEVICE_ADD("pic8259_slave", PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(DEVWRITELINE("pic8259_master", pic8259_device, ir7_w)) // TODO: Check ir7_w + MCFG_PIC8259_IN_SP_CB(GND) MCFG_DEVICE_ADD("ppi8255_sys", I8255, 0) MCFG_I8255_IN_PORTA_CB(IOPORT("DSW2")) diff --git a/src/mame/drivers/pcd.cpp b/src/mame/drivers/pcd.cpp index bca2415c706..5a74bfffed8 100644 --- a/src/mame/drivers/pcd.cpp +++ b/src/mame/drivers/pcd.cpp @@ -495,8 +495,11 @@ static MACHINE_CONFIG_START( pcd ) MCFG_TIMER_DRIVER_ADD_PERIODIC("timer0_tick", pcd_state, timer0_tick, attotime::from_hz(XTAL_16MHz / 24)) // adjusted to pass post - MCFG_PIC8259_ADD("pic1", DEVWRITELINE("maincpu", i80186_cpu_device, int0_w), VCC, NOOP) - MCFG_PIC8259_ADD("pic2", DEVWRITELINE("maincpu", i80186_cpu_device, int1_w), VCC, NOOP) + MCFG_DEVICE_ADD("pic1", PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(DEVWRITELINE("maincpu", i80186_cpu_device, int0_w)) + + MCFG_DEVICE_ADD("pic2", PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(DEVWRITELINE("maincpu", i80186_cpu_device, int1_w)) MCFG_DEVICE_ADD("video", PCD_VIDEO, 0) diff --git a/src/mame/drivers/peoplepc.cpp b/src/mame/drivers/peoplepc.cpp index ca42ce35356..79bc4ef2b05 100644 --- a/src/mame/drivers/peoplepc.cpp +++ b/src/mame/drivers/peoplepc.cpp @@ -248,8 +248,14 @@ static MACHINE_CONFIG_START( olypeopl ) MCFG_PIT8253_CLK2(XTAL_14_7456MHz/6) MCFG_PIT8253_OUT2_HANDLER(DEVWRITELINE("pic8259_0", pic8259_device, ir0_w)) - MCFG_PIC8259_ADD("pic8259_0", INPUTLINE("maincpu", 0), VCC, READ8(peoplepc_state, get_slave_ack)) - MCFG_PIC8259_ADD("pic8259_1", DEVWRITELINE("pic8259_0", pic8259_device, ir7_w), GND, NOOP) + MCFG_DEVICE_ADD("pic8259_0", PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(INPUTLINE("maincpu", 0)) + MCFG_PIC8259_IN_SP_CB(VCC) + MCFG_PIC8259_CASCADE_ACK_CB(READ8(peoplepc_state, get_slave_ack)) + + MCFG_DEVICE_ADD("pic8259_1", PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(DEVWRITELINE("pic8259_0", pic8259_device, ir7_w)) + MCFG_PIC8259_IN_SP_CB(GND) MCFG_DEVICE_ADD("ppi8255", I8255, 0) diff --git a/src/mame/drivers/pg685.cpp b/src/mame/drivers/pg685.cpp index 8c2df754818..d6479960660 100644 --- a/src/mame/drivers/pg685.cpp +++ b/src/mame/drivers/pg685.cpp @@ -383,7 +383,8 @@ MC6845_UPDATE_ROW( pg685_state::crtc_update_row_oua12 ) static MACHINE_CONFIG_START(pg685_backplane) MCFG_DEVICE_ADD("bppit", PIT8253, 0) - MCFG_PIC8259_ADD("bppic", NOOP, VCC, NOOP) // ??? + MCFG_DEVICE_ADD("bppic", PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(NOOP) // ??? MCFG_DEVICE_ADD("bpuart", MC2661, XTAL_4_9152MHz) // internal clock MACHINE_CONFIG_END @@ -407,7 +408,9 @@ static MACHINE_CONFIG_START( pg675 ) MCFG_CPU_PROGRAM_MAP(pg675_mem) MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("mainpic", pic8259_device, inta_cb) - MCFG_PIC8259_ADD("mainpic", INPUTLINE("maincpu", 0), VCC, NOOP) + MCFG_DEVICE_ADD("mainpic", PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(INPUTLINE("maincpu", 0)) + MCFG_PIC8259_IN_SP_CB(VCC) // i/o cpu @@ -454,7 +457,9 @@ static MACHINE_CONFIG_START( pg685 ) MCFG_CPU_PROGRAM_MAP(pg685_mem) MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("mainpic", pic8259_device, inta_cb) - MCFG_PIC8259_ADD("mainpic", INPUTLINE("maincpu", 0), VCC, NOOP) + MCFG_DEVICE_ADD("mainpic", PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(INPUTLINE("maincpu", 0)) + MCFG_PIC8259_IN_SP_CB(VCC) // i/o cpu @@ -503,7 +508,9 @@ static MACHINE_CONFIG_START( pg685oua12 ) MCFG_CPU_PROGRAM_MAP(pg685oua12_mem) MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("mainpic", pic8259_device, inta_cb) - MCFG_PIC8259_ADD("mainpic", INPUTLINE("maincpu", 0), VCC, NOOP) + MCFG_DEVICE_ADD("mainpic", PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(INPUTLINE("maincpu", 0)) + MCFG_PIC8259_IN_SP_CB(VCC) // i/o cpu diff --git a/src/mame/drivers/pk8020.cpp b/src/mame/drivers/pk8020.cpp index b4539581ced..d572a64de26 100644 --- a/src/mame/drivers/pk8020.cpp +++ b/src/mame/drivers/pk8020.cpp @@ -215,7 +215,9 @@ static MACHINE_CONFIG_START( pk8020 ) MCFG_PIT8253_CLK2((XTAL_20MHz / 8) / 164) MCFG_PIT8253_OUT2_HANDLER(DEVWRITELINE("pic8259", pic8259_device, ir5_w)) - MCFG_PIC8259_ADD("pic8259", INPUTLINE("maincpu", 0), VCC, NOOP) + MCFG_DEVICE_ADD("pic8259", PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(INPUTLINE("maincpu", 0)) + MCFG_DEVICE_ADD("rs232", I8251, 0) MCFG_DEVICE_ADD("lan", I8251, 0) diff --git a/src/mame/drivers/poisk1.cpp b/src/mame/drivers/poisk1.cpp index 57d9a25e7d2..e3bfb0e2ce7 100644 --- a/src/mame/drivers/poisk1.cpp +++ b/src/mame/drivers/poisk1.cpp @@ -649,7 +649,8 @@ static MACHINE_CONFIG_START( poisk1 ) MCFG_PIT8253_CLK2(XTAL_15MHz/12) /* pio port c pin 4, and speaker polling enough */ MCFG_PIT8253_OUT2_HANDLER(WRITELINE(p1_state, p1_pit8253_out2_changed)) - MCFG_PIC8259_ADD( "pic8259", INPUTLINE("maincpu", 0), VCC, NOOP) + MCFG_DEVICE_ADD("pic8259", PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(INPUTLINE("maincpu", 0)) MCFG_DEVICE_ADD("ppi8255n1", I8255A, 0) MCFG_I8255_IN_PORTA_CB(READ8(p1_state, p1_ppi_porta_r)) /*60H*/ diff --git a/src/mame/drivers/qx10.cpp b/src/mame/drivers/qx10.cpp index f2ae3dc94be..0ed3f064fd1 100644 --- a/src/mame/drivers/qx10.cpp +++ b/src/mame/drivers/qx10.cpp @@ -712,8 +712,14 @@ static MACHINE_CONFIG_START( qx10 ) MCFG_PIT8253_CLK2(MAIN_CLK / 8) MCFG_PIT8253_OUT2_HANDLER(DEVWRITELINE("upd7201", z80dart_device, rxtxcb_w)) - MCFG_PIC8259_ADD("pic8259_master", INPUTLINE("maincpu", 0), VCC, READ8(qx10_state, get_slave_ack)) - MCFG_PIC8259_ADD("pic8259_slave", DEVWRITELINE("pic8259_master", pic8259_device, ir7_w), GND, NOOP) + MCFG_DEVICE_ADD("pic8259_master", PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(INPUTLINE("maincpu", 0)) + MCFG_PIC8259_IN_SP_CB(VCC) + MCFG_PIC8259_CASCADE_ACK_CB(READ8(qx10_state, get_slave_ack)) + + MCFG_DEVICE_ADD("pic8259_slave", PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(DEVWRITELINE("pic8259_master", pic8259_device, ir7_w)) + MCFG_PIC8259_IN_SP_CB(GND) MCFG_UPD7201_ADD("upd7201", MAIN_CLK/4, 0, 0, 0, 0) // channel b clock set by pit2 channel 2 // Channel A: Keyboard diff --git a/src/mame/drivers/rc759.cpp b/src/mame/drivers/rc759.cpp index 7e0c06c70e2..ed5da3f0d0c 100644 --- a/src/mame/drivers/rc759.cpp +++ b/src/mame/drivers/rc759.cpp @@ -533,7 +533,8 @@ static MACHINE_CONFIG_START( rc759 ) MCFG_80186_TMROUT1_HANDLER(WRITELINE(rc759_state, i186_timer1_w)) // interrupt controller - MCFG_PIC8259_ADD("pic", DEVWRITELINE("maincpu", i80186_cpu_device, int0_w), VCC, NOOP) + MCFG_DEVICE_ADD("pic", PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(DEVWRITELINE("maincpu", i80186_cpu_device, int0_w)) // nvram MCFG_NVRAM_ADD_CUSTOM_DRIVER("nvram", rc759_state, nvram_init) diff --git a/src/mame/drivers/sage2.cpp b/src/mame/drivers/sage2.cpp index ad6df892d7a..9b107799ccc 100644 --- a/src/mame/drivers/sage2.cpp +++ b/src/mame/drivers/sage2.cpp @@ -413,7 +413,8 @@ static MACHINE_CONFIG_START( sage2 ) MCFG_CPU_PROGRAM_MAP(sage2_mem) // devices - MCFG_PIC8259_ADD(I8259_TAG, INPUTLINE(M68000_TAG, M68K_IRQ_1), VCC, NOOP) + MCFG_DEVICE_ADD(I8259_TAG, PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(INPUTLINE(M68000_TAG, M68K_IRQ_1)) MCFG_DEVICE_ADD(I8255A_0_TAG, I8255A, 0) MCFG_I8255_IN_PORTA_CB(IOPORT("J7")) diff --git a/src/mame/drivers/sm7238.cpp b/src/mame/drivers/sm7238.cpp index d26b6206710..05b9fb1d65b 100644 --- a/src/mame/drivers/sm7238.cpp +++ b/src/mame/drivers/sm7238.cpp @@ -360,7 +360,8 @@ static MACHINE_CONFIG_START( sm7238 ) MCFG_PALETTE_INIT_OWNER(sm7238_state, sm7238) MCFG_GFXDECODE_ADD("gfxdecode", "palette", sm7238) - MCFG_PIC8259_ADD("pic8259", INPUTLINE("maincpu", 0), VCC, NOOP) + MCFG_DEVICE_ADD("pic8259", PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(INPUTLINE("maincpu", 0)) MCFG_DEVICE_ADD("t_hblank", PIT8253, 0) MCFG_PIT8253_CLK1(XTAL_16_384MHz/9) // XXX workaround -- keyboard is slower and doesn't sync otherwise diff --git a/src/mame/drivers/superslave.cpp b/src/mame/drivers/superslave.cpp index 0800db8f20a..e47d166cbc6 100644 --- a/src/mame/drivers/superslave.cpp +++ b/src/mame/drivers/superslave.cpp @@ -333,7 +333,8 @@ static MACHINE_CONFIG_START( superslave ) MCFG_Z80_DAISY_CHAIN(superslave_daisy_chain) // devices - MCFG_PIC8259_ADD(AM9519_TAG, INPUTLINE(Z80_TAG, INPUT_LINE_IRQ0), VCC, NOOP) + MCFG_DEVICE_ADD(AM9519_TAG, PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(INPUTLINE(Z80_TAG, INPUT_LINE_IRQ0)) MCFG_DEVICE_ADD(Z80PIO_TAG, Z80PIO, XTAL_8MHz/2) MCFG_Z80PIO_OUT_INT_CB(INPUTLINE(Z80_TAG, INPUT_LINE_IRQ0)) diff --git a/src/mame/drivers/tandy2k.cpp b/src/mame/drivers/tandy2k.cpp index 2e51022b2a3..5e2425a9190 100644 --- a/src/mame/drivers/tandy2k.cpp +++ b/src/mame/drivers/tandy2k.cpp @@ -841,9 +841,11 @@ static MACHINE_CONFIG_START( tandy2k ) //MCFG_PIT8253_CLK2(XTAL_16MHz/8) //MCFG_PIT8253_OUT2_HANDLER(WRITELINE(tandy2k_state, rfrqpulse_w)) - MCFG_PIC8259_ADD(I8259A_0_TAG, DEVWRITELINE(I80186_TAG, i80186_cpu_device, int0_w), VCC, NOOP) + MCFG_DEVICE_ADD(I8259A_0_TAG, PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(DEVWRITELINE(I80186_TAG, i80186_cpu_device, int0_w)) - MCFG_PIC8259_ADD(I8259A_1_TAG, DEVWRITELINE(I80186_TAG, i80186_cpu_device, int1_w), VCC, NOOP) + MCFG_DEVICE_ADD(I8259A_1_TAG, PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(DEVWRITELINE(I80186_TAG, i80186_cpu_device, int1_w)) MCFG_I8272A_ADD(I8272A_TAG, true) downcast(device)->set_select_lines_connected(true); diff --git a/src/mame/drivers/tdv2324.cpp b/src/mame/drivers/tdv2324.cpp index 36be7f125da..9e51db08c53 100644 --- a/src/mame/drivers/tdv2324.cpp +++ b/src/mame/drivers/tdv2324.cpp @@ -283,7 +283,7 @@ static MACHINE_CONFIG_START( tdv2324 ) MCFG_TMS9927_CHAR_WIDTH(8) // devices - MCFG_PIC8259_ADD(P8259A_TAG, NOOP, VCC, NOOP) + MCFG_DEVICE_ADD(P8259A_TAG, PIC8259, 0) MCFG_DEVICE_ADD(P8253_5_0_TAG, PIT8253, 0) diff --git a/src/mame/drivers/trs80m2.cpp b/src/mame/drivers/trs80m2.cpp index 4ef3b3b4c84..b94ce2a826e 100644 --- a/src/mame/drivers/trs80m2.cpp +++ b/src/mame/drivers/trs80m2.cpp @@ -851,7 +851,8 @@ static MACHINE_CONFIG_START( trs80m16 ) MCFG_Z80SIO0_ADD(Z80SIO_TAG, XTAL_8MHz/2, 0, 0, 0, 0) MCFG_Z80DART_OUT_INT_CB(INPUTLINE(Z80_TAG, INPUT_LINE_IRQ0)) - MCFG_PIC8259_ADD(AM9519A_TAG, INPUTLINE(M68000_TAG, M68K_IRQ_5), VCC, NOOP) + MCFG_DEVICE_ADD(AM9519A_TAG, PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(INPUTLINE(M68000_TAG, M68K_IRQ_5)) MCFG_CENTRONICS_ADD(CENTRONICS_TAG, centronics_devices, "printer") MCFG_CENTRONICS_ACK_HANDLER(DEVWRITELINE(Z80PIO_TAG, z80pio_device, strobe_b)) diff --git a/src/mame/drivers/tsispch.cpp b/src/mame/drivers/tsispch.cpp index 850f6f35297..d118f933ae7 100644 --- a/src/mame/drivers/tsispch.cpp +++ b/src/mame/drivers/tsispch.cpp @@ -390,7 +390,8 @@ static MACHINE_CONFIG_START( prose2k ) MCFG_NECDSP_OUT_P1_CB(WRITELINE(tsispch_state, dsp_to_8086_p1_w)) /* PIC 8259 */ - MCFG_PIC8259_ADD("pic8259", INPUTLINE("maincpu", 0), VCC, NOOP) + MCFG_DEVICE_ADD("pic8259", PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(INPUTLINE("maincpu", 0)) /* uarts */ MCFG_DEVICE_ADD("i8251a_u15", I8251, 0) diff --git a/src/mame/drivers/victor9k.cpp b/src/mame/drivers/victor9k.cpp index 616a8129095..2087f0f1a72 100644 --- a/src/mame/drivers/victor9k.cpp +++ b/src/mame/drivers/victor9k.cpp @@ -713,7 +713,8 @@ static MACHINE_CONFIG_START( victor9k ) MCFG_IEEE488_NRFD_CALLBACK(WRITELINE(victor9k_state, write_nfrd)) MCFG_IEEE488_NDAC_CALLBACK(WRITELINE(victor9k_state, write_ndac)) - MCFG_PIC8259_ADD(I8259A_TAG, INPUTLINE(I8088_TAG, INPUT_LINE_IRQ0), VCC, NOOP) + MCFG_DEVICE_ADD(I8259A_TAG, PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(INPUTLINE(I8088_TAG, INPUT_LINE_IRQ0)) MCFG_DEVICE_ADD(I8253_TAG, PIT8253, 0) MCFG_PIT8253_CLK0(2500000) diff --git a/src/mame/drivers/wangpc.cpp b/src/mame/drivers/wangpc.cpp index 200cb8cba00..1cdd9ce91af 100644 --- a/src/mame/drivers/wangpc.cpp +++ b/src/mame/drivers/wangpc.cpp @@ -1289,7 +1289,8 @@ static MACHINE_CONFIG_START( wangpc ) MCFG_AM9517A_OUT_DACK_2_CB(WRITELINE(wangpc_state, dack2_w)) MCFG_AM9517A_OUT_DACK_3_CB(WRITELINE(wangpc_state, dack3_w)) - MCFG_PIC8259_ADD(I8259A_TAG, INPUTLINE(I8086_TAG, INPUT_LINE_IRQ0), VCC, NOOP) + MCFG_DEVICE_ADD(I8259A_TAG, PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(INPUTLINE(I8086_TAG, INPUT_LINE_IRQ0)) MCFG_DEVICE_ADD(I8255A_TAG, I8255A, 0) MCFG_I8255_IN_PORTA_CB(READ8(wangpc_state, ppi_pa_r)) diff --git a/src/mame/drivers/z100.cpp b/src/mame/drivers/z100.cpp index bdcf92bdbfe..f873c6d7ef3 100644 --- a/src/mame/drivers/z100.cpp +++ b/src/mame/drivers/z100.cpp @@ -687,8 +687,14 @@ static MACHINE_CONFIG_START( z100 ) MCFG_MC6845_SHOW_BORDER_AREA(false) MCFG_MC6845_CHAR_WIDTH(8) - MCFG_PIC8259_ADD( "pic8259_master", INPUTLINE("maincpu", 0), VCC, READ8(z100_state, get_slave_ack) ) - MCFG_PIC8259_ADD( "pic8259_slave", DEVWRITELINE("pic8259_master", pic8259_device, ir3_w), GND, NOOP) + MCFG_DEVICE_ADD("pic8259_master", PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(INPUTLINE("maincpu", 0)) + MCFG_PIC8259_IN_SP_CB(VCC) + MCFG_PIC8259_CASCADE_ACK_CB(READ8(z100_state, get_slave_ack)) + + MCFG_DEVICE_ADD("pic8259_slave", PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(DEVWRITELINE("pic8259_master", pic8259_device, ir3_w)) + MCFG_PIC8259_IN_SP_CB(GND) MCFG_DEVICE_ADD("pia0", PIA6821, 0) MCFG_PIA_WRITEPA_HANDLER(WRITE8(z100_state, video_pia_A_w)) diff --git a/src/mame/machine/apollo.cpp b/src/mame/machine/apollo.cpp index cb04e939cfb..61a635e0f1e 100644 --- a/src/mame/machine/apollo.cpp +++ b/src/mame/machine/apollo.cpp @@ -1097,8 +1097,15 @@ MACHINE_CONFIG_START( common ) MCFG_I8237_OUT_DACK_1_CB(WRITELINE(apollo_state, pc_dack5_w)) MCFG_I8237_OUT_DACK_2_CB(WRITELINE(apollo_state, pc_dack6_w)) MCFG_I8237_OUT_DACK_3_CB(WRITELINE(apollo_state, pc_dack7_w)) - MCFG_PIC8259_ADD( APOLLO_PIC1_TAG, WRITELINE(apollo_state,apollo_pic8259_master_set_int_line), VCC, READ8(apollo_state, apollo_pic8259_get_slave_ack)) - MCFG_PIC8259_ADD( APOLLO_PIC2_TAG, WRITELINE(apollo_state,apollo_pic8259_slave_set_int_line), GND, NOOP) + + MCFG_DEVICE_ADD(APOLLO_PIC1_TAG, PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(WRITELINE(apollo_state, apollo_pic8259_master_set_int_line)) + MCFG_PIC8259_IN_SP_CB(VCC) + MCFG_PIC8259_CASCADE_ACK_CB(READ8(apollo_state, apollo_pic8259_get_slave_ack)) + + MCFG_DEVICE_ADD(APOLLO_PIC2_TAG, PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(WRITELINE(apollo_state, apollo_pic8259_slave_set_int_line)) + MCFG_PIC8259_IN_SP_CB(GND) MCFG_DEVICE_ADD(APOLLO_PTM_TAG, PTM6840, 0) MCFG_PTM6840_EXTERNAL_CLOCKS(250000, 125000, 62500) diff --git a/src/mame/machine/at.cpp b/src/mame/machine/at.cpp index 607fcb9eb8d..a7a3255aa02 100644 --- a/src/mame/machine/at.cpp +++ b/src/mame/machine/at.cpp @@ -93,8 +93,14 @@ MACHINE_CONFIG_MEMBER( at_mb_device::device_add_mconfig ) MCFG_I8237_OUT_DACK_2_CB(WRITELINE(at_mb_device, dack6_w)) MCFG_I8237_OUT_DACK_3_CB(WRITELINE(at_mb_device, dack7_w)) - MCFG_PIC8259_ADD( "pic8259_master", INPUTLINE(":maincpu", 0), VCC, READ8(at_mb_device, get_slave_ack) ) - MCFG_PIC8259_ADD( "pic8259_slave", DEVWRITELINE("pic8259_master", pic8259_device, ir2_w), GND, NOOP) + MCFG_DEVICE_ADD("pic8259_master", PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(INPUTLINE(":maincpu", 0)) + MCFG_PIC8259_IN_SP_CB(VCC) + MCFG_PIC8259_CASCADE_ACK_CB(READ8(at_mb_device, get_slave_ack)) + + MCFG_DEVICE_ADD("pic8259_slave", PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(DEVWRITELINE("pic8259_master", pic8259_device, ir2_w)) + MCFG_PIC8259_IN_SP_CB(GND) MCFG_DEVICE_ADD("isabus", ISA16, 0) MCFG_ISA16_CPU(":maincpu") diff --git a/src/mame/machine/pcshare.cpp b/src/mame/machine/pcshare.cpp index c3dbd67e46c..8f7e34f4d8e 100644 --- a/src/mame/machine/pcshare.cpp +++ b/src/mame/machine/pcshare.cpp @@ -136,8 +136,15 @@ ADDRESS_MAP_START( pcat32_io_common, AS_IO, 32, pcat_base_state ) ADDRESS_MAP_END MACHINE_CONFIG_START(pcat_common) - MCFG_PIC8259_ADD( "pic8259_1", INPUTLINE("maincpu", 0), VCC, READ8(pcat_base_state, get_slave_ack) ) - MCFG_PIC8259_ADD( "pic8259_2", DEVWRITELINE("pic8259_1", pic8259_device, ir2_w), GND, NOOP) + MCFG_DEVICE_ADD("pic8259_1", PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(INPUTLINE("maincpu", 0)) + MCFG_PIC8259_IN_SP_CB(VCC) + MCFG_PIC8259_CASCADE_ACK_CB(READ8(pcat_base_state, get_slave_ack)) + + MCFG_DEVICE_ADD("pic8259_2", PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(DEVWRITELINE("pic8259_1", pic8259_device, ir2_w)) + MCFG_PIC8259_IN_SP_CB(GND) + MCFG_DEVICE_ADD( "dma8237_1", AM9517A, XTAL_14_31818MHz/3 ) MCFG_I8237_OUT_HREQ_CB(WRITELINE(pcat_base_state, pc_dma_hrq_changed)) MCFG_I8237_IN_MEMR_CB(READ8(pcat_base_state, pc_dma_read_byte)) diff --git a/src/mame/machine/xbox.cpp b/src/mame/machine/xbox.cpp index 0a59d8dff8d..24b8b526102 100644 --- a/src/mame/machine/xbox.cpp +++ b/src/mame/machine/xbox.cpp @@ -887,8 +887,15 @@ MACHINE_CONFIG_START(xbox_base) MCFG_PCI_DEVICE_ADD(":pci:1e.0:00.0", NV2A_GPU, 0x10de02a0, 0, 0, 0) MCFG_MCPX_NV2A_GPU_CPU("maincpu") MCFG_MCPX_NV2A_GPU_INTERRUPT_HANDLER(DEVWRITELINE(":", xbox_base_state, xbox_nv2a_interrupt_changed)) - MCFG_PIC8259_ADD("pic8259_1", WRITELINE(xbox_base_state, xbox_pic8259_1_set_int_line), VCC, READ8(xbox_base_state, get_slave_ack)) - MCFG_PIC8259_ADD("pic8259_2", DEVWRITELINE("pic8259_1", pic8259_device, ir2_w), GND, NOOP) + + MCFG_DEVICE_ADD("pic8259_1", PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(WRITELINE(xbox_base_state, xbox_pic8259_1_set_int_line)) + MCFG_PIC8259_IN_SP_CB(VCC) + MCFG_PIC8259_CASCADE_ACK_CB(READ8(xbox_base_state, get_slave_ack)) + + MCFG_DEVICE_ADD("pic8259_2", PIC8259, 0) + MCFG_PIC8259_OUT_INT_CB(DEVWRITELINE("pic8259_1", pic8259_device, ir2_w)) + MCFG_PIC8259_IN_SP_CB(GND) MCFG_DEVICE_ADD("pit8254", PIT8254, 0) MCFG_PIT8253_CLK0(1125000) /* heartbeat IRQ */ -- cgit v1.2.3