From f6612d7d022e668422a34019c28d767c633a4a50 Mon Sep 17 00:00:00 2001 From: Miodrag Milanovic Date: Fri, 5 Apr 2013 12:53:29 +0000 Subject: [PATCH] some mess device callback cleanup (nw) --- src/mess/includes/apple3.h | 1 + src/mess/includes/c65.h | 1 + src/mess/includes/mac.h | 2 ++ src/mess/includes/macpci.h | 1 + src/mess/includes/microtan.h | 2 ++ src/mess/machine/apple3.c | 13 ++++++------- src/mess/machine/c65.c | 7 +++---- src/mess/machine/ecb_grip.c | 4 ++-- src/mess/machine/mac.c | 19 +++++++------------ src/mess/machine/macpci.c | 6 ++---- src/mess/machine/microtan.c | 18 ++++++++---------- src/mess/machine/pc9801_118.c | 8 +++----- src/mess/machine/pc9801_118.h | 1 + src/mess/machine/pc9801_26.c | 8 +++----- src/mess/machine/pc9801_26.h | 1 + src/mess/machine/pc9801_86.c | 8 +++----- src/mess/machine/pc9801_86.h | 1 + 17 files changed, 47 insertions(+), 54 deletions(-) diff --git a/src/mess/includes/apple3.h b/src/mess/includes/apple3.h index 21473cbc328..913a04f07ac 100644 --- a/src/mess/includes/apple3.h +++ b/src/mess/includes/apple3.h @@ -67,6 +67,7 @@ public: DECLARE_WRITE8_MEMBER(apple3_via_0_out_b); DECLARE_WRITE8_MEMBER(apple3_via_1_out_a); DECLARE_WRITE8_MEMBER(apple3_via_1_out_b); + DECLARE_WRITE_LINE_MEMBER(apple2_via_1_irq_func); }; diff --git a/src/mess/includes/c65.h b/src/mess/includes/c65.h index e335d30058f..560ab18fccb 100644 --- a/src/mess/includes/c65.h +++ b/src/mess/includes/c65.h @@ -141,6 +141,7 @@ public: void c64_legacy_driver_init(); DECLARE_DEVICE_IMAGE_LOAD_MEMBER( c64_cart ); DECLARE_DEVICE_IMAGE_UNLOAD_MEMBER( c64_cart ); + DECLARE_WRITE_LINE_MEMBER(c65_cia0_interrupt); }; diff --git a/src/mess/includes/mac.h b/src/mess/includes/mac.h index 8b1a5223f44..51818a81fda 100644 --- a/src/mess/includes/mac.h +++ b/src/mess/includes/mac.h @@ -510,6 +510,8 @@ public: DECLARE_WRITE8_MEMBER(mac_via2_out_b); DECLARE_WRITE_LINE_MEMBER(mac_kbd_clk_in); void mac_state_load(); + DECLARE_WRITE_LINE_MEMBER(mac_via_irq); + DECLARE_WRITE_LINE_MEMBER(mac_via2_irq); }; #endif /* MAC_H_ */ diff --git a/src/mess/includes/macpci.h b/src/mess/includes/macpci.h index b679aac90dc..f5f327fc539 100644 --- a/src/mess/includes/macpci.h +++ b/src/mess/includes/macpci.h @@ -166,6 +166,7 @@ public: DECLARE_WRITE8_MEMBER(mac_via_out_b); DECLARE_READ8_MEMBER(mac_adb_via_in_cb2); DECLARE_WRITE8_MEMBER(mac_adb_via_out_cb2); + DECLARE_WRITE_LINE_MEMBER(mac_via_irq); }; #endif /* PCIMAC_H_ */ diff --git a/src/mess/includes/microtan.h b/src/mess/includes/microtan.h index 8199b39caf5..fcd06f93754 100644 --- a/src/mess/includes/microtan.h +++ b/src/mess/includes/microtan.h @@ -75,6 +75,8 @@ public: DECLARE_WRITE8_MEMBER(via_1_out_b); DECLARE_WRITE8_MEMBER(via_1_out_ca2); DECLARE_WRITE8_MEMBER(via_1_out_cb2); + DECLARE_WRITE_LINE_MEMBER(via_0_irq); + DECLARE_WRITE_LINE_MEMBER(via_1_irq); }; diff --git a/src/mess/machine/apple3.c b/src/mess/machine/apple3.c index 7843c322c14..10290837e09 100644 --- a/src/mess/machine/apple3.c +++ b/src/mess/machine/apple3.c @@ -491,15 +491,14 @@ WRITE8_MEMBER(apple3_state::apple3_via_1_out_b) apple3_via_out(machine(), &m_via_1_b, data); } -static void apple2_via_1_irq_func(device_t *device, int state) +WRITE_LINE_MEMBER(apple3_state::apple2_via_1_irq_func) { - apple3_state *drvstate = device->machine().driver_data(); - if (!drvstate->m_via_1_irq && state) + if (!m_via_1_irq && state) { - device->machine().device("maincpu")->execute().set_input_line(M6502_IRQ_LINE, ASSERT_LINE); - device->machine().device("maincpu")->execute().set_input_line(M6502_IRQ_LINE, CLEAR_LINE); + machine().device("maincpu")->execute().set_input_line(M6502_IRQ_LINE, ASSERT_LINE); + machine().device("maincpu")->execute().set_input_line(M6502_IRQ_LINE, CLEAR_LINE); } - drvstate->m_via_1_irq = state; + m_via_1_irq = state; } const via6522_interface apple3_via_0_intf = @@ -533,7 +532,7 @@ const via6522_interface apple3_via_1_intf = DEVCB_NULL, /* out_cb1_func */ DEVCB_NULL, /* out_ca2_func */ DEVCB_NULL, /* out_cb2_func */ - DEVCB_LINE(apple2_via_1_irq_func) /* irq_func */ + DEVCB_DRIVER_LINE_MEMBER(apple3_state,apple2_via_1_irq_func) /* irq_func */ }; diff --git a/src/mess/machine/c65.c b/src/mess/machine/c65.c index d5419ebf591..f03baf36e76 100644 --- a/src/mess/machine/c65.c +++ b/src/mess/machine/c65.c @@ -108,10 +108,9 @@ static void c65_irq( running_machine &machine, int level ) } /* is this correct for c65 as well as c64? */ -static void c65_cia0_interrupt( device_t *device, int level ) +WRITE_LINE_MEMBER(c65_state::c65_cia0_interrupt) { - c65_state *state = device->machine().driver_data(); - c65_irq (device->machine(), level || state->m_vicirq); + c65_irq (machine(), state || m_vicirq); } /* is this correct for c65 as well as c64? */ @@ -130,7 +129,7 @@ void c65_vic_interrupt( running_machine &machine, int level ) const legacy_mos6526_interface c65_cia0 = { - DEVCB_LINE(c65_cia0_interrupt), + DEVCB_DRIVER_LINE_MEMBER(c65_state, c65_cia0_interrupt), DEVCB_NULL, /* pc_func */ DEVCB_NULL, DEVCB_NULL, diff --git a/src/mess/machine/ecb_grip.c b/src/mess/machine/ecb_grip.c index 27599de9dd8..9cc3886dbf6 100644 --- a/src/mess/machine/ecb_grip.c +++ b/src/mess/machine/ecb_grip.c @@ -481,8 +481,8 @@ static Z80STI_INTERFACE( sti_intf ) DEVCB_NULL, // serial output DEVCB_NULL, // timer A output DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, grip_device, speaker_w), // timer B output - DEVCB_LINE(z80sti_tc_w), // timer C output - DEVCB_LINE(z80sti_rc_w) // timer D output + DEVCB_DEVICE_LINE(DEVICE_SELF, z80sti_tc_w), // timer C output + DEVCB_DEVICE_LINE(DEVICE_SELF, z80sti_rc_w) // timer D output }; diff --git a/src/mess/machine/mac.c b/src/mess/machine/mac.c index 017cffd836b..4288b0aee4d 100644 --- a/src/mess/machine/mac.c +++ b/src/mess/machine/mac.c @@ -133,8 +133,6 @@ static int scan_keyboard(running_machine &machine); static void keyboard_receive(running_machine &machine, int val); -static void mac_via_irq(device_t *device, int state); -static void mac_via2_irq(device_t *device, int state); static offs_t mac_dasm_override(device_t &device, char *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram, int options); const via6522_interface mac_via6522_intf = @@ -145,7 +143,7 @@ const via6522_interface mac_via6522_intf = DEVCB_DRIVER_MEMBER(mac_state,mac_via_out_a), DEVCB_DRIVER_MEMBER(mac_state,mac_via_out_b), DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_DRIVER_MEMBER(mac_state,mac_via_out_cb2), - DEVCB_LINE(mac_via_irq) + DEVCB_DRIVER_LINE_MEMBER(mac_state,mac_via_irq) }; const via6522_interface mac_via6522_adb_intf = @@ -156,7 +154,7 @@ const via6522_interface mac_via6522_adb_intf = DEVCB_DRIVER_MEMBER(mac_state,mac_via_out_a), DEVCB_DRIVER_MEMBER(mac_state,mac_via_out_b), DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_DRIVER_MEMBER(mac_state,mac_adb_via_out_cb2), - DEVCB_LINE(mac_via_irq) + DEVCB_DRIVER_LINE_MEMBER(mac_state,mac_via_irq) }; const via6522_interface mac_via6522_2_intf = @@ -167,7 +165,7 @@ const via6522_interface mac_via6522_2_intf = DEVCB_DRIVER_MEMBER(mac_state,mac_via2_out_a), DEVCB_DRIVER_MEMBER(mac_state,mac_via2_out_b), DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, - DEVCB_LINE(mac_via2_irq) + DEVCB_DRIVER_LINE_MEMBER(mac_state,mac_via2_irq) }; // returns non-zero if this Mac has ADB @@ -1535,12 +1533,10 @@ WRITE8_MEMBER(mac_state::mac_via_out_b) } } -static void mac_via_irq(device_t *device, int state) +WRITE_LINE_MEMBER(mac_state::mac_via_irq) { - mac_state *mac = device->machine().driver_data(); - /* interrupt the 68k (level 1) */ - mac->set_via_interrupt(state); + set_via_interrupt(state); } READ16_MEMBER ( mac_state::mac_via_r ) @@ -1579,10 +1575,9 @@ WRITE16_MEMBER ( mac_state::mac_via_w ) * VIA 2 (on Mac IIs and PowerMacs) * *************************************************************************/ -static void mac_via2_irq(device_t *device, int state) +WRITE_LINE_MEMBER(mac_state::mac_via2_irq) { - mac_state *mac = device->machine().driver_data(); - mac->set_via2_interrupt(state); + set_via2_interrupt(state); } READ16_MEMBER ( mac_state::mac_via2_r ) diff --git a/src/mess/machine/macpci.c b/src/mess/machine/macpci.c index 8f8c70c531e..e4a4033024c 100644 --- a/src/mess/machine/macpci.c +++ b/src/mess/machine/macpci.c @@ -26,8 +26,6 @@ /* VIA1 Handlers */ -static void mac_via_irq(device_t *device, int state); - const via6522_interface pcimac_via6522_intf = { DEVCB_DRIVER_MEMBER(macpci_state,mac_via_in_a), DEVCB_DRIVER_MEMBER(macpci_state,mac_via_in_b), @@ -36,10 +34,10 @@ const via6522_interface pcimac_via6522_intf = DEVCB_DRIVER_MEMBER(macpci_state,mac_via_out_a), DEVCB_DRIVER_MEMBER(macpci_state,mac_via_out_b), DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_DRIVER_MEMBER(macpci_state,mac_adb_via_out_cb2), - DEVCB_LINE(mac_via_irq) + DEVCB_DRIVER_LINE_MEMBER(macpci_state,mac_via_irq) }; -static void mac_via_irq(device_t *device, int state) +WRITE_LINE_MEMBER(macpci_state::mac_via_irq) { } diff --git a/src/mess/machine/microtan.c b/src/mess/machine/microtan.c index 0e83c016afc..220a5b803fe 100644 --- a/src/mess/machine/microtan.c +++ b/src/mess/machine/microtan.c @@ -225,12 +225,11 @@ WRITE8_MEMBER(microtan_state::via_0_out_cb2) LOG(("microtan_via_0_out_cb2 %d\n", data)); } -static void via_0_irq(device_t *device, int state) +WRITE_LINE_MEMBER(microtan_state::via_0_irq) { - microtan_state *drvstate = device->machine().driver_data(); LOG(("microtan_via_0_irq %d\n", state)); - drvstate->m_via_0_irq_line = state; - microtan_set_irq_line(device->machine()); + m_via_0_irq_line = state; + microtan_set_irq_line(machine()); } /************************************************************** @@ -298,12 +297,11 @@ WRITE8_MEMBER(microtan_state::via_1_out_cb2) LOG(("microtan_via_1_out_cb2 %d\n", data)); } -static void via_1_irq(device_t *device, int state) +WRITE_LINE_MEMBER(microtan_state::via_1_irq) { - microtan_state *drvstate = device->machine().driver_data(); LOG(("microtan_via_1_irq %d\n", state)); - drvstate->m_via_1_irq_line = state; - microtan_set_irq_line(device->machine()); + m_via_1_irq_line = state; + microtan_set_irq_line(machine()); } /************************************************************** @@ -318,7 +316,7 @@ const via6522_interface microtan_via6522_0 = DEVCB_DRIVER_MEMBER(microtan_state,via_0_out_a), DEVCB_DRIVER_MEMBER(microtan_state,via_0_out_b), DEVCB_NULL, DEVCB_NULL, DEVCB_DRIVER_MEMBER(microtan_state,via_0_out_ca2),DEVCB_DRIVER_MEMBER(microtan_state,via_0_out_cb2), - DEVCB_LINE(via_0_irq) + DEVCB_DRIVER_LINE_MEMBER(microtan_state,via_0_irq) }; const via6522_interface microtan_via6522_1 = @@ -330,7 +328,7 @@ const via6522_interface microtan_via6522_1 = DEVCB_DRIVER_MEMBER(microtan_state,via_1_out_a), DEVCB_DRIVER_MEMBER(microtan_state,via_1_out_b), DEVCB_NULL, DEVCB_NULL, DEVCB_DRIVER_MEMBER(microtan_state,via_1_out_ca2),DEVCB_DRIVER_MEMBER(microtan_state,via_1_out_cb2), - DEVCB_LINE(via_1_irq) + DEVCB_DRIVER_LINE_MEMBER(microtan_state,via_1_irq) }; TIMER_CALLBACK_MEMBER(microtan_state::microtan_read_cassette) diff --git a/src/mess/machine/pc9801_118.c b/src/mess/machine/pc9801_118.c index b0a24d2d917..32ebc0936f7 100644 --- a/src/mess/machine/pc9801_118.c +++ b/src/mess/machine/pc9801_118.c @@ -35,12 +35,10 @@ READ8_MEMBER(pc9801_118_device::opn_porta_r) WRITE8_MEMBER(pc9801_118_device::opn_portb_w){ m_joy_sel = data; } -static void pc9801_sound_irq( device_t *device, int irq ) +WRITE_LINE_MEMBER(pc9801_118_device::pc9801_sound_irq) { -// pc9801_state *state = device->machine().driver_data(); - /* TODO: seems to die very often */ - pic8259_ir4_w(device->machine().device("pic8259_slave"), irq); + pic8259_ir4_w(machine().device("pic8259_slave"), state); } static const ym2608_interface pc98_ym2608_intf = @@ -53,7 +51,7 @@ static const ym2608_interface pc98_ym2608_intf = DEVCB_NULL,//(pc9801_state,opn_porta_w), DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, pc9801_118_device,opn_portb_w), }, - DEVCB_LINE(pc9801_sound_irq) + DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, pc9801_118_device,pc9801_sound_irq) }; static MACHINE_CONFIG_FRAGMENT( pc9801_118_config ) diff --git a/src/mess/machine/pc9801_118.h b/src/mess/machine/pc9801_118.h index 4e56f19ef8b..6c899ffff2b 100644 --- a/src/mess/machine/pc9801_118.h +++ b/src/mess/machine/pc9801_118.h @@ -36,6 +36,7 @@ public: DECLARE_WRITE8_MEMBER(pc9801_118_w); DECLARE_READ8_MEMBER(pc9801_118_ext_r); DECLARE_WRITE8_MEMBER(pc9801_118_ext_w); + DECLARE_WRITE_LINE_MEMBER(pc9801_sound_irq); // required_device m_maincpu; required_device m_opn3; diff --git a/src/mess/machine/pc9801_26.c b/src/mess/machine/pc9801_26.c index eddae0833c6..1ca6831fa23 100644 --- a/src/mess/machine/pc9801_26.c +++ b/src/mess/machine/pc9801_26.c @@ -35,12 +35,10 @@ READ8_MEMBER(pc9801_26_device::opn_porta_r) WRITE8_MEMBER(pc9801_26_device::opn_portb_w){ m_joy_sel = data; } -static void pc9801_sound_irq( device_t *device, int irq ) +WRITE_LINE_MEMBER(pc9801_26_device::pc9801_sound_irq) { -// pc9801_state *state = device->machine().driver_data(); - /* TODO: seems to die very often */ - pic8259_ir4_w(device->machine().device("pic8259_slave"), irq); + pic8259_ir4_w(machine().device("pic8259_slave"), state); } static const ym2203_interface pc98_ym2203_intf = @@ -53,7 +51,7 @@ static const ym2203_interface pc98_ym2203_intf = DEVCB_NULL,//(pc9801_state,opn_porta_w), DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, pc9801_26_device,opn_portb_w), }, - DEVCB_LINE(pc9801_sound_irq) + DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, pc9801_26_device,pc9801_sound_irq) }; static MACHINE_CONFIG_FRAGMENT( pc9801_26_config ) diff --git a/src/mess/machine/pc9801_26.h b/src/mess/machine/pc9801_26.h index c6d40f59b91..e48a23d7ca3 100644 --- a/src/mess/machine/pc9801_26.h +++ b/src/mess/machine/pc9801_26.h @@ -34,6 +34,7 @@ public: DECLARE_WRITE8_MEMBER(opn_portb_w); DECLARE_READ8_MEMBER(pc9801_26_r); DECLARE_WRITE8_MEMBER(pc9801_26_w); + DECLARE_WRITE_LINE_MEMBER(pc9801_sound_irq); // required_device m_maincpu; required_device m_opn; diff --git a/src/mess/machine/pc9801_86.c b/src/mess/machine/pc9801_86.c index cfa84e01123..e8bec291344 100644 --- a/src/mess/machine/pc9801_86.c +++ b/src/mess/machine/pc9801_86.c @@ -35,12 +35,10 @@ READ8_MEMBER(pc9801_86_device::opn_porta_r) WRITE8_MEMBER(pc9801_86_device::opn_portb_w){ m_joy_sel = data; } -static void pc9801_sound_irq( device_t *device, int irq ) +WRITE_LINE_MEMBER(pc9801_86_device::pc9801_sound_irq) { -// pc9801_state *state = device->machine().driver_data(); - /* TODO: seems to die very often */ - pic8259_ir4_w(device->machine().device("pic8259_slave"), irq); + pic8259_ir4_w(machine().device("pic8259_slave"), state); } static const ym2608_interface pc98_ym2608_intf = @@ -53,7 +51,7 @@ static const ym2608_interface pc98_ym2608_intf = DEVCB_NULL,//(pc9801_state,opn_porta_w), DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, pc9801_86_device,opn_portb_w), }, - DEVCB_LINE(pc9801_sound_irq) + DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, pc9801_86_device,pc9801_sound_irq) }; static MACHINE_CONFIG_FRAGMENT( pc9801_86_config ) diff --git a/src/mess/machine/pc9801_86.h b/src/mess/machine/pc9801_86.h index 35f3b5ef9a2..6cf255b586f 100644 --- a/src/mess/machine/pc9801_86.h +++ b/src/mess/machine/pc9801_86.h @@ -33,6 +33,7 @@ public: DECLARE_WRITE8_MEMBER(opn_portb_w); DECLARE_READ8_MEMBER(pc9801_86_r); DECLARE_WRITE8_MEMBER(pc9801_86_w); + DECLARE_WRITE_LINE_MEMBER(pc9801_sound_irq); // DECLARE_READ8_MEMBER(pc9801_86_ext_r); // DECLARE_WRITE8_MEMBER(pc9801_86_ext_w);