diff --git a/src/emu/bus/pci/southbridge.c b/src/emu/bus/pci/southbridge.c index 105fde9c992..49af9412eeb 100644 --- a/src/emu/bus/pci/southbridge.c +++ b/src/emu/bus/pci/southbridge.c @@ -192,9 +192,6 @@ void southbridge_device::device_start() spaceio.install_readwrite_handler(0x0374, 0x0377, read8_delegate(FUNC(southbridge_device::ide2_read_cs1_r),this), write8_delegate(FUNC(southbridge_device::ide2_write_cs1_w), this),0xff0000); spaceio.install_readwrite_handler(0x03f4, 0x03f7, read8_delegate(FUNC(southbridge_device::ide_read_cs1_r),this), write8_delegate(FUNC(southbridge_device::ide_write_cs1_w), this),0xff0000); spaceio.nop_readwrite(0x00e0, 0x00ef); - - - machine().device(":maincpu")->execute().set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(southbridge_device::at_irq_callback),this)); } //------------------------------------------------- diff --git a/src/emu/machine/tmp68301.c b/src/emu/machine/tmp68301.c index 4a85b36dce3..3c88faf7f8f 100644 --- a/src/emu/machine/tmp68301.c +++ b/src/emu/machine/tmp68301.c @@ -129,8 +129,6 @@ void tmp68301_device::device_reset() for (i = 0; i < 3; i++) m_IE[i] = 0; - machine().firstcpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(tmp68301_device::irq_callback),this)); - m_imr = 0x7f7; // mask all irqs } diff --git a/src/emu/machine/tmp68301.h b/src/emu/machine/tmp68301.h index a870279b28c..f3683afbbb9 100644 --- a/src/emu/machine/tmp68301.h +++ b/src/emu/machine/tmp68301.h @@ -49,6 +49,7 @@ public: DECLARE_READ16_MEMBER(pdir_r); DECLARE_WRITE16_MEMBER(pdir_w); + IRQ_CALLBACK_MEMBER(irq_callback); protected: // device-level overrides virtual void device_start(); @@ -69,7 +70,6 @@ private: TIMER_CALLBACK_MEMBER( timer_callback ); void update_timer( int i ); - IRQ_CALLBACK_MEMBER(irq_callback); void update_irq_state(); UINT16 m_imr; diff --git a/src/mame/drivers/csplayh5.c b/src/mame/drivers/csplayh5.c index 032e8a6f309..e980564f48a 100644 --- a/src/mame/drivers/csplayh5.c +++ b/src/mame/drivers/csplayh5.c @@ -641,6 +641,8 @@ static MACHINE_CONFIG_START( csplayh5, csplayh5_state ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",M68000,16000000) /* TMP68301-16 */ MCFG_CPU_PROGRAM_MAP(csplayh5_map) + MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("tmp68301",tmp68301_device,irq_callback) + MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", csplayh5_state, csplayh5_irq, "screen", 0, 1) MCFG_DEVICE_ADD("tmp68301", TMP68301, 0) diff --git a/src/mame/drivers/jaguar.c b/src/mame/drivers/jaguar.c index 5b8dcf33255..89c8452cc36 100644 --- a/src/mame/drivers/jaguar.c +++ b/src/mame/drivers/jaguar.c @@ -407,9 +407,6 @@ SLOT_INTERFACE_END void jaguar_state::machine_reset() { - if (!m_is_cojag) - m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(jaguar_state::jaguar_irq_callback),this)); - m_protection_check = 0; /* 68020 only: copy the interrupt vectors into RAM */ @@ -1854,6 +1851,7 @@ static MACHINE_CONFIG_START( jaguar, jaguar_state ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, JAGUAR_CLOCK/2) MCFG_CPU_PROGRAM_MAP(jaguar_map) + MCFG_CPU_IRQ_ACKNOWLEDGE_DRIVER(jaguar_state,jaguar_irq_callback) MCFG_CPU_ADD("gpu", JAGUARGPU, JAGUAR_CLOCK) MCFG_JAGUAR_IRQ_HANDLER(WRITELINE(jaguar_state, gpu_cpu_int)) diff --git a/src/mame/drivers/metro.c b/src/mame/drivers/metro.c index ed136f95dfe..8260ef82b9a 100644 --- a/src/mame/drivers/metro.c +++ b/src/mame/drivers/metro.c @@ -3623,8 +3623,6 @@ MACHINE_START_MEMBER(metro_state,metro) MACHINE_RESET_MEMBER(metro_state,metro) { - if (m_irq_line == -1) - m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(metro_state::metro_irq_callback),this)); } @@ -4065,6 +4063,7 @@ static MACHINE_CONFIG_START( dokyusei, metro_state ) MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz) MCFG_CPU_PROGRAM_MAP(dokyusei_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", metro_state, metro_vblank_interrupt) + MCFG_CPU_IRQ_ACKNOWLEDGE_DRIVER(metro_state,metro_irq_callback) MCFG_MACHINE_START_OVERRIDE(metro_state,metro) MCFG_MACHINE_RESET_OVERRIDE(metro_state,metro) @@ -4101,6 +4100,7 @@ static MACHINE_CONFIG_START( dokyusp, metro_state ) MCFG_CPU_ADD("maincpu", M68000, XTAL_32MHz/2) MCFG_CPU_PROGRAM_MAP(dokyusp_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", metro_state, metro_vblank_interrupt) + MCFG_CPU_IRQ_ACKNOWLEDGE_DRIVER(metro_state,metro_irq_callback) MCFG_MACHINE_START_OVERRIDE(metro_state,metro) MCFG_MACHINE_RESET_OVERRIDE(metro_state,metro) @@ -4139,6 +4139,7 @@ static MACHINE_CONFIG_START( gakusai, metro_state ) MCFG_CPU_ADD("maincpu", M68000, 16000000) /* 26.6660MHz/2?, OSCs listed are 26.6660MHz & 3.579545MHz */ MCFG_CPU_PROGRAM_MAP(gakusai_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", metro_state, metro_vblank_interrupt) + MCFG_CPU_IRQ_ACKNOWLEDGE_DRIVER(metro_state,metro_irq_callback) MCFG_MACHINE_START_OVERRIDE(metro_state,metro) MCFG_MACHINE_RESET_OVERRIDE(metro_state,metro) @@ -4177,6 +4178,7 @@ static MACHINE_CONFIG_START( gakusai2, metro_state ) MCFG_CPU_ADD("maincpu", M68000, 16000000) /* 26.6660MHz/2?, OSCs listed are 26.6660MHz & 3.579545MHz */ MCFG_CPU_PROGRAM_MAP(gakusai2_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", metro_state, metro_vblank_interrupt) + MCFG_CPU_IRQ_ACKNOWLEDGE_DRIVER(metro_state,metro_irq_callback) MCFG_MACHINE_START_OVERRIDE(metro_state,metro) MCFG_MACHINE_RESET_OVERRIDE(metro_state,metro) @@ -4431,6 +4433,7 @@ static MACHINE_CONFIG_START( mouja, metro_state ) MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz) MCFG_CPU_PROGRAM_MAP(mouja_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", metro_state, metro_vblank_interrupt) + MCFG_CPU_IRQ_ACKNOWLEDGE_DRIVER(metro_state,metro_irq_callback) MCFG_MACHINE_START_OVERRIDE(metro_state,metro) MCFG_MACHINE_RESET_OVERRIDE(metro_state,metro) diff --git a/src/mame/drivers/niyanpai.c b/src/mame/drivers/niyanpai.c index e1e4c0f0e69..a786d76242e 100644 --- a/src/mame/drivers/niyanpai.c +++ b/src/mame/drivers/niyanpai.c @@ -940,6 +940,7 @@ static MACHINE_CONFIG_START( niyanpai, niyanpai_state ) MCFG_CPU_ADD("maincpu", M68000, 12288000/2) /* TMP68301, 6.144 MHz */ MCFG_CPU_PROGRAM_MAP(niyanpai_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", niyanpai_state, niyanpai_interrupt) + MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("tmp68301",tmp68301_device,irq_callback) MCFG_DEVICE_ADD("tmp68301", TMP68301, 0) MCFG_TMP68301_OUT_PARALLEL_CB(WRITE16(niyanpai_state, tmp68301_parallel_port_w)) diff --git a/src/mame/drivers/realbrk.c b/src/mame/drivers/realbrk.c index 32344dea511..161141b7bb7 100644 --- a/src/mame/drivers/realbrk.c +++ b/src/mame/drivers/realbrk.c @@ -756,6 +756,7 @@ static MACHINE_CONFIG_START( realbrk, realbrk_state ) MCFG_CPU_ADD("maincpu",M68000, XTAL_32MHz / 2) /* !! TMP68301 !! */ MCFG_CPU_PROGRAM_MAP(realbrk_mem) MCFG_CPU_VBLANK_INT_DRIVER("screen", realbrk_state, realbrk_interrupt) + MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("tmp68301",tmp68301_device,irq_callback) MCFG_DEVICE_ADD("tmp68301", TMP68301, 0) MCFG_TMP68301_OUT_PARALLEL_CB(WRITE16(realbrk_state,realbrk_flipscreen_w)) diff --git a/src/mame/drivers/segac2.c b/src/mame/drivers/segac2.c index ae5a2750d2a..c74e5b0f200 100644 --- a/src/mame/drivers/segac2.c +++ b/src/mame/drivers/segac2.c @@ -1459,6 +1459,7 @@ static MACHINE_CONFIG_START( segac, segac2_state ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XL2_CLOCK/6) MCFG_CPU_PROGRAM_MAP(main_map) + MCFG_CPU_IRQ_ACKNOWLEDGE_DRIVER(md_base_state,genesis_int_callback) MCFG_MACHINE_START_OVERRIDE(segac2_state,segac2) MCFG_MACHINE_RESET_OVERRIDE(segac2_state,segac2) diff --git a/src/mame/drivers/seta2.c b/src/mame/drivers/seta2.c index 6f97eb11b6c..67b23b1236b 100644 --- a/src/mame/drivers/seta2.c +++ b/src/mame/drivers/seta2.c @@ -2069,6 +2069,7 @@ static MACHINE_CONFIG_START( seta2, seta2_state ) MCFG_CPU_ADD("maincpu", M68301, XTAL_50MHz/3) // !! TMP68301 !! MCFG_CPU_PROGRAM_MAP(mj4simai_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", seta2_state, seta2_interrupt) + MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("tmp68301",tmp68301_device,irq_callback) MCFG_DEVICE_ADD("tmp68301", TMP68301, 0) @@ -2300,6 +2301,7 @@ static MACHINE_CONFIG_START( namcostr, seta2_state ) MCFG_CPU_ADD("maincpu", M68301, XTAL_50MHz/3) // !! TMP68301 !! MCFG_CPU_PROGRAM_MAP(namcostr_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", seta2_state, seta2_interrupt) + MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("tmp68301",tmp68301_device,irq_callback) MCFG_DEVICE_ADD("tmp68301", TMP68301, 0) // does this have a ticket dispenser? diff --git a/src/mame/machine/megadriv.c b/src/mame/machine/megadriv.c index 182a2d97ec2..f20bc5c105c 100644 --- a/src/mame/machine/megadriv.c +++ b/src/mame/machine/megadriv.c @@ -927,6 +927,8 @@ MACHINE_CONFIG_END MACHINE_CONFIG_FRAGMENT( md_ntsc ) MCFG_CPU_ADD("maincpu", M68000, MASTER_CLOCK_NTSC / 7) /* 7.67 MHz */ MCFG_CPU_PROGRAM_MAP(megadriv_map) + MCFG_CPU_IRQ_ACKNOWLEDGE_DRIVER(md_base_state,genesis_int_callback) + /* IRQs are handled via the timers */ MCFG_CPU_ADD("genesis_snd_z80", Z80, MASTER_CLOCK_NTSC / 15) /* 3.58 MHz */ @@ -974,6 +976,7 @@ MACHINE_CONFIG_END MACHINE_CONFIG_FRAGMENT( md_pal ) MCFG_CPU_ADD("maincpu", M68000, MASTER_CLOCK_PAL / 7) /* 7.67 MHz */ MCFG_CPU_PROGRAM_MAP(megadriv_map) + MCFG_CPU_IRQ_ACKNOWLEDGE_DRIVER(md_base_state,genesis_int_callback) /* IRQs are handled via the timers */ MCFG_CPU_ADD("genesis_snd_z80", Z80, MASTER_CLOCK_PAL / 15) /* 3.58 MHz */ @@ -1032,8 +1035,6 @@ void md_base_state::megadriv_init_common() membank("bank1")->set_base(m_genz80.z80_prgram); } - m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(md_base_state::genesis_int_callback),this)); - m_maincpu->set_tas_write_callback(write8_delegate(FUNC(md_base_state::megadriv_tas_callback),this)); m_megadrive_io_read_data_port_ptr = read8_delegate(FUNC(md_base_state::megadrive_io_read_data_port_3button),this); diff --git a/src/mess/drivers/at.c b/src/mess/drivers/at.c index f65e795336a..84aa8183c89 100644 --- a/src/mess/drivers/at.c +++ b/src/mess/drivers/at.c @@ -625,7 +625,8 @@ SLOT_INTERFACE_END static MACHINE_CONFIG_START( at586, at586_state ) MCFG_CPU_ADD("maincpu", PENTIUM, 60000000) MCFG_CPU_PROGRAM_MAP(at586_map) - MCFG_CPU_IO_MAP(at586_io) + MCFG_CPU_IO_MAP(at586_io) + MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("pcibus:1:i82371ab", southbridge_device,at_irq_callback) MCFG_RAM_ADD(RAM_TAG) MCFG_RAM_DEFAULT_SIZE("4M") @@ -649,6 +650,7 @@ static MACHINE_CONFIG_START( at586x3, at586_state ) MCFG_CPU_ADD("maincpu", PENTIUM, 60000000) MCFG_CPU_PROGRAM_MAP(at586_map) MCFG_CPU_IO_MAP(at586_io) + MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("pcibus:1:i82371sb", southbridge_device,at_irq_callback) MCFG_RAM_ADD(RAM_TAG) MCFG_RAM_DEFAULT_SIZE("4M")