mirror of
https://github.com/holub/mame
synced 2025-04-23 00:39:36 +03:00
some mess device callback cleanup (nw)
This commit is contained in:
parent
6173a2004f
commit
f6612d7d02
@ -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);
|
||||
};
|
||||
|
||||
|
||||
|
@ -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);
|
||||
};
|
||||
|
||||
|
||||
|
@ -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_ */
|
||||
|
@ -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_ */
|
||||
|
@ -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);
|
||||
};
|
||||
|
||||
|
||||
|
@ -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 */
|
||||
};
|
||||
|
||||
|
||||
|
@ -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,
|
||||
|
@ -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
|
||||
};
|
||||
|
||||
|
||||
|
@ -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 )
|
||||
|
@ -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)
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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 )
|
||||
|
@ -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;
|
||||
|
@ -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 )
|
||||
|
@ -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;
|
||||
|
@ -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 )
|
||||
|
@ -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);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user