summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/bus/c64/midi_sci.c
diff options
context:
space:
mode:
author smf- <smf-@users.noreply.github.com>2013-12-22 12:00:26 +0000
committer smf- <smf-@users.noreply.github.com>2013-12-22 12:00:26 +0000
commitb4c7b67ff9a1b12dd414502864cee66628b3bd19 (patch)
treed056e8e53b0778cde38a817def2c19eded32c18d /src/emu/bus/c64/midi_sci.c
parent8b0c23f055c9d6869f3a909072941f5c9025bb50 (diff)
replaced read rx/cts/dcd callbacks in ACIA6850 write write handlers, which allows multiple chips to be connected together without using glue methods. [smf]
Diffstat (limited to 'src/emu/bus/c64/midi_sci.c')
-rw-r--r--src/emu/bus/c64/midi_sci.c24
1 files changed, 3 insertions, 21 deletions
diff --git a/src/emu/bus/c64/midi_sci.c b/src/emu/bus/c64/midi_sci.c
index c62815ceaef..144e1510299 100644
--- a/src/emu/bus/c64/midi_sci.c
+++ b/src/emu/bus/c64/midi_sci.c
@@ -37,24 +37,11 @@ WRITE_LINE_MEMBER( c64_sequential_midi_cartridge_device::acia_irq_w )
m_slot->irq_w(state);
}
-READ_LINE_MEMBER( c64_sequential_midi_cartridge_device::rx_in )
-{
- return m_rx_state;
-}
-
-WRITE_LINE_MEMBER( c64_sequential_midi_cartridge_device::tx_out )
-{
- m_mdout->tx(state);
-}
-
static ACIA6850_INTERFACE( acia_intf )
{
500000,
0, // rx clock (we manually clock rx)
- DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, c64_sequential_midi_cartridge_device, rx_in),
- DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, c64_sequential_midi_cartridge_device, tx_out),
- DEVCB_NULL,
- DEVCB_NULL,
+ DEVCB_DEVICE_LINE_MEMBER("mdout", serial_port_device, tx),
DEVCB_NULL,
DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, c64_sequential_midi_cartridge_device, acia_irq_w)
};
@@ -70,7 +57,7 @@ SLOT_INTERFACE_END
WRITE_LINE_MEMBER( c64_sequential_midi_cartridge_device::midi_rx_w )
{
- m_rx_state = state;
+ m_acia->write_rx(state);
for (int i = 0; i < 16; i++) // divider is set to 16
{
@@ -125,9 +112,7 @@ machine_config_constructor c64_sequential_midi_cartridge_device::device_mconfig_
c64_sequential_midi_cartridge_device::c64_sequential_midi_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
device_t(mconfig, C64_MIDI_SCI, "C64 Sequential Circuits MIDI", tag, owner, clock, "c64_midisci", __FILE__),
device_c64_expansion_card_interface(mconfig, *this),
- m_acia(*this, MC6850_TAG),
- m_mdout(*this, "mdout"),
- m_rx_state(0)
+ m_acia(*this, MC6850_TAG)
{
}
@@ -139,7 +124,6 @@ c64_sequential_midi_cartridge_device::c64_sequential_midi_cartridge_device(const
void c64_sequential_midi_cartridge_device::device_start()
{
// state saving
- save_item(NAME(m_rx_state));
}
//-------------------------------------------------
@@ -149,8 +133,6 @@ void c64_sequential_midi_cartridge_device::device_start()
void c64_sequential_midi_cartridge_device::device_reset()
{
m_acia->reset();
-
- m_rx_state = 0;
}