summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--.gitattributes2
-rw-r--r--src/emu/machine/eeprom.c8
-rw-r--r--src/emu/machine/eeprompar.c163
-rw-r--r--src/emu/machine/eeprompar.h123
-rw-r--r--src/emu/machine/machine.mak2
-rw-r--r--src/mame/drivers/arcadecl.c6
-rw-r--r--src/mame/drivers/atarig1.c8
-rw-r--r--src/mame/drivers/atarig42.c19
-rw-r--r--src/mame/drivers/atarigt.c9
-rw-r--r--src/mame/drivers/atarigx2.c7
-rw-r--r--src/mame/drivers/atarisy1.c7
-rw-r--r--src/mame/drivers/atarisy2.c101
-rw-r--r--src/mame/drivers/badlands.c14
-rw-r--r--src/mame/drivers/batman.c11
-rw-r--r--src/mame/drivers/blstroid.c7
-rw-r--r--src/mame/drivers/cyberbal.c68
-rw-r--r--src/mame/drivers/eprom.c17
-rw-r--r--src/mame/drivers/gauntlet.c8
-rw-r--r--src/mame/drivers/harddriv.c116
-rw-r--r--src/mame/drivers/klax.c7
-rw-r--r--src/mame/drivers/offtwall.c15
-rw-r--r--src/mame/drivers/rampart.c20
-rw-r--r--src/mame/drivers/relief.c22
-rw-r--r--src/mame/drivers/shuuz.c6
-rw-r--r--src/mame/drivers/skullxbo.c8
-rw-r--r--src/mame/drivers/thunderj.c7
-rw-r--r--src/mame/drivers/toobin.c8
-rw-r--r--src/mame/drivers/vindictr.c7
-rw-r--r--src/mame/drivers/xybots.c7
-rw-r--r--src/mame/includes/cyberbal.h4
-rw-r--r--src/mame/includes/harddriv.h3
-rw-r--r--src/mame/machine/atarigen.c199
-rw-r--r--src/mame/machine/atarigen.h86
-rw-r--r--src/mame/machine/harddriv.c4
34 files changed, 771 insertions, 328 deletions
diff --git a/.gitattributes b/.gitattributes
index 589d04add7a..b09bca52997 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -1235,6 +1235,8 @@ src/emu/machine/e0516.c svneol=native#text/plain
src/emu/machine/e0516.h svneol=native#text/plain
src/emu/machine/eeprom.c svneol=native#text/plain
src/emu/machine/eeprom.h svneol=native#text/plain
+src/emu/machine/eeprompar.c svneol=native#text/plain
+src/emu/machine/eeprompar.h svneol=native#text/plain
src/emu/machine/eepromser.c svneol=native#text/plain
src/emu/machine/eepromser.h svneol=native#text/plain
src/emu/machine/er2055.c svneol=native#text/plain
diff --git a/src/emu/machine/eeprom.c b/src/emu/machine/eeprom.c
index 35009981126..a12a8da293e 100644
--- a/src/emu/machine/eeprom.c
+++ b/src/emu/machine/eeprom.c
@@ -56,11 +56,11 @@
//**************************************************************************
static ADDRESS_MAP_START( eeprom_map8, AS_PROGRAM, 8, eeprom_base_device )
- AM_RANGE(0x0000, 0x0fff) AM_RAM
+ AM_RANGE(0x00000, 0xfffff) AM_RAM
ADDRESS_MAP_END
static ADDRESS_MAP_START( eeprom_map16, AS_PROGRAM, 16, eeprom_base_device )
- AM_RANGE(0x0000, 0x07ff) AM_RAM
+ AM_RANGE(0x00000, 0x7ffff) AM_RAM
ADDRESS_MAP_END
@@ -306,6 +306,8 @@ void eeprom_base_device::nvram_default()
// handle hard-coded data from the driver
if (m_default_data.u8 != NULL)
+ {
+ mame_printf_verbose("Warning: Driver-specific EEPROM defaults are going away soon.\n");
for (offs_t offs = 0; offs < m_default_data_size; offs++)
{
if (m_data_bits == 8)
@@ -313,6 +315,7 @@ void eeprom_base_device::nvram_default()
else
m_addrspace[0]->write_word(offs * 2, m_default_data.u16[offs]);
}
+ }
// populate from a memory region if present
if (m_region != NULL)
@@ -323,6 +326,7 @@ void eeprom_base_device::nvram_default()
fatalerror("eeprom region '%s' needs to be an 8-bit region\n", tag());
if (m_data_bits == 16 && (m_region->width() != 2 || m_region->endianness() != ENDIANNESS_BIG))
fatalerror("eeprom region '%s' needs to be a 16-bit big-endian region\n", tag());
+ mame_printf_verbose("Loading data from EEPROM region '%s'\n", tag());
for (offs_t offs = 0; offs < eeprom_length; offs++)
if (m_data_bits == 8)
diff --git a/src/emu/machine/eeprompar.c b/src/emu/machine/eeprompar.c
new file mode 100644
index 00000000000..b4417613c6d
--- /dev/null
+++ b/src/emu/machine/eeprompar.c
@@ -0,0 +1,163 @@
+/***************************************************************************
+
+ eeprompar.c
+
+ Parallel EEPROM devices.
+
+****************************************************************************
+
+ Copyright Aaron Giles
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are
+ met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+ * Neither the name 'MAME' nor the names of its contributors may be
+ used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY AARON GILES ''AS IS'' AND ANY EXPRESS OR
+ IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL AARON GILES BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
+ IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+
+****************************************************************************
+
+ Parallel EEPROMs are generally simpler than serial EEPROMs, though
+ they require more pins to provide the full set of address and data
+ lines necessary. They also require more pins the larger the EEPROM
+ is, whereas serial EEPROMs all share the same pinout regardless of
+ size.
+
+ At a basic level, there are 5 sets of signals involved:
+
+ * /CE = chip enable
+ * /OE = output enable
+ * /WE = write enable
+ * D0-Dn = data lines
+ * A0-An = address lines
+
+ To access the chip, the various enable states must be asserted or
+ cleared. Note that these are generally active-low, so asserted means
+ pulled to GND, and cleared means pulled to Vcc:
+
+ /CE /OE /WE Action
+ ASSERT ASSERT CLEAR Read (D0-Dn contain output data)
+ ASSERT CLEAR ASSERT Write/Erase (D0-Dn are input data)
+
+ Erase is performed by doing a write with D0-Dn all set to 1.
+
+ In general, it is slow to write or erase (9ms is quoted in the 2816A
+ datasheet, for example), and the /WE must be held low for the entire
+ write/erase duration in order to guarantee the data is written.
+
+***************************************************************************/
+
+#include "emu.h"
+#include "machine/eeprompar.h"
+
+
+
+//**************************************************************************
+// BASE DEVICE IMPLEMENTATION
+//**************************************************************************
+
+//-------------------------------------------------
+// eeprom_parallel_base_device - constructor
+//-------------------------------------------------
+
+eeprom_parallel_base_device::eeprom_parallel_base_device(const machine_config &mconfig, device_type devtype, const char *name, const char *tag, device_t *owner, const char *shortname, const char *file)
+ : eeprom_base_device(mconfig, devtype, name, tag, owner, shortname, file)
+{
+}
+
+
+//-------------------------------------------------
+// device_start - device-specific startup
+//-------------------------------------------------
+
+void eeprom_parallel_base_device::device_start()
+{
+ // start the base class
+ eeprom_base_device::device_start();
+}
+
+
+//-------------------------------------------------
+// device_reset - device-specific reset
+//-------------------------------------------------
+
+void eeprom_parallel_base_device::device_reset()
+{
+ // reset the base class
+ eeprom_base_device::device_reset();
+}
+
+
+
+//**************************************************************************
+// 28XX INTERFACE IMPLEMENTATION
+//**************************************************************************
+
+//-------------------------------------------------
+// eeprom_parallel_28xx_device - constructor
+//-------------------------------------------------
+
+eeprom_parallel_28xx_device::eeprom_parallel_28xx_device(const machine_config &mconfig, device_type devtype, const char *name, const char *tag, device_t *owner, const char *shortname, const char *file)
+ : eeprom_parallel_base_device(mconfig, devtype, name, tag, owner, shortname, file)
+{
+}
+
+
+//-------------------------------------------------
+// read/write - read/write handlers
+//-------------------------------------------------
+
+WRITE8_MEMBER(eeprom_parallel_28xx_device::write)
+{
+ eeprom_base_device::write(offset, data);
+}
+
+READ8_MEMBER(eeprom_parallel_28xx_device::read)
+{
+ return eeprom_base_device::read(offset);
+}
+
+
+
+//**************************************************************************
+// DERIVED TYPES
+//**************************************************************************
+
+// macro for defining a new device class
+#define DEFINE_PARALLEL_EEPROM_DEVICE(_baseclass, _lowercase, _uppercase, _bits, _cells) \
+eeprom_parallel_##_lowercase##_device::eeprom_parallel_##_lowercase##_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) \
+ : eeprom_parallel_##_baseclass##_device(mconfig, EEPROM_PARALLEL_##_uppercase, "Parallel EEPROM " #_uppercase " (" #_cells "x" #_bits ")", tag, owner, #_lowercase, __FILE__) \
+{ \
+ static_set_size(*this, _cells, _bits); \
+}; \
+const device_type EEPROM_PARALLEL_##_uppercase = &device_creator<eeprom_parallel_##_lowercase##_device>; \
+
+// standard 28XX class of 8-bit EEPROMs
+DEFINE_PARALLEL_EEPROM_DEVICE(28xx, 2804, 2804, 8, 512)
+DEFINE_PARALLEL_EEPROM_DEVICE(28xx, 2816, 2816, 8, 2048)
+DEFINE_PARALLEL_EEPROM_DEVICE(28xx, 2864, 2864, 8, 8192)
+DEFINE_PARALLEL_EEPROM_DEVICE(28xx, 28256, 28256, 8, 32768)
+DEFINE_PARALLEL_EEPROM_DEVICE(28xx, 28512, 28512, 8, 65536)
+DEFINE_PARALLEL_EEPROM_DEVICE(28xx, 28010, 28010, 8, 131072)
+DEFINE_PARALLEL_EEPROM_DEVICE(28xx, 28020, 28020, 8, 262144)
+DEFINE_PARALLEL_EEPROM_DEVICE(28xx, 28040, 28040, 8, 524288)
diff --git a/src/emu/machine/eeprompar.h b/src/emu/machine/eeprompar.h
new file mode 100644
index 00000000000..860075a085a
--- /dev/null
+++ b/src/emu/machine/eeprompar.h
@@ -0,0 +1,123 @@
+/***************************************************************************
+
+ eeprompar.h
+
+ Parallel EEPROM devices.
+
+****************************************************************************
+
+ Copyright Aaron Giles
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are
+ met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+ * Neither the name 'MAME' nor the names of its contributors may be
+ used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY AARON GILES ''AS IS'' AND ANY EXPRESS OR
+ IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL AARON GILES BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
+ IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+
+***************************************************************************/
+
+#pragma once
+
+#ifndef __EEPROMPAR_H__
+#define __EEPROMPAR_H__
+
+#include "eeprom.h"
+
+
+//**************************************************************************
+// INTERFACE CONFIGURATION MACROS
+//**************************************************************************
+
+// standard 28XX class of 8-bit parallel EEPROMs
+#define MCFG_EEPROM_2804_ADD(_tag) \
+ MCFG_DEVICE_ADD(_tag, EEPROM_PARALLEL_2804, 0)
+#define MCFG_EEPROM_2816_ADD(_tag) \
+ MCFG_DEVICE_ADD(_tag, EEPROM_PARALLEL_2816, 0)
+
+
+
+//**************************************************************************
+// TYPE DEFINITIONS
+//**************************************************************************
+
+
+// ======================> eeprom_parallel_base_device
+
+class eeprom_parallel_base_device : public eeprom_base_device
+{
+protected:
+ // construction/destruction
+ eeprom_parallel_base_device(const machine_config &mconfig, device_type devtype, const char *name, const char *tag, device_t *owner, const char *shortname, const char *file);
+
+public:
+
+protected:
+ // device-level overrides
+ virtual void device_start();
+ virtual void device_reset();
+};
+
+
+
+// ======================> eeprom_parallel_28xx_device
+
+class eeprom_parallel_28xx_device : public eeprom_parallel_base_device
+{
+protected:
+ // construction/destruction
+ eeprom_parallel_28xx_device(const machine_config &mconfig, device_type devtype, const char *name, const char *tag, device_t *owner, const char *shortname, const char *file);
+
+public:
+ // read/write data lines - for now we cheat and ignore the control lines, assuming
+ // they are handled reasonably
+ DECLARE_WRITE8_MEMBER(write);
+ DECLARE_READ8_MEMBER(read);
+};
+
+
+
+//**************************************************************************
+// DERIVED TYPES
+//**************************************************************************
+
+// macro for declaring a new device class
+#define DECLARE_PARALLEL_EEPROM_DEVICE(_baseclass, _lowercase, _uppercase) \
+class eeprom_parallel_##_lowercase##_device : public eeprom_parallel_##_baseclass##_device \
+{ \
+public: \
+ eeprom_parallel_##_lowercase##_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); \
+}; \
+extern const device_type EEPROM_PARALLEL_##_uppercase; \
+
+// standard 28XX class of 8-bit EEPROMs
+DECLARE_PARALLEL_EEPROM_DEVICE(28xx, 2804, 2804)
+DECLARE_PARALLEL_EEPROM_DEVICE(28xx, 2816, 2816)
+DECLARE_PARALLEL_EEPROM_DEVICE(28xx, 2864, 2864)
+DECLARE_PARALLEL_EEPROM_DEVICE(28xx, 28256, 28256)
+DECLARE_PARALLEL_EEPROM_DEVICE(28xx, 28512, 28512)
+DECLARE_PARALLEL_EEPROM_DEVICE(28xx, 28010, 28010)
+DECLARE_PARALLEL_EEPROM_DEVICE(28xx, 28020, 28020)
+DECLARE_PARALLEL_EEPROM_DEVICE(28xx, 28040, 28040)
+
+#endif
diff --git a/src/emu/machine/machine.mak b/src/emu/machine/machine.mak
index e18e704098b..24f57aefaf8 100644
--- a/src/emu/machine/machine.mak
+++ b/src/emu/machine/machine.mak
@@ -420,11 +420,13 @@ endif
#
#@src/emu/machine/eeprom.h,MACHINES += EEPROMDEV
#@src/emu/machine/eepromser.h,MACHINES += EEPROMDEV
+#@src/emu/machine/eeprompar.h,MACHINES += EEPROMDEV
#-------------------------------------------------
ifneq ($(filter EEPROMDEV,$(MACHINES)),)
MACHINEOBJS += $(MACHINEOBJ)/eeprom.o
MACHINEOBJS += $(MACHINEOBJ)/eepromser.o
+MACHINEOBJS += $(MACHINEOBJ)/eeprompar.o
endif
#-------------------------------------------------
diff --git a/src/mame/drivers/arcadecl.c b/src/mame/drivers/arcadecl.c
index d56975be7d1..6a7423346b9 100644
--- a/src/mame/drivers/arcadecl.c
+++ b/src/mame/drivers/arcadecl.c
@@ -157,8 +157,8 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, arcadecl_state )
AM_RANGE(0x640024, 0x640025) AM_READ_PORT("TRACKX1")
AM_RANGE(0x640026, 0x640027) AM_READ_PORT("TRACKY1")
AM_RANGE(0x640040, 0x64004f) AM_WRITE(latch_w)
- AM_RANGE(0x640060, 0x64006f) AM_WRITE(eeprom_enable_w)
- AM_RANGE(0x641000, 0x641fff) AM_READWRITE(eeprom_r, eeprom_w) AM_SHARE("eeprom")
+ AM_RANGE(0x640060, 0x64006f) AM_DEVWRITE("eeprom", atari_eeprom_device, unlock_write)
+ AM_RANGE(0x641000, 0x641fff) AM_DEVREADWRITE8("eeprom", atari_eeprom_device, read, write, 0x00ff)
AM_RANGE(0x642000, 0x642001) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0xff00)
AM_RANGE(0x646000, 0x646fff) AM_WRITE(scanline_int_ack_w)
AM_RANGE(0x647000, 0x647fff) AM_WRITE(watchdog_reset16_w)
@@ -321,7 +321,7 @@ static MACHINE_CONFIG_START( arcadecl, arcadecl_state )
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", atarigen_state, video_int_gen)
MCFG_MACHINE_RESET_OVERRIDE(arcadecl_state,arcadecl)
- MCFG_NVRAM_ADD_1FILL("eeprom")
+ MCFG_ATARI_EEPROM_2804_ADD("eeprom")
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
diff --git a/src/mame/drivers/atarig1.c b/src/mame/drivers/atarig1.c
index 70a09fdd799..5991259679e 100644
--- a/src/mame/drivers/atarig1.c
+++ b/src/mame/drivers/atarig1.c
@@ -191,7 +191,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, atarig1_state )
AM_RANGE(0x040000, 0x077fff) AM_ROM
AM_RANGE(0x078000, 0x07ffff) AM_ROM /* hydra slapstic goes here */
AM_RANGE(0xf80000, 0xf80001) AM_WRITE(watchdog_reset16_w)
- AM_RANGE(0xf88000, 0xf8ffff) AM_WRITE(eeprom_enable_w)
+ AM_RANGE(0xf88000, 0xf8ffff) AM_DEVWRITE("eeprom", atari_eeprom_device, unlock_write)
AM_RANGE(0xf90000, 0xf90001) AM_DEVWRITE8("jsa", atari_jsa_ii_device, main_command_w, 0xff00)
AM_RANGE(0xf98000, 0xf98001) AM_DEVWRITE("jsa", atari_jsa_ii_device, sound_reset_w)
AM_RANGE(0xfa0000, 0xfa0001) AM_DEVWRITE8("rle", atari_rle_objects_device, control_write, 0x00ff)
@@ -199,7 +199,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, atarig1_state )
AM_RANGE(0xfc0000, 0xfc0001) AM_READ(special_port0_r)
AM_RANGE(0xfc8000, 0xfc8007) AM_READWRITE(a2d_data_r, a2d_select_w)
AM_RANGE(0xfd0000, 0xfd0001) AM_DEVREAD8("jsa", atari_jsa_ii_device, main_response_r, 0xff00)
- AM_RANGE(0xfd8000, 0xfdffff) AM_READWRITE(eeprom_r, eeprom_w) AM_SHARE("eeprom")
+ AM_RANGE(0xfd8000, 0xfdffff) AM_DEVREADWRITE8("eeprom", atari_eeprom_device, read, write, 0x00ff)
/* AM_RANGE(0xfe0000, 0xfe7fff) AM_READ(from_r)*/
AM_RANGE(0xfe8000, 0xfe89ff) AM_RAM_WRITE(paletteram_666_w) AM_SHARE("paletteram")
AM_RANGE(0xff0000, 0xff0fff) AM_RAM AM_SHARE("rle")
@@ -428,7 +428,8 @@ static MACHINE_CONFIG_START( atarig1, atarig1_state )
MCFG_MACHINE_START_OVERRIDE(atarig1_state,atarig1)
MCFG_MACHINE_RESET_OVERRIDE(atarig1_state,atarig1)
- MCFG_NVRAM_ADD_1FILL("eeprom")
+
+ MCFG_ATARI_EEPROM_2816_ADD("eeprom")
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
@@ -1193,7 +1194,6 @@ ROM_END
void atarig1_state::init_common(offs_t slapstic_base, int slapstic, bool is_pitfight)
{
- m_eeprom_default = NULL;
if (slapstic == -1)
{
pitfightb_cheap_slapstic_init();
diff --git a/src/mame/drivers/atarig42.c b/src/mame/drivers/atarig42.c
index e4dcc403e73..80e0476b966 100644
--- a/src/mame/drivers/atarig42.c
+++ b/src/mame/drivers/atarig42.c
@@ -338,14 +338,14 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, atarig42_state )
AM_RANGE(0xe00030, 0xe00031) AM_DEVREAD8("jsa", atari_jsa_iii_device, main_response_r, 0x00ff)
AM_RANGE(0xe00040, 0xe00041) AM_DEVWRITE8("jsa", atari_jsa_iii_device, main_command_w, 0x00ff)
AM_RANGE(0xe00050, 0xe00051) AM_WRITE(io_latch_w)
- AM_RANGE(0xe00060, 0xe00061) AM_WRITE(eeprom_enable_w)
+ AM_RANGE(0xe00060, 0xe00061) AM_DEVWRITE("eeprom", atari_eeprom_device, unlock_write)
AM_RANGE(0xe03000, 0xe03001) AM_WRITE(video_int_ack_w)
AM_RANGE(0xe03800, 0xe03801) AM_WRITE(watchdog_reset16_w)
AM_RANGE(0xe80000, 0xe80fff) AM_RAM
AM_RANGE(0xf40000, 0xf40001) AM_READ_LEGACY(asic65_io_r)
AM_RANGE(0xf60000, 0xf60001) AM_READ_LEGACY(asic65_r)
AM_RANGE(0xf80000, 0xf80003) AM_WRITE_LEGACY(asic65_data_w)
- AM_RANGE(0xfa0000, 0xfa0fff) AM_READWRITE(eeprom_r, eeprom_w) AM_SHARE("eeprom")
+ AM_RANGE(0xfa0000, 0xfa0fff) AM_DEVREADWRITE8("eeprom", atari_eeprom_device, read, write, 0x00ff)
AM_RANGE(0xfc0000, 0xfc0fff) AM_RAM_WRITE(paletteram_666_w) AM_SHARE("paletteram")
AM_RANGE(0xff0000, 0xff0fff) AM_RAM AM_SHARE("rle")
AM_RANGE(0xff2000, 0xff5fff) AM_DEVWRITE("playfield", tilemap_device, write) AM_SHARE("playfield")
@@ -542,7 +542,8 @@ static MACHINE_CONFIG_START( atarig42, atarig42_state )
MCFG_MACHINE_START_OVERRIDE(atarig42_state,atarig42)
MCFG_MACHINE_RESET_OVERRIDE(atarig42_state,atarig42)
- MCFG_NVRAM_ADD_1FILL("eeprom")
+
+ MCFG_ATARI_EEPROM_2816_ADD("eeprom")
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
@@ -634,8 +635,8 @@ ROM_START( roadriot )
ROM_LOAD( "136089-1050.15e", 0x40000, 0x20000, CRC(64d410bb) SHA1(877bccca7ff37a9dd8294bc1453487a2f516ca7d) )
ROM_LOAD( "136089-1051.12e", 0x60000, 0x20000, CRC(bffd01c8) SHA1(f6de000f61ea0c1ddb31ee5301506e5e966638c2) )
- ROM_REGION( 0x1000, "eeprom", 0 )
- ROM_LOAD( "roadriot.nv", 0x0000, 0x1000, CRC(d7f73bad) SHA1(017cccde835ca2e03f606de74bea233e4c5a8533) )
+ ROM_REGION( 0x800, "eeprom:eeprom", 0 )
+ ROM_LOAD( "roadriot.nv", 0x0000, 0x800, CRC(8d9b957d) SHA1(9d895c5977a3f405130594a10d530a82a6aa265f) )
ROM_REGION( 0x0600, "proms", 0 ) /* microcode for growth renderer */
ROM_LOAD( "136089-1001.bin", 0x0000, 0x0200, CRC(5836cb5a) SHA1(2c797f6a1227d6e1fd7a12f99f0254072c8c266e) )
@@ -692,8 +693,8 @@ ROM_START( roadrioto )
ROM_LOAD( "136089-1050.15e", 0x40000, 0x20000, CRC(64d410bb) SHA1(877bccca7ff37a9dd8294bc1453487a2f516ca7d) )
ROM_LOAD( "136089-1051.12e", 0x60000, 0x20000, CRC(bffd01c8) SHA1(f6de000f61ea0c1ddb31ee5301506e5e966638c2) )
- ROM_REGION( 0x1000, "eeprom", 0 )
- ROM_LOAD( "roadriot.nv", 0x0000, 0x1000, CRC(d7f73bad) SHA1(017cccde835ca2e03f606de74bea233e4c5a8533) )
+ ROM_REGION( 0x800, "eeprom:eeprom", 0 )
+ ROM_LOAD( "roadriot.nv", 0x0000, 0x800, CRC(8d9b957d) SHA1(9d895c5977a3f405130594a10d530a82a6aa265f) )
ROM_REGION( 0x0600, "proms", 0 ) /* microcode for growth renderer */
ROM_LOAD( "136089-1001.bin", 0x0000, 0x0200, CRC(5836cb5a) SHA1(2c797f6a1227d6e1fd7a12f99f0254072c8c266e) )
@@ -741,8 +742,8 @@ ROM_START( guardian )
ROM_REGION( 0x80000, "jsa:oki1", 0 )
ROM_LOAD( "136092-0010-snd", 0x00000, 0x80000, CRC(bca27f40) SHA1(91a41eac116eb7d9a790abc590eb06328726d1c2) )
- ROM_REGION( 0x1000, "eeprom", 0 )
- ROM_LOAD( "guardian-eeprom.bin", 0x0000, 0x1000, CRC(fba171dc) SHA1(c53f72b7c25602c5fedc38d34d1342fbd10e4a44) )
+ ROM_REGION( 0x800, "eeprom:eeprom", 0 )
+ ROM_LOAD( "guardian-eeprom.bin", 0x0000, 0x800, CRC(85835fab) SHA1(747e2851c8baa0e7f1c0784b0d6900514230ab07) )
ROM_REGION( 0x0600, "proms", 0 ) /* microcode for growth renderer */
ROM_LOAD( "136092-1001.bin", 0x0000, 0x0200, CRC(b3251eeb) SHA1(5e83baa70aaa28f07f32657bf974fd87719972d3) )
diff --git a/src/mame/drivers/atarigt.c b/src/mame/drivers/atarigt.c
index b8777789cc1..c501d26363c 100644
--- a/src/mame/drivers/atarigt.c
+++ b/src/mame/drivers/atarigt.c
@@ -616,8 +616,8 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 32, atarigt_state )
AM_RANGE(0xc00000, 0xc00003) AM_READWRITE(sound_data_r, sound_data_w)
AM_RANGE(0xd00014, 0xd00017) AM_READ(analog_port0_r)
AM_RANGE(0xd0001c, 0xd0001f) AM_READ(analog_port1_r)
- AM_RANGE(0xd20000, 0xd20fff) AM_READWRITE(eeprom_upper32_r, eeprom32_w) AM_SHARE("eeprom")
- AM_RANGE(0xd40000, 0xd4ffff) AM_WRITE16(eeprom_enable_w, 0xffffffff)
+ AM_RANGE(0xd20000, 0xd20fff) AM_DEVREADWRITE8("eeprom", atari_eeprom_device, read, write, 0xff00ff00)
+ AM_RANGE(0xd40000, 0xd4ffff) AM_DEVWRITE("eeprom", atari_eeprom_device, unlock_write)
AM_RANGE(0xd72000, 0xd75fff) AM_DEVWRITE("playfield", tilemap_device, write) AM_SHARE("playfield")
AM_RANGE(0xd76000, 0xd76fff) AM_DEVWRITE("alpha", tilemap_device, write) AM_SHARE("alpha")
AM_RANGE(0xd78000, 0xd78fff) AM_RAM AM_SHARE("rle")
@@ -824,7 +824,8 @@ static MACHINE_CONFIG_START( atarigt, atarigt_state )
MCFG_CPU_PERIODIC_INT_DRIVER(atarigen_state, scanline_int_gen, 250)
MCFG_MACHINE_RESET_OVERRIDE(atarigt_state,atarigt)
- MCFG_NVRAM_ADD_1FILL("eeprom")
+
+ MCFG_ATARI_EEPROM_2816_ADD("eeprom")
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
@@ -1302,7 +1303,6 @@ WRITE32_MEMBER(atarigt_state::tmek_pf_w)
DRIVER_INIT_MEMBER(atarigt_state,tmek)
{
- m_eeprom_default = NULL;
m_is_primrage = 0;
cage_init(machine(), 0x4fad);
@@ -1319,7 +1319,6 @@ DRIVER_INIT_MEMBER(atarigt_state,tmek)
void atarigt_state::primrage_init_common(offs_t cage_speedup)
{
- m_eeprom_default = NULL;
m_is_primrage = 1;
cage_init(machine(), cage_speedup);
diff --git a/src/mame/drivers/atarigx2.c b/src/mame/drivers/atarigx2.c
index 95854ea1070..78788c734d5 100644
--- a/src/mame/drivers/atarigx2.c
+++ b/src/mame/drivers/atarigx2.c
@@ -1135,14 +1135,14 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 32, atarigx2_state )
AM_RANGE(0xc80000, 0xc80fff) AM_RAM
AM_RANGE(0xca0000, 0xca0fff) AM_READWRITE(atarigx2_protection_r, atarigx2_protection_w) AM_SHARE("protection_base")
AM_RANGE(0xd00000, 0xd1ffff) AM_READ(a2d_data_r)
- AM_RANGE(0xd20000, 0xd20fff) AM_READWRITE(eeprom_upper32_r, eeprom32_w) AM_SHARE("eeprom")
+ AM_RANGE(0xd20000, 0xd20fff) AM_DEVREADWRITE8("eeprom", atari_eeprom_device, read, write, 0xff00ff00)
AM_RANGE(0xd40000, 0xd40fff) AM_RAM_WRITE(paletteram32_666_w) AM_SHARE("paletteram")
AM_RANGE(0xd72000, 0xd75fff) AM_DEVWRITE("playfield", tilemap_device, write) AM_SHARE("playfield")
AM_RANGE(0xd76000, 0xd76fff) AM_DEVWRITE("alpha", tilemap_device, write) AM_SHARE("alpha")
AM_RANGE(0xd78000, 0xd78fff) AM_RAM AM_SHARE("rle")
AM_RANGE(0xd7a200, 0xd7a203) AM_WRITE(mo_command_w) AM_SHARE("mo_command")
AM_RANGE(0xd70000, 0xd7ffff) AM_RAM
- AM_RANGE(0xd80000, 0xd9ffff) AM_WRITE16(eeprom_enable_w, 0xffffffff)
+ AM_RANGE(0xd80000, 0xd9ffff) AM_DEVWRITE("eeprom", atari_eeprom_device, unlock_write)
AM_RANGE(0xe06000, 0xe06003) AM_DEVWRITE8("jsa", atari_jsa_iiis_device, main_command_w, 0xff000000)
AM_RANGE(0xe08000, 0xe08003) AM_WRITE(latch_w)
AM_RANGE(0xe0c000, 0xe0c003) AM_WRITE16(video_int_ack_w, 0xffffffff)
@@ -1406,7 +1406,8 @@ static MACHINE_CONFIG_START( atarigx2, atarigx2_state )
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", atarigen_state, video_int_gen)
MCFG_MACHINE_RESET_OVERRIDE(atarigx2_state,atarigx2)
- MCFG_NVRAM_ADD_1FILL("eeprom")
+
+ MCFG_ATARI_EEPROM_2816_ADD("eeprom")
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
diff --git a/src/mame/drivers/atarisy1.c b/src/mame/drivers/atarisy1.c
index cb36b5aff79..f1f7ba5d6f4 100644
--- a/src/mame/drivers/atarisy1.c
+++ b/src/mame/drivers/atarisy1.c
@@ -450,13 +450,13 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, atarisy1_state )
AM_RANGE(0x860000, 0x860001) AM_WRITE(atarisy1_bankselect_w) AM_SHARE("bankselect")
AM_RANGE(0x880000, 0x880001) AM_WRITE(watchdog_reset16_w)
AM_RANGE(0x8a0000, 0x8a0001) AM_WRITE(video_int_ack_w)
- AM_RANGE(0x8c0000, 0x8c0001) AM_WRITE(eeprom_enable_w)
+ AM_RANGE(0x8c0000, 0x8c0001) AM_DEVWRITE("eeprom", atari_eeprom_device, unlock_write)
AM_RANGE(0x900000, 0x9fffff) AM_RAM
AM_RANGE(0xa00000, 0xa01fff) AM_RAM_DEVWRITE("playfield", tilemap_device, write) AM_SHARE("playfield")
AM_RANGE(0xa02000, 0xa02fff) AM_RAM_WRITE(atarisy1_spriteram_w) AM_SHARE("mob")
AM_RANGE(0xa03000, 0xa03fff) AM_RAM_DEVWRITE("alpha", tilemap_device, write) AM_SHARE("alpha")
AM_RANGE(0xb00000, 0xb007ff) AM_RAM_WRITE(paletteram_IIIIRRRRGGGGBBBB_word_w) AM_SHARE("paletteram")
- AM_RANGE(0xf00000, 0xf00fff) AM_READWRITE(eeprom_r, eeprom_w) AM_SHARE("eeprom")
+ AM_RANGE(0xf00000, 0xf00fff) AM_DEVREADWRITE8("eeprom", atari_eeprom_device, read, write, 0x00ff)
AM_RANGE(0xf20000, 0xf20007) AM_READ(trakball_r)
AM_RANGE(0xf40000, 0xf4001f) AM_READWRITE(joystick_r, joystick_w)
AM_RANGE(0xf60000, 0xf60003) AM_READ_PORT("F60000")
@@ -731,7 +731,8 @@ static MACHINE_CONFIG_START( atarisy1, atarisy1_state )
MCFG_MACHINE_START_OVERRIDE(atarisy1_state,atarisy1)
MCFG_MACHINE_RESET_OVERRIDE(atarisy1_state,atarisy1)
- MCFG_NVRAM_ADD_1FILL("eeprom")
+
+ MCFG_ATARI_EEPROM_2804_ADD("eeprom")
MCFG_TIMER_DRIVER_ADD("joystick_timer", atarisy1_state, delayed_joystick_int)
MCFG_TIMER_DRIVER_ADD("scan_timer", atarisy1_state, atarisy1_int3_callback)
diff --git a/src/mame/drivers/atarisy2.c b/src/mame/drivers/atarisy2.c
index bfc3155b7be..06888f480c1 100644
--- a/src/mame/drivers/atarisy2.c
+++ b/src/mame/drivers/atarisy2.c
@@ -795,7 +795,7 @@ ADDRESS_MAP_END
/* full memory map derived from schematics */
static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, atarisy2_state )
AM_RANGE(0x0000, 0x0fff) AM_MIRROR(0x2000) AM_RAM
- AM_RANGE(0x1000, 0x17ff) AM_MIRROR(0x2000) AM_RAM AM_SHARE("eeprom")
+ AM_RANGE(0x1000, 0x17ff) AM_MIRROR(0x2000) AM_DEVREADWRITE("eeprom", eeprom_parallel_28xx_device, read, write)
AM_RANGE(0x1800, 0x180f) AM_MIRROR(0x2780) AM_DEVREADWRITE("pokey1", pokey_device, read, write)
AM_RANGE(0x1810, 0x1813) AM_MIRROR(0x278c) AM_READ(leta_r)
AM_RANGE(0x1830, 0x183f) AM_MIRROR(0x2780) AM_DEVREADWRITE("pokey2", pokey_device, read, write)
@@ -1235,7 +1235,8 @@ static MACHINE_CONFIG_START( atarisy2, atarisy2_state )
MCFG_MACHINE_START_OVERRIDE(atarisy2_state,atarisy2)
MCFG_MACHINE_RESET_OVERRIDE(atarisy2_state,atarisy2)
- MCFG_NVRAM_ADD_1FILL("eeprom")
+
+ MCFG_EEPROM_2804_ADD("eeprom")
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
@@ -1327,8 +1328,8 @@ ROM_START( paperboy )
ROM_REGION( 0x2000, "gfx3", 0 )
ROM_LOAD( "vid_t06.rv1", 0x000000, 0x002000, CRC(60d7aebb) SHA1(ad74221c4270496ebcfedd46ea16dca2cda1b4be) )
- ROM_REGION( 0x800, "eeprom", 0 )
- ROM_LOAD( "paperboy-eeprom.bin", 0x0000, 0x0800, CRC(0a0e057b) SHA1(a7cd245e826580ff54a490b421f65a72de5a2ed2) )
+ ROM_REGION( 0x200, "eeprom", 0 )
+ ROM_LOAD( "paperboy-eeprom.bin", 0x0000, 0x0200, CRC(756b90cc) SHA1(b78762e354f1316087f9de4005734c343356c8ef) )
ROM_END
@@ -1369,8 +1370,8 @@ ROM_START( paperboyr2 )
ROM_REGION( 0x2000, "gfx3", 0 )
ROM_LOAD( "vid_t06.rv1", 0x000000, 0x002000, CRC(60d7aebb) SHA1(ad74221c4270496ebcfedd46ea16dca2cda1b4be) )
- ROM_REGION( 0x800, "eeprom", 0 )
- ROM_LOAD( "paperboy-eeprom.bin", 0x0000, 0x0800, CRC(0a0e057b) SHA1(a7cd245e826580ff54a490b421f65a72de5a2ed2) )
+ ROM_REGION( 0x200, "eeprom", 0 )
+ ROM_LOAD( "paperboy-eeprom.bin", 0x0000, 0x0200, CRC(756b90cc) SHA1(b78762e354f1316087f9de4005734c343356c8ef) )
ROM_END
@@ -1411,8 +1412,8 @@ ROM_START( paperboyr1 )
ROM_REGION( 0x2000, "gfx3", 0 )
ROM_LOAD( "vid_t06.rv1", 0x000000, 0x002000, CRC(60d7aebb) SHA1(ad74221c4270496ebcfedd46ea16dca2cda1b4be) )
- ROM_REGION( 0x800, "eeprom", 0 )
- ROM_LOAD( "paperboy-eeprom.bin", 0x0000, 0x0800, CRC(0a0e057b) SHA1(a7cd245e826580ff54a490b421f65a72de5a2ed2) )
+ ROM_REGION( 0x200, "eeprom", 0 )
+ ROM_LOAD( "paperboy-eeprom.bin", 0x0000, 0x0200, CRC(756b90cc) SHA1(b78762e354f1316087f9de4005734c343356c8ef) )
ROM_END
@@ -1479,8 +1480,8 @@ ROM_START( 720 )
ROM_REGION( 0x4000, "gfx3", 0 )
ROM_LOAD( "136047-1125.4t", 0x000000, 0x004000, CRC(6b7e2328) SHA1(cc9a315ccafe7228951b7c32cf3b31caa89ae7d3) )
- ROM_REGION( 0x800, "eeprom", 0 )
- ROM_LOAD( "720-eeprom.bin", 0x0000, 0x0800, CRC(a13090e3) SHA1(bc827ef76a3f9d96ffbd20a4099507c05bb46de4) )
+ ROM_REGION( 0x200, "eeprom", 0 )
+ ROM_LOAD( "720-eeprom.bin", 0x0000, 0x0200, CRC(cfe1c24e) SHA1(5f7623b0a2ff0d99ffa8e6420a5bc03e0c55250d) )
ROM_END
@@ -1547,8 +1548,8 @@ ROM_START( 720r3 )
ROM_REGION( 0x4000, "gfx3", 0 )
ROM_LOAD( "136047-1125.4t", 0x000000, 0x004000, CRC(6b7e2328) SHA1(cc9a315ccafe7228951b7c32cf3b31caa89ae7d3) )
- ROM_REGION( 0x800, "eeprom", 0 )
- ROM_LOAD( "720-eeprom.bin", 0x0000, 0x0800, CRC(a13090e3) SHA1(bc827ef76a3f9d96ffbd20a4099507c05bb46de4) )
+ ROM_REGION( 0x200, "eeprom", 0 )
+ ROM_LOAD( "720-eeprom.bin", 0x0000, 0x0200, CRC(cfe1c24e) SHA1(5f7623b0a2ff0d99ffa8e6420a5bc03e0c55250d) )
ROM_END
@@ -1615,8 +1616,8 @@ ROM_START( 720r2 )
ROM_REGION( 0x4000, "gfx3", 0 )
ROM_LOAD( "136047-1125.4t", 0x000000, 0x004000, CRC(6b7e2328) SHA1(cc9a315ccafe7228951b7c32cf3b31caa89ae7d3) )
- ROM_REGION( 0x800, "eeprom", 0 )
- ROM_LOAD( "720-eeprom.bin", 0x0000, 0x0800, CRC(a13090e3) SHA1(bc827ef76a3f9d96ffbd20a4099507c05bb46de4) )
+ ROM_REGION( 0x200, "eeprom", 0 )
+ ROM_LOAD( "720-eeprom.bin", 0x0000, 0x0200, CRC(cfe1c24e) SHA1(5f7623b0a2ff0d99ffa8e6420a5bc03e0c55250d) )
ROM_END
@@ -1683,8 +1684,8 @@ ROM_START( 720r1 )
ROM_REGION( 0x4000, "gfx3", 0 )
ROM_LOAD( "136047-1125.4t", 0x000000, 0x004000, CRC(6b7e2328) SHA1(cc9a315ccafe7228951b7c32cf3b31caa89ae7d3) )
- ROM_REGION( 0x800, "eeprom", 0 )
- ROM_LOAD( "720-eeprom.bin", 0x0000, 0x0800, CRC(a13090e3) SHA1(bc827ef76a3f9d96ffbd20a4099507c05bb46de4) )
+ ROM_REGION( 0x200, "eeprom", 0 )
+ ROM_LOAD( "720-eeprom.bin", 0x0000, 0x0200, CRC(cfe1c24e) SHA1(5f7623b0a2ff0d99ffa8e6420a5bc03e0c55250d) )
ROM_END
@@ -1751,8 +1752,8 @@ ROM_START( 720g )
ROM_REGION( 0x4000, "gfx3", 0 )
ROM_LOAD( "136047-1225.4t", 0x000000, 0x004000, CRC(264eda88) SHA1(f0f5fe87741e0e17117085cf45f700090a02cb94) )
- ROM_REGION( 0x800, "eeprom", 0 )
- ROM_LOAD( "720-eeprom.bin", 0x0000, 0x0800, CRC(a13090e3) SHA1(bc827ef76a3f9d96ffbd20a4099507c05bb46de4) )
+ ROM_REGION( 0x200, "eeprom", 0 )
+ ROM_LOAD( "720-eeprom.bin", 0x0000, 0x0200, CRC(cfe1c24e) SHA1(5f7623b0a2ff0d99ffa8e6420a5bc03e0c55250d) )
ROM_END
@@ -1819,8 +1820,8 @@ ROM_START( 720gr1 )
ROM_REGION( 0x4000, "gfx3", 0 )
ROM_LOAD( "136047-1225.4t", 0x000000, 0x004000, CRC(264eda88) SHA1(f0f5fe87741e0e17117085cf45f700090a02cb94) )
- ROM_REGION( 0x800, "eeprom", 0 )
- ROM_LOAD( "720-eeprom.bin", 0x0000, 0x0800, CRC(a13090e3) SHA1(bc827ef76a3f9d96ffbd20a4099507c05bb46de4) )
+ ROM_REGION( 0x200, "eeprom", 0 )
+ ROM_LOAD( "720-eeprom.bin", 0x0000, 0x0200, CRC(cfe1c24e) SHA1(5f7623b0a2ff0d99ffa8e6420a5bc03e0c55250d) )
ROM_END
@@ -1867,8 +1868,8 @@ ROM_START( ssprint )
ROM_REGION( 0x4000, "gfx3", 0 )
ROM_LOAD( "136042-118.6t", 0x000000, 0x004000, CRC(8489d113) SHA1(f8ead7954d9be95792fd7e9d2487957d1e194641) )
- ROM_REGION( 0x800, "eeprom", 0 )
- ROM_LOAD( "ssprint-eeprom.bin", 0x0000, 0x0800, CRC(dfcd40de) SHA1(c68f0fd876b5edfd751bfa6c5967dc2a1e679b19) )
+ ROM_REGION( 0x200, "eeprom", 0 )
+ ROM_LOAD( "ssprint-eeprom.bin", 0x0000, 0x0200, CRC(9301ed27) SHA1(5edd9688ce36520ab79e1388d489b72525a686ff) )
ROM_END
@@ -1914,8 +1915,8 @@ ROM_START( ssprints )
ROM_REGION( 0x4000, "gfx3", 0 )
ROM_LOAD( "136042-218.6t", 0x000000, 0x004000, CRC(8e500be1) SHA1(f21799bf97c8bf82328999cb912ad5f293035d55) )
- ROM_REGION( 0x800, "eeprom", 0 )
- ROM_LOAD( "ssprint1-eeprom.bin", 0x0000, 0x0800, CRC(62921dcc) SHA1(d394f53d8ad97b597d618238ff9b69ea48e86851) )
+ ROM_REGION( 0x200, "eeprom", 0 )
+ ROM_LOAD( "ssprint1-eeprom.bin", 0x0000, 0x0200, CRC(62921dcc) SHA1(d394f53d8ad97b597d618238ff9b69ea48e86851) )
ROM_END
@@ -1961,8 +1962,8 @@ ROM_START( ssprintf )
ROM_REGION( 0x4000, "gfx3", 0 )
ROM_LOAD( "136042-218.6t", 0x000000, 0x004000, CRC(8e500be1) SHA1(f21799bf97c8bf82328999cb912ad5f293035d55) )
- ROM_REGION( 0x800, "eeprom", 0 )
- ROM_LOAD( "ssprint1-eeprom.bin", 0x0000, 0x0800, CRC(62921dcc) SHA1(d394f53d8ad97b597d618238ff9b69ea48e86851) )
+ ROM_REGION( 0x200, "eeprom", 0 )
+ ROM_LOAD( "ssprint1-eeprom.bin", 0x0000, 0x0200, CRC(62921dcc) SHA1(d394f53d8ad97b597d618238ff9b69ea48e86851) )
ROM_END
@@ -2008,8 +2009,8 @@ ROM_START( ssprintg )
ROM_REGION( 0x4000, "gfx3", 0 )
ROM_LOAD( "136042-118.6t", 0x000000, 0x004000, CRC(8489d113) SHA1(f8ead7954d9be95792fd7e9d2487957d1e194641) )
- ROM_REGION( 0x800, "eeprom", 0 )
- ROM_LOAD( "ssprint1-eeprom.bin", 0x0000, 0x0800, CRC(62921dcc) SHA1(d394f53d8ad97b597d618238ff9b69ea48e86851) )
+ ROM_REGION( 0x200, "eeprom", 0 )
+ ROM_LOAD( "ssprint1-eeprom.bin", 0x0000, 0x0200, CRC(62921dcc) SHA1(d394f53d8ad97b597d618238ff9b69ea48e86851) )
ROM_END
@@ -2055,8 +2056,8 @@ ROM_START( ssprint3 )
ROM_REGION( 0x4000, "gfx3", 0 )
ROM_LOAD( "136042-118.6t", 0x000000, 0x004000, CRC(8489d113) SHA1(f8ead7954d9be95792fd7e9d2487957d1e194641) )
- ROM_REGION( 0x800, "eeprom", 0 )
- ROM_LOAD( "ssprint1-eeprom.bin", 0x0000, 0x0800, CRC(62921dcc) SHA1(d394f53d8ad97b597d618238ff9b69ea48e86851) )
+ ROM_REGION( 0x200, "eeprom", 0 )
+ ROM_LOAD( "ssprint1-eeprom.bin", 0x0000, 0x0200, CRC(62921dcc) SHA1(d394f53d8ad97b597d618238ff9b69ea48e86851) )
ROM_END
@@ -2102,8 +2103,8 @@ ROM_START( ssprintg1 )
ROM_REGION( 0x4000, "gfx3", 0 )
ROM_LOAD( "136042-118.6t", 0x000000, 0x004000, CRC(8489d113) SHA1(f8ead7954d9be95792fd7e9d2487957d1e194641) )
- ROM_REGION( 0x800, "eeprom", 0 )
- ROM_LOAD( "ssprint1-eeprom.bin", 0x0000, 0x0800, CRC(62921dcc) SHA1(d394f53d8ad97b597d618238ff9b69ea48e86851) )
+ ROM_REGION( 0x200, "eeprom", 0 )
+ ROM_LOAD( "ssprint1-eeprom.bin", 0x0000, 0x0200, CRC(62921dcc) SHA1(d394f53d8ad97b597d618238ff9b69ea48e86851) )
ROM_END
@@ -2149,8 +2150,8 @@ ROM_START( ssprint1 )
ROM_REGION( 0x4000, "gfx3", 0 )
ROM_LOAD( "136042-118.6t", 0x000000, 0x004000, CRC(8489d113) SHA1(f8ead7954d9be95792fd7e9d2487957d1e194641) )
- ROM_REGION( 0x800, "eeprom", 0 )
- ROM_LOAD( "ssprint1-eeprom.bin", 0x0000, 0x0800, CRC(62921dcc) SHA1(d394f53d8ad97b597d618238ff9b69ea48e86851) )
+ ROM_REGION( 0x200, "eeprom", 0 )
+ ROM_LOAD( "ssprint1-eeprom.bin", 0x0000, 0x0200, CRC(62921dcc) SHA1(d394f53d8ad97b597d618238ff9b69ea48e86851) )
ROM_END
@@ -2194,8 +2195,8 @@ ROM_START( csprints )
ROM_REGION( 0x4000, "gfx3", 0 )
ROM_LOAD( "136045-1117.6t", 0x000000, 0x004000, CRC(82da786d) SHA1(929cc4ebac3d4404e1a8b22b80aae975e0c9da85) )
- ROM_REGION( 0x800, "eeprom", 0 )
- ROM_LOAD( "csprint-eeprom.bin", 0x0000, 0x0800, CRC(064a6c9c) SHA1(b8867a554d97094ac9ec800a1d665cdb5a029b12) )
+ ROM_REGION( 0x200, "eeprom", 0 )
+ ROM_LOAD( "csprint-eeprom.bin", 0x0000, 0x0200, CRC(ce1c7319) SHA1(a12926efd898cda2a05cf23fd9cd6674b9ffc702) )
ROM_END
@@ -2239,8 +2240,8 @@ ROM_START( csprint )
ROM_REGION( 0x4000, "gfx3", 0 )
ROM_LOAD( "136045-1117.6t", 0x000000, 0x004000, CRC(82da786d) SHA1(929cc4ebac3d4404e1a8b22b80aae975e0c9da85) )
- ROM_REGION( 0x800, "eeprom", 0 )
- ROM_LOAD( "csprint-eeprom.bin", 0x0000, 0x0800, CRC(064a6c9c) SHA1(b8867a554d97094ac9ec800a1d665cdb5a029b12) )
+ ROM_REGION( 0x200, "eeprom", 0 )
+ ROM_LOAD( "csprint-eeprom.bin", 0x0000, 0x0200, CRC(ce1c7319) SHA1(a12926efd898cda2a05cf23fd9cd6674b9ffc702) )
ROM_END
@@ -2284,8 +2285,8 @@ ROM_START( csprints1 )
ROM_REGION( 0x4000, "gfx3", 0 )
ROM_LOAD( "136045-1117.6t", 0x000000, 0x004000, CRC(82da786d) SHA1(929cc4ebac3d4404e1a8b22b80aae975e0c9da85) )
- ROM_REGION( 0x800, "eeprom", 0 )
- ROM_LOAD( "csprint-eeprom.bin", 0x0000, 0x0800, CRC(064a6c9c) SHA1(b8867a554d97094ac9ec800a1d665cdb5a029b12) )
+ ROM_REGION( 0x200, "eeprom", 0 )
+ ROM_LOAD( "csprint-eeprom.bin", 0x0000, 0x0200, CRC(ce1c7319) SHA1(a12926efd898cda2a05cf23fd9cd6674b9ffc702) )
ROM_END
@@ -2329,8 +2330,8 @@ ROM_START( csprintf )
ROM_REGION( 0x4000, "gfx3", 0 )
ROM_LOAD( "136045-1117.6t", 0x000000, 0x004000, CRC(82da786d) SHA1(929cc4ebac3d4404e1a8b22b80aae975e0c9da85) )
- ROM_REGION( 0x800, "eeprom", 0 )
- ROM_LOAD( "csprint-eeprom.bin", 0x0000, 0x0800, CRC(064a6c9c) SHA1(b8867a554d97094ac9ec800a1d665cdb5a029b12) )
+ ROM_REGION( 0x200, "eeprom", 0 )
+ ROM_LOAD( "csprint-eeprom.bin", 0x0000, 0x0200, CRC(ce1c7319) SHA1(a12926efd898cda2a05cf23fd9cd6674b9ffc702) )
ROM_END
@@ -2374,8 +2375,8 @@ ROM_START( csprintg )
ROM_REGION( 0x4000, "gfx3", 0 )
ROM_LOAD( "136045-1117.6t", 0x000000, 0x004000, CRC(82da786d) SHA1(929cc4ebac3d4404e1a8b22b80aae975e0c9da85) )
- ROM_REGION( 0x800, "eeprom", 0 )
- ROM_LOAD( "csprint-eeprom.bin", 0x0000, 0x0800, CRC(064a6c9c) SHA1(b8867a554d97094ac9ec800a1d665cdb5a029b12) )
+ ROM_REGION( 0x200, "eeprom", 0 )
+ ROM_LOAD( "csprint-eeprom.bin", 0x0000, 0x0200, CRC(ce1c7319) SHA1(a12926efd898cda2a05cf23fd9cd6674b9ffc702) )
ROM_END
@@ -2419,8 +2420,8 @@ ROM_START( csprint2 )
ROM_REGION( 0x4000, "gfx3", 0 )
ROM_LOAD( "136045-1117.6t", 0x000000, 0x004000, CRC(82da786d) SHA1(929cc4ebac3d4404e1a8b22b80aae975e0c9da85) )
- ROM_REGION( 0x800, "eeprom", 0 )
- ROM_LOAD( "csprint-eeprom.bin", 0x0000, 0x0800, CRC(064a6c9c) SHA1(b8867a554d97094ac9ec800a1d665cdb5a029b12) )
+ ROM_REGION( 0x200, "eeprom", 0 )
+ ROM_LOAD( "csprint-eeprom.bin", 0x0000, 0x0200, CRC(ce1c7319) SHA1(a12926efd898cda2a05cf23fd9cd6674b9ffc702) )
ROM_END
@@ -2464,8 +2465,8 @@ ROM_START( csprintg1 )
ROM_REGION( 0x4000, "gfx3", 0 )
ROM_LOAD( "136045-1117.6t", 0x000000, 0x004000, CRC(82da786d) SHA1(929cc4ebac3d4404e1a8b22b80aae975e0c9da85) )
- ROM_REGION( 0x800, "eeprom", 0 )
- ROM_LOAD( "csprint-eeprom.bin", 0x0000, 0x0800, CRC(064a6c9c) SHA1(b8867a554d97094ac9ec800a1d665cdb5a029b12) )
+ ROM_REGION( 0x200, "eeprom", 0 )
+ ROM_LOAD( "csprint-eeprom.bin", 0x0000, 0x0200, CRC(ce1c7319) SHA1(a12926efd898cda2a05cf23fd9cd6674b9ffc702) )
ROM_END
@@ -2509,8 +2510,8 @@ ROM_START( csprint1 )
ROM_REGION( 0x4000, "gfx3", 0 )
ROM_LOAD( "136045-1117.6t", 0x000000, 0x004000, CRC(82da786d) SHA1(929cc4ebac3d4404e1a8b22b80aae975e0c9da85) )
- ROM_REGION( 0x800, "eeprom", 0 )
- ROM_LOAD( "csprint-eeprom.bin", 0x0000, 0x0800, CRC(064a6c9c) SHA1(b8867a554d97094ac9ec800a1d665cdb5a029b12) )
+ ROM_REGION( 0x200, "eeprom", 0 )
+ ROM_LOAD( "csprint-eeprom.bin", 0x0000, 0x0200, CRC(ce1c7319) SHA1(a12926efd898cda2a05cf23fd9cd6674b9ffc702) )
ROM_END
diff --git a/src/mame/drivers/badlands.c b/src/mame/drivers/badlands.c
index 0e0b1bdf974..03cde476e7c 100644
--- a/src/mame/drivers/badlands.c
+++ b/src/mame/drivers/badlands.c
@@ -373,7 +373,7 @@ WRITE8_MEMBER(badlands_state::audio_io_w)
static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, badlands_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0xfc0000, 0xfc1fff) AM_READ(sound_busy_r) AM_DEVWRITE("soundcomm", atari_sound_comm_device, sound_reset_w)
- AM_RANGE(0xfd0000, 0xfd1fff) AM_READWRITE(eeprom_r, eeprom_w) AM_SHARE("eeprom")
+ AM_RANGE(0xfd0000, 0xfd1fff) AM_DEVREADWRITE8("eeprom", atari_eeprom_device, read, write, 0x00ff)
AM_RANGE(0xfe0000, 0xfe1fff) AM_WRITE(watchdog_reset16_w)
AM_RANGE(0xfe2000, 0xfe3fff) AM_WRITE(video_int_ack_w)
AM_RANGE(0xfe4000, 0xfe5fff) AM_READ_PORT("FE4000")
@@ -384,7 +384,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, badlands_state )
AM_RANGE(0xfe8000, 0xfe9fff) AM_DEVWRITE8("soundcomm", atari_sound_comm_device, main_command_w, 0xff00)
AM_RANGE(0xfea000, 0xfebfff) AM_DEVREAD8("soundcomm", atari_sound_comm_device, main_response_r, 0xff00)
AM_RANGE(0xfec000, 0xfedfff) AM_WRITE(badlands_pf_bank_w)
- AM_RANGE(0xfee000, 0xfeffff) AM_WRITE(eeprom_enable_w)
+ AM_RANGE(0xfee000, 0xfeffff) AM_DEVWRITE("eeprom", atari_eeprom_device, unlock_write)
AM_RANGE(0xffc000, 0xffc3ff) AM_RAM_WRITE(expanded_paletteram_666_w) AM_SHARE("paletteram")
AM_RANGE(0xffe000, 0xffefff) AM_RAM_DEVWRITE("playfield", tilemap_device, write) AM_SHARE("playfield")
AM_RANGE(0xfff000, 0xfff1ff) AM_RAM AM_SHARE("mob")
@@ -503,7 +503,8 @@ static MACHINE_CONFIG_START( badlands, badlands_state )
MCFG_MACHINE_START_OVERRIDE(badlands_state,badlands)
MCFG_MACHINE_RESET_OVERRIDE(badlands_state,badlands)
- MCFG_NVRAM_ADD_1FILL("eeprom")
+
+ MCFG_ATARI_EEPROM_2816_ADD("eeprom")
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
@@ -642,12 +643,12 @@ static ADDRESS_MAP_START( bootleg_map, AS_PROGRAM, 16, badlands_state )
AM_RANGE(0xfe4006, 0xfe4007) AM_READ(badlandsb_unk_r )
- AM_RANGE(0xfd0000, 0xfd1fff) AM_READWRITE(eeprom_r, eeprom_w) AM_SHARE("eeprom")
+ AM_RANGE(0xfd0000, 0xfd1fff) AM_DEVREADWRITE8("eeprom", atari_eeprom_device, read, write, 0x00ff)
//AM_RANGE(0xfe0000, 0xfe1fff) AM_WRITE(watchdog_reset16_w)
AM_RANGE(0xfe2000, 0xfe3fff) AM_WRITE(video_int_ack_w)
AM_RANGE(0xfec000, 0xfedfff) AM_WRITE(badlands_pf_bank_w)
- AM_RANGE(0xfee000, 0xfeffff) AM_WRITE(eeprom_enable_w)
+ AM_RANGE(0xfee000, 0xfeffff) AM_DEVWRITE("eeprom", atari_eeprom_device, unlock_write)
AM_RANGE(0xffc000, 0xffc3ff) AM_RAM_WRITE(expanded_paletteram_666_w) AM_SHARE("paletteram")
AM_RANGE(0xffe000, 0xffefff) AM_RAM_DEVWRITE("playfield", tilemap_device, write) AM_SHARE("playfield")
AM_RANGE(0xfff000, 0xfff1ff) AM_RAM AM_SHARE("mob")
@@ -704,7 +705,8 @@ static MACHINE_CONFIG_START( badlandsb, badlands_state )
MCFG_MACHINE_START_OVERRIDE(badlands_state,badlands)
MCFG_MACHINE_RESET_OVERRIDE(badlands_state,badlandsb)
- MCFG_NVRAM_ADD_1FILL("eeprom")
+
+ MCFG_ATARI_EEPROM_2816_ADD("eeprom")
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
diff --git a/src/mame/drivers/batman.c b/src/mame/drivers/batman.c
index 77427df3eeb..52b56c73e06 100644
--- a/src/mame/drivers/batman.c
+++ b/src/mame/drivers/batman.c
@@ -95,14 +95,14 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, batman_state )
ADDRESS_MAP_GLOBAL_MASK(0x3fffff)
AM_RANGE(0x000000, 0x0bffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_MIRROR(0x010000) AM_RAM
- AM_RANGE(0x120000, 0x120fff) AM_MIRROR(0x01f000) AM_READWRITE(eeprom_r, eeprom_w) AM_SHARE("eeprom")
+ AM_RANGE(0x120000, 0x120fff) AM_MIRROR(0x01f000) AM_DEVREADWRITE8("eeprom", atari_eeprom_device, read, write, 0x00ff)
AM_RANGE(0x260000, 0x260001) AM_MIRROR(0x11ff8c) AM_READ_PORT("260000")
AM_RANGE(0x260002, 0x260003) AM_MIRROR(0x11ff8c) AM_READ_PORT("260002")
AM_RANGE(0x260010, 0x260011) AM_MIRROR(0x11ff8e) AM_READ_PORT("260010")
AM_RANGE(0x260030, 0x260031) AM_MIRROR(0x11ff8e) AM_DEVREAD8("jsa", atari_jsa_iii_device, main_response_r, 0x00ff)
AM_RANGE(0x260040, 0x260041) AM_MIRROR(0x11ff8e) AM_DEVWRITE8("jsa", atari_jsa_iii_device, main_command_w, 0x00ff)
AM_RANGE(0x260050, 0x260051) AM_MIRROR(0x11ff8e) AM_WRITE(latch_w)
- AM_RANGE(0x260060, 0x260061) AM_MIRROR(0x11ff8e) AM_WRITE(eeprom_enable_w)
+ AM_RANGE(0x260060, 0x260061) AM_MIRROR(0x11ff8e) AM_DEVWRITE("eeprom", atari_eeprom_device, unlock_write)
AM_RANGE(0x2a0000, 0x2a0001) AM_MIRROR(0x11fffe) AM_WRITE(watchdog_reset16_w)
AM_RANGE(0x3e0000, 0x3e0fff) AM_MIRROR(0x100000) AM_RAM_WRITE(paletteram_666_w) AM_SHARE("paletteram")
AM_RANGE(0x3effc0, 0x3effff) AM_MIRROR(0x100000) AM_DEVREADWRITE("vad", atari_vad_device, control_read, control_write)
@@ -200,7 +200,8 @@ static MACHINE_CONFIG_START( batman, batman_state )
MCFG_MACHINE_START_OVERRIDE(batman_state,batman)
MCFG_MACHINE_RESET_OVERRIDE(batman_state,batman)
- MCFG_NVRAM_ADD_1FILL("eeprom")
+
+ MCFG_ATARI_EEPROM_2816_ADD("eeprom")
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
@@ -279,8 +280,8 @@ ROM_START( batman )
ROM_LOAD( "136085-1043.15e", 0x40000, 0x20000, CRC(51812d3b) SHA1(6748fecef753179a9257c0da5a7b7c9648437208) )
ROM_LOAD( "136085-1044.12e", 0x60000, 0x20000, CRC(5e2d7f31) SHA1(737c7204d91f5dd5c9ed0321fc6c0d6194a18f8a) )
- ROM_REGION( 0x1000, "eeprom", 0 )
- ROM_LOAD( "batman-eeprom.bin", 0x0000, 0x1000, CRC(ac2f665e) SHA1(557ffea1187a5bd96dc6efc80cf6a27e4dbc84fd) )
+ ROM_REGION( 0x800, "eeprom:eeprom", 0 )
+ ROM_LOAD( "batman-eeprom.bin", 0x0000, 0x800, CRC(c859b535) SHA1(b7f37aab1e869e92fbcc69af98a9c14f7cf2b418) )
ROM_REGION( 0x1000, "plds", 0 )
ROM_LOAD( "gal16v8a-136085-1001.m9", 0x0000, 0x0117, CRC(45dfc0cf) SHA1(39cbb27e504e09d97caea144bfdec2247a39caf9) )
diff --git a/src/mame/drivers/blstroid.c b/src/mame/drivers/blstroid.c
index af2b5c18b2d..8102be5525a 100644
--- a/src/mame/drivers/blstroid.c
+++ b/src/mame/drivers/blstroid.c
@@ -65,7 +65,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, blstroid_state )
AM_RANGE(0xff8000, 0xff8001) AM_MIRROR(0x7f81fe) AM_WRITE(watchdog_reset16_w)
AM_RANGE(0xff8200, 0xff8201) AM_MIRROR(0x7f81fe) AM_WRITE(scanline_int_ack_w)
AM_RANGE(0xff8400, 0xff8401) AM_MIRROR(0x7f81fe) AM_WRITE(video_int_ack_w)
- AM_RANGE(0xff8600, 0xff8601) AM_MIRROR(0x7f81fe) AM_WRITE(eeprom_enable_w)
+ AM_RANGE(0xff8600, 0xff8601) AM_MIRROR(0x7f81fe) AM_DEVWRITE("eeprom", atari_eeprom_device, unlock_write)
AM_RANGE(0xff8800, 0xff89ff) AM_MIRROR(0x7f8000) AM_WRITEONLY AM_SHARE("priorityram")
AM_RANGE(0xff8a00, 0xff8a01) AM_MIRROR(0x7f81fe) AM_DEVWRITE8("jsa", atari_jsa_i_device, main_command_w, 0x00ff)
AM_RANGE(0xff8c00, 0xff8c01) AM_MIRROR(0x7f81fe) AM_DEVWRITE("jsa", atari_jsa_i_device, sound_reset_w)
@@ -76,7 +76,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, blstroid_state )
AM_RANGE(0xff9c00, 0xff9c01) AM_MIRROR(0x7f83fc) AM_READ_PORT("IN0")
AM_RANGE(0xff9c02, 0xff9c03) AM_MIRROR(0x7f83fc) AM_READ_PORT("IN1")
AM_RANGE(0xffa000, 0xffa3ff) AM_MIRROR(0x7f8c00) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram")
- AM_RANGE(0xffb000, 0xffb3ff) AM_MIRROR(0x7f8c00) AM_READWRITE(eeprom_r, eeprom_w) AM_SHARE("eeprom")
+ AM_RANGE(0xffb000, 0xffb3ff) AM_MIRROR(0x7f8c00) AM_DEVREADWRITE8("eeprom", atari_eeprom_device, read, write, 0x00ff)
AM_RANGE(0xffc000, 0xffcfff) AM_MIRROR(0x7f8000) AM_RAM_DEVWRITE("playfield", tilemap_device, write) AM_SHARE("playfield")
AM_RANGE(0xffd000, 0xffdfff) AM_MIRROR(0x7f8000) AM_RAM AM_SHARE("mob")
AM_RANGE(0xffe000, 0xffffff) AM_MIRROR(0x7f8000) AM_RAM
@@ -176,7 +176,8 @@ static MACHINE_CONFIG_START( blstroid, blstroid_state )
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", atarigen_state, video_int_gen)
MCFG_MACHINE_RESET_OVERRIDE(blstroid_state,blstroid)
- MCFG_NVRAM_ADD_1FILL("eeprom")
+
+ MCFG_ATARI_EEPROM_2804_ADD("eeprom")
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
diff --git a/src/mame/drivers/cyberbal.c b/src/mame/drivers/cyberbal.c
index 3ad685eb303..3742476e3eb 100644
--- a/src/mame/drivers/cyberbal.c
+++ b/src/mame/drivers/cyberbal.c
@@ -62,7 +62,7 @@ MACHINE_START_MEMBER(cyberbal_state,cyberbal)
MACHINE_RESET_MEMBER(cyberbal_state,cyberbal)
{
atarigen_state::machine_reset();
- scanline_timer_reset(*m_screen, 8);
+ scanline_timer_reset(*m_lscreen, 8);
cyberbal_sound_reset();
@@ -115,9 +115,9 @@ WRITE16_MEMBER(cyberbal_state::p2_reset_w)
static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, cyberbal_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
- AM_RANGE(0xfc0000, 0xfc0fff) AM_READWRITE(eeprom_r, eeprom_w) AM_SHARE("eeprom")
+ AM_RANGE(0xfc0000, 0xfc0fff) AM_DEVREADWRITE8("eeprom", atari_eeprom_device, read, write, 0x00ff)
AM_RANGE(0xfc8000, 0xfcffff) AM_DEVREAD8("soundcomm", atari_sound_comm_device, main_response_r, 0xff00)
- AM_RANGE(0xfd0000, 0xfd1fff) AM_WRITE(eeprom_enable_w)
+ AM_RANGE(0xfd0000, 0xfd1fff) AM_DEVWRITE("eeprom", atari_eeprom_device, unlock_write)
AM_RANGE(0xfd2000, 0xfd3fff) AM_DEVWRITE("soundcomm", atari_sound_comm_device, sound_reset_w)
AM_RANGE(0xfd4000, 0xfd5fff) AM_WRITE(watchdog_reset16_w)
AM_RANGE(0xfd6000, 0xfd7fff) AM_WRITE(p2_reset_w)
@@ -219,9 +219,9 @@ static ADDRESS_MAP_START( cyberbal2p_map, AS_PROGRAM, 16, cyberbal_state )
AM_RANGE(0xfc2000, 0xfc2003) AM_READ_PORT("IN1")
AM_RANGE(0xfc4000, 0xfc4003) AM_READ_PORT("IN2")
AM_RANGE(0xfc6000, 0xfc6003) AM_DEVREAD8("jsa", atari_jsa_ii_device, main_response_r, 0xff00)
- AM_RANGE(0xfc8000, 0xfc8fff) AM_READWRITE(eeprom_r, eeprom_w) AM_SHARE("eeprom")
+ AM_RANGE(0xfc8000, 0xfc8fff) AM_DEVREADWRITE8("eeprom", atari_eeprom_device, read, write, 0x00ff)
AM_RANGE(0xfca000, 0xfcafff) AM_RAM_WRITE(paletteram_666_w) AM_SHARE("paletteram")
- AM_RANGE(0xfd0000, 0xfd0003) AM_WRITE(eeprom_enable_w)
+ AM_RANGE(0xfd0000, 0xfd0003) AM_DEVWRITE("eeprom", atari_eeprom_device, unlock_write)
AM_RANGE(0xfd2000, 0xfd2003) AM_DEVWRITE("jsa", atari_jsa_ii_device, sound_reset_w)
AM_RANGE(0xfd4000, 0xfd4003) AM_WRITE(watchdog_reset16_w)
AM_RANGE(0xfd6000, 0xfd6003) AM_WRITE(video_int_ack_w)
@@ -403,7 +403,8 @@ static MACHINE_CONFIG_START( cyberbal, cyberbal_state )
MCFG_MACHINE_START_OVERRIDE(cyberbal_state,cyberbal)
MCFG_MACHINE_RESET_OVERRIDE(cyberbal_state,cyberbal)
- MCFG_NVRAM_ADD_1FILL("eeprom")
+
+ MCFG_ATARI_EEPROM_2804_ADD("eeprom")
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
@@ -449,6 +450,12 @@ static MACHINE_CONFIG_START( cyberbal, cyberbal_state )
MACHINE_CONFIG_END
+static MACHINE_CONFIG_DERIVED( cyberbalt, cyberbal )
+ MCFG_DEVICE_REMOVE("eeprom")
+ MCFG_ATARI_EEPROM_2816_ADD("eeprom")
+MACHINE_CONFIG_END
+
+
static MACHINE_CONFIG_START( cyberbal2p, cyberbal_state )
/* basic machine hardware */
@@ -458,7 +465,8 @@ static MACHINE_CONFIG_START( cyberbal2p, cyberbal_state )
MCFG_MACHINE_START_OVERRIDE(cyberbal_state,cyberbal)
MCFG_MACHINE_RESET_OVERRIDE(cyberbal_state,cyberbal2p)
- MCFG_NVRAM_ADD_1FILL("eeprom")
+
+ MCFG_ATARI_EEPROM_2816_ADD("eeprom")
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
@@ -549,8 +557,8 @@ ROM_START( cyberbal )
ROM_LOAD( "gal16v8-136064-1029.d58", 0x0600, 0x0117, CRC(fd39d238) SHA1(55c1b9a56c9b2bfa434eed54f7baea436ea141b8) )
ROM_LOAD( "gal16v8-136064-1030.d91", 0x0800, 0x0117, CRC(84102588) SHA1(b6bffb47e5975c96b056d07357eb020caf3f0a0a) )
- ROM_REGION( 0x1000, "eeprom", 0 )
- ROM_LOAD( "cyberbal-eeprom.bin", 0x0000, 0x1000, CRC(72334788) SHA1(101a8057d616969ece4050a1e15593280099c5a5) )
+ ROM_REGION( 0x200, "eeprom:eeprom", 0 )
+ ROM_LOAD( "cyberbal-eeprom.bin", 0x0000, 0x200, CRC(c6f256b2) SHA1(e0c62adcd9fd38e9d3ac60e6b08d468e04a350c6) )
ROM_END
@@ -603,8 +611,8 @@ ROM_START( cyberbal2 )
ROM_LOAD( "136064-1121.15n", 0x000000, 0x010000, CRC(0ca1e3b3) SHA1(d934bc9a1def4404fb86175878404cbb18127a11) )
ROM_LOAD( "136064-1122.16n", 0x010000, 0x010000, CRC(882f4e1c) SHA1(f7517ff03502ff029fb375260a35e45414567433) )
- ROM_REGION( 0x1000, "eeprom", 0 )
- ROM_LOAD( "cyberbal-eeprom.bin", 0x0000, 0x1000, CRC(72334788) SHA1(101a8057d616969ece4050a1e15593280099c5a5) )
+ ROM_REGION( 0x200, "eeprom:eeprom", 0 )
+ ROM_LOAD( "cyberbal-eeprom.bin", 0x0000, 0x200, CRC(c6f256b2) SHA1(e0c62adcd9fd38e9d3ac60e6b08d468e04a350c6) )
ROM_END
@@ -657,8 +665,8 @@ ROM_START( cyberbalp )
ROM_LOAD( "136064-1121.15n", 0x000000, 0x010000, CRC(0ca1e3b3) SHA1(d934bc9a1def4404fb86175878404cbb18127a11) )
ROM_LOAD( "136064-1122.16n", 0x010000, 0x010000, CRC(882f4e1c) SHA1(f7517ff03502ff029fb375260a35e45414567433) )
- ROM_REGION( 0x1000, "eeprom", 0 )
- ROM_LOAD( "cyberbal-eeprom.bin", 0x0000, 0x1000, CRC(72334788) SHA1(101a8057d616969ece4050a1e15593280099c5a5) )
+ ROM_REGION( 0x200, "eeprom:eeprom", 0 )
+ ROM_LOAD( "cyberbal-eeprom.bin", 0x0000, 0x200, CRC(c6f256b2) SHA1(e0c62adcd9fd38e9d3ac60e6b08d468e04a350c6) )
ROM_END
@@ -707,8 +715,8 @@ ROM_START( cyberbal2p )
ROM_LOAD( "136071-1045.7e", 0x020000, 0x010000, CRC(f82558b9) SHA1(afbecccc6203db9bdcf60638e0f4e95040d7aaf2) )
ROM_LOAD( "136071-1046.7d", 0x030000, 0x010000, CRC(d96437ad) SHA1(b0b5cd75de4048e54b9d7d09a75381eb73c22ee1) )
- ROM_REGION( 0x1000, "eeprom", 0 )
- ROM_LOAD( "cyberbal-eeprom.bin", 0x0000, 0x1000, CRC(72334788) SHA1(101a8057d616969ece4050a1e15593280099c5a5) )
+ ROM_REGION( 0x800, "eeprom:eeprom", 0 )
+ ROM_LOAD( "cyberbal2p-eeprom.bin", 0x0000, 0x800, CRC(3753f0e2) SHA1(26feab263a4d2d1dfcdf62e1225e0596cc036e1d) )
ROM_END
@@ -757,8 +765,8 @@ ROM_START( cyberbal2p3 )
ROM_LOAD( "136071-1045.7e", 0x020000, 0x010000, CRC(f82558b9) SHA1(afbecccc6203db9bdcf60638e0f4e95040d7aaf2) )
ROM_LOAD( "136071-1046.7d", 0x030000, 0x010000, CRC(d96437ad) SHA1(b0b5cd75de4048e54b9d7d09a75381eb73c22ee1) )
- ROM_REGION( 0x1000, "eeprom", 0 )
- ROM_LOAD( "cyberbal-eeprom.bin", 0x0000, 0x1000, CRC(72334788) SHA1(101a8057d616969ece4050a1e15593280099c5a5) )
+ ROM_REGION( 0x800, "eeprom:eeprom", 0 )
+ ROM_LOAD( "cyberbal2p-eeprom.bin", 0x0000, 0x800, CRC(3753f0e2) SHA1(26feab263a4d2d1dfcdf62e1225e0596cc036e1d) )
ROM_END
@@ -807,8 +815,8 @@ ROM_START( cyberbal2p2 )
ROM_LOAD( "136071-1045.7e", 0x020000, 0x010000, CRC(f82558b9) SHA1(afbecccc6203db9bdcf60638e0f4e95040d7aaf2) )
ROM_LOAD( "136071-1046.7d", 0x030000, 0x010000, CRC(d96437ad) SHA1(b0b5cd75de4048e54b9d7d09a75381eb73c22ee1) )
- ROM_REGION( 0x1000, "eeprom", 0 )
- ROM_LOAD( "cyberbal-eeprom.bin", 0x0000, 0x1000, CRC(72334788) SHA1(101a8057d616969ece4050a1e15593280099c5a5) )
+ ROM_REGION( 0x800, "eeprom:eeprom", 0 )
+ ROM_LOAD( "cyberbal2p-eeprom.bin", 0x0000, 0x800, CRC(3753f0e2) SHA1(26feab263a4d2d1dfcdf62e1225e0596cc036e1d) )
ROM_END
@@ -857,8 +865,8 @@ ROM_START( cyberbal2p1 )
ROM_LOAD( "136071-1045.7e", 0x020000, 0x010000, CRC(f82558b9) SHA1(afbecccc6203db9bdcf60638e0f4e95040d7aaf2) )
ROM_LOAD( "136071-1046.7d", 0x030000, 0x010000, CRC(d96437ad) SHA1(b0b5cd75de4048e54b9d7d09a75381eb73c22ee1) )
- ROM_REGION( 0x1000, "eeprom", 0 )
- ROM_LOAD( "cyberbal-eeprom.bin", 0x0000, 0x1000, CRC(72334788) SHA1(101a8057d616969ece4050a1e15593280099c5a5) )
+ ROM_REGION( 0x800, "eeprom:eeprom", 0 )
+ ROM_LOAD( "cyberbal2p-eeprom.bin", 0x0000, 0x800, CRC(3753f0e2) SHA1(26feab263a4d2d1dfcdf62e1225e0596cc036e1d) )
ROM_END
@@ -909,8 +917,8 @@ ROM_START( cyberbalt )
ROM_LOAD( "136073-1005.15n", 0x000000, 0x010000, CRC(833b4768) SHA1(754f00089d439fb0aa1f650c1fef73cf7e5f33a1) )
ROM_LOAD( "136073-1006.16n", 0x010000, 0x010000, CRC(4976cffd) SHA1(4cac8d9bd30743da6e6e4f013e6101ebc27060b6) )
- ROM_REGION( 0x1000, "eeprom", 0 )
- ROM_LOAD( "cyberbal-eeprom.bin", 0x0000, 0x1000, CRC(72334788) SHA1(101a8057d616969ece4050a1e15593280099c5a5) )
+ ROM_REGION( 0x800, "eeprom:eeprom", 0 )
+ ROM_LOAD( "cyberbalt-eeprom.bin", 0x0000, 0x800, CRC(0743c0a6) SHA1(0b7421484f640b528e96aed103775e81bbb60f62) )
ROM_END
@@ -961,8 +969,8 @@ ROM_START( cyberbalt1 )
ROM_LOAD( "136073-1005.15n", 0x000000, 0x010000, CRC(833b4768) SHA1(754f00089d439fb0aa1f650c1fef73cf7e5f33a1) )
ROM_LOAD( "136073-1006.16n", 0x010000, 0x010000, CRC(4976cffd) SHA1(4cac8d9bd30743da6e6e4f013e6101ebc27060b6) )
- ROM_REGION( 0x1000, "eeprom", 0 )
- ROM_LOAD( "cyberbal-eeprom.bin", 0x0000, 0x1000, CRC(72334788) SHA1(101a8057d616969ece4050a1e15593280099c5a5) )
+ ROM_REGION( 0x800, "eeprom:eeprom", 0 )
+ ROM_LOAD( "cyberbalt-eeprom.bin", 0x0000, 0x800, CRC(0743c0a6) SHA1(0b7421484f640b528e96aed103775e81bbb60f62) )
ROM_END
@@ -997,14 +1005,14 @@ DRIVER_INIT_MEMBER(cyberbal_state,cyberbal2p)
*
*************************************/
-GAMEL(1988, cyberbal, 0, cyberbal, cyberbal, cyberbal_state, cyberbal, ROT0, "Atari Games", "Cyberball (rev 4)", 0, layout_dualhsxs )
-GAMEL(1988, cyberbal2, cyberbal, cyberbal, cyberbal, cyberbal_state, cyberbal, ROT0, "Atari Games", "Cyberball (rev 2)", 0, layout_dualhsxs )
-GAMEL(1988, cyberbalp, cyberbal, cyberbal, cyberbal, cyberbal_state, cyberbal, ROT0, "Atari Games", "Cyberball (prototype)", 0, layout_dualhsxs )
+GAMEL(1988, cyberbal, 0, cyberbal, cyberbal, cyberbal_state, cyberbal, ROT0, "Atari Games", "Cyberball (rev 4)", 0, layout_dualhsxs )
+GAMEL(1988, cyberbal2, cyberbal, cyberbal, cyberbal, cyberbal_state, cyberbal, ROT0, "Atari Games", "Cyberball (rev 2)", 0, layout_dualhsxs )
+GAMEL(1988, cyberbalp, cyberbal, cyberbal, cyberbal, cyberbal_state, cyberbal, ROT0, "Atari Games", "Cyberball (prototype)", 0, layout_dualhsxs )
GAME( 1989, cyberbal2p, cyberbal, cyberbal2p, cyberbal2p, cyberbal_state, cyberbal2p, ROT0, "Atari Games", "Cyberball 2072 (2 player, rev 4)", 0 )
GAME( 1989, cyberbal2p3, cyberbal, cyberbal2p, cyberbal2p, cyberbal_state, cyberbal2p, ROT0, "Atari Games", "Cyberball 2072 (2 player, rev 3)", 0 )
GAME( 1989, cyberbal2p2, cyberbal, cyberbal2p, cyberbal2p, cyberbal_state, cyberbal2p, ROT0, "Atari Games", "Cyberball 2072 (2 player, rev 2)", 0 )
GAME( 1989, cyberbal2p1, cyberbal, cyberbal2p, cyberbal2p, cyberbal_state, cyberbal2p, ROT0, "Atari Games", "Cyberball 2072 (2 player, rev 1)", 0 )
-GAMEL(1989, cyberbalt, cyberbal, cyberbal, cyberbal, cyberbal_state, cyberbalt, ROT0, "Atari Games", "Tournament Cyberball 2072 (rev 2)", 0, layout_dualhsxs )
-GAMEL(1989, cyberbalt1, cyberbal, cyberbal, cyberbal, cyberbal_state, cyberbalt, ROT0, "Atari Games", "Tournament Cyberball 2072 (rev 1)", 0, layout_dualhsxs )
+GAMEL(1989, cyberbalt, cyberbal, cyberbalt, cyberbal, cyberbal_state, cyberbalt, ROT0, "Atari Games", "Tournament Cyberball 2072 (rev 2)", 0, layout_dualhsxs )
+GAMEL(1989, cyberbalt1, cyberbal, cyberbalt, cyberbal, cyberbal_state, cyberbalt, ROT0, "Atari Games", "Tournament Cyberball 2072 (rev 1)", 0, layout_dualhsxs )
diff --git a/src/mame/drivers/eprom.c b/src/mame/drivers/eprom.c
index c08e770dccf..006040f4349 100644
--- a/src/mame/drivers/eprom.c
+++ b/src/mame/drivers/eprom.c
@@ -138,10 +138,10 @@ WRITE16_MEMBER(eprom_state::sync_w)
static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, eprom_state )
AM_RANGE(0x000000, 0x09ffff) AM_ROM
- AM_RANGE(0x0e0000, 0x0e0fff) AM_READWRITE(eeprom_r, eeprom_w) AM_SHARE("eeprom")
+ AM_RANGE(0x0e0000, 0x0e0fff) AM_DEVREADWRITE8("eeprom", atari_eeprom_device, read, write, 0x00ff)
AM_RANGE(0x16cc00, 0x16cc01) AM_RAM AM_SHARE("sync_data")
AM_RANGE(0x160000, 0x16ffff) AM_RAM AM_SHARE("share1")
- AM_RANGE(0x1f0000, 0x1fffff) AM_WRITE(eeprom_enable_w)
+ AM_RANGE(0x1f0000, 0x1fffff) AM_DEVWRITE("eeprom", atari_eeprom_device, unlock_write)
AM_RANGE(0x260000, 0x26000f) AM_READ_PORT("260000")
AM_RANGE(0x260010, 0x26001f) AM_READ(special_port1_r)
AM_RANGE(0x260020, 0x26002f) AM_READ(adc_r)
@@ -163,10 +163,10 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( guts_map, AS_PROGRAM, 16, eprom_state )
AM_RANGE(0x000000, 0x09ffff) AM_ROM
- AM_RANGE(0x0e0000, 0x0e0fff) AM_READWRITE(eeprom_r, eeprom_w) AM_SHARE("eeprom")
+ AM_RANGE(0x0e0000, 0x0e0fff) AM_DEVREADWRITE8("eeprom", atari_eeprom_device, read, write, 0x00ff)
AM_RANGE(0x16cc00, 0x16cc01) AM_RAM AM_SHARE("sync_data")
AM_RANGE(0x160000, 0x16ffff) AM_RAM AM_SHARE("share1")
- AM_RANGE(0x1f0000, 0x1fffff) AM_WRITE(eeprom_enable_w)
+ AM_RANGE(0x1f0000, 0x1fffff) AM_DEVWRITE("eeprom", atari_eeprom_device, unlock_write)
AM_RANGE(0x260000, 0x26000f) AM_READ_PORT("260000")
AM_RANGE(0x260010, 0x26001f) AM_READ(special_port1_r)
AM_RANGE(0x260020, 0x26002f) AM_READ(adc_r)
@@ -390,7 +390,8 @@ static MACHINE_CONFIG_START( eprom, eprom_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
MCFG_MACHINE_RESET_OVERRIDE(eprom_state,eprom)
- MCFG_NVRAM_ADD_1FILL("eeprom")
+
+ MCFG_ATARI_EEPROM_2804_ADD("eeprom")
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
@@ -429,7 +430,8 @@ static MACHINE_CONFIG_START( klaxp, eprom_state )
MCFG_QUANTUM_TIME(attotime::from_hz(600))
MCFG_MACHINE_RESET_OVERRIDE(eprom_state,eprom)
- MCFG_NVRAM_ADD_1FILL("eeprom")
+
+ MCFG_ATARI_EEPROM_2804_ADD("eeprom")
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
@@ -467,7 +469,8 @@ static MACHINE_CONFIG_START( guts, eprom_state )
MCFG_QUANTUM_TIME(attotime::from_hz(600))
MCFG_MACHINE_RESET_OVERRIDE(eprom_state,eprom)
- MCFG_NVRAM_ADD_1FILL("eeprom")
+
+ MCFG_ATARI_EEPROM_2804_ADD("eeprom")
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
diff --git a/src/mame/drivers/gauntlet.c b/src/mame/drivers/gauntlet.c
index 85dbf9abc5b..95a29f4c53e 100644
--- a/src/mame/drivers/gauntlet.c
+++ b/src/mame/drivers/gauntlet.c
@@ -285,7 +285,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, gauntlet_state )
/* MBUS */
AM_RANGE(0x800000, 0x801fff) AM_MIRROR(0x2fc000) AM_RAM
- AM_RANGE(0x802000, 0x802fff) AM_MIRROR(0x2fc000) AM_READWRITE(eeprom_r, eeprom_w) AM_SHARE("eeprom")
+ AM_RANGE(0x802000, 0x802fff) AM_MIRROR(0x2fc000) AM_DEVREADWRITE8("eeprom", atari_eeprom_device, read, write, 0x00ff)
AM_RANGE(0x803000, 0x803001) AM_MIRROR(0x2fcef0) AM_READ_PORT("803000")
AM_RANGE(0x803002, 0x803003) AM_MIRROR(0x2fcef0) AM_READ_PORT("803002")
AM_RANGE(0x803004, 0x803005) AM_MIRROR(0x2fcef0) AM_READ_PORT("803004")
@@ -295,7 +295,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, gauntlet_state )
AM_RANGE(0x803100, 0x803101) AM_MIRROR(0x2fce8e) AM_WRITE(watchdog_reset16_w)
AM_RANGE(0x803120, 0x803121) AM_MIRROR(0x2fce8e) AM_DEVWRITE("soundcomm", atari_sound_comm_device, sound_reset_w)
AM_RANGE(0x803140, 0x803141) AM_MIRROR(0x2fce8e) AM_WRITE(video_int_ack_w)
- AM_RANGE(0x803150, 0x803151) AM_MIRROR(0x2fce8e) AM_WRITE(eeprom_enable_w)
+ AM_RANGE(0x803150, 0x803151) AM_MIRROR(0x2fce8e) AM_DEVWRITE("eeprom", atari_eeprom_device, unlock_write)
AM_RANGE(0x803170, 0x803171) AM_MIRROR(0x2fce8e) AM_DEVWRITE8("soundcomm", atari_sound_comm_device, main_command_w, 0x00ff)
/* VBUS */
@@ -502,7 +502,8 @@ static MACHINE_CONFIG_START( gauntlet, gauntlet_state )
MCFG_MACHINE_START_OVERRIDE(gauntlet_state,gauntlet)
MCFG_MACHINE_RESET_OVERRIDE(gauntlet_state,gauntlet)
- MCFG_NVRAM_ADD_1FILL("eeprom")
+
+ MCFG_ATARI_EEPROM_2804_ADD("eeprom")
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
@@ -1621,7 +1622,6 @@ void gauntlet_state::swap_memory(void *ptr1, void *ptr2, int bytes)
void gauntlet_state::common_init(int slapstic, int vindctr2)
{
UINT8 *rom = memregion("maincpu")->base();
- m_eeprom_default = NULL;
slapstic_configure(*m_maincpu, 0x038000, 0, slapstic);
/* swap the top and bottom halves of the main CPU ROM images */
diff --git a/src/mame/drivers/harddriv.c b/src/mame/drivers/harddriv.c
index e60c0f905ca..84f3527539d 100644
--- a/src/mame/drivers/harddriv.c
+++ b/src/mame/drivers/harddriv.c
@@ -437,7 +437,7 @@ static ADDRESS_MAP_START( driver_68k_map, AS_PROGRAM, 16, harddriv_state )
AM_RANGE(0xc00000, 0xc03fff) AM_READWRITE_LEGACY(hd68k_gsp_io_r, hd68k_gsp_io_w)
AM_RANGE(0xc04000, 0xc07fff) AM_READWRITE_LEGACY(hd68k_msp_io_r, hd68k_msp_io_w)
AM_RANGE(0xff0000, 0xff001f) AM_DEVREADWRITE8("duartn68681", duartn68681_device, read, write, 0xff00)
- AM_RANGE(0xff4000, 0xff4fff) AM_READWRITE_LEGACY(hd68k_zram_r, hd68k_zram_w) AM_SHARE("eeprom")
+ AM_RANGE(0xff4000, 0xff4fff) AM_READWRITE_LEGACY(hd68k_zram_r, hd68k_zram_w) AM_SHARE("zram")
AM_RANGE(0xff8000, 0xffffff) AM_RAM
ADDRESS_MAP_END
@@ -484,7 +484,7 @@ static ADDRESS_MAP_START( multisync_68k_map, AS_PROGRAM, 16, harddriv_state )
AM_RANGE(0xc00000, 0xc03fff) AM_READWRITE_LEGACY(hd68k_gsp_io_r, hd68k_gsp_io_w)
AM_RANGE(0xc04000, 0xc07fff) AM_READWRITE_LEGACY(hd68k_msp_io_r, hd68k_msp_io_w)
AM_RANGE(0xff0000, 0xff001f) AM_DEVREADWRITE8("duartn68681", duartn68681_device, read, write, 0xff00)
- AM_RANGE(0xff4000, 0xff4fff) AM_READWRITE_LEGACY(hd68k_zram_r, hd68k_zram_w) AM_SHARE("eeprom")
+ AM_RANGE(0xff4000, 0xff4fff) AM_READWRITE_LEGACY(hd68k_zram_r, hd68k_zram_w) AM_SHARE("zram")
AM_RANGE(0xff8000, 0xffffff) AM_RAM
ADDRESS_MAP_END
@@ -522,7 +522,7 @@ static ADDRESS_MAP_START( multisync2_68k_map, AS_PROGRAM, 16, harddriv_state )
AM_RANGE(0xc00000, 0xc03fff) AM_READWRITE_LEGACY(hd68k_gsp_io_r, hd68k_gsp_io_w)
AM_RANGE(0xc04000, 0xc07fff) AM_READWRITE_LEGACY(hd68k_msp_io_r, hd68k_msp_io_w)
AM_RANGE(0xfc0000, 0xfc001f) AM_DEVREADWRITE8("duartn68681", duartn68681_device, read, write, 0xff00)
- AM_RANGE(0xfd0000, 0xfd0fff) AM_MIRROR(0x004000) AM_READWRITE_LEGACY(hd68k_zram_r, hd68k_zram_w) AM_SHARE("eeprom")
+ AM_RANGE(0xfd0000, 0xfd0fff) AM_MIRROR(0x004000) AM_READWRITE_LEGACY(hd68k_zram_r, hd68k_zram_w) AM_SHARE("zram")
AM_RANGE(0xff0000, 0xffffff) AM_RAM
ADDRESS_MAP_END
@@ -1349,7 +1349,9 @@ static MACHINE_CONFIG_START( driver_nomsp, harddriv_state )
MCFG_MACHINE_START_OVERRIDE(harddriv_state,harddriv)
MCFG_MACHINE_RESET_OVERRIDE(harddriv_state,harddriv)
- MCFG_NVRAM_ADD_1FILL("eeprom")
+
+// TODO: ZRAM is really an MK48T02 MCFG_MK48T02_ADD("zram")
+ MCFG_NVRAM_ADD_1FILL("zram")
MCFG_DUARTN68681_ADD("duartn68681", XTAL_3_6864MHz, duart_config)
@@ -1664,7 +1666,7 @@ ROM_START( harddriv )
ROM_LOAD( "136052-1125.45a", 0x020000, 0x010000, CRC(ebf391af) SHA1(3c4097db8d625b994b39d46fe652585a74378ca0) )
ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
- ROM_REGION( 0x1000, "eeprom", 0 )
+ ROM_REGION( 0x1000, "zram", 0 )
ROM_LOAD( "harddriv-eeprom.bin", 0x0000, 0x1000, CRC(692ef86c) SHA1(e79dab6969d0e835e8ae8eaf2f08d5d81d391ef7) )
ROM_END
@@ -1696,7 +1698,7 @@ ROM_START( harddrivg )
ROM_LOAD( "136052-1125.45a", 0x020000, 0x010000, CRC(ebf391af) SHA1(3c4097db8d625b994b39d46fe652585a74378ca0) )
ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
- ROM_REGION( 0x1000, "eeprom", 0 )
+ ROM_REGION( 0x1000, "zram", 0 )
ROM_LOAD( "harddriv-eeprom.bin", 0x0000, 0x1000, CRC(692ef86c) SHA1(e79dab6969d0e835e8ae8eaf2f08d5d81d391ef7) )
ROM_END
@@ -1730,7 +1732,7 @@ ROM_START( harddrivj )
ROM_LOAD( "136052-1125.45a", 0x020000, 0x010000, CRC(ebf391af) SHA1(3c4097db8d625b994b39d46fe652585a74378ca0) )
ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
- ROM_REGION( 0x1000, "eeprom", 0 )
+ ROM_REGION( 0x1000, "zram", 0 )
ROM_LOAD( "harddriv-eeprom.bin", 0x0000, 0x1000, CRC(692ef86c) SHA1(e79dab6969d0e835e8ae8eaf2f08d5d81d391ef7) )
ROM_END
@@ -1762,7 +1764,7 @@ ROM_START( harddrivb )
ROM_LOAD( "136052-1125.45a", 0x020000, 0x010000, CRC(ebf391af) SHA1(3c4097db8d625b994b39d46fe652585a74378ca0) )
ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
- ROM_REGION( 0x1000, "eeprom", 0 )
+ ROM_REGION( 0x1000, "zram", 0 )
ROM_LOAD( "harddriv-eeprom.bin", 0x0000, 0x1000, CRC(692ef86c) SHA1(e79dab6969d0e835e8ae8eaf2f08d5d81d391ef7) )
ROM_END
@@ -1794,7 +1796,7 @@ ROM_START( harddrivb6 )
ROM_LOAD( "136052-1125.45a", 0x020000, 0x010000, CRC(ebf391af) SHA1(3c4097db8d625b994b39d46fe652585a74378ca0) )
ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
- ROM_REGION( 0x1000, "eeprom", 0 )
+ ROM_REGION( 0x1000, "zram", 0 )
ROM_LOAD( "harddriv-eeprom.bin", 0x0000, 0x1000, CRC(692ef86c) SHA1(e79dab6969d0e835e8ae8eaf2f08d5d81d391ef7) )
ROM_END
@@ -1828,7 +1830,7 @@ ROM_START( harddrivj6 )
ROM_LOAD( "136052-1125.45a", 0x020000, 0x010000, CRC(ebf391af) SHA1(3c4097db8d625b994b39d46fe652585a74378ca0) )
ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
- ROM_REGION( 0x1000, "eeprom", 0 )
+ ROM_REGION( 0x1000, "zram", 0 )
ROM_LOAD( "harddriv-eeprom.bin", 0x0000, 0x1000, CRC(692ef86c) SHA1(e79dab6969d0e835e8ae8eaf2f08d5d81d391ef7) )
ROM_END
@@ -1860,7 +1862,7 @@ ROM_START( harddrivb5 )
ROM_LOAD( "136052-1125.45a", 0x020000, 0x010000, CRC(ebf391af) SHA1(3c4097db8d625b994b39d46fe652585a74378ca0) )
ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
- ROM_REGION( 0x1000, "eeprom", 0 )
+ ROM_REGION( 0x1000, "zram", 0 )
ROM_LOAD( "harddriv-eeprom.bin", 0x0000, 0x1000, CRC(692ef86c) SHA1(e79dab6969d0e835e8ae8eaf2f08d5d81d391ef7) )
ROM_END
@@ -1892,7 +1894,7 @@ ROM_START( harddrivg4 )
ROM_LOAD( "136052-1125.45a", 0x020000, 0x010000, CRC(ebf391af) SHA1(3c4097db8d625b994b39d46fe652585a74378ca0) )
ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
- ROM_REGION( 0x1000, "eeprom", 0 )
+ ROM_REGION( 0x1000, "zram", 0 )
ROM_LOAD( "harddriv-eeprom.bin", 0x0000, 0x1000, CRC(692ef86c) SHA1(e79dab6969d0e835e8ae8eaf2f08d5d81d391ef7) )
ROM_END
@@ -1924,7 +1926,7 @@ ROM_START( harddriv3 )
ROM_LOAD( "136052-1125.45a", 0x020000, 0x010000, CRC(ebf391af) SHA1(3c4097db8d625b994b39d46fe652585a74378ca0) )
ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
- ROM_REGION( 0x1000, "eeprom", 0 )
+ ROM_REGION( 0x1000, "zram", 0 )
ROM_LOAD( "harddriv-eeprom.bin", 0x0000, 0x1000, CRC(692ef86c) SHA1(e79dab6969d0e835e8ae8eaf2f08d5d81d391ef7) )
ROM_END
@@ -1956,7 +1958,7 @@ ROM_START( harddriv2 )
ROM_LOAD( "136052-1125.45a", 0x020000, 0x010000, CRC(ebf391af) SHA1(3c4097db8d625b994b39d46fe652585a74378ca0) )
ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
- ROM_REGION( 0x1000, "eeprom", 0 )
+ ROM_REGION( 0x1000, "zram", 0 )
ROM_LOAD( "harddriv-eeprom.bin", 0x0000, 0x1000, CRC(692ef86c) SHA1(e79dab6969d0e835e8ae8eaf2f08d5d81d391ef7) )
ROM_END
@@ -1988,7 +1990,7 @@ ROM_START( harddriv1 )
ROM_LOAD( "136052-1125.45a", 0x020000, 0x010000, CRC(ebf391af) SHA1(3c4097db8d625b994b39d46fe652585a74378ca0) )
ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
- ROM_REGION( 0x1000, "eeprom", 0 )
+ ROM_REGION( 0x1000, "zram", 0 )
ROM_LOAD( "harddriv-eeprom.bin", 0x0000, 0x1000, CRC(692ef86c) SHA1(e79dab6969d0e835e8ae8eaf2f08d5d81d391ef7) )
ROM_END
@@ -2020,7 +2022,7 @@ ROM_START( harddrivc )
ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) )
ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
- ROM_REGION( 0x1000, "eeprom", 0 )
+ ROM_REGION( 0x1000, "zram", 0 )
ROM_LOAD( "harddrivc-eeprom.bin", 0x0000, 0x1000, CRC(c036ef04) SHA1(2f28a52facdff2269ff2f905f9818520a1d8e468) )
ROM_END
@@ -2052,7 +2054,7 @@ ROM_START( harddrivcg )
ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) )
ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
- ROM_REGION( 0x1000, "eeprom", 0 )
+ ROM_REGION( 0x1000, "zram", 0 )
ROM_LOAD( "harddrivc-eeprom.bin", 0x0000, 0x1000, CRC(c036ef04) SHA1(2f28a52facdff2269ff2f905f9818520a1d8e468) )
ROM_END
@@ -2084,7 +2086,7 @@ ROM_START( harddrivcb )
ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) )
ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
- ROM_REGION( 0x1000, "eeprom", 0 )
+ ROM_REGION( 0x1000, "zram", 0 )
ROM_LOAD( "harddrivc-eeprom.bin", 0x0000, 0x1000, CRC(c036ef04) SHA1(2f28a52facdff2269ff2f905f9818520a1d8e468) )
ROM_END
@@ -2116,7 +2118,7 @@ ROM_START( harddrivc1 )
ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) )
ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
- ROM_REGION( 0x1000, "eeprom", 0 )
+ ROM_REGION( 0x1000, "zram", 0 )
ROM_LOAD( "harddrivc-eeprom.bin", 0x0000, 0x1000, CRC(c036ef04) SHA1(2f28a52facdff2269ff2f905f9818520a1d8e468) )
ROM_END
@@ -2154,7 +2156,7 @@ ROM_START( stunrun )
ROM_LOAD( "136070-2126.1de", 0x020000, 0x010000, CRC(b973d9d1) SHA1(a74a3c981497a9c5557f793d49381a9b776cb025) )
ROM_LOAD( "136070-2127.1cd", 0x030000, 0x010000, CRC(3e419f4e) SHA1(e382e047f02591a934a53e5fbf07cccf285abb29) )
- ROM_REGION( 0x1000, "eeprom", 0 )
+ ROM_REGION( 0x1000, "zram", 0 )
ROM_LOAD( "stunrun-eeprom.bin", 0x0000, 0x1000, CRC(c71c0011) SHA1(1ceaf73df40e531df3bfb26b4fb7cd95fb7bff1d) )
ROM_END
@@ -2192,7 +2194,7 @@ ROM_START( stunrunj )
ROM_LOAD( "136070-2126.1de", 0x020000, 0x010000, CRC(b973d9d1) SHA1(a74a3c981497a9c5557f793d49381a9b776cb025) )
ROM_LOAD( "136070-2127.1cd", 0x030000, 0x010000, CRC(3e419f4e) SHA1(e382e047f02591a934a53e5fbf07cccf285abb29) )
- ROM_REGION( 0x1000, "eeprom", 0 )
+ ROM_REGION( 0x1000, "zram", 0 )
ROM_LOAD( "stunrun-eeprom.bin", 0x0000, 0x1000, CRC(c71c0011) SHA1(1ceaf73df40e531df3bfb26b4fb7cd95fb7bff1d) )
ROM_END
@@ -2230,7 +2232,7 @@ ROM_START( stunrun5 )
ROM_LOAD( "136070-2126.1de", 0x020000, 0x010000, CRC(b973d9d1) SHA1(a74a3c981497a9c5557f793d49381a9b776cb025) )
ROM_LOAD( "136070-2127.1cd", 0x030000, 0x010000, CRC(3e419f4e) SHA1(e382e047f02591a934a53e5fbf07cccf285abb29) )
- ROM_REGION( 0x1000, "eeprom", 0 )
+ ROM_REGION( 0x1000, "zram", 0 )
ROM_LOAD( "stunrun-eeprom.bin", 0x0000, 0x1000, CRC(c71c0011) SHA1(1ceaf73df40e531df3bfb26b4fb7cd95fb7bff1d) )
ROM_END
@@ -2268,7 +2270,7 @@ ROM_START( stunrune )
ROM_LOAD( "136070-2126.1de", 0x020000, 0x010000, CRC(b973d9d1) SHA1(a74a3c981497a9c5557f793d49381a9b776cb025) )
ROM_LOAD( "136070-2127.1cd", 0x030000, 0x010000, CRC(3e419f4e) SHA1(e382e047f02591a934a53e5fbf07cccf285abb29) )
- ROM_REGION( 0x1000, "eeprom", 0 )
+ ROM_REGION( 0x1000, "zram", 0 )
ROM_LOAD( "stunrun-eeprom.bin", 0x0000, 0x1000, CRC(c71c0011) SHA1(1ceaf73df40e531df3bfb26b4fb7cd95fb7bff1d) )
ROM_END
@@ -2306,7 +2308,7 @@ ROM_START( stunrun4 )
ROM_LOAD( "136070-2126.1de", 0x020000, 0x010000, CRC(b973d9d1) SHA1(a74a3c981497a9c5557f793d49381a9b776cb025) )
ROM_LOAD( "136070-2127.1cd", 0x030000, 0x010000, CRC(3e419f4e) SHA1(e382e047f02591a934a53e5fbf07cccf285abb29) )
- ROM_REGION( 0x1000, "eeprom", 0 )
+ ROM_REGION( 0x1000, "zram", 0 )
ROM_LOAD( "stunrun-eeprom.bin", 0x0000, 0x1000, CRC(c71c0011) SHA1(1ceaf73df40e531df3bfb26b4fb7cd95fb7bff1d) )
ROM_END
@@ -2344,7 +2346,7 @@ ROM_START( stunrun3 )
ROM_LOAD( "136070-2126.1de", 0x020000, 0x010000, CRC(b973d9d1) SHA1(a74a3c981497a9c5557f793d49381a9b776cb025) )
ROM_LOAD( "136070-2127.1cd", 0x030000, 0x010000, CRC(3e419f4e) SHA1(e382e047f02591a934a53e5fbf07cccf285abb29) )
- ROM_REGION( 0x1000, "eeprom", 0 )
+ ROM_REGION( 0x1000, "zram", 0 )
ROM_LOAD( "stunrun-eeprom.bin", 0x0000, 0x1000, CRC(c71c0011) SHA1(1ceaf73df40e531df3bfb26b4fb7cd95fb7bff1d) )
ROM_END
@@ -2382,7 +2384,7 @@ ROM_START( stunrun3e )
ROM_LOAD( "136070-2126.1de", 0x020000, 0x010000, CRC(b973d9d1) SHA1(a74a3c981497a9c5557f793d49381a9b776cb025) )
ROM_LOAD( "136070-2127.1cd", 0x030000, 0x010000, CRC(3e419f4e) SHA1(e382e047f02591a934a53e5fbf07cccf285abb29) )
- ROM_REGION( 0x1000, "eeprom", 0 )
+ ROM_REGION( 0x1000, "zram", 0 )
ROM_LOAD( "stunrun-eeprom.bin", 0x0000, 0x1000, CRC(c71c0011) SHA1(1ceaf73df40e531df3bfb26b4fb7cd95fb7bff1d) )
ROM_END
@@ -2420,7 +2422,7 @@ ROM_START( stunrun2 )
ROM_LOAD( "136070-2126.1de", 0x020000, 0x010000, CRC(b973d9d1) SHA1(a74a3c981497a9c5557f793d49381a9b776cb025) )
ROM_LOAD( "136070-2127.1cd", 0x030000, 0x010000, CRC(3e419f4e) SHA1(e382e047f02591a934a53e5fbf07cccf285abb29) )
- ROM_REGION( 0x1000, "eeprom", 0 )
+ ROM_REGION( 0x1000, "zram", 0 )
ROM_LOAD( "stunrun-eeprom.bin", 0x0000, 0x1000, CRC(c71c0011) SHA1(1ceaf73df40e531df3bfb26b4fb7cd95fb7bff1d) )
ROM_END
@@ -2458,7 +2460,7 @@ ROM_START( stunrun2e )
ROM_LOAD( "136070-2126.1de", 0x020000, 0x010000, CRC(b973d9d1) SHA1(a74a3c981497a9c5557f793d49381a9b776cb025) )
ROM_LOAD( "136070-2127.1cd", 0x030000, 0x010000, CRC(3e419f4e) SHA1(e382e047f02591a934a53e5fbf07cccf285abb29) )
- ROM_REGION( 0x1000, "eeprom", 0 )
+ ROM_REGION( 0x1000, "zram", 0 )
ROM_LOAD( "stunrun-eeprom.bin", 0x0000, 0x1000, CRC(c71c0011) SHA1(1ceaf73df40e531df3bfb26b4fb7cd95fb7bff1d) )
ROM_END
@@ -2496,7 +2498,7 @@ ROM_START( stunrun0 )
ROM_LOAD( "136070-2126.1de", 0x020000, 0x010000, CRC(b973d9d1) SHA1(a74a3c981497a9c5557f793d49381a9b776cb025) )
ROM_LOAD( "136070-2127.1cd", 0x030000, 0x010000, CRC(3e419f4e) SHA1(e382e047f02591a934a53e5fbf07cccf285abb29) )
- ROM_REGION( 0x1000, "eeprom", 0 )
+ ROM_REGION( 0x1000, "zram", 0 )
ROM_LOAD( "stunrun-eeprom.bin", 0x0000, 0x1000, CRC(c71c0011) SHA1(1ceaf73df40e531df3bfb26b4fb7cd95fb7bff1d) )
ROM_END
@@ -2534,7 +2536,7 @@ ROM_START( stunrunp )
ROM_LOAD( "136070-2126.1de", 0x020000, 0x010000, CRC(b973d9d1) SHA1(a74a3c981497a9c5557f793d49381a9b776cb025) )
ROM_LOAD( "136070-2127.1cd", 0x030000, 0x010000, CRC(3e419f4e) SHA1(e382e047f02591a934a53e5fbf07cccf285abb29) )
- ROM_REGION( 0x1000, "eeprom", 0 )
+ ROM_REGION( 0x1000, "zram", 0 )
ROM_LOAD( "stunrun-eeprom.bin", 0x0000, 0x1000, CRC(c71c0011) SHA1(1ceaf73df40e531df3bfb26b4fb7cd95fb7bff1d) )
ROM_END
@@ -2582,7 +2584,7 @@ ROM_START( racedriv )
ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) )
- ROM_REGION( 0x1000, "eeprom", 0 )
+ ROM_REGION( 0x1000, "zram", 0 )
ROM_LOAD( "racedriv-eeprom.bin", 0x0000, 0x1000, CRC(0e9cf36e) SHA1(bc6cc7eb243d5ec6e346ebf5c3887d0820eb1a1c) )
ROM_END
@@ -2630,7 +2632,7 @@ ROM_START( racedrivb )
ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) )
- ROM_REGION( 0x1000, "eeprom", 0 )
+ ROM_REGION( 0x1000, "zram", 0 )
ROM_LOAD( "racedriv-eeprom.bin", 0x0000, 0x1000, CRC(0e9cf36e) SHA1(bc6cc7eb243d5ec6e346ebf5c3887d0820eb1a1c) )
ROM_END
@@ -2678,7 +2680,7 @@ ROM_START( racedrivg )
ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) )
- ROM_REGION( 0x1000, "eeprom", 0 )
+ ROM_REGION( 0x1000, "zram", 0 )
ROM_LOAD( "racedriv-eeprom.bin", 0x0000, 0x1000, CRC(0e9cf36e) SHA1(bc6cc7eb243d5ec6e346ebf5c3887d0820eb1a1c) )
ROM_END
@@ -2726,7 +2728,7 @@ ROM_START( racedriv4 )
ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) )
- ROM_REGION( 0x1000, "eeprom", 0 )
+ ROM_REGION( 0x1000, "zram", 0 )
ROM_LOAD( "racedriv-eeprom.bin", 0x0000, 0x1000, CRC(0e9cf36e) SHA1(bc6cc7eb243d5ec6e346ebf5c3887d0820eb1a1c) )
ROM_END
@@ -2774,7 +2776,7 @@ ROM_START( racedrivb4 )
ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) )
- ROM_REGION( 0x1000, "eeprom", 0 )
+ ROM_REGION( 0x1000, "zram", 0 )
ROM_LOAD( "racedriv-eeprom.bin", 0x0000, 0x1000, CRC(0e9cf36e) SHA1(bc6cc7eb243d5ec6e346ebf5c3887d0820eb1a1c) )
ROM_END
@@ -2822,7 +2824,7 @@ ROM_START( racedrivg4 )
ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) )
- ROM_REGION( 0x1000, "eeprom", 0 )
+ ROM_REGION( 0x1000, "zram", 0 )
ROM_LOAD( "racedriv-eeprom.bin", 0x0000, 0x1000, CRC(0e9cf36e) SHA1(bc6cc7eb243d5ec6e346ebf5c3887d0820eb1a1c) )
ROM_END
@@ -2870,7 +2872,7 @@ ROM_START( racedriv3 )
ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) )
- ROM_REGION( 0x1000, "eeprom", 0 )
+ ROM_REGION( 0x1000, "zram", 0 )
ROM_LOAD( "racedriv-eeprom.bin", 0x0000, 0x1000, CRC(0e9cf36e) SHA1(bc6cc7eb243d5ec6e346ebf5c3887d0820eb1a1c) )
ROM_END
@@ -2918,7 +2920,7 @@ ROM_START( racedriv2 )
ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) )
- ROM_REGION( 0x1000, "eeprom", 0 )
+ ROM_REGION( 0x1000, "zram", 0 )
ROM_LOAD( "racedriv-eeprom.bin", 0x0000, 0x1000, CRC(0e9cf36e) SHA1(bc6cc7eb243d5ec6e346ebf5c3887d0820eb1a1c) )
ROM_END
@@ -2966,7 +2968,7 @@ ROM_START( racedriv1 )
ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) )
- ROM_REGION( 0x1000, "eeprom", 0 )
+ ROM_REGION( 0x1000, "zram", 0 )
ROM_LOAD( "racedriv-eeprom.bin", 0x0000, 0x1000, CRC(0e9cf36e) SHA1(bc6cc7eb243d5ec6e346ebf5c3887d0820eb1a1c) )
ROM_END
@@ -3014,7 +3016,7 @@ ROM_START( racedrivg1 )
ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) )
- ROM_REGION( 0x1000, "eeprom", 0 )
+ ROM_REGION( 0x1000, "zram", 0 )
ROM_LOAD( "racedriv-eeprom.bin", 0x0000, 0x1000, CRC(0e9cf36e) SHA1(bc6cc7eb243d5ec6e346ebf5c3887d0820eb1a1c) )
ROM_END
@@ -3062,7 +3064,7 @@ ROM_START( racedrivb1 )
ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) )
- ROM_REGION( 0x1000, "eeprom", 0 )
+ ROM_REGION( 0x1000, "zram", 0 )
ROM_LOAD( "racedriv-eeprom.bin", 0x0000, 0x1000, CRC(0e9cf36e) SHA1(bc6cc7eb243d5ec6e346ebf5c3887d0820eb1a1c) )
ROM_END
@@ -3110,7 +3112,7 @@ ROM_START( racedrivc )
ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) )
- ROM_REGION( 0x1000, "eeprom", 0 )
+ ROM_REGION( 0x1000, "zram", 0 )
ROM_LOAD( "racedrivc-eeprom.bin", 0x0000, 0x1000, CRC(79266a98) SHA1(61471a0cdb5074c65f5d37a556d2d4e693d0f8e4) )
ROM_END
@@ -3158,7 +3160,7 @@ ROM_START( racedrivcb )
ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) )
- ROM_REGION( 0x1000, "eeprom", 0 )
+ ROM_REGION( 0x1000, "zram", 0 )
ROM_LOAD( "racedrivc-eeprom.bin", 0x0000, 0x1000, CRC(79266a98) SHA1(61471a0cdb5074c65f5d37a556d2d4e693d0f8e4) )
ROM_END
@@ -3206,7 +3208,7 @@ ROM_START( racedrivcg )
ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) )
- ROM_REGION( 0x1000, "eeprom", 0 )
+ ROM_REGION( 0x1000, "zram", 0 )
ROM_LOAD( "racedrivc-eeprom.bin", 0x0000, 0x1000, CRC(79266a98) SHA1(61471a0cdb5074c65f5d37a556d2d4e693d0f8e4) )
ROM_END
@@ -3254,7 +3256,7 @@ ROM_START( racedrivc4 )
ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) )
- ROM_REGION( 0x1000, "eeprom", 0 )
+ ROM_REGION( 0x1000, "zram", 0 )
ROM_LOAD( "racedrivc-eeprom.bin", 0x0000, 0x1000, CRC(79266a98) SHA1(61471a0cdb5074c65f5d37a556d2d4e693d0f8e4) )
ROM_END
@@ -3302,7 +3304,7 @@ ROM_START( racedrivcb4 )
ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) )
- ROM_REGION( 0x1000, "eeprom", 0 )
+ ROM_REGION( 0x1000, "zram", 0 )
ROM_LOAD( "racedrivc-eeprom.bin", 0x0000, 0x1000, CRC(79266a98) SHA1(61471a0cdb5074c65f5d37a556d2d4e693d0f8e4) )
ROM_END
@@ -3350,7 +3352,7 @@ ROM_START( racedrivcg4 )
ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) )
- ROM_REGION( 0x1000, "eeprom", 0 )
+ ROM_REGION( 0x1000, "zram", 0 )
ROM_LOAD( "racedrivc-eeprom.bin", 0x0000, 0x1000, CRC(79266a98) SHA1(61471a0cdb5074c65f5d37a556d2d4e693d0f8e4) )
ROM_END
@@ -3398,7 +3400,7 @@ ROM_START( racedrivc2 )
ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) )
- ROM_REGION( 0x1000, "eeprom", 0 )
+ ROM_REGION( 0x1000, "zram", 0 )
ROM_LOAD( "racedrivc-eeprom.bin", 0x0000, 0x1000, CRC(79266a98) SHA1(61471a0cdb5074c65f5d37a556d2d4e693d0f8e4) )
ROM_END
@@ -3446,7 +3448,7 @@ ROM_START( racedrivc1 )
ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) )
- ROM_REGION( 0x1000, "eeprom", 0 )
+ ROM_REGION( 0x1000, "zram", 0 )
ROM_LOAD( "racedrivc-eeprom.bin", 0x0000, 0x1000, CRC(79266a98) SHA1(61471a0cdb5074c65f5d37a556d2d4e693d0f8e4) )
ROM_END
@@ -3595,7 +3597,7 @@ ROM_START( racedrivpan )
ROM_LOAD( "rdps1126.bin", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
ROM_LOAD( "rdps1017.bin", 0x040000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
- ROM_REGION( 0x1000, "eeprom", 0 )
+ ROM_REGION( 0x1000, "zram", 0 )
ROM_LOAD( "racedriv-eeprom.bin", 0x0000, 0x1000, CRC(0e9cf36e) SHA1(bc6cc7eb243d5ec6e346ebf5c3887d0820eb1a1c) )
ROM_END
@@ -3656,7 +3658,7 @@ ROM_START( steeltal )
/* GAL's located on "Multisync" board */
ROM_LOAD( "136087-9001.bin", 0x0000, 0x0001, NO_DUMP ) /* GAL6001 at location 200K (SLOOP) */
- ROM_REGION( 0x1000, "eeprom", 0 )
+ ROM_REGION( 0x1000, "zram", 0 )
ROM_LOAD( "steeltal-eeprom.bin", 0x0000, 0x1000, CRC(c71c0011) SHA1(1ceaf73df40e531df3bfb26b4fb7cd95fb7bff1d) )
ROM_END
@@ -3717,7 +3719,7 @@ ROM_START( steeltalg )
/* GAL's located on "Multisync" board */
ROM_LOAD( "136087-9001.bin", 0x0000, 0x0001, NO_DUMP ) /* GAL6001 at location 200K (SLOOP) */
- ROM_REGION( 0x1000, "eeprom", 0 )
+ ROM_REGION( 0x1000, "zram", 0 )
ROM_LOAD( "steeltal-eeprom.bin", 0x0000, 0x1000, CRC(c71c0011) SHA1(1ceaf73df40e531df3bfb26b4fb7cd95fb7bff1d) )
ROM_END
@@ -3778,7 +3780,7 @@ ROM_START( steeltal1 )
/* GAL's located on "Multisync" board */
ROM_LOAD( "136087-9001.bin", 0x0000, 0x0001, NO_DUMP ) /* GAL6001 at location 200K (SLOOP) */
- ROM_REGION( 0x1000, "eeprom", 0 )
+ ROM_REGION( 0x1000, "zram", 0 )
ROM_LOAD( "steeltal-eeprom.bin", 0x0000, 0x1000, CRC(c71c0011) SHA1(1ceaf73df40e531df3bfb26b4fb7cd95fb7bff1d) )
ROM_END
@@ -3839,7 +3841,7 @@ ROM_START( steeltalp )
/* GAL's located on "Multisync" board */
ROM_LOAD( "136087-9001.bin", 0x0000, 0x0001, NO_DUMP ) /* GAL6001 at location 200K (SLOOP) */
- ROM_REGION( 0x1000, "eeprom", 0 )
+ ROM_REGION( 0x1000, "zram", 0 )
ROM_LOAD( "steeltal-eeprom.bin", 0x0000, 0x1000, CRC(c71c0011) SHA1(1ceaf73df40e531df3bfb26b4fb7cd95fb7bff1d) )
ROM_END
@@ -3897,7 +3899,7 @@ ROM_START( strtdriv )
ROM_FILL( 0x60000, 0x20000, 0xff) /* 12N */
ROM_LOAD16_BYTE( "136052-1126.12h", 0x60000, 0x10000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
- ROM_REGION( 0x1000, "eeprom", 0 )
+ ROM_REGION( 0x1000, "zram", 0 )
ROM_LOAD( "strtdriv-eeprom.bin", 0x0000, 0x1000, CRC(c71c0011) SHA1(1ceaf73df40e531df3bfb26b4fb7cd95fb7bff1d) )
ROM_END
@@ -3953,7 +3955,7 @@ ROM_START( hdrivair )
ROM_LOAD16_BYTE( "ds3rom7.bin", 0x300000, 0x80000, CRC(323eff0b) SHA1(5d4945d77191ee44b4fbf125bc0816217321829e) )
ROM_LOAD16_BYTE( "ds3rom3.bin", 0x300001, 0x80000, CRC(63965868) SHA1(d61d9d6709a3a3c37c2652602e97fdee52e0e7cb) )
- ROM_REGION( 0x1000, "eeprom", 0 )
+ ROM_REGION( 0x1000, "zram", 0 )
ROM_LOAD( "hdrivair-eeprom.bin", 0x0000, 0x1000, CRC(7828df8f) SHA1(4b62ceb1d3f4b8026d77a59118a9002aa006e98e) )
ROM_END
@@ -4013,7 +4015,7 @@ ROM_START( hdrivairp )
ROM_LOAD16_BYTE( "ds3rom.0", 0x300000, 0x80000, CRC(90b8dbb6) SHA1(fff693cb81e88bc00e048bb71406295fe7be5122) )
ROM_LOAD16_BYTE( "ds3rom.4", 0x300001, 0x80000, CRC(6281efee) SHA1(47d0f3ff973166d818877996c45dccf1d3a85fe1) )
- ROM_REGION( 0x1000, "eeprom", 0 )
+ ROM_REGION( 0x1000, "zram", 0 )
ROM_LOAD( "hdrivair-eeprom.bin", 0x0000, 0x1000, CRC(7828df8f) SHA1(4b62ceb1d3f4b8026d77a59118a9002aa006e98e) )
ROM_END
diff --git a/src/mame/drivers/klax.c b/src/mame/drivers/klax.c
index 32a29ac7f41..5308fbddd39 100644
--- a/src/mame/drivers/klax.c
+++ b/src/mame/drivers/klax.c
@@ -74,8 +74,8 @@ MACHINE_RESET_MEMBER(klax_state,klax)
static ADDRESS_MAP_START( klax_map, AS_PROGRAM, 16, klax_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
- AM_RANGE(0x0e0000, 0x0e0fff) AM_READWRITE(eeprom_r, eeprom_w) AM_SHARE("eeprom")
- AM_RANGE(0x1f0000, 0x1fffff) AM_WRITE(eeprom_enable_w)
+ AM_RANGE(0x0e0000, 0x0e0fff) AM_DEVREADWRITE8("eeprom", atari_eeprom_device, read, write, 0x00ff)
+ AM_RANGE(0x1f0000, 0x1fffff) AM_DEVWRITE("eeprom", atari_eeprom_device, unlock_write)
AM_RANGE(0x260000, 0x260001) AM_READ_PORT("P1") AM_WRITE(klax_latch_w)
AM_RANGE(0x260002, 0x260003) AM_READ_PORT("P2")
AM_RANGE(0x270000, 0x270001) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)
@@ -162,7 +162,8 @@ static MACHINE_CONFIG_START( klax, klax_state )
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", atarigen_state, video_int_gen)
MCFG_MACHINE_RESET_OVERRIDE(klax_state,klax)
- MCFG_NVRAM_ADD_1FILL("eeprom")
+
+ MCFG_ATARI_EEPROM_2816_ADD("eeprom")
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
diff --git a/src/mame/drivers/offtwall.c b/src/mame/drivers/offtwall.c
index 6af533c3d90..300c783f0a7 100644
--- a/src/mame/drivers/offtwall.c
+++ b/src/mame/drivers/offtwall.c
@@ -232,7 +232,7 @@ READ16_MEMBER(offtwall_state::unknown_verify_r)
static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, offtwall_state )
AM_RANGE(0x000000, 0x037fff) AM_ROM
AM_RANGE(0x038000, 0x03ffff) AM_READ(bankrom_r) AM_REGION("maincpu", 0x38000) AM_SHARE("bankrom_base")
- AM_RANGE(0x120000, 0x120fff) AM_READWRITE(eeprom_r, eeprom_w) AM_SHARE("eeprom")
+ AM_RANGE(0x120000, 0x120fff) AM_DEVREADWRITE8("eeprom", atari_eeprom_device, read, write, 0x00ff)
AM_RANGE(0x260000, 0x260001) AM_READ_PORT("260000")
AM_RANGE(0x260002, 0x260003) AM_READ_PORT("260002")
AM_RANGE(0x260010, 0x260011) AM_READ_PORT("260010")
@@ -243,7 +243,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, offtwall_state )
AM_RANGE(0x260030, 0x260031) AM_DEVREAD8("jsa", atari_jsa_iii_device, main_response_r, 0x00ff)
AM_RANGE(0x260040, 0x260041) AM_DEVWRITE8("jsa", atari_jsa_iii_device, main_command_w, 0x00ff)
AM_RANGE(0x260050, 0x260051) AM_WRITE(io_latch_w)
- AM_RANGE(0x260060, 0x260061) AM_WRITE(eeprom_enable_w)
+ AM_RANGE(0x260060, 0x260061) AM_DEVWRITE("eeprom", atari_eeprom_device, unlock_write)
AM_RANGE(0x2a0000, 0x2a0001) AM_WRITE(watchdog_reset16_w)
AM_RANGE(0x3e0000, 0x3e0fff) AM_RAM_WRITE(paletteram_666_w) AM_SHARE("paletteram")
AM_RANGE(0x3effc0, 0x3effff) AM_DEVREADWRITE("vad", atari_vad_device, control_read, control_write)
@@ -362,7 +362,8 @@ static MACHINE_CONFIG_START( offtwall, offtwall_state )
MCFG_CPU_PROGRAM_MAP(main_map)
MCFG_MACHINE_RESET_OVERRIDE(offtwall_state,offtwall)
- MCFG_NVRAM_ADD_1FILL("eeprom")
+
+ MCFG_ATARI_EEPROM_2816_ADD("eeprom")
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
@@ -415,8 +416,8 @@ ROM_START( offtwall )
ROM_LOAD( "otw1017.bin", 0x080000, 0x20000, CRC(7f7f8012) SHA1(1123ea3c6cd2c73617a87d6a5bbb26fca8941af3) )
ROM_LOAD( "otw1019.bin", 0x0a0000, 0x20000, CRC(9efe511b) SHA1(db1f1d8792bf497bc9ad652b0b7d78c3abf0e817) )
- ROM_REGION( 0x1000, "eeprom", 0 )
- ROM_LOAD( "offtwall-eeprom.bin", 0x0000, 0x1000, CRC(73dc2139) SHA1(28ee9be4b5a65708a4f3e7d88e98af15cd9badca) )
+ ROM_REGION( 0x800, "eeprom:eeprom", 0 )
+ ROM_LOAD( "offtwall-eeprom.bin", 0x0000, 0x800, CRC(5eaf2d5b) SHA1(934a76a23960e6ed2cc33c359f9735caee762145) )
ROM_END
@@ -437,8 +438,8 @@ ROM_START( offtwallc )
ROM_LOAD( "090-1617.rom", 0x080000, 0x20000, CRC(15208a89) SHA1(124484ab54959a1e6d9022a4f3ee4288a79c768b) )
ROM_LOAD( "090-1619.rom", 0x0a0000, 0x20000, CRC(8a5d79b3) SHA1(0a202d20e6c86989ce2223e10eadf9009dd6ca8e) )
- ROM_REGION( 0x1000, "eeprom", 0 )
- ROM_LOAD( "offtwall-eeprom.bin", 0x0000, 0x1000, CRC(73dc2139) SHA1(28ee9be4b5a65708a4f3e7d88e98af15cd9badca) )
+ ROM_REGION( 0x800, "eeprom:eeprom", 0 )
+ ROM_LOAD( "offtwall-eeprom.bin", 0x0000, 0x800, CRC(5eaf2d5b) SHA1(934a76a23960e6ed2cc33c359f9735caee762145) )
ROM_END
diff --git a/src/mame/drivers/rampart.c b/src/mame/drivers/rampart.c
index 19ed52c3303..3b7b0822336 100644
--- a/src/mame/drivers/rampart.c
+++ b/src/mame/drivers/rampart.c
@@ -134,8 +134,8 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, rampart_state )
AM_RANGE(0x3e3f80, 0x3effff) AM_MIRROR(0x010000) AM_RAM
AM_RANGE(0x460000, 0x460001) AM_MIRROR(0x019ffe) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0xff00)
AM_RANGE(0x480000, 0x480003) AM_MIRROR(0x019ffc) AM_DEVWRITE8("ymsnd", ym2413_device, write, 0xff00)
- AM_RANGE(0x500000, 0x500fff) AM_MIRROR(0x019000) AM_READWRITE(eeprom_r, eeprom_w) AM_SHARE("eeprom")
- AM_RANGE(0x5a6000, 0x5a6001) AM_MIRROR(0x019ffe) AM_WRITE(eeprom_enable_w)
+ AM_RANGE(0x500000, 0x500fff) AM_MIRROR(0x019000) AM_DEVREADWRITE8("eeprom", atari_eeprom_device, read, write, 0x00ff)
+ AM_RANGE(0x5a6000, 0x5a6001) AM_MIRROR(0x019ffe) AM_DEVWRITE("eeprom", atari_eeprom_device, unlock_write)
AM_RANGE(0x640000, 0x640001) AM_MIRROR(0x019ffe) AM_WRITE(latch_w)
AM_RANGE(0x640000, 0x640001) AM_MIRROR(0x019ffc) AM_READ_PORT("IN0")
AM_RANGE(0x640002, 0x640003) AM_MIRROR(0x019ffc) AM_READ_PORT("IN1")
@@ -338,7 +338,9 @@ static MACHINE_CONFIG_START( rampart, rampart_state )
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", atarigen_state, video_int_gen)
MCFG_MACHINE_RESET_OVERRIDE(rampart_state,rampart)
- MCFG_NVRAM_ADD_1FILL("eeprom")
+
+ MCFG_ATARI_EEPROM_2816_ADD("eeprom")
+
MCFG_WATCHDOG_VBLANK_INIT(8)
/* video hardware */
@@ -388,8 +390,8 @@ ROM_START( rampart )
ROM_LOAD( "136082-1007.2d", 0x00000, 0x20000, CRC(c96a0fc3) SHA1(6e7e242d0afa4714ca31d77ccbf8ee487bbdb1e4) )
ROM_LOAD( "136082-1008.1d", 0x20000, 0x20000, CRC(518218d9) SHA1(edf1b11579dcfa9a872fa4bd866dc2f95fac767d) )
- ROM_REGION( 0x1000, "eeprom", 0 )
- ROM_LOAD( "rampart-eeprom.bin", 0x0000, 0x1000, CRC(9ab4a6a1) SHA1(ff6ffc4b6508dfe0e431d1b3329f3bd14c796e38) )
+ ROM_REGION( 0x800, "eeprom:eeprom", 0 )
+ ROM_LOAD( "rampart-eeprom.bin", 0x0000, 0x800, CRC(0be57615) SHA1(bd1f9eef410c78c091d2c925d6275427c77c7ecd) )
ROM_REGION( 0x0c00, "plds", 0 )
ROM_LOAD( "gal16v8-136082-1000.1j", 0x0000, 0x0117, CRC(18f82b38) SHA1(2ffd43a143396617704ced51da78fec2cf12cced) )
@@ -415,8 +417,8 @@ ROM_START( rampart2p )
ROM_LOAD( "136082-1007.2d", 0x00000, 0x20000, CRC(c96a0fc3) SHA1(6e7e242d0afa4714ca31d77ccbf8ee487bbdb1e4) )
ROM_LOAD( "136082-1008.1d", 0x20000, 0x20000, CRC(518218d9) SHA1(edf1b11579dcfa9a872fa4bd866dc2f95fac767d) )
- ROM_REGION( 0x1000, "eeprom", 0 )
- ROM_LOAD( "rampart-eeprom.bin", 0x0000, 0x1000, CRC(9ab4a6a1) SHA1(ff6ffc4b6508dfe0e431d1b3329f3bd14c796e38) )
+ ROM_REGION( 0x800, "eeprom:eeprom", 0 )
+ ROM_LOAD( "rampart-eeprom.bin", 0x0000, 0x800, CRC(0be57615) SHA1(bd1f9eef410c78c091d2c925d6275427c77c7ecd) )
ROM_REGION( 0x0c00, "plds", 0 )
ROM_LOAD( "gal16v8-136082-1000.1j", 0x0000, 0x0117, CRC(18f82b38) SHA1(2ffd43a143396617704ced51da78fec2cf12cced) )
@@ -446,8 +448,8 @@ ROM_START( rampartj )
ROM_LOAD( "136082-1007.2d", 0x00000, 0x20000, CRC(c96a0fc3) SHA1(6e7e242d0afa4714ca31d77ccbf8ee487bbdb1e4) )
ROM_LOAD( "136082-1008.1d", 0x20000, 0x20000, CRC(518218d9) SHA1(edf1b11579dcfa9a872fa4bd866dc2f95fac767d) )
- ROM_REGION( 0x1000, "eeprom", 0 )
- ROM_LOAD( "rampart-eeprom.bin", 0x0000, 0x1000, CRC(9ab4a6a1) SHA1(ff6ffc4b6508dfe0e431d1b3329f3bd14c796e38) )
+ ROM_REGION( 0x800, "eeprom:eeprom", 0 )
+ ROM_LOAD( "rampartj-eeprom.bin", 0x0000, 0x800, CRC(096cacdc) SHA1(48328a27ce1975a27d9a83ae05d068cee7556a90) )
ROM_REGION( 0x0c00, "plds", 0 )
ROM_LOAD( "gal16v8-136082-1000.1j", 0x0000, 0x0117, CRC(18f82b38) SHA1(2ffd43a143396617704ced51da78fec2cf12cced) )
diff --git a/src/mame/drivers/relief.c b/src/mame/drivers/relief.c
index a6f8483aeb4..a7c5d3fa90a 100644
--- a/src/mame/drivers/relief.c
+++ b/src/mame/drivers/relief.c
@@ -118,8 +118,8 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, relief_state )
AM_RANGE(0x140010, 0x140011) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)
AM_RANGE(0x140020, 0x140021) AM_WRITE(audio_volume_w)
AM_RANGE(0x140030, 0x140031) AM_WRITE(audio_control_w)
- AM_RANGE(0x180000, 0x180fff) AM_READWRITE(eeprom_r, eeprom_w) AM_SHARE("eeprom")
- AM_RANGE(0x1c0030, 0x1c0031) AM_WRITE(eeprom_enable_w)
+ AM_RANGE(0x180000, 0x180fff) AM_DEVREADWRITE8("eeprom", atari_eeprom_device, read, write, 0xff00)
+ AM_RANGE(0x1c0030, 0x1c0031) AM_DEVWRITE("eeprom", atari_eeprom_device, unlock_write)
AM_RANGE(0x260000, 0x260001) AM_READ_PORT("260000")
AM_RANGE(0x260002, 0x260003) AM_READ_PORT("260002")
AM_RANGE(0x260010, 0x260011) AM_READ(special_port2_r)
@@ -265,7 +265,8 @@ static MACHINE_CONFIG_START( relief, relief_state )
MCFG_CPU_PROGRAM_MAP(main_map)
MCFG_MACHINE_RESET_OVERRIDE(relief_state,relief)
- MCFG_NVRAM_ADD_1FILL("eeprom")
+
+ MCFG_ATARI_EEPROM_2816_ADD("eeprom")
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
@@ -323,8 +324,8 @@ ROM_START( relief )
ROM_LOAD( "136093-0030a.9b", 0x100000, 0x80000, CRC(f4c567f5) SHA1(7e8c1d54d918b0b41625eacbaf6dcb5bd99d1949) )
ROM_LOAD( "136093-0031a.10b", 0x180000, 0x80000, CRC(ba908d73) SHA1(a83afd86f4c39394cf624b728a87b8d8b6de1944) )
- ROM_REGION( 0x1000, "eeprom", 0 )
- ROM_LOAD( "relief-eeprom.bin", 0x0000, 0x1000, CRC(71090711) SHA1(fc516dd84635e544c5f89640f77645e4a7d5bcc0) )
+ ROM_REGION( 0x800, "eeprom:eeprom", 0 )
+ ROM_LOAD( "relief-eeprom.bin", 0x0000, 0x800, CRC(66069f60) SHA1(fac3797888f7ffe972f642aca44c6ca7d208c814) )
ROM_REGION( 0x001000, "plds", 0 )
ROM_LOAD( "gal16v8a-136093-0002.15f", 0x0000, 0x0117, CRC(b111d5f2) SHA1(0fe5b4ca786e839e6927a485109d33fe31c737a2) )
@@ -358,9 +359,8 @@ ROM_START( relief2 )
ROM_LOAD( "136093-0030a.9b", 0x100000, 0x80000, CRC(f4c567f5) SHA1(7e8c1d54d918b0b41625eacbaf6dcb5bd99d1949) )
ROM_LOAD( "136093-0031a.10b", 0x180000, 0x80000, CRC(ba908d73) SHA1(a83afd86f4c39394cf624b728a87b8d8b6de1944) )
- ROM_REGION( 0x1000, "eeprom", ROMREGION_ERASEFF )
- /* todo */
-// ROM_LOAD( "relief_26apr-eeprom.bin", 0x0000, 0x1000, CRC(6cd70719) SHA1(1bbc52924931b68a546c85f689419200a4b6547b) )
+ ROM_REGION( 0x800, "eeprom:eeprom", 0 )
+ ROM_LOAD( "relief2-eeprom.bin", 0x0000, 0x800, CRC(2131fc40) SHA1(72a9f5f6647fbc74e645b6639db2fdbfbe6456e2) )
ROM_REGION( 0x001000, "plds", 0 )
ROM_LOAD( "gal16v8a-136093-0002.15f", 0x0000, 0x0117, CRC(b111d5f2) SHA1(0fe5b4ca786e839e6927a485109d33fe31c737a2) )
@@ -393,8 +393,8 @@ ROM_START( relief3 )
ROM_LOAD( "136093-0030a.9b", 0x100000, 0x80000, CRC(f4c567f5) SHA1(7e8c1d54d918b0b41625eacbaf6dcb5bd99d1949) )
ROM_LOAD( "136093-0031a.10b", 0x180000, 0x80000, CRC(ba908d73) SHA1(a83afd86f4c39394cf624b728a87b8d8b6de1944) )
- ROM_REGION( 0x1000, "eeprom", 0 )
- ROM_LOAD( "relief2-eeprom.bin", 0x0000, 0x1000, CRC(6cd70719) SHA1(1bbc52924931b68a546c85f689419200a4b6547b) )
+ ROM_REGION( 0x800, "eeprom:eeprom", 0 )
+ ROM_LOAD( "relief3-eeprom.bin", 0x0000, 0x800, CRC(2131fc40) SHA1(72a9f5f6647fbc74e645b6639db2fdbfbe6456e2) )
ROM_REGION( 0x001000, "plds", 0 )
ROM_LOAD( "gal16v8a-136093-0002.15f", 0x0000, 0x0117, CRC(b111d5f2) SHA1(0fe5b4ca786e839e6927a485109d33fe31c737a2) )
@@ -407,6 +407,8 @@ ROM_START( relief3 )
ROM_LOAD( "gal16v8a-136093-0010.15a", 0x0e00, 0x0117, CRC(5f49c736) SHA1(91ff18e4780ee6c904735fc0f0e73ffb5a80b49a) )
ROM_END
+
+
/*************************************
*
* Driver initialization
diff --git a/src/mame/drivers/shuuz.c b/src/mame/drivers/shuuz.c
index cd174a8971b..ffac8ca6a7a 100644
--- a/src/mame/drivers/shuuz.c
+++ b/src/mame/drivers/shuuz.c
@@ -102,8 +102,8 @@ READ16_MEMBER(shuuz_state::special_port0_r)
static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, shuuz_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
- AM_RANGE(0x100000, 0x100fff) AM_READWRITE(eeprom_r, eeprom_w) AM_SHARE("eeprom")
- AM_RANGE(0x101000, 0x101fff) AM_WRITE(eeprom_enable_w)
+ AM_RANGE(0x100000, 0x100fff) AM_DEVREADWRITE8("eeprom", atari_eeprom_device, read, write, 0x00ff)
+ AM_RANGE(0x101000, 0x101fff) AM_DEVWRITE("eeprom", atari_eeprom_device, unlock_write)
AM_RANGE(0x102000, 0x102001) AM_WRITE(watchdog_reset16_w)
AM_RANGE(0x103000, 0x103003) AM_READ(leta_r)
AM_RANGE(0x105000, 0x105001) AM_READWRITE(special_port0_r, latch_w)
@@ -227,7 +227,7 @@ static MACHINE_CONFIG_START( shuuz, shuuz_state )
MCFG_CPU_ADD("maincpu", M68000, ATARI_CLOCK_14MHz/2)
MCFG_CPU_PROGRAM_MAP(main_map)
- MCFG_NVRAM_ADD_1FILL("eeprom")
+ MCFG_ATARI_EEPROM_2816_ADD("eeprom")
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
diff --git a/src/mame/drivers/skullxbo.c b/src/mame/drivers/skullxbo.c
index c0d566fa8e6..8f44926914b 100644
--- a/src/mame/drivers/skullxbo.c
+++ b/src/mame/drivers/skullxbo.c
@@ -97,7 +97,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, skullxbo_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0xff0000, 0xff07ff) AM_WRITE(skullxbo_mobmsb_w)
AM_RANGE(0xff0800, 0xff0bff) AM_WRITE(skullxbo_halt_until_hblank_0_w)
- AM_RANGE(0xff0c00, 0xff0fff) AM_WRITE(eeprom_enable_w)
+ AM_RANGE(0xff0c00, 0xff0fff) AM_DEVWRITE("eeprom", atari_eeprom_device, unlock_write)
AM_RANGE(0xff1000, 0xff13ff) AM_WRITE(video_int_ack_w)
AM_RANGE(0xff1400, 0xff17ff) AM_DEVWRITE8("jsa", atari_jsa_ii_device, main_command_w, 0x00ff)
AM_RANGE(0xff1800, 0xff1bff) AM_DEVWRITE("jsa", atari_jsa_ii_device, sound_reset_w)
@@ -112,11 +112,10 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, skullxbo_state )
AM_RANGE(0xff2000, 0xff2fff) AM_RAM_WRITE(paletteram_666_w) AM_SHARE("paletteram")
AM_RANGE(0xff4000, 0xff47ff) AM_WRITE(skullxbo_yscroll_w) AM_SHARE("yscroll")
AM_RANGE(0xff4800, 0xff4fff) AM_WRITE(skullxbo_mobwr_w)
- AM_RANGE(0xff6000, 0xff6fff) AM_WRITE(eeprom_w) AM_SHARE("eeprom")
AM_RANGE(0xff5000, 0xff5001) AM_DEVREAD8("jsa", atari_jsa_ii_device, main_response_r, 0x00ff)
AM_RANGE(0xff5800, 0xff5801) AM_READ_PORT("FF5800")
AM_RANGE(0xff5802, 0xff5803) AM_READ_PORT("FF5802")
- AM_RANGE(0xff6000, 0xff6fff) AM_READ(eeprom_r)
+ AM_RANGE(0xff6000, 0xff6fff) AM_DEVREADWRITE8("eeprom", atari_eeprom_device, read, write, 0x00ff)
AM_RANGE(0xff8000, 0xff9fff) AM_RAM_WRITE(playfield_latched_w) AM_SHARE("playfield")
AM_RANGE(0xffa000, 0xffbfff) AM_RAM_DEVWRITE("playfield", tilemap_device, write_ext) AM_SHARE("playfield_ext")
AM_RANGE(0xffc000, 0xffcf7f) AM_RAM_DEVWRITE("alpha", tilemap_device, write) AM_SHARE("alpha")
@@ -229,7 +228,8 @@ static MACHINE_CONFIG_START( skullxbo, skullxbo_state )
MCFG_TIMER_DRIVER_ADD("scan_timer", skullxbo_state, scanline_timer)
MCFG_MACHINE_RESET_OVERRIDE(skullxbo_state,skullxbo)
- MCFG_NVRAM_ADD_1FILL("eeprom")
+
+ MCFG_ATARI_EEPROM_2816_ADD("eeprom")
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
diff --git a/src/mame/drivers/thunderj.c b/src/mame/drivers/thunderj.c
index 846a6e9149b..6b0d00d1851 100644
--- a/src/mame/drivers/thunderj.c
+++ b/src/mame/drivers/thunderj.c
@@ -114,9 +114,9 @@ WRITE16_MEMBER(thunderj_state::latch_w)
static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, thunderj_state )
AM_RANGE(0x000000, 0x09ffff) AM_ROM
- AM_RANGE(0x0e0000, 0x0e0fff) AM_READWRITE(eeprom_r, eeprom_w) AM_SHARE("eeprom")
+ AM_RANGE(0x0e0000, 0x0e0fff) AM_DEVREADWRITE8("eeprom", atari_eeprom_device, read, write, 0x00ff)
AM_RANGE(0x160000, 0x16ffff) AM_RAM AM_SHARE("share1")
- AM_RANGE(0x1f0000, 0x1fffff) AM_WRITE(eeprom_enable_w)
+ AM_RANGE(0x1f0000, 0x1fffff) AM_DEVWRITE("eeprom", atari_eeprom_device, unlock_write)
AM_RANGE(0x260000, 0x26000f) AM_READ_PORT("260000")
AM_RANGE(0x260010, 0x260011) AM_READ_PORT("260010")
AM_RANGE(0x260012, 0x260013) AM_READ(special_port2_r)
@@ -254,7 +254,8 @@ static MACHINE_CONFIG_START( thunderj, thunderj_state )
MCFG_MACHINE_START_OVERRIDE(thunderj_state,thunderj)
MCFG_MACHINE_RESET_OVERRIDE(thunderj_state,thunderj)
- MCFG_NVRAM_ADD_1FILL("eeprom")
+
+ MCFG_ATARI_EEPROM_2816_ADD("eeprom")
/* perfect synchronization due to shared RAM */
MCFG_QUANTUM_PERFECT_CPU("maincpu")
diff --git a/src/mame/drivers/toobin.c b/src/mame/drivers/toobin.c
index 9e4f7900b30..9dfd0a2c5db 100644
--- a/src/mame/drivers/toobin.c
+++ b/src/mame/drivers/toobin.c
@@ -91,13 +91,13 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, toobin_state )
AM_RANGE(0xff8380, 0xff8381) AM_MIRROR(0x45003e) AM_RAM_WRITE(toobin_slip_w) AM_SHARE("mob:slip")
AM_RANGE(0xff83c0, 0xff83c1) AM_MIRROR(0x45003e) AM_WRITE(scanline_int_ack_w)
AM_RANGE(0xff8400, 0xff8401) AM_MIRROR(0x4500fe) AM_DEVWRITE("jsa", atari_jsa_i_device, sound_reset_w)
- AM_RANGE(0xff8500, 0xff8501) AM_MIRROR(0x4500fe) AM_WRITE(eeprom_enable_w)
+ AM_RANGE(0xff8500, 0xff8501) AM_MIRROR(0x4500fe) AM_DEVWRITE("eeprom", atari_eeprom_device, unlock_write)
AM_RANGE(0xff8600, 0xff8601) AM_MIRROR(0x4500fe) AM_WRITE(toobin_xscroll_w) AM_SHARE("xscroll")
AM_RANGE(0xff8700, 0xff8701) AM_MIRROR(0x4500fe) AM_WRITE(toobin_yscroll_w) AM_SHARE("yscroll")
AM_RANGE(0xff8800, 0xff8801) AM_MIRROR(0x4507fe) AM_READ_PORT("FF8800")
AM_RANGE(0xff9000, 0xff9001) AM_MIRROR(0x4507fe) AM_READ_PORT("FF9000")
AM_RANGE(0xff9800, 0xff9801) AM_MIRROR(0x4507fe) AM_DEVREAD8("jsa", atari_jsa_i_device, main_response_r, 0x00ff)
- AM_RANGE(0xffa000, 0xffafff) AM_MIRROR(0x451000) AM_READWRITE(eeprom_r, eeprom_w) AM_SHARE("eeprom")
+ AM_RANGE(0xffa000, 0xffafff) AM_MIRROR(0x451000) AM_DEVREADWRITE8("eeprom", atari_eeprom_device, read, write, 0x00ff)
AM_RANGE(0xffc000, 0xffffff) AM_MIRROR(0x450000) AM_RAM
ADDRESS_MAP_END
@@ -198,7 +198,9 @@ static MACHINE_CONFIG_START( toobin, toobin_state )
MCFG_CPU_PROGRAM_MAP(main_map)
MCFG_MACHINE_RESET_OVERRIDE(toobin_state,toobin)
- MCFG_NVRAM_ADD_1FILL("eeprom")
+
+ MCFG_ATARI_EEPROM_2804_ADD("eeprom")
+
MCFG_WATCHDOG_VBLANK_INIT(8)
/* video hardware */
diff --git a/src/mame/drivers/vindictr.c b/src/mame/drivers/vindictr.c
index 65c17902c3e..4ef6c05a8c6 100644
--- a/src/mame/drivers/vindictr.c
+++ b/src/mame/drivers/vindictr.c
@@ -69,8 +69,8 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, vindictr_state )
ADDRESS_MAP_UNMAP_HIGH
ADDRESS_MAP_GLOBAL_MASK(0x3fffff)
AM_RANGE(0x000000, 0x05ffff) AM_ROM
- AM_RANGE(0x0e0000, 0x0e0fff) AM_READWRITE(eeprom_r, eeprom_w) AM_SHARE("eeprom")
- AM_RANGE(0x1f0000, 0x1fffff) AM_WRITE(eeprom_enable_w)
+ AM_RANGE(0x0e0000, 0x0e0fff) AM_DEVREADWRITE8("eeprom", atari_eeprom_device, read, write, 0x00ff)
+ AM_RANGE(0x1f0000, 0x1fffff) AM_DEVWRITE("eeprom", atari_eeprom_device, unlock_write)
AM_RANGE(0x260000, 0x26000f) AM_READ_PORT("260000")
AM_RANGE(0x260010, 0x26001f) AM_READ(port1_r)
AM_RANGE(0x260020, 0x26002f) AM_READ_PORT("260020")
@@ -183,7 +183,8 @@ static MACHINE_CONFIG_START( vindictr, vindictr_state )
MCFG_CPU_PROGRAM_MAP(main_map)
MCFG_MACHINE_RESET_OVERRIDE(vindictr_state,vindictr)
- MCFG_NVRAM_ADD_1FILL("eeprom")
+
+ MCFG_ATARI_EEPROM_2804_ADD("eeprom")
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
diff --git a/src/mame/drivers/xybots.c b/src/mame/drivers/xybots.c
index 76efe44ab9a..9503e82fa0d 100644
--- a/src/mame/drivers/xybots.c
+++ b/src/mame/drivers/xybots.c
@@ -76,11 +76,11 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, xybots_state )
AM_RANGE(0xffae00, 0xffafff) AM_MIRROR(0x7f8000) AM_RAM AM_SHARE("mob")
AM_RANGE(0xffb000, 0xffbfff) AM_MIRROR(0x7f8000) AM_RAM_DEVWRITE("playfield", tilemap_device, write) AM_SHARE("playfield")
AM_RANGE(0xffc000, 0xffc7ff) AM_MIRROR(0x7f8800) AM_RAM_WRITE(paletteram_IIIIRRRRGGGGBBBB_word_w) AM_SHARE("paletteram")
- AM_RANGE(0xffd000, 0xffdfff) AM_MIRROR(0x7f8000) AM_READWRITE(eeprom_r, eeprom_w) AM_SHARE("eeprom")
+ AM_RANGE(0xffd000, 0xffdfff) AM_MIRROR(0x7f8000) AM_DEVREADWRITE8("eeprom", atari_eeprom_device, read, write, 0x00ff)
AM_RANGE(0xffe000, 0xffe0ff) AM_MIRROR(0x7f8000) AM_DEVREAD8("jsa", atari_jsa_i_device, main_response_r, 0x00ff)
AM_RANGE(0xffe100, 0xffe1ff) AM_MIRROR(0x7f8000) AM_READ_PORT("FFE100")
AM_RANGE(0xffe200, 0xffe2ff) AM_MIRROR(0x7f8000) AM_READ(special_port1_r)
- AM_RANGE(0xffe800, 0xffe8ff) AM_MIRROR(0x7f8000) AM_WRITE(eeprom_enable_w)
+ AM_RANGE(0xffe800, 0xffe8ff) AM_MIRROR(0x7f8000) AM_DEVWRITE("eeprom", atari_eeprom_device, unlock_write)
AM_RANGE(0xffe900, 0xffe9ff) AM_MIRROR(0x7f8000) AM_DEVWRITE8("jsa", atari_jsa_i_device, main_command_w, 0x00ff)
AM_RANGE(0xffea00, 0xffeaff) AM_MIRROR(0x7f8000) AM_WRITE(watchdog_reset16_w)
AM_RANGE(0xffeb00, 0xffebff) AM_MIRROR(0x7f8000) AM_WRITE(video_int_ack_w)
@@ -183,7 +183,8 @@ static MACHINE_CONFIG_START( xybots, xybots_state )
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", atarigen_state, video_int_gen)
MCFG_MACHINE_RESET_OVERRIDE(xybots_state,xybots)
- MCFG_NVRAM_ADD_1FILL("eeprom")
+
+ MCFG_ATARI_EEPROM_2804_ADD("eeprom")
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
diff --git a/src/mame/includes/cyberbal.h b/src/mame/includes/cyberbal.h
index eb4f6ef2b28..8cd90824160 100644
--- a/src/mame/includes/cyberbal.h
+++ b/src/mame/includes/cyberbal.h
@@ -29,6 +29,8 @@ public:
m_playfield2_tilemap(*this, "playfield2"),
m_alpha2_tilemap(*this, "alpha2"),
m_mob2(*this, "mob2"),
+ m_lscreen(*this, "lscreen"),
+ m_rscreen(*this, "rscreen"),
m_paletteram_0(*this, "paletteram_0"),
m_paletteram_1(*this, "paletteram_1") { }
@@ -45,6 +47,8 @@ public:
optional_device<tilemap_device> m_playfield2_tilemap;
optional_device<tilemap_device> m_alpha2_tilemap;
optional_device<atari_motion_objects_device> m_mob2;
+ optional_device<screen_device> m_lscreen;
+ optional_device<screen_device> m_rscreen;
optional_shared_ptr<UINT16> m_paletteram_0;
optional_shared_ptr<UINT16> m_paletteram_1;
UINT16 m_current_slip[2];
diff --git a/src/mame/includes/harddriv.h b/src/mame/includes/harddriv.h
index 68a33992cb6..4ccb16e47ca 100644
--- a/src/mame/includes/harddriv.h
+++ b/src/mame/includes/harddriv.h
@@ -36,6 +36,7 @@ public:
m_ds3dac2(*this, "ds3dac2"),
m_jsa(*this, "jsa"),
m_msp_ram(*this, "msp_ram"),
+ m_zram(*this, "zram"),
m_adsp_data_memory(*this, "adsp_data"),
m_adsp_pgm_memory(*this, "adsp_pgm_memory"),
m_ds3sdsp_data_memory(*this, "ds3sdsp_data"),
@@ -75,6 +76,8 @@ public:
UINT16 * m_dsk_zram;
UINT16 * m_m68k_slapstic_base;
UINT16 * m_m68k_sloop_alt_base;
+
+ required_shared_ptr<UINT16> m_zram;
optional_shared_ptr<UINT16> m_adsp_data_memory;
optional_shared_ptr<UINT32> m_adsp_pgm_memory;
diff --git a/src/mame/machine/atarigen.c b/src/mame/machine/atarigen.c
index 8088fff0866..052fe87ac7a 100644
--- a/src/mame/machine/atarigen.c
+++ b/src/mame/machine/atarigen.c
@@ -849,6 +849,132 @@ void atari_vad_device::eof_update(emu_timer &timer)
+//**************************************************************************
+// EEPROM INTERFACE DEVICE
+//**************************************************************************
+
+// device type definition
+const device_type ATARI_EEPROM_2804 = &device_creator<atari_eeprom_2804_device>;
+const device_type ATARI_EEPROM_2816 = &device_creator<atari_eeprom_2816_device>;
+
+//-------------------------------------------------
+// atari_eeprom_device - constructor
+//-------------------------------------------------
+
+atari_eeprom_device::atari_eeprom_device(const machine_config &mconfig, device_type devtype, const char *name, const char *tag, device_t *owner, const char *shortname, const char *file)
+ : device_t(mconfig, devtype, name, tag, owner, 0, shortname, file),
+ m_eeprom(*this, "eeprom"),
+ m_unlocked(false)
+{
+}
+
+
+//-------------------------------------------------
+// unlock_read/unlock_write - unlock read/write
+// handlers
+//-------------------------------------------------
+
+READ8_MEMBER(atari_eeprom_device::unlock_read) { m_unlocked = true; return space.unmap(); }
+WRITE8_MEMBER(atari_eeprom_device::unlock_write) { m_unlocked = true; }
+READ16_MEMBER(atari_eeprom_device::unlock_read) { m_unlocked = true; return space.unmap(); }
+WRITE16_MEMBER(atari_eeprom_device::unlock_write) { m_unlocked = true; }
+READ32_MEMBER(atari_eeprom_device::unlock_read) { m_unlocked = true; return space.unmap(); }
+WRITE32_MEMBER(atari_eeprom_device::unlock_write) { m_unlocked = true; }
+
+
+//-------------------------------------------------
+// read/write - data read/write handlers
+//-------------------------------------------------
+
+READ8_MEMBER(atari_eeprom_device::read)
+{
+ return m_eeprom->read(space, offset);
+}
+
+WRITE8_MEMBER(atari_eeprom_device::write)
+{
+ if (m_unlocked)
+ m_eeprom->write(space, offset, data, mem_mask);
+ else
+ logerror("%s: Attemptedt to write to EEPROM while not unlocked\n", machine().describe_context());
+ m_unlocked = false;
+}
+
+
+//-------------------------------------------------
+// device_start: Start up the device
+//-------------------------------------------------
+
+void atari_eeprom_device::device_start()
+{
+ // register for save states
+ save_item(NAME(m_unlocked));
+}
+
+
+//-------------------------------------------------
+// device_reset: Handle a device reset by
+// clearing the interrupt lines and states
+//-------------------------------------------------
+
+void atari_eeprom_device::device_reset()
+{
+ // reset unlocked state
+ m_unlocked = false;
+}
+
+
+//-------------------------------------------------
+// atari_eeprom_2804_device - constructor
+//-------------------------------------------------
+
+atari_eeprom_2804_device::atari_eeprom_2804_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
+ : atari_eeprom_device(mconfig, ATARI_EEPROM_2804, "Atari EEPROM Interface", tag, owner, "atari2804", __FILE__)
+{
+}
+
+
+//-------------------------------------------------
+// device_mconfig_additions - return machine
+// config fragment
+//-------------------------------------------------
+
+MACHINE_CONFIG_FRAGMENT(atari_eeprom_2804_config)
+ MCFG_EEPROM_2804_ADD("eeprom")
+MACHINE_CONFIG_END
+
+machine_config_constructor atari_eeprom_2804_device::device_mconfig_additions() const
+{
+ return MACHINE_CONFIG_NAME(atari_eeprom_2804_config);
+}
+
+
+//-------------------------------------------------
+// atari_eeprom_2816_device - constructor
+//-------------------------------------------------
+
+atari_eeprom_2816_device::atari_eeprom_2816_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
+ : atari_eeprom_device(mconfig, ATARI_EEPROM_2816, "Atari EEPROM Interface", tag, owner, "atari2816", __FILE__)
+{
+}
+
+
+//-------------------------------------------------
+// device_mconfig_additions - return machine
+// config fragment
+//-------------------------------------------------
+
+MACHINE_CONFIG_FRAGMENT(atari_eeprom_2816_config)
+ MCFG_EEPROM_2816_ADD("eeprom")
+MACHINE_CONFIG_END
+
+machine_config_constructor atari_eeprom_2816_device::device_mconfig_additions() const
+{
+ return MACHINE_CONFIG_NAME(atari_eeprom_2816_config);
+}
+
+
+
/***************************************************************************
OVERALL INIT
***************************************************************************/
@@ -858,15 +984,11 @@ atarigen_state::atarigen_state(const machine_config &mconfig, device_type type,
m_earom(*this, "earom"),
m_earom_data(0),
m_earom_control(0),
- m_eeprom(*this, "eeprom"),
- m_eeprom32(*this, "eeprom"),
m_scanline_int_state(0),
m_sound_int_state(0),
m_video_int_state(0),
- m_eeprom_default(NULL),
m_xscroll(*this, "xscroll"),
m_yscroll(*this, "yscroll"),
- m_eeprom_unlocked(false),
m_slapstic_num(0),
m_slapstic(NULL),
m_slapstic_bank(0),
@@ -901,8 +1023,6 @@ void atarigen_state::machine_start()
save_item(NAME(m_sound_int_state));
save_item(NAME(m_video_int_state));
- save_item(NAME(m_eeprom_unlocked));
-
save_item(NAME(m_slapstic_num));
save_item(NAME(m_slapstic_bank));
save_item(NAME(m_slapstic_last_pc));
@@ -924,11 +1044,6 @@ void atarigen_state::machine_reset()
if (m_earom != NULL)
m_earom->set_control(0, 1, 1, 0, 0);
- // reset the EEPROM
- m_eeprom_unlocked = false;
- if (m_eeprom == NULL && m_eeprom32 != NULL)
- m_eeprom.set_target(reinterpret_cast<UINT16 *>(m_eeprom32.target()), m_eeprom32.bytes());
-
// reset the slapstic
if (m_slapstic_num != 0)
{
@@ -1080,68 +1195,6 @@ WRITE16_MEMBER(atarigen_state::video_int_ack_w)
/***************************************************************************
- EEPROM HANDLING
-***************************************************************************/
-
-//-------------------------------------------------
-// eeprom_enable_w: Any write to this handler will
-// allow one byte to be written to the EEPROM data area the
-// next time.
-//-------------------------------------------------
-
-WRITE16_MEMBER(atarigen_state::eeprom_enable_w)
-{
- m_eeprom_unlocked = true;
-}
-
-
-//-------------------------------------------------
-// eeprom_w: Writes a "word" to the EEPROM, which is
-// almost always accessed via the low byte of the word only.
-// If the EEPROM hasn't been unlocked, the write attempt is
-// ignored.
-//-------------------------------------------------
-
-WRITE16_MEMBER(atarigen_state::eeprom_w)
-{
- if (!m_eeprom_unlocked)
- return;
-
- COMBINE_DATA(&m_eeprom[offset]);
- m_eeprom_unlocked = false;
-}
-
-WRITE32_MEMBER(atarigen_state::eeprom32_w)
-{
- if (!m_eeprom_unlocked)
- return;
-
- COMBINE_DATA(&m_eeprom[offset * 2 + 1]);
- data >>= 16;
- mem_mask >>= 16;
- COMBINE_DATA(&m_eeprom[offset * 2]);
- m_eeprom_unlocked = false;
-}
-
-
-//-------------------------------------------------
-// eeprom_r: Reads a "word" from the EEPROM, which is
-// almost always accessed via the low byte of the word only.
-//-------------------------------------------------
-
-READ16_MEMBER(atarigen_state::eeprom_r)
-{
- return m_eeprom[offset] | 0xff00;
-}
-
-READ32_MEMBER(atarigen_state::eeprom_upper32_r)
-{
- return (m_eeprom[offset * 2] << 16) | m_eeprom[offset * 2 + 1] | 0x00ff00ff;
-}
-
-
-
-/***************************************************************************
SLAPSTIC HANDLING
***************************************************************************/
diff --git a/src/mame/machine/atarigen.h b/src/mame/machine/atarigen.h
index 897928af924..cb10be86a06 100644
--- a/src/mame/machine/atarigen.h
+++ b/src/mame/machine/atarigen.h
@@ -42,6 +42,7 @@
#include "machine/nvram.h"
#include "machine/er2055.h"
+#include "machine/eeprompar.h"
#include "video/atarimo.h"
#include "cpu/m6502/m6502.h"
#include "sound/okim6295.h"
@@ -67,6 +68,8 @@
atari_sound_comm_device::static_set_sound_cpu(*device, _soundcpu); \
devcb = &atari_sound_comm_device::static_set_main_int_cb(*device, DEVCB2_##_intcb);
+
+
#define MCFG_ATARI_VAD_ADD(_tag, _screen, _intcb) \
MCFG_DEVICE_ADD(_tag, ATARI_VAD, 0) \
MCFG_VIDEO_SET_SCREEN(_screen) \
@@ -102,6 +105,15 @@
MCFG_ATARI_MOTION_OBJECTS_ADD(fulltag, "^^screen", _config) } \
+
+#define MCFG_ATARI_EEPROM_2804_ADD(_tag) \
+ MCFG_DEVICE_ADD(_tag, ATARI_EEPROM_2804, 0)
+
+#define MCFG_ATARI_EEPROM_2816_ADD(_tag) \
+ MCFG_DEVICE_ADD(_tag, ATARI_EEPROM_2816, 0)
+
+
+
/***************************************************************************
TYPE DEFINITIONS
***************************************************************************/
@@ -266,6 +278,66 @@ private:
};
+// ======================> atari_eeprom_device
+
+// device type definition
+extern const device_type ATARI_EEPROM_2804;
+extern const device_type ATARI_EEPROM_2816;
+
+class atari_eeprom_device : public device_t
+{
+protected:
+ // construction/destruction
+ atari_eeprom_device(const machine_config &mconfig, device_type devtype, const char *name, const char *tag, device_t *owner, const char *shortname, const char *file);
+
+public:
+ // unlock controls
+ DECLARE_READ8_MEMBER(unlock_read);
+ DECLARE_WRITE8_MEMBER(unlock_write);
+ DECLARE_READ16_MEMBER(unlock_read);
+ DECLARE_WRITE16_MEMBER(unlock_write);
+ DECLARE_READ32_MEMBER(unlock_read);
+ DECLARE_WRITE32_MEMBER(unlock_write);
+
+ // EEPROM read/write
+ DECLARE_READ8_MEMBER(read);
+ DECLARE_WRITE8_MEMBER(write);
+
+protected:
+ // device-level overrides
+ virtual void device_start();
+ virtual void device_reset();
+
+ // internal state
+ required_device<eeprom_parallel_28xx_device> m_eeprom;
+
+ // live state
+ bool m_unlocked;
+};
+
+class atari_eeprom_2804_device : public atari_eeprom_device
+{
+public:
+ // construction/destruction
+ atari_eeprom_2804_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+
+protected:
+ // device-level overrides
+ virtual machine_config_constructor device_mconfig_additions() const;
+};
+
+class atari_eeprom_2816_device : public atari_eeprom_device
+{
+public:
+ // construction/destruction
+ atari_eeprom_2816_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+
+protected:
+ // device-level overrides
+ virtual machine_config_constructor device_mconfig_additions() const;
+};
+
+
/***************************************************************************
TYPES & STRUCTURES
@@ -308,13 +380,6 @@ public:
INTERRUPT_GEN_MEMBER(video_int_gen);
DECLARE_WRITE16_MEMBER(video_int_ack_w);
- // EEPROM helpers
- WRITE16_MEMBER(eeprom_enable_w);
- WRITE16_MEMBER(eeprom_w);
- WRITE32_MEMBER(eeprom32_w);
- READ16_MEMBER(eeprom_r);
- READ32_MEMBER(eeprom_upper32_r);
-
// slapstic helpers
void slapstic_configure(cpu_device &device, offs_t base, offs_t mirror, int chipnum);
void slapstic_update_bank(int bank);
@@ -363,21 +428,14 @@ public:
UINT8 m_earom_data;
UINT8 m_earom_control;
- optional_shared_ptr<UINT16> m_eeprom;
- optional_shared_ptr<UINT32> m_eeprom32;
-
UINT8 m_scanline_int_state;
UINT8 m_sound_int_state;
UINT8 m_video_int_state;
- const UINT16 * m_eeprom_default;
-
optional_shared_ptr<UINT16> m_xscroll;
optional_shared_ptr<UINT16> m_yscroll;
/* internal state */
- bool m_eeprom_unlocked;
-
UINT8 m_slapstic_num;
UINT16 * m_slapstic;
UINT8 m_slapstic_bank;
diff --git a/src/mame/machine/harddriv.c b/src/mame/machine/harddriv.c
index 997f3ef0b27..24e52519738 100644
--- a/src/mame/machine/harddriv.c
+++ b/src/mame/machine/harddriv.c
@@ -460,7 +460,7 @@ WRITE16_HANDLER( hdc68k_wheel_edge_reset_w )
READ16_HANDLER( hd68k_zram_r )
{
harddriv_state *state = space.machine().driver_data<harddriv_state>();
- return state->m_eeprom[offset];
+ return state->m_zram[offset];
}
@@ -468,7 +468,7 @@ WRITE16_HANDLER( hd68k_zram_w )
{
harddriv_state *state = space.machine().driver_data<harddriv_state>();
if (state->m_m68k_zp1 == 0 && state->m_m68k_zp2 == 1)
- COMBINE_DATA(&state->m_eeprom[offset]);
+ COMBINE_DATA(&state->m_zram[offset]);
}