diff options
Diffstat (limited to 'src/devices/machine/at28c16.h')
-rw-r--r-- | src/devices/machine/at28c16.h | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/src/devices/machine/at28c16.h b/src/devices/machine/at28c16.h new file mode 100644 index 00000000000..f8f71011347 --- /dev/null +++ b/src/devices/machine/at28c16.h @@ -0,0 +1,74 @@ +// license:BSD-3-Clause +// copyright-holders:smf +/*************************************************************************** + + ATMEL AT28C16 + + 16K ( 2K x 8 ) Parallel EEPROM + +***************************************************************************/ + +#pragma once + +#ifndef __AT28C16_H__ +#define __AT28C16_H__ + + +//************************************************************************** +// INTERFACE CONFIGURATION MACROS +//************************************************************************** + +#define MCFG_AT28C16_ADD( _tag, _interface ) \ + MCFG_DEVICE_ADD( _tag, AT28C16, 0 ) + + +//************************************************************************** +// TYPE DEFINITIONS +//************************************************************************** + +// ======================> at28c16_device + +class at28c16_device : + public device_t, + public device_memory_interface, + public device_nvram_interface +{ +public: + // construction/destruction + at28c16_device( const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock ); + + // I/O operations + DECLARE_WRITE8_MEMBER( write ); + DECLARE_READ8_MEMBER( read ); + DECLARE_WRITE_LINE_MEMBER( set_a9_12v ); + DECLARE_WRITE_LINE_MEMBER( set_oe_12v ); + +protected: + // device-level overrides + virtual void device_config_complete(); + virtual void device_validity_check(validity_checker &valid) const; + virtual void device_start(); + virtual void device_reset(); + virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr); + + // device_memory_interface overrides + virtual const address_space_config *memory_space_config( address_spacenum spacenum = AS_0 ) const; + + // device_nvram_interface overrides + virtual void nvram_default(); + virtual void nvram_read( emu_file &file ); + virtual void nvram_write( emu_file &file ); + + // internal state + address_space_config m_space_config; + emu_timer *m_write_timer; + int m_a9_12v; + int m_oe_12v; + int m_last_write; +}; + + +// device type definition +extern const device_type AT28C16; + +#endif |