summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/machine/adc1213x.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/emu/machine/adc1213x.h')
-rw-r--r--src/emu/machine/adc1213x.h69
1 files changed, 39 insertions, 30 deletions
diff --git a/src/emu/machine/adc1213x.h b/src/emu/machine/adc1213x.h
index bb12cddaca7..aa2209884fa 100644
--- a/src/emu/machine/adc1213x.h
+++ b/src/emu/machine/adc1213x.h
@@ -10,30 +10,61 @@
#ifndef __ADC1213X_H__
#define __ADC1213X_H__
-#include "devlegcy.h"
+/***************************************************************************
+ TYPE DEFINITIONS
+***************************************************************************/
+
+typedef double (*adc1213x_input_convert_func)(device_t *device, UINT8 input);
+
+struct adc12138_interface
+{
+ adc1213x_input_convert_func input_callback_r;
+};
/***************************************************************************
MACROS / CONSTANTS
***************************************************************************/
-class adc12138_device : public device_t
+class adc12138_device : public device_t,
+ public adc12138_interface
{
public:
adc12138_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
adc12138_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock);
- ~adc12138_device() { global_free(m_token); }
-
- // access to legacy token
- void *token() const { assert(m_token != NULL); return m_token; }
+ ~adc12138_device() {}
+
+ DECLARE_WRITE8_MEMBER( di_w );
+ DECLARE_WRITE8_MEMBER( cs_w );
+ DECLARE_WRITE8_MEMBER( sclk_w );
+ DECLARE_WRITE8_MEMBER( conv_w );
+ DECLARE_READ8_MEMBER( do_r );
+ DECLARE_READ8_MEMBER( eoc_r );
+
protected:
// device-level overrides
virtual void device_config_complete();
virtual void device_start();
virtual void device_reset();
-private:
+
+ void convert(int channel, int bits16, int lsbfirst);
+
+ adc1213x_input_convert_func m_input_callback_r_func;
+
+ private:
// internal state
- void *m_token;
+ int m_cycle;
+ int m_data_out;
+ int m_data_in;
+ int m_conv_mode;
+ int m_auto_cal;
+ int m_auto_zero;
+ int m_acq_time;
+ int m_data_out_sign;
+ int m_mode;
+ int m_input_shift_reg;
+ int m_output_shift_reg;
+ int m_end_conv;
};
extern const device_type ADC12138;
@@ -67,26 +98,4 @@ extern const device_type ADC12132;
MCFG_DEVICE_CONFIG(_config)
-/***************************************************************************
- TYPE DEFINITIONS
-***************************************************************************/
-
-typedef double (*adc1213x_input_convert_func)(device_t *device, UINT8 input);
-
-struct adc12138_interface
-{
- adc1213x_input_convert_func input_callback_r;
-};
-
-/***************************************************************************
- PROTOTYPES
-***************************************************************************/
-
-extern DECLARE_WRITE8_DEVICE_HANDLER( adc1213x_di_w );
-extern DECLARE_WRITE8_DEVICE_HANDLER( adc1213x_cs_w );
-extern DECLARE_WRITE8_DEVICE_HANDLER( adc1213x_sclk_w );
-extern DECLARE_WRITE8_DEVICE_HANDLER( adc1213x_conv_w );
-extern DECLARE_READ8_DEVICE_HANDLER( adc1213x_do_r );
-extern DECLARE_READ8_DEVICE_HANDLER( adc1213x_eoc_r );
-
#endif /* __ADC1213X_H__ */