diff options
Diffstat (limited to 'trunk/src/emu/machine/e0516.h')
-rw-r--r-- | trunk/src/emu/machine/e0516.h | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/trunk/src/emu/machine/e0516.h b/trunk/src/emu/machine/e0516.h new file mode 100644 index 00000000000..02424f63cb3 --- /dev/null +++ b/trunk/src/emu/machine/e0516.h @@ -0,0 +1,83 @@ +/********************************************************************** + + Microelectronic-Marin E050-16 Real Time Clock emulation + + Copyright MESS Team. + Visit http://mamedev.org for licensing and usage restrictions. + +********************************************************************** + _____ _____ + Vdd1 1 |* \_/ | 16 Vdd2 + OSC IN 2 | | 15 Clk + OSC OUT 3 | | 14 XOUT + _STOP 4 | E05-16 | 13 DI/O + _RESET 5 | E050-16 | 12 _SEC + _OUTSEL 6 | | 11 _MIN + _DAY 7 | | 10 _HRS + Vss 8 |_____________| 9 _CS + +**********************************************************************/ + +#pragma once + +#ifndef __E0516__ +#define __E0516__ + +#include "emu.h" + + + +//************************************************************************** +// INTERFACE CONFIGURATION MACROS +//************************************************************************** + +#define MCFG_E0516_ADD(_tag, _clock) \ + MCFG_DEVICE_ADD(_tag, E0516, _clock) + + + +//************************************************************************** +// TYPE DEFINITIONS +//************************************************************************** + +// ======================> e0516_device + +class e0516_device : public device_t, + public device_rtc_interface +{ +public: + // construction/destruction + e0516_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + + DECLARE_WRITE_LINE_MEMBER( cs_w ); + DECLARE_WRITE_LINE_MEMBER( clk_w ); + DECLARE_WRITE_LINE_MEMBER( dio_w ); + DECLARE_READ_LINE_MEMBER( dio_r ); + +protected: + // device-level overrides + virtual void device_start(); + virtual void device_reset(); + virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr); + +private: + int m_cs; // chip select + int m_clk; // clock + int m_data_latch; // data latch + int m_reg_latch; // register latch + int m_read_write; // read/write data + int m_state; // state + int m_bits; // number of bits transferred + int m_dio; // data pin + + // timers + emu_timer *m_timer; +}; + + +// device type definition +extern const device_type E0516; + + + +#endif |