summaryrefslogtreecommitdiffstatshomepage
path: root/src/mess/machine/ieee488.c
diff options
context:
space:
mode:
author Curt Coder <curtcoder@mail.com>2013-02-12 15:21:24 +0000
committer Curt Coder <curtcoder@mail.com>2013-02-12 15:21:24 +0000
commit7e6fabfb9e6797461c3f8f037ab1d4e8a4c69c04 (patch)
treec65a6911f296e74a918caaf39a5e6fc3fa56588e /src/mess/machine/ieee488.c
parent8acbf9de2c66b6536969af8f621681a584a1d8c9 (diff)
Modernized the MOS6526, MOS6560, MOS7360, MOS6581, CBM IEC, and IEEE-488 devices. [Curt Coder]
Diffstat (limited to 'src/mess/machine/ieee488.c')
-rw-r--r--src/mess/machine/ieee488.c74
1 files changed, 25 insertions, 49 deletions
diff --git a/src/mess/machine/ieee488.c b/src/mess/machine/ieee488.c
index 1f80106b096..17182109655 100644
--- a/src/mess/machine/ieee488.c
+++ b/src/mess/machine/ieee488.c
@@ -96,39 +96,6 @@ void ieee488_slot_device::device_start()
//**************************************************************************
-// DEVICE CONFIGURATION
-//**************************************************************************
-
-//-------------------------------------------------
-// device_config_complete - perform any
-// operations now that the configuration is
-// complete
-//-------------------------------------------------
-
-void ieee488_device::device_config_complete()
-{
- // inherit a copy of the static data
- const ieee488_interface *intf = reinterpret_cast<const ieee488_interface *>(static_config());
- if (intf != NULL)
- *static_cast<ieee488_interface *>(this) = *intf;
-
- // or initialize to defaults if none provided
- else
- {
- memset(&m_out_eoi_cb, 0, sizeof(m_out_eoi_cb));
- memset(&m_out_dav_cb, 0, sizeof(m_out_dav_cb));
- memset(&m_out_nrfd_cb, 0, sizeof(m_out_nrfd_cb));
- memset(&m_out_ndac_cb, 0, sizeof(m_out_ndac_cb));
- memset(&m_out_ifc_cb, 0, sizeof(m_out_ifc_cb));
- memset(&m_out_srq_cb, 0, sizeof(m_out_srq_cb));
- memset(&m_out_atn_cb, 0, sizeof(m_out_atn_cb));
- memset(&m_out_ren_cb, 0, sizeof(m_out_ren_cb));
- }
-}
-
-
-
-//**************************************************************************
// INLINE HELPERS
//**************************************************************************
@@ -173,14 +140,14 @@ inline void ieee488_device::set_signal(device_t *device, int signal, int state)
{
switch (signal)
{
- case EOI: m_out_eoi_func(state); break;
- case DAV: m_out_dav_func(state); break;
- case NRFD: m_out_nrfd_func(state); break;
- case NDAC: m_out_ndac_func(state); break;
- case IFC: m_out_ifc_func(state); break;
- case SRQ: m_out_srq_func(state); break;
- case ATN: m_out_atn_func(state); break;
- case REN: m_out_ren_func(state); break;
+ case EOI: m_write_eoi(state); break;
+ case DAV: m_write_dav(state); break;
+ case NRFD: m_write_nrfd(state); break;
+ case NDAC: m_write_ndac(state); break;
+ case IFC: m_write_ifc(state); break;
+ case SRQ: m_write_srq(state); break;
+ case ATN: m_write_atn(state); break;
+ case REN: m_write_ren(state); break;
}
daisy_entry *entry = m_device_list.first();
@@ -325,6 +292,14 @@ inline UINT8 ieee488_device::get_data()
ieee488_device::ieee488_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
: device_t(mconfig, IEEE488, "IEEE488 bus", tag, owner, clock),
+ m_write_eoi(*this),
+ m_write_dav(*this),
+ m_write_nrfd(*this),
+ m_write_ndac(*this),
+ m_write_ifc(*this),
+ m_write_srq(*this),
+ m_write_atn(*this),
+ m_write_ren(*this),
m_dio(0xff)
{
for (int i = 0; i < SIGNAL_COUNT; i++)
@@ -341,16 +316,17 @@ ieee488_device::ieee488_device(const machine_config &mconfig, const char *tag, d
void ieee488_device::device_start()
{
// resolve callbacks
- m_out_eoi_func.resolve(m_out_eoi_cb, *this);
- m_out_dav_func.resolve(m_out_dav_cb, *this);
- m_out_nrfd_func.resolve(m_out_nrfd_cb, *this);
- m_out_ndac_func.resolve(m_out_ndac_cb, *this);
- m_out_ifc_func.resolve(m_out_ifc_cb, *this);
- m_out_srq_func.resolve(m_out_srq_cb, *this);
- m_out_atn_func.resolve(m_out_atn_cb, *this);
- m_out_ren_func.resolve(m_out_ren_cb, *this);
+ m_write_eoi.resolve_safe();
+ m_write_dav.resolve_safe();
+ m_write_nrfd.resolve_safe();
+ m_write_ndac.resolve_safe();
+ m_write_ifc.resolve_safe();
+ m_write_srq.resolve_safe();
+ m_write_atn.resolve_safe();
+ m_write_ren.resolve_safe();
}
+
//-------------------------------------------------
// device_stop - device-specific stop
//-------------------------------------------------