summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/machine/adc083x.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/machine/adc083x.cpp')
-rw-r--r--src/devices/machine/adc083x.cpp27
1 files changed, 15 insertions, 12 deletions
diff --git a/src/devices/machine/adc083x.cpp b/src/devices/machine/adc083x.cpp
index 26323a1d146..8759cabe095 100644
--- a/src/devices/machine/adc083x.cpp
+++ b/src/devices/machine/adc083x.cpp
@@ -11,6 +11,8 @@
#include "emu.h"
#include "adc083x.h"
+#include <cstdarg>
+
#define VERBOSE_LEVEL ( 0 )
static inline void ATTR_PRINTF( 3, 4 ) verboselog( int n_level, device_t &device, const char *s_fmt, ... )
@@ -51,8 +53,8 @@ DEFINE_DEVICE_TYPE(ADC0832, adc0832_device, "adc0832", "ADC0832 A/D Converter")
DEFINE_DEVICE_TYPE(ADC0834, adc0834_device, "adc0834", "ADC0834 A/D Converter")
DEFINE_DEVICE_TYPE(ADC0838, adc0838_device, "adc0838", "ADC0838 A/D Converter")
-adc083x_device::adc083x_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t mux_bits)
- : device_t(mconfig, type, tag, owner, clock),
+adc083x_device::adc083x_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t mux_bits) :
+ device_t(mconfig, type, tag, owner, clock),
m_mux_bits(mux_bits),
m_cs(0),
m_clk(0),
@@ -65,7 +67,8 @@ adc083x_device::adc083x_device(const machine_config &mconfig, device_type type,
m_sel0(0),
m_state(STATE_IDLE),
m_bit(0),
- m_output(0)
+ m_output(0),
+ m_input_callback(*this)
{
}
@@ -97,10 +100,10 @@ void adc083x_device::device_start()
{
clear_sars();
- /* resolve callbacks */
- m_input_callback.bind_relative_to(*owner());
+ // resolve callbacks
+ m_input_callback.resolve();
- /* register for state saving */
+ // register for state saving
save_item( NAME(m_cs) );
save_item( NAME(m_clk) );
save_item( NAME(m_di) );
@@ -136,7 +139,7 @@ void adc083x_device::clear_sars()
adc083x_device::cs_write
-------------------------------------------------*/
-WRITE_LINE_MEMBER( adc083x_device::cs_write )
+void adc083x_device::cs_write(int state)
{
if( m_cs != state )
{
@@ -251,7 +254,7 @@ uint8_t adc083x_device::conversion()
adc083x_device::clk_write
-------------------------------------------------*/
-WRITE_LINE_MEMBER( adc083x_device::clk_write )
+void adc083x_device::clk_write(int state)
{
if( m_clk != state )
{
@@ -399,7 +402,7 @@ WRITE_LINE_MEMBER( adc083x_device::clk_write )
adc083x_device::di_write
-------------------------------------------------*/
-WRITE_LINE_MEMBER( adc083x_device::di_write )
+void adc083x_device::di_write(int state)
{
if( m_di != state )
{
@@ -413,7 +416,7 @@ WRITE_LINE_MEMBER( adc083x_device::di_write )
adc083x_device::se_write
-------------------------------------------------*/
-WRITE_LINE_MEMBER( adc083x_device::se_write )
+void adc083x_device::se_write(int state)
{
if( m_se != state )
{
@@ -427,7 +430,7 @@ WRITE_LINE_MEMBER( adc083x_device::se_write )
adc083x_device::sars_read
-------------------------------------------------*/
-READ_LINE_MEMBER( adc083x_device::sars_read )
+int adc083x_device::sars_read()
{
verboselog( 1, *this, "adc083x_sars_read( %s ) %d\n", tag(), m_sars );
return m_sars;
@@ -437,7 +440,7 @@ READ_LINE_MEMBER( adc083x_device::sars_read )
adc083x_device::do_read
-------------------------------------------------*/
-READ_LINE_MEMBER( adc083x_device::do_read )
+int adc083x_device::do_read()
{
verboselog( 1, *this, "adc083x_do_read( %s ) %d\n", tag(), m_do );
return m_do;