some mess device callback cleanup (nw)

This commit is contained in:
Miodrag Milanovic 2013-04-05 12:53:29 +00:00
parent 6173a2004f
commit f6612d7d02
17 changed files with 47 additions and 54 deletions

View File

@ -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);
};

View File

@ -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);
};

View File

@ -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_ */

View File

@ -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_ */

View File

@ -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);
};

View File

@ -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<apple3_state>();
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 */
};

View File

@ -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_state>();
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,

View File

@ -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
};

View File

@ -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<mac_state>();
/* 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_state>();
mac->set_via2_interrupt(state);
set_via2_interrupt(state);
}
READ16_MEMBER ( mac_state::mac_via2_r )

View File

@ -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)
{
}

View File

@ -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<microtan_state>();
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<microtan_state>();
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)

View File

@ -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<pc9801_state>();
/* 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 )

View File

@ -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<cpu_device> m_maincpu;
required_device<ym2608_device> m_opn3;

View File

@ -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<pc9801_state>();
/* 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 )

View File

@ -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<cpu_device> m_maincpu;
required_device<ym2203_device> m_opn;

View File

@ -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<pc9801_state>();
/* 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 )

View File

@ -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);