diff options
author | 2010-09-04 17:01:46 +0000 | |
---|---|---|
committer | 2010-09-04 17:01:46 +0000 | |
commit | 5b6c078aebe05f8415acc9a7e3d423f89342b628 (patch) | |
tree | 3492d73afc9907d181f2d025f3382cf728d9fc3a /src | |
parent | 8969b0b7ee3a47b281d767dfea9f31b14a09b692 (diff) |
Added templates required_shared_ptr<> and optional_shared_ptr<> which
work just like required_device<> and optional_device<> for retrieving a
pointer by tag from an address space that specifies AM_SHARE("tag").
Also added templates required_shared_size<> and optional_shared_size<>
for retrieving the size of the AM_SHARE region.
Created a new generic NVRAM device. It can be configured to default to
0-fill, 1-fill, random-fill, or custom fill. In all cases, a same-named
memory region overrides the default fill. The address range where the
NVRAM can be found is now identified by an AM_SHARE() region of the
same tag as the NVRAM device. Drivers can also explicitly configure a
separately-allocated NVRAM region via nvram_device::set_base().
Replaced all instances of MDRV_NVRAM_HANDLER(generic_*) with
MDRV_NVRAM_ADD_*("nvram"). Replaced all AM_BASE_GENERIC/AM_SIZE_GENERIC(nvram)
with AM_SHARE("nvram"). For all remaining drivers that referenced the
generic.nvram directly, changed them to hold a required_shared_ptr<UINTx>
to the NVRAM in their driver state, and use that instead. Removed
nvram and nvram_size from the generic_ptrs.
Diffstat (limited to 'src')
199 files changed, 1475 insertions, 786 deletions
diff --git a/src/emu/emu.mak b/src/emu/emu.mak index ffcd2a8ab60..dae8589b712 100644 --- a/src/emu/emu.mak +++ b/src/emu/emu.mak @@ -175,6 +175,7 @@ EMUMACHINEOBJS = \ $(EMUMACHINE)/mc146818.o \ $(EMUMACHINE)/microtch.o \ $(EMUMACHINE)/msm6242.o \ + $(EMUMACHINE)/nvram.o \ $(EMUMACHINE)/pc16552d.o \ $(EMUMACHINE)/pci.o \ $(EMUMACHINE)/pic8259.o \ diff --git a/src/emu/machine.c b/src/emu/machine.c index efe4bdfd50a..d1ce95a5bef 100644 --- a/src/emu/machine.c +++ b/src/emu/machine.c @@ -1177,7 +1177,7 @@ void driver_device::device_start() throw device_missing_dependencies(); // find all the registered devices - for (auto_device_base *autodev = m_auto_device_list; autodev != NULL; autodev = autodev->m_next) + for (auto_finder_base *autodev = m_auto_finder_list; autodev != NULL; autodev = autodev->m_next) autodev->findit(*this); // call the game-specific init @@ -1212,35 +1212,35 @@ void driver_device::device_reset() //------------------------------------------------- -// auto_device_base - constructor +// auto_finder_base - constructor //------------------------------------------------- -void driver_device::register_auto_device(auto_device_base &autodev) +void driver_device::register_auto_finder(auto_finder_base &autodev) { // add to this list - autodev.m_next = m_auto_device_list; - m_auto_device_list = &autodev; + autodev.m_next = m_auto_finder_list; + m_auto_finder_list = &autodev; } //------------------------------------------------- -// auto_device_base - constructor +// auto_finder_base - constructor //------------------------------------------------- -driver_device::auto_device_base::auto_device_base(driver_device &base, const char *tag) +driver_device::auto_finder_base::auto_finder_base(driver_device &base, const char *tag) : m_next(NULL), m_tag(tag) { // register ourselves with our device class - base.register_auto_device(*this); + base.register_auto_finder(*this); } //------------------------------------------------- -// ~auto_device_base - destructor +// ~auto_finder_base - destructor //------------------------------------------------- -driver_device::auto_device_base::~auto_device_base() +driver_device::auto_finder_base::~auto_finder_base() { } diff --git a/src/emu/machine.h b/src/emu/machine.h index 4984fefff8f..a367cef1e7e 100644 --- a/src/emu/machine.h +++ b/src/emu/machine.h @@ -278,8 +278,6 @@ private: // holds generic pointers that are commonly used struct generic_pointers { - generic_ptr nvram; // generic NVRAM - UINT32 nvram_size; generic_ptr videoram; // videoram UINT32 videoram_size; generic_ptr spriteram; // spriteram @@ -632,70 +630,107 @@ protected: virtual void device_start(); virtual void device_reset(); - // helper class to request auto-device discovery in the constructor of a derived class - class auto_device_base + // helper class to request auto-object discovery in the constructor of a derived class + class auto_finder_base { public: // construction/destruction - auto_device_base(driver_device &base, const char *tag); - virtual ~auto_device_base(); + auto_finder_base(driver_device &base, const char *tag); + virtual ~auto_finder_base(); // getters virtual void findit(driver_device &base) = 0; // internal state - auto_device_base *m_next; + auto_finder_base *m_next; const char *m_tag; }; - // optional device finder - template<class _DeviceClass> - class optional_device : public auto_device_base + // templated version bound to a specific type + template<typename _TargetType, bool _Required> + class auto_finder_type : public auto_finder_base { public: // construction/destruction - optional_device(driver_device &base, const char *tag) - : auto_device_base(base, tag), - m_device(NULL) { } + auto_finder_type(driver_device &base, const char *tag) + : auto_finder_base(base, tag), + m_target(NULL) { } // operators to make use transparent - operator _DeviceClass *() { return m_device; } - operator _DeviceClass *() const { return m_device; } - _DeviceClass *operator->() { return m_device; } + operator _TargetType() { return m_target; } + operator _TargetType() const { return m_target; } + _TargetType operator->() { return m_target; } - // finder - virtual void findit(driver_device &base) + // setter for setting the object + void set_target(_TargetType target) { - m_device = base.m_machine.device<_DeviceClass>(m_tag); + m_target = target; + if (target == 0 && _Required) + throw emu_fatalerror("Unable to find required object '%s'", this->m_tag); } - + // internal state - _DeviceClass *m_device; + _TargetType m_target; + }; + + // optional device finder + template<class _DeviceClass> + class optional_device : public auto_finder_type<_DeviceClass *, false> + { + public: + optional_device(driver_device &base, const char *tag) : auto_finder_type<_DeviceClass *, false>(base, tag) { } + virtual void findit(driver_device &base) { set_target(base.m_machine.device<_DeviceClass>(this->m_tag)); } }; // required devices are similar but throw an error if they are not found template<class _DeviceClass> - class required_device : public optional_device<_DeviceClass> + class required_device : public auto_finder_type<_DeviceClass *, true> { public: - // construction/destruction - required_device(driver_device &base, const char *tag) - : optional_device<_DeviceClass>(base, tag) { } - - // finder - virtual void findit(driver_device &base) - { - this->m_device = base.m_machine.device<_DeviceClass>(this->m_tag); - if (this->m_device == NULL) throw emu_fatalerror("Unabled to find required device '%s'", this->m_tag); - } + required_device(driver_device &base, const char *tag) : auto_finder_type<_DeviceClass *, true>(base, tag) { } + virtual void findit(driver_device &base) { set_target(base.m_machine.device<_DeviceClass>(this->m_tag)); } + }; + + // optional shared pointer finder + template<typename _PointerType> + class optional_shared_ptr : public auto_finder_type<_PointerType *, false> + { + public: + optional_shared_ptr(driver_device &base, const char *tag) : auto_finder_type<_PointerType *, false>(base, tag) { } + virtual void findit(driver_device &base) { set_target(reinterpret_cast<_PointerType *>(memory_get_shared(base.m_machine, this->m_tag))); } + }; + + // required shared pointer finder + template<typename _PointerType> + class required_shared_ptr : public auto_finder_type<_PointerType *, true> + { + public: + required_shared_ptr(driver_device &base, const char *tag) : auto_finder_type<_PointerType *, true>(base, tag) { } + virtual void findit(driver_device &base) { set_target(reinterpret_cast<_PointerType *>(memory_get_shared(base.m_machine, this->m_tag))); } + }; + + // optional shared pointer size finder + class optional_shared_size : public auto_finder_type<size_t, false> + { + public: + optional_shared_size(driver_device &base, const char *tag) : auto_finder_type<size_t, false>(base, tag) { } + virtual void findit(driver_device &base) { size_t size; memory_get_shared(base.m_machine, this->m_tag, size); set_target(size); } + }; + + // required shared pointer size finder + class required_shared_size : public auto_finder_type<size_t, true> + { + public: + required_shared_size(driver_device &base, const char *tag) : auto_finder_type<size_t, true>(base, tag) { } + virtual void findit(driver_device &base) { size_t size; memory_get_shared(base.m_machine, this->m_tag, size); set_target(size); } }; // internal helpers - void register_auto_device(auto_device_base &autodev); + void register_auto_finder(auto_finder_base &autodev); // internal state const driver_device_config_base &m_config; - auto_device_base *m_auto_device_list; + auto_finder_base *m_auto_finder_list; }; diff --git a/src/emu/machine/generic.c b/src/emu/machine/generic.c index 8bcb2ea00ff..28f84a3501c 100644 --- a/src/emu/machine/generic.c +++ b/src/emu/machine/generic.c @@ -104,10 +104,6 @@ void generic_machine_init(running_machine *machine) state_save_register_item_array(machine, "coin", NULL, 0, state->coinlockedout); state_save_register_item_array(machine, "coin", NULL, 0, state->lastcoin); - /* reset NVRAM size and pointers */ - machine->generic.nvram.v = NULL; - machine->generic.nvram_size = 0; - /* reset memory card info */ state->memcard_inserted = -1; @@ -401,68 +397,6 @@ void nvram_save(running_machine *machine) } -/*------------------------------------------------- - NVRAM_HANDLER( generic_0fill ) - generic NVRAM - with a 0 fill --------------------------------------------------*/ - -NVRAM_HANDLER( generic_0fill ) -{ - const region_info *region = machine->region("nvram"); - if (read_or_write) - mame_fwrite(file, machine->generic.nvram.v, machine->generic.nvram_size); - else if (file != NULL) - mame_fread(file, machine->generic.nvram.v, machine->generic.nvram_size); - else if (region != NULL && region->bytes() == machine->generic.nvram_size) - memcpy(machine->generic.nvram.v, region->base(), machine->generic.nvram_size); - else - memset(machine->generic.nvram.v, 0, machine->generic.nvram_size); -} - - -/*------------------------------------------------- - NVRAM_HANDLER( generic_1fill ) - generic NVRAM - with a 1 fill --------------------------------------------------*/ - -NVRAM_HANDLER( generic_1fill ) -{ - const region_info *region = machine->region("nvram"); - if (read_or_write) - mame_fwrite(file, machine->generic.nvram.v, machine->generic.nvram_size); - else if (file != NULL) - mame_fread(file, machine->generic.nvram.v, machine->generic.nvram_size); - else if (region != NULL && region->bytes() == machine->generic.nvram_size) - memcpy(machine->generic.nvram.v, region->base(), machine->generic.nvram_size); - else - memset(machine->generic.nvram.v, 0xff, machine->generic.nvram_size); -} - - -/*------------------------------------------------- - NVRAM_HANDLER( generic_randfill ) - generic NVRAM - with a random fill --------------------------------------------------*/ - -NVRAM_HANDLER( generic_randfill ) -{ - const region_info *region = machine->region("nvram"); - if (read_or_write) - mame_fwrite(file, machine->generic.nvram.v, machine->generic.nvram_size); - else if (file != NULL) - mame_fread(file, machine->generic.nvram.v, machine->generic.nvram_size); - else if (region != NULL && region->bytes() == machine->generic.nvram_size) - memcpy(machine->generic.nvram.v, region->base(), machine->generic.nvram_size); - else - { - UINT8 *nvram = (UINT8 *)machine->generic.nvram.v; - int i; - for (i = 0; i < machine->generic.nvram_size; i++) - nvram[i] = mame_rand(machine); - } -} - - /*************************************************************************** MEMORY CARD MANAGEMENT diff --git a/src/emu/machine/generic.h b/src/emu/machine/generic.h index cbb27219ef9..4946788f96d 100644 --- a/src/emu/machine/generic.h +++ b/src/emu/machine/generic.h @@ -82,15 +82,6 @@ void nvram_load(running_machine *machine); /* save NVRAM to a file */ void nvram_save(running_machine *machine); -/* generic NVRAM handler that defaults to a 0 fill */ -NVRAM_HANDLER( generic_0fill ); - -/* generic NVRAM handler that defaults to a 1 fill */ -NVRAM_HANDLER( generic_1fill ); - -/* generic NVRAM handler that defaults to a random fill */ -NVRAM_HANDLER( generic_randfill ); - /* ----- memory card management ----- */ diff --git a/src/emu/machine/nvram.c b/src/emu/machine/nvram.c new file mode 100644 index 00000000000..e56fadc4e2c --- /dev/null +++ b/src/emu/machine/nvram.c @@ -0,0 +1,213 @@ +/*************************************************************************** + + nvram.c + + Generic non-volatile RAM. + +**************************************************************************** + + 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. + +***************************************************************************/ + +#include "emu.h" +#include "machine/nvram.h" + + + +//************************************************************************** +// DEVICE CONFIGURATION +//************************************************************************** + +//------------------------------------------------- +// nvram_device_config - constructor +//------------------------------------------------- + +nvram_device_config::nvram_device_config(const machine_config &mconfig, const char *tag, const device_config *owner, UINT32 clock) + : device_config(mconfig, static_alloc_device_config, "NVRAM", tag, owner, clock), + device_config_nvram_interface(mconfig, *this), + m_default_value(DEFAULT_ALL_1) +{ +} + + +//------------------------------------------------- +// static_alloc_device_config - allocate a new +// configuration object +//------------------------------------------------- + +device_config *nvram_device_config::static_alloc_device_config(const machine_config &mconfig, const char *tag, const device_config *owner, UINT32 clock) +{ + return global_alloc(nvram_device_config(mconfig, tag, owner, clock)); +} + + +//------------------------------------------------- +// alloc_device - allocate a new device object +//------------------------------------------------- + +device_t *nvram_device_config::alloc_device(running_machine &machine) const +{ + return auto_alloc(&machine, nvram_device(machine, *this)); +} + + +//------------------------------------------------- +// static_set_interface - configuration helper +// to set the interface +//------------------------------------------------- + +void nvram_device_config::static_set_default_value(device_config *device, default_value value) +{ + nvram_device_config *nvram = downcast<nvram_device_config *>(device); + nvram->m_default_value = value; +} + + +//------------------------------------------------- +// static_set_custom_handler - configuration +// helper to set a custom callback +//------------------------------------------------- + +void nvram_device_config::static_set_custom_handler(device_config *device, nvram_init_proto_delegate handler) +{ + nvram_device_config *nvram = downcast<nvram_device_config *>(device); + nvram->m_custom_handler = handler; +} + + + +//************************************************************************** +// LIVE DEVICE +//************************************************************************** + +//------------------------------------------------- +// nvram_device - constructor +//------------------------------------------------- + +nvram_device::nvram_device(running_machine &_machine, const nvram_device_config &config) + : device_t(_machine, config), + device_nvram_interface(_machine, config, *this), + m_config(config), + m_base(NULL), + m_length(0) +{ +} + + +//------------------------------------------------- +// device_start - device-specific startup +//------------------------------------------------- + +void nvram_device::device_start() +{ + // bind our handler + if (!m_config.m_custom_handler.isnull()) + m_custom_handler = nvram_init_delegate(m_config.m_custom_handler, *m_owner); + + // find our shared pointer with the target RAM + m_base = memory_get_shared(m_machine, tag(), m_length); + if (m_base == NULL) + throw emu_fatalerror("NVRAM device '%s' has no corresponding AM_SHARE region", tag()); + + // if we are region-backed for the default, find it now and make sure it's the right size + if (m_region != NULL && m_region->bytes() != m_length) + throw emu_fatalerror("NVRAM device '%s' has a default region, but it should be 0x%X bytes", tag(), m_length); +} + + +//------------------------------------------------- +// nvram_default - called to initialize NVRAM to +// its default state +//------------------------------------------------- + +void nvram_device::nvram_default() +{ + // region always wins + if (m_region != NULL) + { + memcpy(m_base, *m_region, m_length); + return; + } + + // default values for other cases + switch (m_config.m_default_value) + { + // all-0's + case nvram_device_config::DEFAULT_ALL_0: + memset(m_base, 0, m_length); + break; + + // all 1's + default: + case nvram_device_config::DEFAULT_ALL_1: + memset(m_base, 0xff, m_length); + break; + + // random values + case nvram_device_config::DEFAULT_RANDOM: + { + UINT8 *nvram = reinterpret_cast<UINT8 *>(m_base); + for (int index = 0; index < m_length; index++) + nvram[index] = mame_rand(&m_machine); + break; + } + + // custom handler + case nvram_device_config::DEFAULT_CUSTOM: + m_custom_handler(*this, m_base, m_length); + break; + } +} + + +//------------------------------------------------- +// nvram_read - called to read NVRAM from the +// .nv file +//------------------------------------------------- + +void nvram_device::nvram_read(mame_file &file) +{ + mame_fread(&file, m_base, m_length); +} + + +//------------------------------------------------- +// nvram_write - called to write NVRAM to the +// .nv file +//------------------------------------------------- + +void nvram_device::nvram_write(mame_file &file) +{ + mame_fwrite(&file, m_base, m_length); +} + + +const device_type NVRAM = nvram_device_config::static_alloc_device_config; diff --git a/src/emu/machine/nvram.h b/src/emu/machine/nvram.h new file mode 100644 index 00000000000..b6e4b7823e6 --- /dev/null +++ b/src/emu/machine/nvram.h @@ -0,0 +1,168 @@ +/*************************************************************************** + + nvram.h + + Generic non-volatile RAM. + +**************************************************************************** + + 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 __NVRAM_H__ +#define __NVRAM_H__ + + + +//************************************************************************** +// INTERFACE CONFIGURATION MACROS +//************************************************************************** + +#define MDRV_NVRAM_ADD_0FILL(_tag) \ + MDRV_DEVICE_ADD(_tag, NVRAM, 0) \ + nvram_device_config::static_set_default_value(device, nvram_device_config::DEFAULT_ALL_0); \ + +#define MDRV_NVRAM_ADD_1FILL(_tag) \ + MDRV_DEVICE_ADD(_tag, NVRAM, 0) \ + nvram_device_config::static_set_default_value(device, nvram_device_config::DEFAULT_ALL_1); \ + +#define MDRV_NVRAM_ADD_RANDOM_FILL(_tag) \ + MDRV_DEVICE_ADD(_tag, NVRAM, 0) \ + nvram_device_config::static_set_default_value(device, nvram_device_config::DEFAULT_RANDOM); \ + +#define MDRV_NVRAM_ADD_CUSTOM(_tag, _class, _method) \ + MDRV_DEVICE_ADD(_tag, NVRAM, 0) \ + nvram_device_config::static_set_custom_handler(device, nvram_init_proto_delegate::_create_member<_class, &_class::_method>(#_class "::" #_method)); \ + + +#define MDRV_NVRAM_REPLACE_0FILL(_tag) \ + MDRV_DEVICE_REPLACE(_tag, NVRAM, 0) \ + nvram_device_config::static_set_default_value(device, nvram_device_config::DEFAULT_ALL_0); \ + +#define MDRV_NVRAM_REPLACE_1FILL(_tag) \ + MDRV_DEVICE_REPLACE(_tag, NVRAM, 0) \ + nvram_device_config::static_set_default_value(device, nvram_device_config::DEFAULT_ALL_1); \ + +#define MDRV_NVRAM_REPLACE_RANDOM_FILL(_tag) \ + MDRV_DEVICE_REPLACE(_tag, NVRAM, 0) \ + nvram_device_config::static_set_default_value(device, nvram_device_config::DEFAULT_RANDOM); \ + +#define MDRV_NVRAM_REPLACE_CUSTOM(_tag, _class, _method) \ + MDRV_DEVICE_REPLACE(_tag, NVRAM, 0) \ + nvram_device_config::static_set_custom_handler(device, nvram_init_proto_delegate::_create_member<_class, &_class::_method>(#_class "::" #_method)); \ + + + +//************************************************************************** +// TYPE DEFINITIONS +//************************************************************************** + +class nvram_device; + + +// custom initialization for default state +typedef proto_delegate_3param<void, nvram_device &, void *, size_t> nvram_init_proto_delegate; +typedef delegate_3param<void, nvram_device &, void *, size_t> nvram_init_delegate; + + +// ======================> nvram_device_config + +class nvram_device_config : public device_config, + public device_config_nvram_interface +{ + friend class nvram_device; + + // construction/destruction + nvram_device_config(const machine_config &mconfig, const char *tag, const device_config *owner, UINT32 clock); + +public: + // values + enum default_value + { + DEFAULT_ALL_0, + DEFAULT_ALL_1, + DEFAULT_RANDOM, + DEFAULT_CUSTOM + }; + + // allocators + static device_config *static_alloc_device_config(const machine_config &mconfig, const char *tag, const device_config *owner, UINT32 clock); + virtual device_t *alloc_device(running_machine &machine) const; + + // inline configuration helpers + static void static_set_default_value(device_config *device, default_value value); + static void static_set_custom_handler(device_config *device, nvram_init_proto_delegate callback); + +protected: + // internal state + default_value m_default_value; + nvram_init_proto_delegate m_custom_handler; +}; + + +// ======================> nvram_device + +class nvram_device : public device_t, + public device_nvram_interface +{ + friend class nvram_device_config; + + // construction/destruction + nvram_device(running_machine &_machine, const nvram_device_config &config); + +public: + // controls + void set_base(void *base, size_t length) { m_base = base; m_length = length; } + +protected: + // device-level overrides + virtual void device_start(); + + // device_nvram_interface overrides + virtual void nvram_default(); + virtual void nvram_read(mame_file &file); + virtual void nvram_write(mame_file &file); + + // internal state + const nvram_device_config & m_config; + void * m_base; + size_t m_length; + nvram_init_delegate m_custom_handler; +}; + + +// device type definition +extern const device_type NVRAM; + + +#endif diff --git a/src/emu/memory.c b/src/emu/memory.c index e6d7205f283..64cbd501adb 100644 --- a/src/emu/memory.c +++ b/src/emu/memory.c @@ -3002,6 +3002,14 @@ bool address_space::needs_backing_store(const address_map_entry *entry) // if we are asked to provide a base pointer, then yes, we do need backing if (entry->m_baseptr != NULL || entry->m_baseptroffs_plus1 != 0 || entry->m_genbaseptroffs_plus1 != 0) return true; + + // if we are sharing, and we don't have a pointer yet, create one + if (entry->m_share != NULL) + { + memory_share *share = m_machine.memory_data->sharemap.find(entry->m_share); + if (share != NULL && share->ptr() == NULL) + return true; + } // if we're writing to any sort of bank or RAM, then yes, we do need backing if (entry->m_write.m_type == AMH_BANK || entry->m_write.m_type == AMH_RAM) diff --git a/src/mame/drivers/4roses.c b/src/mame/drivers/4roses.c index a0628318c55..d400ee3da66 100644 --- a/src/mame/drivers/4roses.c +++ b/src/mame/drivers/4roses.c @@ -176,6 +176,7 @@ #include "cpu/m6502/m6502.h" #include "video/mc6845.h" #include "sound/ay8910.h" +#include "machine/nvram.h" #include "includes/funworld.h" /********************** @@ -189,7 +190,7 @@ *************************/ static ADDRESS_MAP_START( 4roses_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x07ff) AM_RAM // AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x0000, 0x07ff) AM_RAM // AM_SHARE("nvram") AM_RANGE(0x6000, 0x6fff) AM_RAM_WRITE(funworld_videoram_w) AM_BASE(&funworld_videoram) AM_RANGE(0x7000, 0x7fff) AM_RAM_WRITE(funworld_colorram_w) AM_BASE(&funworld_colorram) AM_RANGE(0x8000, 0xffff) AM_ROM @@ -375,7 +376,7 @@ static MACHINE_CONFIG_START( 4roses, driver_device ) MDRV_CPU_PROGRAM_MAP(4roses_map) MDRV_CPU_VBLANK_INT("screen", nmi_line_pulse) -// MDRV_NVRAM_HANDLER(generic_0fill) +// MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ diff --git a/src/mame/drivers/5clown.c b/src/mame/drivers/5clown.c index c1abb1373d0..525d3f897db 100644 --- a/src/mame/drivers/5clown.c +++ b/src/mame/drivers/5clown.c @@ -446,6 +446,7 @@ #include "cpu/m6502/m6502.h" #include "video/mc6845.h" #include "machine/6821pia.h" +#include "machine/nvram.h" #include "sound/ay8910.h" #include "sound/okim6295.h" @@ -695,7 +696,7 @@ static WRITE8_HANDLER( snd_a02_w ) *************************/ static ADDRESS_MAP_START( fclown_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x07ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x0000, 0x07ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x0800, 0x0800) AM_DEVWRITE("crtc", mc6845_address_w) AM_RANGE(0x0801, 0x0801) AM_DEVREADWRITE("crtc", mc6845_register_r, mc6845_register_w) AM_RANGE(0x0844, 0x0847) AM_DEVREADWRITE("pia0", pia6821_r, pia6821_w) @@ -1037,7 +1038,7 @@ static MACHINE_CONFIG_START( fclown, driver_device ) MDRV_CPU_ADD("audiocpu", M6502, MASTER_CLOCK/8) /* guess, seems ok */ MDRV_CPU_PROGRAM_MAP(fcaudio_map) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") MDRV_PIA6821_ADD("pia0", fclown_pia0_intf) MDRV_PIA6821_ADD("pia1", fclown_pia1_intf) diff --git a/src/mame/drivers/88games.c b/src/mame/drivers/88games.c index bd8d5e9b3e5..d2aa97c5dc5 100644 --- a/src/mame/drivers/88games.c +++ b/src/mame/drivers/88games.c @@ -10,6 +10,7 @@ #include "video/konicdev.h" #include "sound/2151intf.h" #include "sound/upd7759.h" +#include "machine/nvram.h" #include "includes/88games.h" @@ -138,7 +139,7 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x0fff) AM_RAM AM_BASE_MEMBER(_88games_state, banked_rom) /* banked ROM + palette RAM */ AM_RANGE(0x1000, 0x1fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_be_w) AM_BASE(&paletteram_1000) /* banked ROM + palette RAM */ AM_RANGE(0x2000, 0x2fff) AM_RAM - AM_RANGE(0x3000, 0x37ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x3000, 0x37ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x3800, 0x3fff) AM_READWRITE(bankedram_r, bankedram_w) AM_BASE_MEMBER(_88games_state, ram) AM_RANGE(0x5f84, 0x5f84) AM_WRITE(k88games_5f84_w) AM_RANGE(0x5f88, 0x5f88) AM_WRITE(watchdog_reset_w) @@ -388,7 +389,7 @@ static MACHINE_CONFIG_START( 88games, _88games_state ) MDRV_MACHINE_START(88games) MDRV_MACHINE_RESET(88games) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ MDRV_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS) diff --git a/src/mame/drivers/acefruit.c b/src/mame/drivers/acefruit.c index d5c48f702e4..ec4b8f52687 100644 --- a/src/mame/drivers/acefruit.c +++ b/src/mame/drivers/acefruit.c @@ -10,6 +10,7 @@ Inputs and Dip Switches by Stephh #include "emu.h" #include "cpu/z80/z80.h" +#include "machine/nvram.h" #include "sidewndr.lh" @@ -258,7 +259,7 @@ static PALETTE_INIT( acefruit ) static ADDRESS_MAP_START( acefruit_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x1fff) AM_ROM - AM_RANGE(0x2000, 0x20ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x2000, 0x20ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x4000, 0x43ff) AM_RAM AM_BASE(&videoram) AM_RANGE(0x4400, 0x47ff) AM_RAM_WRITE(acefruit_colorram_w) AM_BASE(&colorram) AM_RANGE(0x8000, 0x8000) AM_READ_PORT("IN0") @@ -565,7 +566,7 @@ static MACHINE_CONFIG_START( acefruit, driver_device ) MDRV_SCREEN_VISIBLE_AREA(0, 511, 0, 255) MDRV_PALETTE_LENGTH(16) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") MDRV_PALETTE_INIT(acefruit) MDRV_VIDEO_START(acefruit) diff --git a/src/mame/drivers/alg.c b/src/mame/drivers/alg.c index 1629c45831a..2161c5cfbf2 100644 --- a/src/mame/drivers/alg.c +++ b/src/mame/drivers/alg.c @@ -26,6 +26,7 @@ #include "includes/amiga.h" #include "machine/laserdsc.h" #include "machine/6526cia.h" +#include "machine/nvram.h" static running_device *laserdisc; @@ -263,7 +264,7 @@ static ADDRESS_MAP_START( main_map_r1, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0xfc0000, 0xffffff) AM_ROM AM_REGION("user1", 0) /* System ROM */ AM_RANGE(0xf00000, 0xf1ffff) AM_ROM AM_REGION("user2", 0) /* Custom ROM */ - AM_RANGE(0xf54000, 0xf55fff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0xf54000, 0xf55fff) AM_RAM AM_SHARE("nvram") ADDRESS_MAP_END @@ -276,7 +277,7 @@ static ADDRESS_MAP_START( main_map_r2, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0xfc0000, 0xffffff) AM_ROM AM_REGION("user1", 0) /* System ROM */ AM_RANGE(0xf00000, 0xf3ffff) AM_ROM AM_REGION("user2", 0) /* Custom ROM */ - AM_RANGE(0xf7c000, 0xf7dfff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0xf7c000, 0xf7dfff) AM_RAM AM_SHARE("nvram") ADDRESS_MAP_END @@ -289,7 +290,7 @@ static ADDRESS_MAP_START( main_map_picmatic, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0xfc0000, 0xffffff) AM_ROM AM_REGION("user1", 0) /* System ROM */ AM_RANGE(0xf00000, 0xf1ffff) AM_ROM AM_REGION("user2", 0) /* Custom ROM */ - AM_RANGE(0xf40000, 0xf41fff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0xf40000, 0xf41fff) AM_RAM AM_SHARE("nvram") ADDRESS_MAP_END @@ -411,7 +412,7 @@ static MACHINE_CONFIG_START( alg_r1, driver_device ) MDRV_MACHINE_START(alg) MDRV_MACHINE_RESET(alg) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") MDRV_LASERDISC_ADD("laserdisc", SONY_LDP1450, "screen", "ldsound") MDRV_LASERDISC_OVERLAY(amiga, 512*2, 262, BITMAP_FORMAT_INDEXED16) diff --git a/src/mame/drivers/amaticmg.c b/src/mame/drivers/amaticmg.c index e2ec14a734c..f0a3877c1b1 100644 --- a/src/mame/drivers/amaticmg.c +++ b/src/mame/drivers/amaticmg.c @@ -419,7 +419,7 @@ static PALETTE_INIT( amaticmg ) static ADDRESS_MAP_START( amaticmg_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x00000, 0x3ffff) AM_ROM -// AM_RANGE(0x0000, 0x0000) AM_RAM // AM_BASE_SIZE_GENERIC(nvram) +// AM_RANGE(0x0000, 0x0000) AM_RAM // AM_SHARE("nvram") // AM_RANGE(0x0000, 0x0000) AM_DEVWRITE("crtc", mc6845_address_w) // AM_RANGE(0x0000, 0x0000) AM_DEVREADWRITE("crtc", mc6845_register_r, mc6845_register_w) // AM_RANGE(0x0000, 0x0000) AM_RAM_WRITE(amaticmg_videoram_w) AM_BASE(&amaticmg_videoram) @@ -617,7 +617,7 @@ static MACHINE_CONFIG_START( amaticmg, driver_device ) MDRV_CPU_IO_MAP(amaticmg_portmap) MDRV_CPU_VBLANK_INT("screen", irq0_line_hold) -// MDRV_NVRAM_HANDLER(generic_0fill) +// MDRV_NVRAM_ADD_0FILL("nvram") /* 3x 8255 */ // MDRV_PPI8255_ADD( "ppi8255_0", ppi8255_intf[0] ) diff --git a/src/mame/drivers/ampoker2.c b/src/mame/drivers/ampoker2.c index d664bfbc14c..7fcfe16cc42 100644 --- a/src/mame/drivers/ampoker2.c +++ b/src/mame/drivers/ampoker2.c @@ -367,6 +367,7 @@ #include "emu.h" #include "cpu/z80/z80.h" #include "sound/ay8910.h" +#include "machine/nvram.h" #include "ampoker2.lh" #include "sigmapkr.lh" #include "includes/ampoker2.h" @@ -576,7 +577,7 @@ static WRITE8_HANDLER( ampoker2_watchdog_reset_w ) static ADDRESS_MAP_START( ampoker2_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0xbfff) AM_ROM - AM_RANGE(0xc000, 0xcfff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0xc000, 0xcfff) AM_RAM AM_SHARE("nvram") AM_RANGE(0xe000, 0xefff) AM_RAM_WRITE(ampoker2_videoram_w) AM_BASE_GENERIC(videoram) ADDRESS_MAP_END @@ -1056,7 +1057,7 @@ static MACHINE_CONFIG_START( ampoker2, driver_device ) MDRV_CPU_PERIODIC_INT(nmi_line_pulse, 1536) MDRV_WATCHDOG_TIME_INIT(MSEC(200)) /* 200 ms, measured */ - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ MDRV_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/arcadia.c b/src/mame/drivers/arcadia.c index 330bb4675ed..46c04643279 100644 --- a/src/mame/drivers/arcadia.c +++ b/src/mame/drivers/arcadia.c @@ -51,6 +51,7 @@ #include "cpu/m68000/m68000.h" #include "includes/amiga.h" #include "machine/6526cia.h" +#include "machine/nvram.h" @@ -191,7 +192,7 @@ static ADDRESS_MAP_START( amiga_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x800000, 0x97ffff) AM_ROMBANK("bank2") AM_REGION("user3", 0) AM_RANGE(0x980000, 0x9fbfff) AM_ROM AM_REGION("user2", 0) - AM_RANGE(0x9fc000, 0x9ffffd) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x9fc000, 0x9ffffd) AM_RAM AM_SHARE("nvram") AM_RANGE(0x9ffffe, 0x9fffff) AM_WRITE(arcadia_multibios_change_game) AM_RANGE(0xf00000, 0xf7ffff) AM_ROM AM_REGION("user2", 0) ADDRESS_MAP_END @@ -293,7 +294,7 @@ static MACHINE_CONFIG_START( arcadia, driver_device ) MDRV_CPU_PROGRAM_MAP(amiga_map) MDRV_MACHINE_RESET(amiga) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ MDRV_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK) diff --git a/src/mame/drivers/aristmk4.c b/src/mame/drivers/aristmk4.c index 570eec8aa1e..542082a0ac0 100644 --- a/src/mame/drivers/aristmk4.c +++ b/src/mame/drivers/aristmk4.c @@ -104,6 +104,7 @@ #include "state.h" #include "sound/samples.h" #include "machine/mc146818.h" // DALLAS1287 is functionally compatible. +#include "machine/nvram.h" int rtc_address_strobe = 0; @@ -677,7 +678,7 @@ static ADDRESS_MAP_START( aristmk4_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x1c00, 0x1cff) AM_WRITE(mk4_printer_w) AM_RANGE(0x1900, 0x19ff) AM_READ(mk4_printer_r) AM_RANGE(0x2000, 0x3fff) AM_ROM // graphics rom map - AM_RANGE(0x4000, 0x4fff) AM_RAMBANK("bank1") AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x4000, 0x4fff) AM_RAMBANK("bank1") AM_SHARE("nvram") AM_RANGE(0x5000, 0x5000) AM_WRITE(u3_p0) AM_RANGE(0x5002, 0x5002) AM_READ(u3_p2) @@ -1203,7 +1204,7 @@ static MACHINE_CONFIG_START( aristmk4, driver_device ) MDRV_MACHINE_START(aristmk4) MDRV_NVRAM_HANDLER( mc146818 ) MDRV_MACHINE_RESET(aristmk4 ) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ MDRV_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/artmagic.c b/src/mame/drivers/artmagic.c index 1f988ad184d..bfa9cf69649 100644 --- a/src/mame/drivers/artmagic.c +++ b/src/mame/drivers/artmagic.c @@ -27,6 +27,7 @@ #include "video/tlc34076.h" #include "includes/artmagic.h" #include "sound/okim6295.h" +#include "machine/nvram.h" #define MASTER_CLOCK_40MHz (XTAL_40MHz) @@ -428,7 +429,7 @@ static WRITE16_HANDLER( protection_bit_w ) static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x000000, 0x07ffff) AM_ROM AM_RANGE(0x220000, 0x23ffff) AM_RAM - AM_RANGE(0x240000, 0x240fff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x240000, 0x240fff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x300000, 0x300001) AM_READ_PORT("300000") AM_RANGE(0x300002, 0x300003) AM_READ_PORT("300002") AM_RANGE(0x300004, 0x300005) AM_READ_PORT("300004") @@ -445,7 +446,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( stonebal_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x000000, 0x07ffff) AM_ROM AM_RANGE(0x200000, 0x27ffff) AM_RAM - AM_RANGE(0x280000, 0x280fff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x280000, 0x280fff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x300000, 0x300001) AM_READ_PORT("300000") AM_RANGE(0x300002, 0x300003) AM_READ_PORT("300002") AM_RANGE(0x300004, 0x300005) AM_READ_PORT("300004") @@ -718,7 +719,7 @@ static MACHINE_CONFIG_START( artmagic, driver_device ) MDRV_MACHINE_START(artmagic) MDRV_MACHINE_RESET(artmagic) MDRV_QUANTUM_TIME(HZ(6000)) - MDRV_NVRAM_HANDLER(generic_1fill) + MDRV_NVRAM_ADD_1FILL("nvram") /* video hardware */ MDRV_TLC34076_ADD("tlc34076", TLC34076_6_BIT) diff --git a/src/mame/drivers/astrocde.c b/src/mame/drivers/astrocde.c index e4afee6fc05..5e0ef9d1510 100644 --- a/src/mame/drivers/astrocde.c +++ b/src/mame/drivers/astrocde.c @@ -115,6 +115,7 @@ #include "cpu/z80/z80daisy.h" #include "includes/astrocde.h" #include "machine/z80ctc.h" +#include "machine/nvram.h" #include "sound/samples.h" #include "sound/astrocde.h" #include "sound/ay8910.h" @@ -620,7 +621,7 @@ static ADDRESS_MAP_START( robby_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x4000, 0x7fff) AM_RAM AM_BASE_GENERIC(videoram) AM_RANGE(0x8000, 0xdfff) AM_ROM AM_RANGE(0xe000, 0xe1ff) AM_READWRITE(protected_ram_r, protected_ram_w) AM_BASE(&protected_ram) - AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0xe800, 0xffff) AM_RAM ADDRESS_MAP_END @@ -632,7 +633,7 @@ static ADDRESS_MAP_START( profpac_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x4000, 0xbfff) AM_ROMBANK("bank1") AM_RANGE(0xc000, 0xdfff) AM_ROM AM_RANGE(0xe000, 0xe1ff) AM_READWRITE(protected_ram_r, protected_ram_w) AM_BASE(&protected_ram) - AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0xe800, 0xffff) AM_RAM ADDRESS_MAP_END @@ -643,7 +644,7 @@ static ADDRESS_MAP_START( demndrgn_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x4000, 0x7fff) AM_READWRITE(profpac_videoram_r, profpac_videoram_w) AM_RANGE(0x4000, 0xbfff) AM_ROMBANK("bank1") AM_RANGE(0xc000, 0xdfff) AM_ROM - AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0xe800, 0xffff) AM_RAM ADDRESS_MAP_END @@ -1295,7 +1296,7 @@ MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( astrocade_16color_base, astrocade_base ) /* basic machine hardware */ - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ MDRV_PALETTE_LENGTH(4096) @@ -1438,7 +1439,7 @@ static MACHINE_CONFIG_DERIVED( robby, astrocade_base ) MDRV_CPU_PROGRAM_MAP(robby_map) MDRV_CPU_IO_MAP(port_map_stereo_pattern) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") MACHINE_CONFIG_END diff --git a/src/mame/drivers/astrocorp.c b/src/mame/drivers/astrocorp.c index d6fba541be3..d15f6e41c83 100644 --- a/src/mame/drivers/astrocorp.c +++ b/src/mame/drivers/astrocorp.c @@ -33,6 +33,7 @@ To do: #include "cpu/m68000/m68000.h" #include "machine/eeprom.h" #include "machine/ticket.h" +#include "machine/nvram.h" #include "sound/okim6295.h" class astrocorp_state : public driver_device @@ -290,7 +291,7 @@ static ADDRESS_MAP_START( showhand_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE( 0x05a000, 0x05a001 ) AM_WRITE(showhand_outputs_w) AM_RANGE( 0x05e000, 0x05e001 ) AM_READ_PORT("EEPROMIN") AM_RANGE( 0x060000, 0x0601ff ) AM_RAM_WRITE(astrocorp_palette_w) AM_BASE_MEMBER(astrocorp_state, paletteram) - AM_RANGE( 0x070000, 0x073fff ) AM_RAM AM_BASE_SIZE_GENERIC(nvram) // battery + AM_RANGE( 0x070000, 0x073fff ) AM_RAM AM_SHARE("nvram") // battery AM_RANGE( 0x080000, 0x080001 ) AM_DEVWRITE("oki", astrocorp_sound_bank_w) AM_RANGE( 0x0a0000, 0x0a0001 ) AM_WRITE(astrocorp_screen_enable_w) AM_RANGE( 0x0d0000, 0x0d0001 ) AM_READ(astrocorp_unk_r) AM_DEVWRITE8("oki", okim6295_w, 0xff00) @@ -306,7 +307,7 @@ static ADDRESS_MAP_START( showhanc_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE( 0x088000, 0x088001 ) AM_WRITE(astrocorp_eeprom_w) AM_RANGE( 0x08a000, 0x08a001 ) AM_WRITE(showhand_outputs_w) AM_RANGE( 0x08e000, 0x08e001 ) AM_READ_PORT("EEPROMIN") - AM_RANGE( 0x090000, 0x093fff ) AM_RAM AM_BASE_SIZE_GENERIC(nvram) // battery + AM_RANGE( 0x090000, 0x093fff ) AM_RAM AM_SHARE("nvram") // battery AM_RANGE( 0x0a0000, 0x0a0001 ) AM_WRITE(astrocorp_screen_enable_w) AM_RANGE( 0x0e0000, 0x0e0001 ) AM_READ(astrocorp_unk_r) AM_DEVWRITE8("oki", okim6295_w, 0xff00) ADDRESS_MAP_END @@ -321,14 +322,14 @@ static ADDRESS_MAP_START( skilldrp_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE( 0x20e000, 0x20e001 ) AM_READ_PORT("EEPROMIN") AM_RANGE( 0x380000, 0x3801ff ) AM_RAM_WRITE(astrocorp_palette_w) AM_BASE_MEMBER(astrocorp_state, paletteram) AM_RANGE( 0x400000, 0x400001 ) AM_WRITE(astrocorp_screen_enable_w) - AM_RANGE( 0x500000, 0x507fff ) AM_RAM AM_BASE_SIZE_GENERIC(nvram) // battery + AM_RANGE( 0x500000, 0x507fff ) AM_RAM AM_SHARE("nvram") // battery AM_RANGE( 0x580000, 0x580001 ) AM_DEVWRITE("oki", skilldrp_sound_bank_w) AM_RANGE( 0x600000, 0x600001 ) AM_DEVREADWRITE8("oki", okim6295_r, okim6295_w, 0x00ff) ADDRESS_MAP_END static ADDRESS_MAP_START( speeddrp_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE( 0x000000, 0x01ffff ) AM_ROM - AM_RANGE( 0x280000, 0x283fff ) AM_RAM AM_BASE_SIZE_GENERIC(nvram) // battery + AM_RANGE( 0x280000, 0x283fff ) AM_RAM AM_SHARE("nvram") // battery AM_RANGE( 0x380000, 0x380fff ) AM_RAM AM_BASE_SIZE_MEMBER(astrocorp_state, spriteram, spriteram_size) AM_RANGE( 0x382000, 0x382001 ) AM_WRITE(astrocorp_draw_sprites_w) AM_RANGE( 0x384000, 0x384001 ) AM_READ_PORT("INPUTS") @@ -465,7 +466,7 @@ static MACHINE_CONFIG_START( showhand, astrocorp_state ) MDRV_CPU_PROGRAM_MAP(showhand_map) MDRV_CPU_VBLANK_INT("screen", irq4_line_hold) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") MDRV_EEPROM_93C46_ADD("eeprom") MDRV_EEPROM_DATA(showhand_default_eeprom, sizeof(showhand_default_eeprom)) @@ -513,7 +514,7 @@ static MACHINE_CONFIG_START( skilldrp, astrocorp_state ) MDRV_CPU_PROGRAM_MAP(skilldrp_map) MDRV_CPU_VBLANK_INT_HACK(skilldrp_irq, 2) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") MDRV_EEPROM_93C46_ADD("eeprom") MDRV_TICKET_DISPENSER_ADD("ticket", 200, TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW ) diff --git a/src/mame/drivers/atetris.c b/src/mame/drivers/atetris.c index 7b26490767c..67e6790ca59 100644 --- a/src/mame/drivers/atetris.c +++ b/src/mame/drivers/atetris.c @@ -53,6 +53,7 @@ #include "includes/atetris.h" #include "sound/sn76496.h" #include "sound/pokey.h" +#include "machine/nvram.h" #define MASTER_CLOCK XTAL_14_31818MHz @@ -183,8 +184,9 @@ static WRITE8_HANDLER( coincount_w ) static WRITE8_HANDLER( nvram_w ) { + atetris_state *state = space->machine->driver_data<atetris_state>(); if (nvram_write_enable) - space->machine->generic.nvram.u8[offset] = data; + state->m_nvram[offset] = data; nvram_write_enable = 0; } @@ -207,7 +209,7 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x0fff) AM_RAM AM_RANGE(0x1000, 0x1fff) AM_RAM_WRITE(atetris_videoram_w) AM_BASE_GENERIC(videoram) AM_SIZE_GENERIC(videoram) AM_RANGE(0x2000, 0x20ff) AM_MIRROR(0x0300) AM_RAM_WRITE(paletteram_RRRGGGBB_w) AM_BASE_GENERIC(paletteram) - AM_RANGE(0x2400, 0x25ff) AM_MIRROR(0x0200) AM_RAM_WRITE(nvram_w) AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x2400, 0x25ff) AM_MIRROR(0x0200) AM_RAM_WRITE(nvram_w) AM_SHARE("nvram") AM_RANGE(0x2800, 0x280f) AM_MIRROR(0x03e0) AM_DEVREADWRITE("pokey1", pokey_r, pokey_w) AM_RANGE(0x2810, 0x281f) AM_MIRROR(0x03e0) AM_DEVREADWRITE("pokey2", pokey_r, pokey_w) AM_RANGE(0x3000, 0x3000) AM_MIRROR(0x03ff) AM_WRITE(watchdog_reset_w) @@ -224,7 +226,7 @@ static ADDRESS_MAP_START( atetrisb2_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x0fff) AM_RAM AM_RANGE(0x1000, 0x1fff) AM_RAM_WRITE(atetris_videoram_w) AM_BASE_GENERIC(videoram) AM_SIZE_GENERIC(videoram) AM_RANGE(0x2000, 0x20ff) AM_RAM_WRITE(paletteram_RRRGGGBB_w) AM_BASE_GENERIC(paletteram) - AM_RANGE(0x2400, 0x25ff) AM_RAM_WRITE(nvram_w) AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x2400, 0x25ff) AM_RAM_WRITE(nvram_w) AM_SHARE("nvram") AM_RANGE(0x2802, 0x2802) AM_DEVWRITE("sn1", sn76496_w) AM_RANGE(0x2804, 0x2804) AM_DEVWRITE("sn2", sn76496_w) AM_RANGE(0x2806, 0x2806) AM_DEVWRITE("sn3", sn76496_w) @@ -338,7 +340,7 @@ static const pokey_interface pokey_interface_2 = * *************************************/ -static MACHINE_CONFIG_START( atetris, driver_device ) +static MACHINE_CONFIG_START( atetris, atetris_state ) /* basic machine hardware */ MDRV_CPU_ADD("maincpu", M6502,MASTER_CLOCK/8) @@ -346,7 +348,7 @@ static MACHINE_CONFIG_START( atetris, driver_device ) MDRV_MACHINE_START(atetris) MDRV_MACHINE_RESET(atetris) - MDRV_NVRAM_HANDLER(generic_1fill) + MDRV_NVRAM_ADD_1FILL("nvram") /* video hardware */ MDRV_GFXDECODE(atetris) @@ -382,7 +384,7 @@ static MACHINE_CONFIG_START( atetrisb2, driver_device ) MDRV_MACHINE_START(atetris) MDRV_MACHINE_RESET(atetris) - MDRV_NVRAM_HANDLER(generic_1fill) + MDRV_NVRAM_ADD_1FILL("nvram") /* video hardware */ MDRV_GFXDECODE(atetris) diff --git a/src/mame/drivers/aztarac.c b/src/mame/drivers/aztarac.c index ab4ecc20c2b..5a5047f92cb 100644 --- a/src/mame/drivers/aztarac.c +++ b/src/mame/drivers/aztarac.c @@ -19,6 +19,7 @@ #include "video/vector.h" #include "includes/aztarac.h" #include "sound/ay8910.h" +#include "machine/nvram.h" @@ -49,7 +50,8 @@ static MACHINE_RESET( aztarac ) static READ16_HANDLER( nvram_r ) { - return space->machine->generic.nvram.u16[offset] | 0xfff0; + aztarac_state *state = space->machine->driver_data<aztarac_state>(); + return state->m_nvram[offset] | 0xfff0; } @@ -76,7 +78,7 @@ static READ16_HANDLER( joystick_r ) static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x000000, 0x00bfff) AM_ROM - AM_RANGE(0x022000, 0x0220ff) AM_READ(nvram_r) AM_WRITEONLY AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x022000, 0x0220ff) AM_READ(nvram_r) AM_WRITEONLY AM_SHARE("nvram") AM_RANGE(0x027000, 0x027001) AM_READ(joystick_r) AM_RANGE(0x027004, 0x027005) AM_READ_PORT("INPUTS") AM_RANGE(0x027008, 0x027009) AM_READWRITE(aztarac_sound_r, aztarac_sound_w) @@ -143,7 +145,7 @@ INPUT_PORTS_END * *************************************/ -static MACHINE_CONFIG_START( aztarac, driver_device ) +static MACHINE_CONFIG_START( aztarac, aztarac_state ) /* basic machine hardware */ MDRV_CPU_ADD("maincpu", M68000, 8000000) @@ -155,7 +157,7 @@ static MACHINE_CONFIG_START( aztarac, driver_device ) MDRV_CPU_PERIODIC_INT(aztarac_snd_timed_irq, 100) MDRV_MACHINE_RESET(aztarac) - MDRV_NVRAM_HANDLER(generic_1fill) + MDRV_NVRAM_ADD_1FILL("nvram") /* video hardware */ MDRV_SCREEN_ADD("screen", VECTOR) diff --git a/src/mame/drivers/balsente.c b/src/mame/drivers/balsente.c index c23417faa4a..f0d87838744 100644 --- a/src/mame/drivers/balsente.c +++ b/src/mame/drivers/balsente.c @@ -230,6 +230,7 @@ DIP locations verified for: #include "cpu/m68000/m68000.h" #include "includes/balsente.h" #include "sound/cem3394.h" +#include "machine/nvram.h" #include "stocker.lh" @@ -258,7 +259,7 @@ static ADDRESS_MAP_START( cpu1_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x9903, 0x9903) AM_READ_PORT("IN1") AM_WRITENOP AM_RANGE(0x9a00, 0x9a03) AM_READ(balsente_random_num_r) AM_RANGE(0x9a04, 0x9a05) AM_READWRITE(balsente_m6850_r, balsente_m6850_w) - AM_RANGE(0x9b00, 0x9cff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) /* system+cart NOVRAM */ + AM_RANGE(0x9b00, 0x9cff) AM_RAM AM_SHARE("nvram") /* system+cart NOVRAM */ AM_RANGE(0xa000, 0xbfff) AM_ROMBANK("bank1") AM_RANGE(0xc000, 0xffff) AM_ROMBANK("bank2") ADDRESS_MAP_END @@ -1205,7 +1206,7 @@ static MACHINE_CONFIG_START( balsente, balsente_state ) MDRV_MACHINE_START(balsente) MDRV_MACHINE_RESET(balsente) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") MDRV_TIMER_ADD("scan_timer", balsente_interrupt_timer) MDRV_TIMER_ADD("8253_0_timer", balsente_clock_counter_0_ff) diff --git a/src/mame/drivers/beathead.c b/src/mame/drivers/beathead.c index 65e37fc7aeb..e5d768b8326 100644 --- a/src/mame/drivers/beathead.c +++ b/src/mame/drivers/beathead.c @@ -100,6 +100,7 @@ #include "emu.h" #include "includes/beathead.h" +#include "machine/nvram.h" @@ -235,7 +236,7 @@ WRITE32_MEMBER( beathead_state::eeprom_data_w ) if (m_eeprom_enabled) { mem_mask &= 0x000000ff; - COMBINE_DATA(m_machine.generic.nvram.u32 + offset); + COMBINE_DATA(m_nvram + offset); m_eeprom_enabled = 0; } } @@ -313,7 +314,7 @@ WRITE32_MEMBER( beathead_state::coin_count_w ) static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 32, beathead_state) AM_RANGE(0x00000000, 0x0001ffff) AM_RAM AM_BASE(m_ram_base) AM_RANGE(0x01800000, 0x01bfffff) AM_ROM AM_REGION("user1", 0) AM_BASE(m_rom_base) - AM_RANGE(0x40000000, 0x400007ff) AM_RAM_WRITE(eeprom_data_w) AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x40000000, 0x400007ff) AM_RAM_WRITE(eeprom_data_w) AM_SHARE("nvram") AM_RANGE(0x41000000, 0x41000003) AM_READWRITE(sound_data_r, sound_data_w) AM_RANGE(0x41000100, 0x41000103) AM_READ(interrupt_control_r) AM_RANGE(0x41000100, 0x4100011f) AM_WRITE(interrupt_control_w) @@ -399,7 +400,7 @@ static MACHINE_CONFIG_START( beathead, beathead_state ) MDRV_CPU_ADD("maincpu", ASAP, ATARI_CLOCK_14MHz) MDRV_CPU_PROGRAM_MAP(main_map) - MDRV_NVRAM_HANDLER(generic_1fill) + MDRV_NVRAM_ADD_1FILL("nvram") MDRV_TIMER_ADD("scan_timer", scanline_callback) diff --git a/src/mame/drivers/berzerk.c b/src/mame/drivers/berzerk.c index 72d4f3dfd07..60aa8cfe1c0 100644 --- a/src/mame/drivers/berzerk.c +++ b/src/mame/drivers/berzerk.c @@ -12,6 +12,7 @@ #include "cpu/z80/z80.h" #include "includes/exidy.h" #include "machine/74181.h" +#include "machine/nvram.h" #include "sound/s14001a.h" #include "video/resnet.h" @@ -559,7 +560,7 @@ static SOUND_RESET(berzerk) static ADDRESS_MAP_START( berzerk_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x07ff) AM_ROM - AM_RANGE(0x0800, 0x0bff) AM_MIRROR(0x0400) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x0800, 0x0bff) AM_MIRROR(0x0400) AM_RAM AM_SHARE("nvram") AM_RANGE(0x1000, 0x3fff) AM_ROM AM_RANGE(0x4000, 0x5fff) AM_RAM AM_BASE(&berzerk_videoram) AM_SIZE(&berzerk_videoram_size) AM_SHARE("share1") AM_RANGE(0x6000, 0x7fff) AM_RAM_WRITE(magicram_w) AM_SHARE("share1") @@ -574,7 +575,7 @@ static ADDRESS_MAP_START( frenzy_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x6000, 0x7fff) AM_RAM_WRITE(magicram_w) AM_SHARE("share1") AM_RANGE(0x8000, 0x87ff) AM_MIRROR(0x3800) AM_RAM AM_BASE(&berzerk_colorram) AM_RANGE(0xc000, 0xcfff) AM_ROM - AM_RANGE(0xf800, 0xfbff) AM_MIRROR(0x0400) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0xf800, 0xfbff) AM_MIRROR(0x0400) AM_RAM AM_SHARE("nvram") ADDRESS_MAP_END @@ -1053,7 +1054,7 @@ static MACHINE_CONFIG_START( berzerk, driver_device ) MDRV_MACHINE_START(berzerk) MDRV_MACHINE_RESET(berzerk) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ MDRV_VIDEO_START(berzerk) diff --git a/src/mame/drivers/bfcobra.c b/src/mame/drivers/bfcobra.c index 4f2130fb75b..a823f731fa7 100644 --- a/src/mame/drivers/bfcobra.c +++ b/src/mame/drivers/bfcobra.c @@ -79,6 +79,7 @@ #include "cpu/m6809/m6809.h" #include "sound/upd7759.h" #include "sound/ay8910.h" +#include "machine/nvram.h" /* Defines @@ -1432,7 +1433,7 @@ static WRITE8_DEVICE_HANDLER( upd_w ) } static ADDRESS_MAP_START( m6809_prog_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x1fff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x0000, 0x1fff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x2000, 0x2000) AM_RAM // W 'B', 6F AM_RANGE(0x2200, 0x2200) AM_RAM // W 'F' AM_RANGE(0x2600, 0x2600) AM_READWRITE(meter_r, meter_w) @@ -1739,7 +1740,7 @@ static MACHINE_CONFIG_START( bfcobra, driver_device ) MDRV_CPU_PROGRAM_MAP(m6809_prog_map) MDRV_CPU_PERIODIC_INT(timer_irq, 1000) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") MDRV_MACHINE_RESET(bfcobra) diff --git a/src/mame/drivers/bfm_sc1.c b/src/mame/drivers/bfm_sc1.c index 6491bd6133b..91a1100aca2 100644 --- a/src/mame/drivers/bfm_sc1.c +++ b/src/mame/drivers/bfm_sc1.c @@ -91,6 +91,7 @@ Optional (on expansion card) (Viper) #include "machine/meters.h" #include "sound/ay8910.h" #include "sound/upd7759.h" +#include "machine/nvram.h" #include "bfm_sc1.lh" #define VFD_RESET 0x20 #define VFD_CLOCK1 0x80 @@ -765,7 +766,7 @@ static MACHINE_RESET( bfm_sc1 ) static ADDRESS_MAP_START( memmap, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x1FFF) AM_RAM AM_BASE_SIZE_GENERIC(nvram) //8k RAM + AM_RANGE(0x0000, 0x1FFF) AM_RAM AM_SHARE("nvram") //8k RAM AM_RANGE(0x2000, 0x21FF) AM_WRITE(reel34_w) // reel 2+3 latch AM_RANGE(0x2200, 0x23FF) AM_WRITE(reel12_w) // reel 1+2 latch AM_RANGE(0x2400, 0x25FF) AM_WRITE(vfd_w) // vfd latch @@ -808,7 +809,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( memmap_adder2, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x1FFF) AM_RAM AM_BASE_SIZE_GENERIC(nvram) //8k RAM + AM_RANGE(0x0000, 0x1FFF) AM_RAM AM_SHARE("nvram") //8k RAM AM_RANGE(0x2000, 0x21FF) AM_WRITE(reel34_w) // reel 2+3 latch AM_RANGE(0x2200, 0x23FF) AM_WRITE(reel12_w) // reel 1+2 latch AM_RANGE(0x2400, 0x25FF) AM_WRITE(vfd_w) // vfd latch @@ -857,7 +858,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( sc1_nec_uk, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x1FFF) AM_RAM AM_BASE_SIZE_GENERIC(nvram) //8k RAM + AM_RANGE(0x0000, 0x1FFF) AM_RAM AM_SHARE("nvram") //8k RAM AM_RANGE(0x2000, 0x21FF) AM_WRITE(reel34_w) // reel 2+3 latch AM_RANGE(0x2200, 0x23FF) AM_WRITE(reel12_w) // reel 1+2 latch AM_RANGE(0x2400, 0x25FF) AM_WRITE(vfd_w) // vfd latch @@ -1250,7 +1251,7 @@ static MACHINE_CONFIG_START( scorpion1, driver_device ) MDRV_SOUND_ADD("aysnd",AY8912, MASTER_CLOCK/4) MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") MDRV_DEFAULT_LAYOUT(layout_awpvid14) MACHINE_CONFIG_END diff --git a/src/mame/drivers/bfmsys85.c b/src/mame/drivers/bfmsys85.c index 797fc779b22..1ddd9da5e41 100644 --- a/src/mame/drivers/bfmsys85.c +++ b/src/mame/drivers/bfmsys85.c @@ -65,6 +65,7 @@ ___________________________________________________________________________ #include "machine/roc10937.h" // vfd #include "machine/steppers.h" // stepper motor #include "sound/ay8910.h" +#include "machine/nvram.h" #define VFD_RESET 0x20 #define VFD_CLOCK1 0x80 @@ -401,7 +402,7 @@ static MACHINE_START( bfm_sys85 ) static ADDRESS_MAP_START( memmap, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x1fff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) //8k RAM + AM_RANGE(0x0000, 0x1fff) AM_RAM AM_SHARE("nvram") //8k RAM AM_RANGE(0x2000, 0x21FF) AM_WRITE(reel34_w) // reel 3+4 latch AM_RANGE(0x2200, 0x23FF) AM_WRITE(reel12_w) // reel 1+2 latch AM_RANGE(0x2400, 0x25FF) AM_WRITE(vfd_w) // vfd latch @@ -446,7 +447,7 @@ static MACHINE_CONFIG_START( bfmsys85, driver_device ) MDRV_SOUND_ADD("aysnd",AY8912, MASTER_CLOCK/4) // add AY8912 soundchip MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) - MDRV_NVRAM_HANDLER(generic_0fill) // load/save nv RAM + MDRV_NVRAM_ADD_0FILL("nvram") // load/save nv RAM MDRV_DEFAULT_LAYOUT(layout_awpvid16) MACHINE_CONFIG_END diff --git a/src/mame/drivers/big10.c b/src/mame/drivers/big10.c index 82bcd1eff64..ee1ff967d5f 100644 --- a/src/mame/drivers/big10.c +++ b/src/mame/drivers/big10.c @@ -60,6 +60,7 @@ #include "cpu/z80/z80.h" #include "sound/ay8910.h" #include "video/v9938.h" +#include "machine/nvram.h" #include "deprecat.h" #define VDP_MEM 0x40000 @@ -128,7 +129,7 @@ static READ8_HANDLER( mux_r ) static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0xbfff) AM_ROM - AM_RANGE(0xc000, 0xdfff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0xc000, 0xdfff) AM_RAM AM_SHARE("nvram") AM_RANGE(0xf000, 0xffff) AM_RAM ADDRESS_MAP_END @@ -247,7 +248,7 @@ static MACHINE_CONFIG_START( big10, driver_device ) MDRV_MACHINE_RESET(big10) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ MDRV_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/bingor.c b/src/mame/drivers/bingor.c index 4232363ef8e..56d7c4d5864 100644 --- a/src/mame/drivers/bingor.c +++ b/src/mame/drivers/bingor.c @@ -615,7 +615,7 @@ static MACHINE_CONFIG_START( bingor, driver_device ) MDRV_GFXDECODE(bingor) - //MDRV_NVRAM_HANDLER(generic_0fill) + //MDRV_NVRAM_ADD_0FILL("nvram") MDRV_SCREEN_ADD("screen", RASTER) MDRV_SCREEN_REFRESH_RATE(60) diff --git a/src/mame/drivers/bishjan.c b/src/mame/drivers/bishjan.c index 89b2ea921aa..b933d9e6b22 100644 --- a/src/mame/drivers/bishjan.c +++ b/src/mame/drivers/bishjan.c @@ -37,6 +37,7 @@ To do: #include "cpu/i86/i86.h" #include "sound/okim6295.h" #include "sound/3812intf.h" +#include "machine/nvram.h" /*************************************************************************** Tilemaps Access @@ -368,7 +369,7 @@ static ADDRESS_MAP_START( bishjan_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE( 0x000000, 0x07ffff ) AM_ROM AM_REGION("maincpu", 0) AM_RANGE( 0x080000, 0x0fffff ) AM_ROM AM_REGION("maincpu", 0) - AM_RANGE( 0x200000, 0x207fff ) AM_RAM AM_BASE_SIZE_GENERIC(nvram) // battery + AM_RANGE( 0x200000, 0x207fff ) AM_RAM AM_SHARE("nvram") // battery // read lo (2) (only half tilemap?) @@ -492,7 +493,7 @@ static MACHINE_RESET( saklove ) } static ADDRESS_MAP_START( saklove_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x00000, 0x07fff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) // battery + AM_RANGE(0x00000, 0x07fff) AM_RAM AM_SHARE("nvram") // battery // read lo (2) (only half tilemap?) AM_RANGE(0x12000, 0x12fff) AM_READWRITE( bishjan_videoram_2_lo_r, bishjan_videoram_2_lo_w ) @@ -830,7 +831,7 @@ static MACHINE_CONFIG_START( bishjan, driver_device ) MDRV_CPU_PROGRAM_MAP( bishjan_map) MDRV_CPU_VBLANK_INT_HACK(bishjan_interrupt,2) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ MDRV_SCREEN_ADD("screen", RASTER) @@ -863,7 +864,7 @@ static MACHINE_CONFIG_START( saklove, driver_device ) MDRV_CPU_VBLANK_INT( "screen", saklove_interrupt ) MDRV_MACHINE_RESET(saklove) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ MDRV_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/blitz.c b/src/mame/drivers/blitz.c index 7ffd185549a..08e542cf012 100644 --- a/src/mame/drivers/blitz.c +++ b/src/mame/drivers/blitz.c @@ -455,7 +455,7 @@ static WRITE8_DEVICE_HANDLER( sound_w ) static ADDRESS_MAP_START( megadpkr_map, ADDRESS_SPACE_PROGRAM, 8 ) // ADDRESS_MAP_GLOBAL_MASK(0x7fff) // seems that hardware is playing with A14 & A15 CPU lines... - AM_RANGE(0x0000, 0x07ff) AM_RAM //AM_BASE_SIZE_GENERIC(nvram) /* battery backed RAM */ + AM_RANGE(0x0000, 0x07ff) AM_RAM //AM_SHARE("nvram") /* battery backed RAM */ // AM_RANGE(0x0800, 0x0800) AM_DEVWRITE("crtc", mc6845_address_w) // AM_RANGE(0x0801, 0x0801) AM_DEVREADWRITE("crtc", mc6845_register_r, mc6845_register_w) AM_RANGE(0x0844, 0x0847) AM_DEVREADWRITE("pia0", pia6821_r, pia6821_w) @@ -776,7 +776,7 @@ static MACHINE_CONFIG_START( megadpkr, driver_device ) // MDRV_CPU_ADD("mcu", M68705, CPU_CLOCK) /* unknown */ // MDRV_CPU_PROGRAM_MAP(mcu_map) -// MDRV_NVRAM_HANDLER(generic_0fill) +// MDRV_NVRAM_ADD_0FILL("nvram") MDRV_PIA6821_ADD("pia0", megadpkr_pia0_intf) MDRV_PIA6821_ADD("pia1", megadpkr_pia1_intf) diff --git a/src/mame/drivers/btoads.c b/src/mame/drivers/btoads.c index 1a6d8277f64..f68e7d8ff4f 100644 --- a/src/mame/drivers/btoads.c +++ b/src/mame/drivers/btoads.c @@ -12,6 +12,7 @@ #include "video/tlc34076.h" #include "includes/btoads.h" #include "sound/bsmt2000.h" +#include "machine/nvram.h" #define CPU_CLOCK XTAL_64MHz @@ -193,7 +194,7 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x20000380, 0x200003ff) AM_READWRITE(main_sound_r, main_sound_w) AM_RANGE(0x20000400, 0x2000047f) AM_WRITE(btoads_misc_control_w) AM_RANGE(0x40000000, 0x4000000f) AM_WRITENOP /* watchdog? */ - AM_RANGE(0x60000000, 0x6003ffff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x60000000, 0x6003ffff) AM_RAM AM_SHARE("nvram") AM_RANGE(0xa0000000, 0xa03fffff) AM_READWRITE(btoads_vram_fg_display_r, btoads_vram_fg_display_w) AM_BASE(&btoads_vram_fg0) AM_RANGE(0xa4000000, 0xa43fffff) AM_READWRITE(btoads_vram_fg_draw_r, btoads_vram_fg_draw_w) AM_BASE(&btoads_vram_fg1) AM_RANGE(0xa8000000, 0xa87fffff) AM_RAM AM_BASE(&btoads_vram_fg_data) @@ -343,7 +344,7 @@ static MACHINE_CONFIG_START( btoads, driver_device ) MDRV_CPU_PERIODIC_INT(irq0_line_assert, 183) MDRV_MACHINE_START(btoads) - MDRV_NVRAM_HANDLER(generic_1fill) + MDRV_NVRAM_ADD_1FILL("nvram") /* video hardware */ MDRV_TLC34076_ADD("tlc34076", TLC34076_6_BIT) diff --git a/src/mame/drivers/calomega.c b/src/mame/drivers/calomega.c index 7b7e5af2bbf..ac81eed0b13 100644 --- a/src/mame/drivers/calomega.c +++ b/src/mame/drivers/calomega.c @@ -648,6 +648,7 @@ #include "video/mc6845.h" #include "machine/6821pia.h" #include "machine/6850acia.h" +#include "machine/nvram.h" #include "sound/ay8910.h" #include "includes/calomega.h" @@ -838,7 +839,7 @@ static WRITE8_DEVICE_HANDLER( lamps_905_w ) static ADDRESS_MAP_START( sys903_map, ADDRESS_SPACE_PROGRAM, 8 ) ADDRESS_MAP_GLOBAL_MASK(0x3fff) - AM_RANGE(0x0000, 0x07ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x0000, 0x07ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x0840, 0x0841) AM_DEVWRITE("ay8912", ay8910_address_data_w) AM_RANGE(0x0880, 0x0880) AM_DEVWRITE("crtc", mc6845_address_w) AM_RANGE(0x0881, 0x0881) AM_DEVREADWRITE("crtc", mc6845_register_r, mc6845_register_w) @@ -853,7 +854,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( s903mod_map, ADDRESS_SPACE_PROGRAM, 8 ) ADDRESS_MAP_GLOBAL_MASK(0x3fff) - AM_RANGE(0x0000, 0x07ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x0000, 0x07ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x0840, 0x0841) AM_DEVWRITE("ay8912", ay8910_address_data_w) AM_RANGE(0x0880, 0x0880) AM_DEVWRITE("crtc", mc6845_address_w) AM_RANGE(0x0881, 0x0881) AM_DEVREADWRITE("crtc", mc6845_register_r, mc6845_register_w) @@ -866,7 +867,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( sys905_map, ADDRESS_SPACE_PROGRAM, 8 ) ADDRESS_MAP_GLOBAL_MASK(0x7fff) - AM_RANGE(0x0000, 0x07ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x0000, 0x07ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x1040, 0x1041) AM_DEVWRITE("ay8912", ay8910_address_data_w) AM_RANGE(0x1080, 0x1080) AM_DEVWRITE("crtc", mc6845_address_w) AM_RANGE(0x1081, 0x1081) AM_DEVREADWRITE("crtc", mc6845_register_r, mc6845_register_w) @@ -878,7 +879,7 @@ static ADDRESS_MAP_START( sys905_map, ADDRESS_SPACE_PROGRAM, 8 ) ADDRESS_MAP_END static ADDRESS_MAP_START( sys906_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x07ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x0000, 0x07ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x280c, 0x280f) AM_DEVREADWRITE("pia0", pia6821_r, pia6821_w) AM_RANGE(0x2824, 0x2827) AM_DEVREADWRITE("pia1", pia6821_r, pia6821_w) AM_RANGE(0x2c04, 0x2c04) AM_DEVWRITE("crtc", mc6845_address_w) @@ -2741,7 +2742,7 @@ static MACHINE_CONFIG_START( sys903, driver_device ) MDRV_CPU_PROGRAM_MAP(sys903_map) MDRV_CPU_VBLANK_INT("screen", irq0_line_hold) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") MDRV_PIA6821_ADD("pia0", sys903_pia0_intf) MDRV_PIA6821_ADD("pia1", sys903_pia1_intf) diff --git a/src/mame/drivers/capbowl.c b/src/mame/drivers/capbowl.c index ee0c9a01cc9..a5c2811b363 100644 --- a/src/mame/drivers/capbowl.c +++ b/src/mame/drivers/capbowl.c @@ -213,19 +213,12 @@ static void firqhandler( running_device *device, int irq ) * *************************************/ -static NVRAM_HANDLER( capbowl ) +void capbowl_state::init_nvram(nvram_device &nvram, void *base, size_t size) { - if (read_or_write) - mame_fwrite(file, machine->generic.nvram.v, machine->generic.nvram_size); - else if (file) - mame_fread(file, machine->generic.nvram.v, machine->generic.nvram_size); - else - { - /* invalidate nvram to make the game initialize it. - A 0xff fill will cause the game to malfunction, so we use a - 0x01 fill which seems OK */ - memset(machine->generic.nvram.v, 0x01, machine->generic.nvram_size); - } + /* invalidate nvram to make the game initialize it. + A 0xff fill will cause the game to malfunction, so we use a + 0x01 fill which seems OK */ + memset(base, 0x01, size); } @@ -240,7 +233,7 @@ static ADDRESS_MAP_START( capbowl_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x3fff) AM_ROMBANK("bank1") AM_RANGE(0x4000, 0x4000) AM_WRITEONLY AM_BASE_MEMBER(capbowl_state, rowaddress) AM_RANGE(0x4800, 0x4800) AM_WRITE(capbowl_rom_select_w) - AM_RANGE(0x5000, 0x57ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x5000, 0x57ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x5800, 0x5fff) AM_READWRITE(capbowl_tms34061_r, capbowl_tms34061_w) AM_RANGE(0x6000, 0x6000) AM_WRITE(capbowl_sndcmd_w) AM_RANGE(0x6800, 0x6800) AM_WRITE(track_reset_w) /* + watchdog */ @@ -253,7 +246,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( bowlrama_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x001f) AM_READWRITE(bowlrama_blitter_r, bowlrama_blitter_w) AM_RANGE(0x4000, 0x4000) AM_WRITEONLY AM_BASE_MEMBER(capbowl_state, rowaddress) - AM_RANGE(0x5000, 0x57ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x5000, 0x57ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x5800, 0x5fff) AM_READWRITE(capbowl_tms34061_r, capbowl_tms34061_w) AM_RANGE(0x6000, 0x6000) AM_WRITE(capbowl_sndcmd_w) AM_RANGE(0x6800, 0x6800) AM_WRITE(track_reset_w) /* + watchdog */ @@ -381,7 +374,7 @@ static MACHINE_CONFIG_START( capbowl, capbowl_state ) MDRV_MACHINE_START(capbowl) MDRV_MACHINE_RESET(capbowl) - MDRV_NVRAM_HANDLER(capbowl) + MDRV_NVRAM_ADD_CUSTOM("nvram", capbowl_state, init_nvram) MDRV_TICKET_DISPENSER_ADD("ticket", 100, TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW) diff --git a/src/mame/drivers/caswin.c b/src/mame/drivers/caswin.c index 6467693b6a5..ca5bc3623c3 100644 --- a/src/mame/drivers/caswin.c +++ b/src/mame/drivers/caswin.c @@ -44,6 +44,7 @@ TODO: #include "emu.h" #include "cpu/z80/z80.h" #include "sound/ay8910.h" +#include "machine/nvram.h" static UINT8 *sc0_vram,*sc0_attr; static tilemap_t *sc0_tilemap; @@ -135,7 +136,7 @@ static WRITE8_HANDLER( vvillage_lamps_w ) static ADDRESS_MAP_START( vvillage_mem, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x7fff) AM_ROM AM_RANGE(0xa000, 0xa000) AM_READ(vvillage_rng_r) //accessed by caswin only - AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0xf000, 0xf3ff) AM_RAM_WRITE(sc0_vram_w) AM_BASE(&sc0_vram) AM_RANGE(0xf800, 0xfbff) AM_RAM_WRITE(sc0_attr_w) AM_BASE(&sc0_attr) ADDRESS_MAP_END @@ -289,7 +290,7 @@ static MACHINE_CONFIG_START( vvillage, driver_device ) MDRV_SCREEN_SIZE(256, 256) MDRV_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-16-1) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") MDRV_GFXDECODE(vvillage) MDRV_PALETTE_LENGTH(0x40) diff --git a/src/mame/drivers/cave.c b/src/mame/drivers/cave.c index 7477efc5fda..e6adb48f164 100644 --- a/src/mame/drivers/cave.c +++ b/src/mame/drivers/cave.c @@ -73,6 +73,7 @@ Versions known to exist but not dumped: #include "emu.h" #include "cpu/m68000/m68000.h" #include "machine/eeprom.h" +#include "machine/nvram.h" #include "machine/nmk112.h" #include "cpu/z80/z80.h" #include "includes/cave.h" @@ -930,7 +931,7 @@ static CUSTOM_INPUT( tjumpman_hopper_r ) static ADDRESS_MAP_START( tjumpman_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM - AM_RANGE(0x100000, 0x10ffff) AM_RAM AM_BASE_SIZE_GENERIC( nvram ) // RAM + AM_RANGE(0x100000, 0x10ffff) AM_RAM AM_SHARE("nvram") // RAM AM_RANGE(0x200000, 0x207fff) AM_RAM AM_BASE_SIZE_MEMBER(cave_state, spriteram, spriteram_size) // Sprites AM_RANGE(0x208000, 0x20ffff) AM_RAM AM_BASE_MEMBER(cave_state, spriteram_2) // Sprite bank 2 AM_RANGE(0x304000, 0x307fff) AM_WRITE(cave_vram_0_w) // Layer 0 - 16x16 tiles mapped here @@ -2348,7 +2349,7 @@ MACHINE_CONFIG_END static MACHINE_CONFIG_START( tjumpman, cave_state ) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") /* basic machine hardware */ MDRV_CPU_ADD("maincpu", M68000, XTAL_28MHz / 2) diff --git a/src/mame/drivers/ccastles.c b/src/mame/drivers/ccastles.c index bd7d109d248..472a10baaf0 100644 --- a/src/mame/drivers/ccastles.c +++ b/src/mame/drivers/ccastles.c @@ -133,15 +133,6 @@ -/************************************* - * - * Globals - * - *************************************/ - -static UINT8 *nvram_stage; - - /************************************* * * VBLANK and IRQ generation * @@ -234,13 +225,10 @@ static MACHINE_START( ccastles ) state->irq_state = 0; schedule_next_irq(machine, 0); - /* allocate backing memory for the NVRAM */ - machine->generic.nvram.u8 = auto_alloc_array(machine, UINT8, machine->generic.nvram_size); - /* setup for save states */ state_save_register_global(machine, state->irq_state); state_save_register_global_array(machine, state->nvram_store); - state_save_register_global_pointer(machine, machine->generic.nvram.u8, machine->generic.nvram_size); + state_save_register_global_array(machine, state->nvram); } @@ -305,22 +293,24 @@ static READ8_HANDLER( leta_r ) static NVRAM_HANDLER( ccastles ) { + ccastles_state *state = machine->driver_data<ccastles_state>(); if (read_or_write) { /* on power down, the EAROM is implicitly stored */ - memcpy(machine->generic.nvram.v, nvram_stage, machine->generic.nvram_size); - mame_fwrite(file, machine->generic.nvram.v, machine->generic.nvram_size); + memcpy(state->nvram, state->nvram_stage, sizeof(state->nvram)); + mame_fwrite(file, state->nvram, sizeof(state->nvram)); } else if (file) - mame_fread(file, machine->generic.nvram.v, machine->generic.nvram_size); + mame_fread(file, state->nvram, sizeof(state->nvram)); else - memset(machine->generic.nvram.v, 0, machine->generic.nvram_size); + memset(state->nvram, 0, sizeof(state->nvram)); } static WRITE8_HANDLER( nvram_recall_w ) { - memcpy(nvram_stage, space->machine->generic.nvram.v, space->machine->generic.nvram_size); + ccastles_state *state = space->machine->driver_data<ccastles_state>(); + memcpy(state->nvram_stage, state->nvram, sizeof(state->nvram)); } @@ -330,7 +320,7 @@ static WRITE8_HANDLER( nvram_store_w ) state->nvram_store[offset] = data & 1; if (!state->nvram_store[0] && state->nvram_store[1]) - memcpy(space->machine->generic.nvram.v, nvram_stage, space->machine->generic.nvram_size); + memcpy(state->nvram, state->nvram_stage, sizeof(state->nvram)); } @@ -348,7 +338,7 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x7fff) AM_RAM_WRITE(ccastles_videoram_w) AM_BASE_MEMBER(ccastles_state, videoram) AM_RANGE(0x8000, 0x8fff) AM_RAM AM_RANGE(0x8e00, 0x8fff) AM_BASE_MEMBER(ccastles_state, spriteram) - AM_RANGE(0x9000, 0x90ff) AM_MIRROR(0x0300) AM_RAM AM_BASE(&nvram_stage) AM_SIZE_GENERIC(nvram) + AM_RANGE(0x9000, 0x90ff) AM_MIRROR(0x0300) AM_RAM AM_SHARE("nvram") AM_RANGE(0x9400, 0x9403) AM_MIRROR(0x01fc) AM_READ(leta_r) AM_RANGE(0x9600, 0x97ff) AM_READ_PORT("IN0") AM_RANGE(0x9800, 0x980f) AM_MIRROR(0x01f0) AM_DEVREADWRITE("pokey1", pokey_r, pokey_w) diff --git a/src/mame/drivers/champbwl.c b/src/mame/drivers/champbwl.c index fea72bfff40..cf33063bc61 100644 --- a/src/mame/drivers/champbwl.c +++ b/src/mame/drivers/champbwl.c @@ -153,6 +153,7 @@ Notes: #include "emu.h" #include "cpu/z80/z80.h" #include "sound/x1_010.h" +#include "machine/nvram.h" #include "includes/tnzs.h" @@ -194,7 +195,7 @@ static WRITE8_HANDLER( champbwl_objctrl_w ) static ADDRESS_MAP_START( champbwl_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x3fff) AM_ROM AM_REGION("maincpu", 0x10000) AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank1") - AM_RANGE(0x8000, 0x87ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x8000, 0x87ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0xa000, 0xbfff) AM_RAM AM_BASE_MEMBER(tnzs_state, objram) AM_RANGE(0xc000, 0xdfff) AM_DEVREADWRITE("x1snd", seta_sound_r, seta_sound_w) AM_RANGE(0xe000, 0xe1ff) AM_RAM AM_BASE_MEMBER(tnzs_state, vdcram) @@ -361,7 +362,7 @@ static MACHINE_CONFIG_START( champbwl, tnzs_state ) MDRV_CPU_PROGRAM_MAP(champbwl_map) MDRV_CPU_VBLANK_INT("screen", irq0_line_hold) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") MDRV_MACHINE_START(champbwl) MDRV_MACHINE_RESET(champbwl) diff --git a/src/mame/drivers/chsuper.c b/src/mame/drivers/chsuper.c index 47aca44eb0e..9fc6ea23b47 100644 --- a/src/mame/drivers/chsuper.c +++ b/src/mame/drivers/chsuper.c @@ -13,6 +13,7 @@ TODO: #include "emu.h" #include "cpu/z180/z180.h" #include "sound/dac.h" +#include "machine/nvram.h" static int chsuper_tilexor; @@ -94,7 +95,7 @@ static ADDRESS_MAP_START( chsuper_prg_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x00000, 0x0efff) AM_ROM AM_RANGE(0x00000, 0x01fff) AM_WRITE( chsuper_vram_w ) AM_RANGE(0x0f000, 0x0ffff) AM_RAM AM_REGION("maincpu", 0xf000) - AM_RANGE(0xfb000, 0xfbfff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0xfb000, 0xfbfff) AM_RAM AM_SHARE("nvram") ADDRESS_MAP_END // AM_RANGE(0xaff8, 0xaff8) AM_DEVWRITE("oki", okim6295_w) @@ -205,7 +206,7 @@ static MACHINE_CONFIG_START( chsuper, driver_device ) MDRV_SCREEN_SIZE(64*8, 64*8) MDRV_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 0, 30*8-1) - MDRV_NVRAM_HANDLER( generic_0fill ) + MDRV_NVRAM_ADD_0FILL("nvram") MDRV_GFXDECODE(chsuper) MDRV_PALETTE_LENGTH(0x100) diff --git a/src/mame/drivers/cidelsa.c b/src/mame/drivers/cidelsa.c index ae14927f562..7290711e9be 100644 --- a/src/mame/drivers/cidelsa.c +++ b/src/mame/drivers/cidelsa.c @@ -4,6 +4,7 @@ #include "sound/cdp1869.h" #include "sound/ay8910.h" #include "machine/cdp1852.h" +#include "machine/nvram.h" #include "includes/cidelsa.h" /* CDP1802 Interface */ @@ -231,14 +232,14 @@ static COP400_INTERFACE( draco_cop_intf ) static ADDRESS_MAP_START( destryer_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x1fff) AM_ROM - AM_RANGE(0x2000, 0x20ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x2000, 0x20ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0xf400, 0xf7ff) AM_DEVREADWRITE(CDP1869_TAG, cdp1869_charram_r, cdp1869_charram_w) AM_RANGE(0xf800, 0xffff) AM_DEVREADWRITE(CDP1869_TAG, cdp1869_pageram_r, cdp1869_pageram_w) ADDRESS_MAP_END static ADDRESS_MAP_START( destryera_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x1fff) AM_ROM - AM_RANGE(0x3000, 0x30ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x3000, 0x30ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0xf400, 0xf7ff) AM_DEVREADWRITE(CDP1869_TAG, cdp1869_charram_r, cdp1869_charram_w) AM_RANGE(0xf800, 0xffff) AM_DEVREADWRITE(CDP1869_TAG, cdp1869_pageram_r, cdp1869_pageram_w) ADDRESS_MAP_END @@ -276,7 +277,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( draco_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x3fff) AM_ROM - AM_RANGE(0x8000, 0x83ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x8000, 0x83ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0xf400, 0xf7ff) AM_DEVREADWRITE(CDP1869_TAG, cdp1869_charram_r, cdp1869_charram_w) AM_RANGE(0xf800, 0xffff) AM_DEVREADWRITE(CDP1869_TAG, cdp1869_pageram_r, cdp1869_pageram_w) ADDRESS_MAP_END @@ -516,7 +517,7 @@ static MACHINE_CONFIG_START( destryer, cidelsa_state ) MDRV_CPU_PROGRAM_MAP(destryer_map) MDRV_CPU_IO_MAP(destryer_io_map) MDRV_CPU_CONFIG(cidelsa_cdp1802_config) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") MDRV_MACHINE_START(cidelsa) MDRV_MACHINE_RESET(cidelsa) @@ -532,7 +533,7 @@ static MACHINE_CONFIG_START( destryera, cidelsa_state ) MDRV_CPU_PROGRAM_MAP(destryera_map) MDRV_CPU_IO_MAP(destryer_io_map) MDRV_CPU_CONFIG(cidelsa_cdp1802_config) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") MDRV_MACHINE_START(cidelsa) MDRV_MACHINE_RESET(cidelsa) @@ -570,7 +571,7 @@ static MACHINE_CONFIG_START( draco, cidelsa_state ) MDRV_CPU_PROGRAM_MAP(draco_map) MDRV_CPU_IO_MAP(draco_io_map) MDRV_CPU_CONFIG(cidelsa_cdp1802_config) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") MDRV_MACHINE_START(draco) MDRV_MACHINE_RESET(cidelsa) diff --git a/src/mame/drivers/cliffhgr.c b/src/mame/drivers/cliffhgr.c index 41b45445dda..d58d1749efa 100644 --- a/src/mame/drivers/cliffhgr.c +++ b/src/mame/drivers/cliffhgr.c @@ -79,6 +79,7 @@ Side 2 = 0x8F7DDD (or 0x880000 | ( 0x77 << 12 ) | 0x0DDD) #include "machine/laserdsc.h" #include "video/tms9928a.h" #include "sound/discrete.h" +#include "machine/nvram.h" #define CLIFF_ENABLE_SND_1 NODE_01 #define CLIFF_ENABLE_SND_2 NODE_02 @@ -230,7 +231,7 @@ static MACHINE_RESET( cliffhgr ) static ADDRESS_MAP_START( mainmem, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0xbfff) AM_ROM /* ROM */ - AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) /* NVRAM */ + AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_SHARE("nvram") /* NVRAM */ AM_RANGE(0xe800, 0xefff) AM_RAM /* RAM */ ADDRESS_MAP_END @@ -694,7 +695,7 @@ static MACHINE_CONFIG_START( cliffhgr, driver_device ) MDRV_MACHINE_START(cliffhgr) MDRV_MACHINE_RESET(cliffhgr) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") MDRV_LASERDISC_ADD("laserdisc", PIONEER_PR8210, "screen", "ldsound") MDRV_LASERDISC_OVERLAY(tms9928a, 15+32*8+15, 27+24*8+24, BITMAP_FORMAT_INDEXED16) diff --git a/src/mame/drivers/cloak.c b/src/mame/drivers/cloak.c index 43c95c491b8..d27000bac0d 100644 --- a/src/mame/drivers/cloak.c +++ b/src/mame/drivers/cloak.c @@ -118,6 +118,7 @@ #include "cpu/m6502/m6502.h" #include "deprecat.h" #include "sound/pokey.h" +#include "machine/nvram.h" #include "includes/cloak.h" static int cloak_nvram_enabled; @@ -175,7 +176,7 @@ static ADDRESS_MAP_START( master_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x2200, 0x2200) AM_READ_PORT("P2") AM_RANGE(0x2400, 0x2400) AM_READ_PORT("SYSTEM") AM_RANGE(0x2600, 0x2600) AM_WRITE(cloak_custom_w) - AM_RANGE(0x2800, 0x29ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x2800, 0x29ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x2f00, 0x2fff) AM_NOP AM_RANGE(0x3000, 0x30ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) AM_RANGE(0x3200, 0x327f) AM_WRITE(cloak_paletteram_w) @@ -343,7 +344,7 @@ static MACHINE_CONFIG_START( cloak, driver_device ) MDRV_QUANTUM_TIME(HZ(1000)) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ MDRV_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/cloud9.c b/src/mame/drivers/cloud9.c index 77e2a25c2aa..a81679fa003 100644 --- a/src/mame/drivers/cloud9.c +++ b/src/mame/drivers/cloud9.c @@ -106,15 +106,6 @@ /************************************* * - * Globals - * - *************************************/ - -static UINT8 *nvram_stage; - - -/************************************* - * * VBLANK and IRQ generation * *************************************/ @@ -200,12 +191,9 @@ static MACHINE_START( cloud9 ) state->irq_state = 0; schedule_next_irq(machine, 0-64); - /* allocate backing memory for the NVRAM */ - machine->generic.nvram.u8 = auto_alloc_array(machine, UINT8, machine->generic.nvram_size); - /* setup for save states */ state_save_register_global(machine, state->irq_state); - state_save_register_global_pointer(machine, machine->generic.nvram.u8, machine->generic.nvram_size); + state_save_register_global_array(machine, state->nvram); } @@ -262,35 +250,39 @@ static READ8_HANDLER( leta_r ) static NVRAM_HANDLER( cloud9 ) { + cloud9_state *state = machine->driver_data<cloud9_state>(); if (read_or_write) { /* on power down, the EAROM is implicitly stored */ - memcpy(machine->generic.nvram.v, nvram_stage, machine->generic.nvram_size); - mame_fwrite(file, machine->generic.nvram.v, machine->generic.nvram_size); + memcpy(state->nvram, state->nvram_stage, sizeof(state->nvram)); + mame_fwrite(file, state->nvram, sizeof(state->nvram)); } else if (file) - mame_fread(file, machine->generic.nvram.v, machine->generic.nvram_size); + mame_fread(file, state->nvram, sizeof(state->nvram)); else - memset(machine->generic.nvram.v, 0, machine->generic.nvram_size); + memset(state->nvram, 0, sizeof(state->nvram)); } static WRITE8_HANDLER( nvram_recall_w ) { - memcpy(nvram_stage, space->machine->generic.nvram.v, space->machine->generic.nvram_size); + cloud9_state *state = space->machine->driver_data<cloud9_state>(); + memcpy(state->nvram_stage, state->nvram, sizeof(state->nvram)); } static WRITE8_HANDLER( nvram_store_w ) { - memcpy(space->machine->generic.nvram.v, nvram_stage, space->machine->generic.nvram_size); + cloud9_state *state = space->machine->driver_data<cloud9_state>(); + memcpy(state->nvram, state->nvram_stage, sizeof(state->nvram)); } static READ8_HANDLER( nvram_r ) { /* only a single XD2212 for 4 bits of NVRAM */ - return nvram_stage[offset] | 0xf0; + cloud9_state *state = space->machine->driver_data<cloud9_state>(); + return state->nvram_stage[offset] | 0xf0; } @@ -319,7 +311,7 @@ static ADDRESS_MAP_START( cloud9_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x5900, 0x5903) AM_MIRROR(0x007c) AM_READ(leta_r) AM_RANGE(0x5a00, 0x5a0f) AM_MIRROR(0x00f0) AM_DEVREADWRITE("pokey1", pokey_r, pokey_w) AM_RANGE(0x5b00, 0x5b0f) AM_MIRROR(0x00f0) AM_DEVREADWRITE("pokey2", pokey_r, pokey_w) - AM_RANGE(0x5c00, 0x5cff) AM_MIRROR(0x0300) AM_RAM_READ(nvram_r) AM_BASE(&nvram_stage) AM_SIZE_GENERIC(nvram) + AM_RANGE(0x5c00, 0x5cff) AM_MIRROR(0x0300) AM_RAM_READ(nvram_r) AM_SHARE("nvram") AM_RANGE(0x6000, 0xffff) AM_ROM ADDRESS_MAP_END diff --git a/src/mame/drivers/coinmvga.c b/src/mame/drivers/coinmvga.c index e3423d9df3d..ddc969e3a38 100644 --- a/src/mame/drivers/coinmvga.c +++ b/src/mame/drivers/coinmvga.c @@ -216,6 +216,7 @@ #include "emu.h" #include "cpu/h83002/h8.h" #include "sound/ymz280b.h" +#include "machine/nvram.h" static UINT16 *vram; @@ -660,7 +661,7 @@ static MACHINE_CONFIG_START( coinmvga, driver_device ) MDRV_CPU_IO_MAP(coinmvga_io_map) MDRV_CPU_VBLANK_INT("screen", vblank_irq) /* wrong, fix me */ -// MDRV_NVRAM_HANDLER(generic_0fill) +// MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ MDRV_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/cojag.c b/src/mame/drivers/cojag.c index 48f233d0543..fb1c99f0579 100644 --- a/src/mame/drivers/cojag.c +++ b/src/mame/drivers/cojag.c @@ -293,6 +293,7 @@ Notes: #include "cpu/mips/r3000.h" #include "cpu/jaguar/jaguar.h" #include "machine/idectrl.h" +#include "machine/nvram.h" #include "sound/dac.h" #include "includes/jaguar.h" @@ -302,6 +303,17 @@ Notes: #define M68K_CLOCK XTAL_50MHz +class cojag_state : public driver_device +{ +public: + cojag_state(running_machine &machine, const driver_device_config_base &config) + : driver_device(machine, config), + m_nvram(*this, "nvram") { } + + required_shared_ptr<UINT32> m_nvram; +}; + + /************************************* * @@ -507,10 +519,11 @@ static WRITE32_HANDLER( latch_w ) static READ32_HANDLER( eeprom_data_r ) { + cojag_state *state = space->machine->driver_data<cojag_state>(); if (cojag_is_r3000) - return space->machine->generic.nvram.u32[offset] | 0xffffff00; + return state->m_nvram[offset] | 0xffffff00; else - return space->machine->generic.nvram.u32[offset] | 0x00ffffff; + return state->m_nvram[offset] | 0x00ffffff; } @@ -524,10 +537,11 @@ static WRITE32_HANDLER( eeprom_data_w ) { // if (eeprom_enable) { + cojag_state *state = space->machine->driver_data<cojag_state>(); if (cojag_is_r3000) - space->machine->generic.nvram.u32[offset] = data & 0x000000ff; + state->m_nvram[offset] = data & 0x000000ff; else - space->machine->generic.nvram.u32[offset] = data & 0xff000000; + state->m_nvram[offset] = data & 0xff000000; } // else // logerror("%08X:error writing to disabled EEPROM\n", cpu_get_previouspc(space->cpu)); @@ -804,7 +818,7 @@ static ADDRESS_MAP_START( r3000_map, ADDRESS_SPACE_PROGRAM, 32 ) AM_RANGE(0x12000000, 0x120fffff) AM_RAM // tested in self-test only? AM_RANGE(0x14000004, 0x14000007) AM_WRITE(watchdog_reset32_w) AM_RANGE(0x16000000, 0x16000003) AM_WRITE(eeprom_enable_w) - AM_RANGE(0x18000000, 0x18001fff) AM_READWRITE(eeprom_data_r, eeprom_data_w) AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x18000000, 0x18001fff) AM_READWRITE(eeprom_data_r, eeprom_data_w) AM_SHARE("nvram") AM_RANGE(0x1fc00000, 0x1fdfffff) AM_ROM AM_REGION("user1", 0) AM_BASE(&rom_base) ADDRESS_MAP_END @@ -813,7 +827,7 @@ static ADDRESS_MAP_START( m68020_map, ADDRESS_SPACE_PROGRAM, 32 ) AM_RANGE(0x000000, 0x7fffff) AM_RAM AM_BASE(&jaguar_shared_ram) AM_SHARE("share1") AM_RANGE(0x800000, 0x9fffff) AM_ROM AM_REGION("user1", 0) AM_BASE(&rom_base) AM_RANGE(0xa00000, 0xa1ffff) AM_RAM - AM_RANGE(0xa20000, 0xa21fff) AM_READWRITE(eeprom_data_r, eeprom_data_w) AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0xa20000, 0xa21fff) AM_READWRITE(eeprom_data_r, eeprom_data_w) AM_SHARE("nvram") AM_RANGE(0xa30000, 0xa30003) AM_WRITE(watchdog_reset32_w) AM_RANGE(0xa40000, 0xa40003) AM_WRITE(eeprom_enable_w) AM_RANGE(0xb70000, 0xb70003) AM_READWRITE(misc_control_r, misc_control_w) @@ -1102,7 +1116,7 @@ static const jaguar_cpu_config dsp_config = }; -static MACHINE_CONFIG_START( cojagr3k, driver_device ) +static MACHINE_CONFIG_START( cojagr3k, cojag_state ) /* basic machine hardware */ MDRV_CPU_ADD("maincpu", R3041BE, R3000_CLOCK) @@ -1118,7 +1132,7 @@ static MACHINE_CONFIG_START( cojagr3k, driver_device ) MDRV_CPU_PROGRAM_MAP(dsp_map) MDRV_MACHINE_RESET(cojag) - MDRV_NVRAM_HANDLER(generic_1fill) + MDRV_NVRAM_ADD_1FILL("nvram") MDRV_IDE_CONTROLLER_ADD("ide", jaguar_external_int) diff --git a/src/mame/drivers/coolpool.c b/src/mame/drivers/coolpool.c index e5134cc1f44..96bf7364aaa 100644 --- a/src/mame/drivers/coolpool.c +++ b/src/mame/drivers/coolpool.c @@ -29,6 +29,7 @@ #include "cpu/tms32025/tms32025.h" #include "video/tlc34076.h" #include "sound/dac.h" +#include "machine/nvram.h" #include "includes/coolpool.h" @@ -187,7 +188,10 @@ static WRITE16_HANDLER( nvram_data_w ) if (ACCESSING_BITS_0_7) { if (nvram_write_enable) - space->machine->generic.nvram.u16[offset] = data & 0xff; + { + coolpool_state *state = space->machine->driver_data<coolpool_state>(); + state->m_nvram[offset] = data & 0xff; + } } } @@ -657,7 +661,7 @@ static ADDRESS_MAP_START( amerdart_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x00000000, 0x000fffff) AM_RAM AM_BASE_MEMBER(coolpool_state,vram_base) AM_RANGE(0x04000000, 0x0400000f) AM_WRITE(amerdart_misc_w) AM_RANGE(0x05000000, 0x0500000f) AM_READWRITE(amerdart_iop_r, amerdart_iop_w) - AM_RANGE(0x06000000, 0x06007fff) AM_RAM_WRITE(nvram_thrash_data_w) AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x06000000, 0x06007fff) AM_RAM_WRITE(nvram_thrash_data_w) AM_SHARE("nvram") AM_RANGE(0xc0000000, 0xc00001ff) AM_READWRITE(tms34010_io_register_r, tms34010_io_register_w) AM_RANGE(0xffb00000, 0xffffffff) AM_ROM AM_REGION("user1", 0) ADDRESS_MAP_END @@ -669,7 +673,7 @@ static ADDRESS_MAP_START( coolpool_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x02000000, 0x020000ff) AM_READWRITE(coolpool_iop_r, coolpool_iop_w) AM_RANGE(0x03000000, 0x0300000f) AM_WRITE(coolpool_misc_w) AM_RANGE(0x03000000, 0x03ffffff) AM_ROM AM_REGION("gfx1", 0) - AM_RANGE(0x06000000, 0x06007fff) AM_RAM_WRITE(nvram_thrash_data_w) AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x06000000, 0x06007fff) AM_RAM_WRITE(nvram_thrash_data_w) AM_SHARE("nvram") AM_RANGE(0xc0000000, 0xc00001ff) AM_READWRITE(tms34010_io_register_r, tms34010_io_register_w) AM_RANGE(0xffe00000, 0xffffffff) AM_ROM AM_REGION("user1", 0) ADDRESS_MAP_END @@ -680,7 +684,7 @@ static ADDRESS_MAP_START( nballsht_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x02000000, 0x020000ff) AM_READWRITE(coolpool_iop_r, coolpool_iop_w) AM_RANGE(0x03000000, 0x0300000f) AM_WRITE(coolpool_misc_w) AM_RANGE(0x04000000, 0x040000ff) AM_DEVREADWRITE8("tlc34076", tlc34076_r, tlc34076_w, 0x00ff) // IMSG176P-40 - AM_RANGE(0x06000000, 0x0601ffff) AM_MIRROR(0x00020000) AM_RAM_WRITE(nvram_thrash_data_w) AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x06000000, 0x0601ffff) AM_MIRROR(0x00020000) AM_RAM_WRITE(nvram_thrash_data_w) AM_SHARE("nvram") AM_RANGE(0xc0000000, 0xc00001ff) AM_READWRITE(tms34010_io_register_r, tms34010_io_register_w) AM_RANGE(0xff000000, 0xff7fffff) AM_ROM AM_REGION("gfx1", 0) AM_RANGE(0xffc00000, 0xffffffff) AM_ROM AM_REGION("user1", 0) @@ -876,7 +880,7 @@ static MACHINE_CONFIG_START( amerdart, coolpool_state ) MDRV_TIMER_ADD_SCANLINE("audioint", amerdart_audio_int_gen, "screen", 0, 1) MDRV_MACHINE_RESET(amerdart) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") MDRV_TIMER_ADD("nvram_timer", nvram_write_timeout) @@ -907,7 +911,7 @@ static MACHINE_CONFIG_START( coolpool, coolpool_state ) MDRV_CPU_IO_MAP(coolpool_dsp_io_map) MDRV_MACHINE_RESET(coolpool) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") MDRV_TIMER_ADD("nvram_timer", nvram_write_timeout) diff --git a/src/mame/drivers/crystal.c b/src/mame/drivers/crystal.c index 18b31b4c0f8..e5434dbef3e 100644 --- a/src/mame/drivers/crystal.c +++ b/src/mame/drivers/crystal.c @@ -121,6 +121,7 @@ Notes: #include "video/vrender0.h" #include "machine/ds1302.h" #include "sound/vrender0.h" +#include "machine/nvram.h" #define IDLE_LOOP_SPEEDUP @@ -468,7 +469,7 @@ static ADDRESS_MAP_START( crystal_mem, ADDRESS_SPACE_PROGRAM, 32 ) AM_RANGE(0x01200000, 0x0120000f) AM_READ(Input_r) AM_RANGE(0x01280000, 0x01280003) AM_WRITE(Banksw_w) - AM_RANGE(0x01400000, 0x0140ffff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x01400000, 0x0140ffff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x01801400, 0x01801403) AM_READWRITE(Timer0_r, Timer0_w) AM_RANGE(0x01801408, 0x0180140b) AM_READWRITE(Timer1_r, Timer1_w) @@ -823,7 +824,7 @@ static MACHINE_CONFIG_START( crystal, crystal_state ) MDRV_MACHINE_START(crystal) MDRV_MACHINE_RESET(crystal) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") MDRV_SCREEN_ADD("screen", RASTER) MDRV_SCREEN_REFRESH_RATE(60) diff --git a/src/mame/drivers/cubeqst.c b/src/mame/drivers/cubeqst.c index ff93f34c3e1..9cbb8bfc295 100644 --- a/src/mame/drivers/cubeqst.c +++ b/src/mame/drivers/cubeqst.c @@ -23,6 +23,7 @@ #include "sound/dac.h" #include "streams.h" #include "machine/laserdsc.h" +#include "machine/nvram.h" /************************************* @@ -404,7 +405,7 @@ static ADDRESS_MAP_START( m68k_program_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x03800e, 0x03800f) AM_READWRITE(laserdisc_r, laserdisc_w) AM_RANGE(0x03c800, 0x03c9ff) AM_RAM_WRITE(palette_w) AM_BASE_GENERIC(paletteram) AM_RANGE(0x03cc00, 0x03cc01) AM_WRITE(control_w) - AM_RANGE(0x03e000, 0x03efff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x03e000, 0x03efff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x03f000, 0x03ffff) AM_RAM ADDRESS_MAP_END @@ -514,7 +515,7 @@ static MACHINE_CONFIG_START( cubeqst, driver_device ) MDRV_MACHINE_START(cubeqst) MDRV_MACHINE_RESET(cubeqst) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") MDRV_LASERDISC_SCREEN_ADD_NTSC("screen", BITMAP_FORMAT_RGB32) MDRV_VIDEO_START(cubeqst) diff --git a/src/mame/drivers/ddz.c b/src/mame/drivers/ddz.c index 3cdd2269c7c..bf861fea8f8 100644 --- a/src/mame/drivers/ddz.c +++ b/src/mame/drivers/ddz.c @@ -12,6 +12,7 @@ #include "cpu/se3208/se3208.h" #include "video/vrender0.h" #include "machine/ds1302.h" +#include "machine/nvram.h" #include "sound/vrender0.h" @@ -58,7 +59,7 @@ static MACHINE_CONFIG_START( ddz, driver_device ) //MDRV_MACHINE_RESET(ddz) - //MDRV_NVRAM_HANDLER(generic_0fill) + //MDRV_NVRAM_ADD_0FILL("nvram") MDRV_SCREEN_ADD("screen", RASTER) MDRV_SCREEN_REFRESH_RATE(60) diff --git a/src/mame/drivers/dmndrby.c b/src/mame/drivers/dmndrby.c index e87d36cec2b..ab8b5dd8008 100644 --- a/src/mame/drivers/dmndrby.c +++ b/src/mame/drivers/dmndrby.c @@ -52,6 +52,7 @@ DD10 DD14 DD18 H5 DD21 #include "emu.h" #include "cpu/z80/z80.h" #include "sound/ay8910.h" +#include "machine/nvram.h" #include "video/resnet.h" static UINT8* dderby_vidchars; @@ -105,7 +106,7 @@ static WRITE8_HANDLER( output_w ) static ADDRESS_MAP_START( memmap, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x5fff) AM_ROM - AM_RANGE(0x8000, 0x8fff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x8000, 0x8fff) AM_RAM AM_SHARE("nvram") AM_RANGE(0xc000, 0xc007) AM_READ(input_r) AM_RANGE(0xc000, 0xc007) AM_WRITE(output_w) AM_RANGE(0xc802, 0xc802) AM_READ_PORT("DSW1") @@ -497,7 +498,7 @@ static MACHINE_CONFIG_START( dderby, driver_device ) MDRV_CPU_PROGRAM_MAP(dderby_sound_map) MDRV_QUANTUM_TIME(HZ(6000)) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ MDRV_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/dynadice.c b/src/mame/drivers/dynadice.c index f58f84036f3..10c27df4853 100644 --- a/src/mame/drivers/dynadice.c +++ b/src/mame/drivers/dynadice.c @@ -35,6 +35,7 @@ dy_6.bin (near Z80) #include "cpu/z80/z80.h" #include "cpu/i8085/i8085.h" #include "sound/ay8910.h" +#include "machine/nvram.h" class dynadice_state : public driver_device @@ -93,7 +94,7 @@ static WRITE8_DEVICE_HANDLER( sound_control_w ) static ADDRESS_MAP_START( dynadice_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x1fff) AM_ROM AM_RANGE(0x2000, 0x23ff) AM_RAM_WRITE(dynadice_videoram_w) AM_BASE_MEMBER(dynadice_state, videoram) - AM_RANGE(0x4000, 0x40ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x4000, 0x40ff) AM_RAM AM_SHARE("nvram") ADDRESS_MAP_END static ADDRESS_MAP_START( dynadice_io_map, ADDRESS_SPACE_IO, 8 ) @@ -247,7 +248,7 @@ static MACHINE_CONFIG_START( dynadice, dynadice_state ) MDRV_MACHINE_START(dynadice) MDRV_MACHINE_RESET(dynadice) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ MDRV_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/dynax.c b/src/mame/drivers/dynax.c index 398be4fd8ef..a7daf99f098 100644 --- a/src/mame/drivers/dynax.c +++ b/src/mame/drivers/dynax.c @@ -82,6 +82,7 @@ TODO: #include "sound/3812intf.h" #include "sound/msm5205.h" #include "sound/2413intf.h" +#include "machine/nvram.h" #include "rendlay.h" /*************************************************************************** @@ -471,34 +472,34 @@ static WRITE8_HANDLER( yarunara_layer_half2_w ) static ADDRESS_MAP_START( sprtmtch_mem_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE( 0x0000, 0x6fff ) AM_ROM - AM_RANGE( 0x7000, 0x7fff ) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE( 0x7000, 0x7fff ) AM_RAM AM_SHARE("nvram") AM_RANGE( 0x8000, 0xffff ) AM_ROMBANK("bank1") ADDRESS_MAP_END static ADDRESS_MAP_START( hnoridur_mem_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE( 0x0000, 0x6fff ) AM_ROM - AM_RANGE( 0x7000, 0x7fff ) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE( 0x7000, 0x7fff ) AM_RAM AM_SHARE("nvram") AM_RANGE( 0x8000, 0xffff ) AM_READ_BANK("bank1") AM_WRITE(hnoridur_palette_w) ADDRESS_MAP_END static ADDRESS_MAP_START( mcnpshnt_mem_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE( 0x0000, 0x5fff ) AM_ROM AM_RANGE( 0x6000, 0x6fff ) AM_RAM - AM_RANGE( 0x7000, 0x7fff ) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE( 0x7000, 0x7fff ) AM_RAM AM_SHARE("nvram") AM_RANGE( 0x8000, 0xffff ) AM_READ_BANK("bank1") AM_WRITE(hnoridur_palette_w) ADDRESS_MAP_END static ADDRESS_MAP_START( nanajign_mem_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE( 0x0000, 0x5fff ) AM_ROM AM_RANGE( 0x6000, 0x6fff ) AM_RAM - AM_RANGE( 0x7000, 0x7fff ) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE( 0x7000, 0x7fff ) AM_RAM AM_SHARE("nvram") AM_RANGE( 0x8000, 0x80ff ) AM_WRITE(nanajign_palette_w) AM_RANGE( 0x8000, 0xffff ) AM_ROMBANK("bank1") ADDRESS_MAP_END static ADDRESS_MAP_START( mjdialq2_mem_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE( 0x0800, 0x0fff ) AM_RAM - AM_RANGE( 0x1000, 0x1fff ) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE( 0x1000, 0x1fff ) AM_RAM AM_SHARE("nvram") AM_RANGE( 0x0000, 0x7fff ) AM_ROM AM_RANGE( 0x8000, 0xffff ) AM_ROMBANK("bank1") ADDRESS_MAP_END @@ -506,7 +507,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( yarunara_mem_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE( 0x0000, 0x5fff ) AM_ROM AM_RANGE( 0x6000, 0x6fff ) AM_RAM - AM_RANGE( 0x7000, 0x7fff ) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE( 0x7000, 0x7fff ) AM_RAM AM_SHARE("nvram") AM_RANGE( 0x8000, 0xffff ) AM_ROMBANK("bank1") AM_RANGE( 0x8000, 0x81ff ) AM_WRITE(yarunara_palette_w) // Palette or RTC ADDRESS_MAP_END @@ -514,7 +515,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( jantouki_mem_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE( 0x0000, 0x5fff ) AM_ROM AM_RANGE( 0x6000, 0x6fff ) AM_RAM - AM_RANGE( 0x7000, 0x7fff ) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE( 0x7000, 0x7fff ) AM_RAM AM_SHARE("nvram") AM_RANGE( 0x8000, 0xffff ) AM_ROMBANK("bank1") ADDRESS_MAP_END @@ -641,7 +642,7 @@ static READ8_HANDLER( hjingi_keyboard_1_r ) static ADDRESS_MAP_START( hjingi_mem_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE( 0x0000, 0x01ff ) AM_ROM - AM_RANGE( 0x0200, 0x1fff ) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE( 0x0200, 0x1fff ) AM_RAM AM_SHARE("nvram") AM_RANGE( 0x2000, 0x7fff ) AM_ROM AM_RANGE( 0x8000, 0xffff ) AM_READ_BANK("bank1") AM_WRITE(hnoridur_palette_w) ADDRESS_MAP_END @@ -1529,7 +1530,7 @@ static WRITE8_HANDLER( tenkai_blit_romregion_w ) static ADDRESS_MAP_START( tenkai_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE( 0x0000, 0x5fff ) AM_ROM AM_RANGE( 0x6000, 0x6fff ) AM_RAM - AM_RANGE( 0x7000, 0x7fff ) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE( 0x7000, 0x7fff ) AM_RAM AM_SHARE("nvram") AM_RANGE( 0x8000, 0xffff ) AM_READWRITE(tenkai_8000_r, tenkai_8000_w) AM_RANGE( 0x10000, 0x10000 ) AM_DEVREAD("aysnd", ay8910_r) // AY8910 AM_RANGE( 0x10008, 0x10008 ) AM_DEVWRITE("aysnd", ay8910_data_w) // @@ -1701,7 +1702,7 @@ static WRITE8_HANDLER( gekisha_8000_w ) static ADDRESS_MAP_START( gekisha_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE( 0x0000, 0x6fff ) AM_ROM - AM_RANGE( 0x7000, 0x7fff ) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE( 0x7000, 0x7fff ) AM_RAM AM_SHARE("nvram") AM_RANGE( 0x8000, 0xffff ) AM_READWRITE(gekisha_8000_r, gekisha_8000_w) ADDRESS_MAP_END @@ -4343,7 +4344,7 @@ static MACHINE_CONFIG_START( hanamai, dynax_state ) MDRV_MACHINE_START(hanamai) MDRV_MACHINE_RESET(dynax) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ MDRV_SCREEN_ADD("screen", RASTER) @@ -4401,7 +4402,7 @@ static MACHINE_CONFIG_START( hnoridur, dynax_state ) MDRV_MACHINE_START(hnoridur) MDRV_MACHINE_RESET(dynax) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ MDRV_SCREEN_ADD("screen", RASTER) @@ -4447,7 +4448,7 @@ static MACHINE_CONFIG_START( hjingi, dynax_state ) MDRV_MACHINE_START(hnoridur) MDRV_MACHINE_RESET(dynax) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ MDRV_SCREEN_ADD("screen", RASTER) @@ -4506,7 +4507,7 @@ static MACHINE_CONFIG_START( sprtmtch, dynax_state ) MDRV_MACHINE_START(hanamai) MDRV_MACHINE_RESET(dynax) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ MDRV_SCREEN_ADD("screen", RASTER) @@ -4549,7 +4550,7 @@ static MACHINE_CONFIG_START( mjfriday, dynax_state ) MDRV_MACHINE_START(hanamai) MDRV_MACHINE_RESET(dynax) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ MDRV_SCREEN_ADD("screen", RASTER) @@ -4614,7 +4615,7 @@ static MACHINE_CONFIG_DERIVED( yarunara, hnoridur ) MDRV_CPU_IO_MAP(yarunara_io_map) MDRV_CPU_PERIODIC_INT(yarunara_clock_interrupt, 60) // RTC - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_REPLACE_0FILL("nvram") MDRV_SCREEN_MODIFY("screen") MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) @@ -4702,7 +4703,7 @@ static MACHINE_CONFIG_START( jantouki, dynax_state ) MDRV_MACHINE_START(jantouki) MDRV_MACHINE_RESET(dynax) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ MDRV_PALETTE_LENGTH(512) @@ -4869,7 +4870,7 @@ static MACHINE_CONFIG_START( htengoku, dynax_state ) MDRV_MACHINE_START(htengoku) MDRV_MACHINE_RESET(dynax) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ MDRV_SCREEN_ADD("screen", RASTER) @@ -4946,7 +4947,7 @@ static MACHINE_CONFIG_START( tenkai, dynax_state ) MDRV_MACHINE_START(tenkai) MDRV_MACHINE_RESET(dynax) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ MDRV_SCREEN_ADD("screen", RASTER) @@ -5016,7 +5017,7 @@ static MACHINE_CONFIG_START( gekisha, dynax_state ) MDRV_MACHINE_START(gekisha) MDRV_MACHINE_RESET(gekisha) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ MDRV_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/equites.c b/src/mame/drivers/equites.c index f7c07f88341..d0a4661616c 100644 --- a/src/mame/drivers/equites.c +++ b/src/mame/drivers/equites.c @@ -372,6 +372,7 @@ D #include "sound/msm5232.h" #include "sound/dac.h" #include "sound/samples.h" +#include "machine/nvram.h" #include "includes/equites.h" #define HVOLTAGE_DEBUG 0 @@ -696,7 +697,7 @@ static WRITE16_HANDLER( mcu_halt_clear_w ) static ADDRESS_MAP_START( equites_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x000000, 0x00ffff) AM_ROM // ROM area is written several times (dev system?) - AM_RANGE(0x040000, 0x040fff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) // nvram is for gekisou only + AM_RANGE(0x040000, 0x040fff) AM_RAM AM_SHARE("nvram") // nvram is for gekisou only AM_RANGE(0x080000, 0x080fff) AM_READWRITE(equites_fg_videoram_r, equites_fg_videoram_w) // 8-bit AM_RANGE(0x0c0000, 0x0c01ff) AM_RAM_WRITE(equites_bg_videoram_w) AM_BASE_MEMBER(equites_state, bg_videoram) AM_RANGE(0x0c0200, 0x0c0fff) AM_RAM @@ -1274,7 +1275,7 @@ MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( gekisou, equites ) // gekisou has battery-backed RAM to store settings - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") MACHINE_CONFIG_END diff --git a/src/mame/drivers/esh.c b/src/mame/drivers/esh.c index cfe98521846..bc7185e6dee 100644 --- a/src/mame/drivers/esh.c +++ b/src/mame/drivers/esh.c @@ -25,6 +25,7 @@ Todo: #include "emu.h" #include "cpu/z80/z80.h" #include "machine/laserdsc.h" +#include "machine/nvram.h" /* From daphne */ #define PCB_CLOCK (18432000) @@ -142,7 +143,7 @@ static WRITE8_HANDLER(nmi_line_w) /* PROGRAM MAPS */ static ADDRESS_MAP_START( z80_0_mem, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000,0x3fff) AM_ROM - AM_RANGE(0xe000,0xe7ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0xe000,0xe7ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0xf000,0xf3ff) AM_RAM AM_BASE(&tile_ram) AM_RANGE(0xf400,0xf7ff) AM_RAM AM_BASE(&tile_control_ram) ADDRESS_MAP_END @@ -285,7 +286,7 @@ static MACHINE_CONFIG_START( esh, driver_device ) MDRV_CPU_IO_MAP(z80_0_io) MDRV_CPU_VBLANK_INT("screen", vblank_callback_esh) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") MDRV_MACHINE_START(esh) diff --git a/src/mame/drivers/ettrivia.c b/src/mame/drivers/ettrivia.c index 8325eab7d24..ff39ff84b76 100644 --- a/src/mame/drivers/ettrivia.c +++ b/src/mame/drivers/ettrivia.c @@ -27,6 +27,7 @@ Notes: #include "emu.h" #include "cpu/z80/z80.h" #include "sound/ay8910.h" +#include "machine/nvram.h" /* it uses the same palette layout as in naughtyb */ PALETTE_INIT( naughtyb ); @@ -118,7 +119,7 @@ static WRITE8_HANDLER( b800_w ) static ADDRESS_MAP_START( cpu_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x7fff) AM_ROM - AM_RANGE(0x8000, 0x87ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x8000, 0x87ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x9000, 0x9000) AM_WRITE(ettrivia_control_w) AM_RANGE(0x9800, 0x9800) AM_WRITENOP AM_RANGE(0xa000, 0xa000) AM_WRITENOP @@ -243,7 +244,7 @@ static MACHINE_CONFIG_START( ettrivia, driver_device ) MDRV_CPU_IO_MAP(io_map) MDRV_CPU_VBLANK_INT("screen", ettrivia_interrupt) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ MDRV_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/exterm.c b/src/mame/drivers/exterm.c index 2bde9098a6d..122448021b6 100644 --- a/src/mame/drivers/exterm.c +++ b/src/mame/drivers/exterm.c @@ -65,6 +65,7 @@ #include "cpu/m6502/m6502.h" #include "sound/dac.h" #include "sound/2151intf.h" +#include "machine/nvram.h" #include "includes/exterm.h" @@ -298,7 +299,7 @@ static ADDRESS_MAP_START( master_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x01580000, 0x015bffff) AM_MIRROR(0xfc000000) AM_WRITE(sound_latch_w) AM_RANGE(0x015c0000, 0x015fffff) AM_MIRROR(0xfc000000) AM_WRITE(watchdog_reset16_w) AM_RANGE(0x01800000, 0x01807fff) AM_MIRROR(0xfc7f8000) AM_RAM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE_GENERIC(paletteram) - AM_RANGE(0x02800000, 0x02807fff) AM_MIRROR(0xfc7f8000) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x02800000, 0x02807fff) AM_MIRROR(0xfc7f8000) AM_RAM AM_SHARE("nvram") AM_RANGE(0x03000000, 0x03ffffff) AM_MIRROR(0xfc000000) AM_ROM AM_REGION("user1", 0) ADDRESS_MAP_END @@ -465,7 +466,7 @@ static MACHINE_CONFIG_START( exterm, driver_device ) MDRV_QUANTUM_TIME(HZ(6000)) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") MDRV_TIMER_ADD("snd_nmi_timer", master_sound_nmi_callback) diff --git a/src/mame/drivers/foodf.c b/src/mame/drivers/foodf.c index f1d0e9a6ebc..57b5a768b3e 100644 --- a/src/mame/drivers/foodf.c +++ b/src/mame/drivers/foodf.c @@ -77,6 +77,7 @@ #include "cpu/m68000/m68000.h" #include "machine/atarigen.h" #include "sound/pokey.h" +#include "machine/nvram.h" #include "includes/foodf.h" @@ -91,7 +92,8 @@ static READ16_HANDLER( nvram_r ) { - return space->machine->generic.nvram.u16[offset] | 0xfff0; + foodf_state *state = space->machine->driver_data<foodf_state>(); + return state->m_nvram[offset] | 0xfff0; } @@ -216,7 +218,7 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x018000, 0x018fff) AM_MIRROR(0x3e3000) AM_RAM AM_RANGE(0x01c000, 0x01c0ff) AM_MIRROR(0x3e3f00) AM_RAM AM_BASE_GENERIC(spriteram) AM_RANGE(0x800000, 0x8007ff) AM_MIRROR(0x03f800) AM_RAM_WRITE(atarigen_playfield_w) AM_BASE_MEMBER(foodf_state, playfield) - AM_RANGE(0x900000, 0x9001ff) AM_MIRROR(0x03fe00) AM_RAM_READ(nvram_r) AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x900000, 0x9001ff) AM_MIRROR(0x03fe00) AM_RAM_READ(nvram_r) AM_SHARE("nvram") AM_RANGE(0x940000, 0x940007) AM_MIRROR(0x023ff8) AM_READ(analog_r) AM_RANGE(0x944000, 0x944007) AM_MIRROR(0x023ff8) AM_WRITE(analog_w) AM_RANGE(0x948000, 0x948001) AM_MIRROR(0x023ffe) AM_READ_PORT("SYSTEM") AM_WRITE(digital_w) @@ -362,7 +364,7 @@ static MACHINE_CONFIG_START( foodf, foodf_state ) MDRV_MACHINE_START(foodf) MDRV_MACHINE_RESET(foodf) - MDRV_NVRAM_HANDLER(generic_1fill) + MDRV_NVRAM_ADD_1FILL("nvram") MDRV_WATCHDOG_VBLANK_INIT(8) MDRV_TIMER_ADD("scan_timer", scanline_update) diff --git a/src/mame/drivers/funworld.c b/src/mame/drivers/funworld.c index 54481fd8912..d579a200608 100644 --- a/src/mame/drivers/funworld.c +++ b/src/mame/drivers/funworld.c @@ -743,6 +743,7 @@ #include "video/mc6845.h" #include "machine/6821pia.h" #include "sound/ay8910.h" +#include "machine/nvram.h" #include "jollycrd.lh" #include "bigdeal.lh" #include "royalcrd.lh" @@ -790,7 +791,7 @@ static WRITE8_DEVICE_HANDLER(pia1_ca2_w) *************************/ static ADDRESS_MAP_START( funworld_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x07ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x0000, 0x07ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x0800, 0x0803) AM_DEVREADWRITE("pia0", pia6821_r, pia6821_w) AM_RANGE(0x0a00, 0x0a03) AM_DEVREADWRITE("pia1", pia6821_r, pia6821_w) AM_RANGE(0x0c00, 0x0c00) AM_DEVREAD("ay8910", ay8910_r) @@ -824,7 +825,7 @@ static WRITE8_HANDLER( question_bank_w ) } static ADDRESS_MAP_START( funquiz_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x07ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x0000, 0x07ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x0800, 0x0803) AM_DEVREADWRITE("pia0", pia6821_r, pia6821_w) AM_RANGE(0x0a00, 0x0a03) AM_DEVREADWRITE("pia1", pia6821_r, pia6821_w) AM_RANGE(0x0c00, 0x0c00) AM_DEVREAD("ay8910", ay8910_r) @@ -842,7 +843,7 @@ static ADDRESS_MAP_START( funquiz_map, ADDRESS_SPACE_PROGRAM, 8 ) ADDRESS_MAP_END static ADDRESS_MAP_START( magicrd2_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x07ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x0000, 0x07ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x0800, 0x0803) AM_DEVREADWRITE("pia0", pia6821_r, pia6821_w) AM_RANGE(0x0a00, 0x0a03) AM_DEVREADWRITE("pia1", pia6821_r, pia6821_w) AM_RANGE(0x0c00, 0x0c00) AM_DEVREAD("ay8910", ay8910_r) @@ -858,7 +859,7 @@ static ADDRESS_MAP_START( magicrd2_map, ADDRESS_SPACE_PROGRAM, 8 ) ADDRESS_MAP_END static ADDRESS_MAP_START( cuoreuno_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x07ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x0000, 0x07ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x0800, 0x0803) AM_DEVREADWRITE("pia0", pia6821_r, pia6821_w) AM_RANGE(0x0a00, 0x0a03) AM_DEVREADWRITE("pia1", pia6821_r, pia6821_w) AM_RANGE(0x0c00, 0x0c00) AM_DEVREAD("ay8910", ay8910_r) @@ -873,7 +874,7 @@ static ADDRESS_MAP_START( cuoreuno_map, ADDRESS_SPACE_PROGRAM, 8 ) ADDRESS_MAP_END static ADDRESS_MAP_START( saloon_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x07ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x0000, 0x07ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x0800, 0x0800) AM_READ_PORT("IN0") AM_RANGE(0x0a01, 0x0a01) AM_READ_PORT("IN1") AM_RANGE(0x081c, 0x081c) AM_DEVWRITE("crtc", mc6845_address_w) @@ -2111,7 +2112,7 @@ static MACHINE_CONFIG_START( fw1stpal, driver_device ) MDRV_CPU_PROGRAM_MAP(funworld_map) MDRV_CPU_VBLANK_INT("screen", nmi_line_pulse) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") MDRV_PIA6821_ADD("pia0", pia0_intf) MDRV_PIA6821_ADD("pia1", pia1_intf) diff --git a/src/mame/drivers/galaxi.c b/src/mame/drivers/galaxi.c index 33e994e61dd..970810693f2 100644 --- a/src/mame/drivers/galaxi.c +++ b/src/mame/drivers/galaxi.c @@ -42,6 +42,7 @@ Notes: #include "emu.h" #include "cpu/m68000/m68000.h" #include "sound/okim6295.h" +#include "machine/nvram.h" #include "galaxi.lh" class galaxi_state : public driver_device @@ -286,7 +287,7 @@ static ADDRESS_MAP_START( galaxi_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x700000, 0x700001) AM_DEVREADWRITE8("oki", okim6295_r, okim6295_w, 0x00ff) - AM_RANGE(0x600000, 0x607fff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) // 2x DS1230Y (non volatile SRAM) + AM_RANGE(0x600000, 0x607fff) AM_RAM AM_SHARE("nvram") // 2x DS1230Y (non volatile SRAM) ADDRESS_MAP_END /*************************************************************************** @@ -399,7 +400,7 @@ static MACHINE_CONFIG_START( galaxi, galaxi_state ) MDRV_MACHINE_START(galaxi) MDRV_MACHINE_RESET(galaxi) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ MDRV_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/gatron.c b/src/mame/drivers/gatron.c index c548188793b..6118aab105c 100644 --- a/src/mame/drivers/gatron.c +++ b/src/mame/drivers/gatron.c @@ -230,6 +230,7 @@ #include "cpu/z80/z80.h" #include "sound/sn76496.h" #include "machine/8255ppi.h" +#include "machine/nvram.h" #include "poker41.lh" #include "pulltabs.lh" #include "includes/gatron.h" @@ -339,7 +340,7 @@ static const ppi8255_interface ppi8255_intf = static ADDRESS_MAP_START( gat_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x5fff) AM_ROM AM_RANGE(0x6000, 0x63ff) AM_RAM_WRITE(gat_videoram_w) AM_BASE_GENERIC(videoram) - AM_RANGE(0x8000, 0x87ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) /* battery backed RAM */ + AM_RANGE(0x8000, 0x87ff) AM_RAM AM_SHARE("nvram") /* battery backed RAM */ AM_RANGE(0xa000, 0xa000) AM_DEVWRITE("snsnd", sn76496_w) /* PSG */ AM_RANGE(0xe000, 0xe000) AM_WRITE(output_port_0_w) /* lamps */ ADDRESS_MAP_END @@ -439,7 +440,7 @@ static MACHINE_CONFIG_START( gat, driver_device ) MDRV_CPU_IO_MAP(gat_portmap) MDRV_CPU_VBLANK_INT("screen", nmi_line_pulse) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") MDRV_PPI8255_ADD( "ppi8255", ppi8255_intf ) diff --git a/src/mame/drivers/gei.c b/src/mame/drivers/gei.c index b8b24d4ac6d..cd9b327e2b2 100644 --- a/src/mame/drivers/gei.c +++ b/src/mame/drivers/gei.c @@ -69,6 +69,7 @@ U.S.A. Trivia New Sports General Facts #include "cpu/z80/z80.h" #include "machine/8255ppi.h" #include "machine/ticket.h" +#include "machine/nvram.h" #include "sound/dac.h" static UINT8 drawctrl[3]; @@ -367,7 +368,7 @@ static WRITE8_HANDLER( signature2_w ) static ADDRESS_MAP_START( getrivia_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x1fff) AM_ROM AM_RANGE(0x2000, 0x3fff) AM_ROMBANK("bank1") - AM_RANGE(0x4000, 0x47ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x4000, 0x47ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x4800, 0x4803) AM_DEVREADWRITE("ppi8255_0", ppi8255_r, ppi8255_w) AM_RANGE(0x5000, 0x5003) AM_DEVREADWRITE("ppi8255_1", ppi8255_r, ppi8255_w) AM_RANGE(0x600f, 0x600f) AM_WRITE(banksel_5_1_w) @@ -389,7 +390,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( gselect_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x1fff) AM_ROM AM_RANGE(0x2000, 0x3fff) AM_ROMBANK("bank1") - AM_RANGE(0x4000, 0x40ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x4000, 0x40ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x4400, 0x4400) AM_WRITE(banksel_1_1_w) AM_RANGE(0x4401, 0x4401) AM_WRITE(banksel_1_2_w) AM_RANGE(0x4402, 0x4402) AM_WRITE(banksel_2_1_w) @@ -404,7 +405,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( amuse_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x1fff) AM_ROM AM_RANGE(0x2000, 0x3fff) AM_ROMBANK("bank1") - AM_RANGE(0x4000, 0x47ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x4000, 0x47ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x4800, 0x4803) AM_DEVREADWRITE("ppi8255_0", ppi8255_r, ppi8255_w) AM_RANGE(0x5000, 0x5003) AM_DEVREADWRITE("ppi8255_1", ppi8255_r, ppi8255_w) AM_RANGE(0x606f, 0x606f) AM_WRITE(banksel_5_1_w) @@ -420,7 +421,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( gepoker_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x1fff) AM_ROM AM_RANGE(0x2000, 0x3fff) AM_ROMBANK("bank1") - AM_RANGE(0x4000, 0x47ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x4000, 0x47ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x4800, 0x4803) AM_DEVREADWRITE("ppi8255_0", ppi8255_r, ppi8255_w) AM_RANGE(0x5000, 0x5003) AM_DEVREADWRITE("ppi8255_1", ppi8255_r, ppi8255_w) AM_RANGE(0x60ef, 0x60ef) AM_WRITE(banksel_3_1_w) @@ -437,7 +438,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( amuse1_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x1fff) AM_ROM AM_RANGE(0x2000, 0x3fff) AM_ROMBANK("bank1") - AM_RANGE(0x4000, 0x43ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x4000, 0x43ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x4400, 0x4400) AM_WRITE(banksel_1_1_w) AM_RANGE(0x4401, 0x4401) AM_WRITE(banksel_2_1_w) AM_RANGE(0x4402, 0x4402) AM_WRITE(banksel_3_1_w) @@ -453,7 +454,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( findout_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x3fff) AM_ROM - AM_RANGE(0x4000, 0x47ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x4000, 0x47ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x4800, 0x4803) AM_DEVREADWRITE("ppi8255_0", ppi8255_r,ppi8255_w) AM_RANGE(0x5000, 0x5003) AM_DEVREADWRITE("ppi8255_1", ppi8255_r,ppi8255_w) /* banked ROMs are enabled by low 6 bits of the address */ @@ -474,7 +475,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( quizvid_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x3fff) AM_ROM - AM_RANGE(0x4000, 0x47ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x4000, 0x47ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x4800, 0x4803) AM_DEVREADWRITE("ppi8255_0", ppi8255_r,ppi8255_w) AM_RANGE(0x5000, 0x5003) AM_DEVREADWRITE("ppi8255_1", ppi8255_r,ppi8255_w) /* banked ROMs are enabled by low 6 bits of the address */ @@ -492,7 +493,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( suprpokr_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x3fff) AM_ROM - AM_RANGE(0x4000, 0x47ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x4000, 0x47ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x4800, 0x4803) AM_DEVREADWRITE("ppi8255_0", ppi8255_r, ppi8255_w) AM_RANGE(0x5000, 0x5003) AM_DEVREADWRITE("ppi8255_1", ppi8255_r, ppi8255_w) AM_RANGE(0x6200, 0x6200) AM_WRITE(signature2_w) @@ -504,7 +505,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( geimulti_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x3fff) AM_ROM - AM_RANGE(0x4000, 0x47ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x4000, 0x47ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x4800, 0x4803) AM_DEVREADWRITE("ppi8255_0", ppi8255_r, ppi8255_w) AM_RANGE(0x5000, 0x5003) AM_DEVREADWRITE("ppi8255_1", ppi8255_r, ppi8255_w) AM_RANGE(0x5800, 0x5fff) AM_ROM @@ -517,7 +518,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( sprtauth_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x3fff) AM_ROM - AM_RANGE(0x4000, 0x47ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x4000, 0x47ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x4800, 0x4803) AM_DEVREADWRITE("ppi8255_0", ppi8255_r, ppi8255_w) AM_RANGE(0x5000, 0x5003) AM_DEVREADWRITE("ppi8255_1", ppi8255_r, ppi8255_w) AM_RANGE(0x5600, 0x5600) AM_READ(signature_r) @@ -1062,7 +1063,7 @@ static MACHINE_CONFIG_START( getrivia, driver_device ) MDRV_PALETTE_LENGTH(8) MDRV_PALETTE_INIT(gei) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") MDRV_VIDEO_START(generic_bitmapped) MDRV_VIDEO_UPDATE(generic_bitmapped) diff --git a/src/mame/drivers/gladiatr.c b/src/mame/drivers/gladiatr.c index 4d2c9d6dedb..ba3409b0203 100644 --- a/src/mame/drivers/gladiatr.c +++ b/src/mame/drivers/gladiatr.c @@ -187,6 +187,7 @@ TODO: #include "cpu/z80/z80.h" #include "sound/2203intf.h" #include "sound/msm5205.h" +#include "machine/nvram.h" #include "includes/gladiatr.h" @@ -377,7 +378,7 @@ static ADDRESS_MAP_START( ppking_cpu1_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0xd800, 0xdfff) AM_RAM_WRITE(gladiatr_videoram_w) AM_BASE(&gladiatr_videoram) AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(gladiatr_colorram_w) AM_BASE(&gladiatr_colorram) AM_RANGE(0xe800, 0xefff) AM_RAM_WRITE(gladiatr_textram_w) AM_BASE(&gladiatr_textram) - AM_RANGE(0xf000, 0xf7ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) /* battery backed RAM */ + AM_RANGE(0xf000, 0xf7ff) AM_RAM AM_SHARE("nvram") /* battery backed RAM */ ADDRESS_MAP_END @@ -415,7 +416,7 @@ static ADDRESS_MAP_START( gladiatr_cpu1_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0xd800, 0xdfff) AM_RAM_WRITE(gladiatr_videoram_w) AM_BASE(&gladiatr_videoram) AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(gladiatr_colorram_w) AM_BASE(&gladiatr_colorram) AM_RANGE(0xe800, 0xefff) AM_RAM_WRITE(gladiatr_textram_w) AM_BASE(&gladiatr_textram) - AM_RANGE(0xf000, 0xf7ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) /* battery backed RAM */ + AM_RANGE(0xf000, 0xf7ff) AM_RAM AM_SHARE("nvram") /* battery backed RAM */ ADDRESS_MAP_END static ADDRESS_MAP_START( cpu2_map, ADDRESS_SPACE_PROGRAM, 8 ) @@ -659,7 +660,7 @@ static const msm5205_interface msm5205_config = -static MACHINE_CONFIG_START( ppking, driver_device ) +static MACHINE_CONFIG_START( ppking, gladiatr_state ) /* basic machine hardware */ MDRV_CPU_ADD("maincpu", Z80, XTAL_12MHz/2) /* verified on pcb */ @@ -678,7 +679,7 @@ static MACHINE_CONFIG_START( ppking, driver_device ) MDRV_QUANTUM_TIME(HZ(6000)) MDRV_MACHINE_RESET(ppking) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ MDRV_SCREEN_ADD("screen", RASTER) @@ -709,7 +710,7 @@ static MACHINE_CONFIG_START( ppking, driver_device ) MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( gladiatr, driver_device ) +static MACHINE_CONFIG_START( gladiatr, gladiatr_state ) /* basic machine hardware */ MDRV_CPU_ADD("maincpu", Z80, XTAL_12MHz/2) /* verified on pcb */ @@ -727,7 +728,7 @@ static MACHINE_CONFIG_START( gladiatr, driver_device ) MDRV_QUANTUM_TIME(HZ(600)) MDRV_MACHINE_RESET(gladiator) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ MDRV_SCREEN_ADD("screen", RASTER) @@ -995,10 +996,11 @@ static DRIVER_INIT( gladiatr ) static READ8_HANDLER(f6a3_r) { + gladiatr_state *state = space->machine->driver_data<gladiatr_state>(); if(cpu_get_previouspc(space->cpu)==0x8e) - space->machine->generic.nvram.u8[0x6a3]=1; + state->m_nvram[0x6a3]=1; - return space->machine->generic.nvram.u8[0x6a3]; + return state->m_nvram[0x6a3]; } static DRIVER_INIT(ppking) diff --git a/src/mame/drivers/goldnpkr.c b/src/mame/drivers/goldnpkr.c index 2a5cfd7b797..658c4e1e54b 100644 --- a/src/mame/drivers/goldnpkr.c +++ b/src/mame/drivers/goldnpkr.c @@ -622,6 +622,7 @@ #include "video/mc6845.h" #include "machine/6821pia.h" #include "sound/discrete.h" +#include "machine/nvram.h" #include "pmpoker.lh" #include "goldnpkr.lh" @@ -896,7 +897,7 @@ static WRITE8_DEVICE_HANDLER( sound_w ) static ADDRESS_MAP_START( goldnpkr_map, ADDRESS_SPACE_PROGRAM, 8 ) ADDRESS_MAP_GLOBAL_MASK(0x7fff) - AM_RANGE(0x0000, 0x07ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) /* battery backed RAM */ + AM_RANGE(0x0000, 0x07ff) AM_RAM AM_SHARE("nvram") /* battery backed RAM */ AM_RANGE(0x0800, 0x0800) AM_DEVWRITE("crtc", mc6845_address_w) AM_RANGE(0x0801, 0x0801) AM_DEVREADWRITE("crtc", mc6845_register_r, mc6845_register_w) AM_RANGE(0x0844, 0x0847) AM_DEVREADWRITE("pia0", pia6821_r, pia6821_w) @@ -908,7 +909,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( pottnpkr_map, ADDRESS_SPACE_PROGRAM, 8 ) ADDRESS_MAP_GLOBAL_MASK(0x3fff) - AM_RANGE(0x0000, 0x07ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) /* battery backed RAM */ + AM_RANGE(0x0000, 0x07ff) AM_RAM AM_SHARE("nvram") /* battery backed RAM */ AM_RANGE(0x0800, 0x0800) AM_DEVWRITE("crtc", mc6845_address_w) AM_RANGE(0x0801, 0x0801) AM_DEVREADWRITE("crtc", mc6845_register_r, mc6845_register_w) AM_RANGE(0x0844, 0x0847) AM_DEVREADWRITE("pia0", pia6821_r, pia6821_w) @@ -920,7 +921,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( witchcrd_map, ADDRESS_SPACE_PROGRAM, 8 ) ADDRESS_MAP_GLOBAL_MASK(0x7fff) - AM_RANGE(0x0000, 0x07ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) /* battery backed RAM */ + AM_RANGE(0x0000, 0x07ff) AM_RAM AM_SHARE("nvram") /* battery backed RAM */ AM_RANGE(0x0800, 0x0800) AM_DEVWRITE("crtc", mc6845_address_w) AM_RANGE(0x0801, 0x0801) AM_DEVREADWRITE("crtc", mc6845_register_r, mc6845_register_w) AM_RANGE(0x0844, 0x0847) AM_DEVREADWRITE("pia0", pia6821_r, pia6821_w) @@ -946,7 +947,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( genie_map, ADDRESS_SPACE_PROGRAM, 8 ) ADDRESS_MAP_GLOBAL_MASK(0x3fff) - AM_RANGE(0x0000, 0x07ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) /* battery backed RAM */ + AM_RANGE(0x0000, 0x07ff) AM_RAM AM_SHARE("nvram") /* battery backed RAM */ AM_RANGE(0x0800, 0x0800) AM_DEVWRITE("crtc", mc6845_address_w) AM_RANGE(0x0801, 0x0801) AM_DEVREADWRITE("crtc", mc6845_register_r, mc6845_register_w) AM_RANGE(0x0844, 0x0847) AM_DEVREADWRITE("pia0", pia6821_r, pia6821_w) @@ -2294,7 +2295,7 @@ static MACHINE_CONFIG_START( goldnpkr_base, driver_device ) MDRV_CPU_PROGRAM_MAP(goldnpkr_map) MDRV_CPU_VBLANK_INT("screen", nmi_line_pulse) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") MDRV_PIA6821_ADD("pia0", goldnpkr_pia0_intf) MDRV_PIA6821_ADD("pia1", goldnpkr_pia1_intf) diff --git a/src/mame/drivers/gottlieb.c b/src/mame/drivers/gottlieb.c index 00ff8ae29d3..3f1ede6d691 100644 --- a/src/mame/drivers/gottlieb.c +++ b/src/mame/drivers/gottlieb.c @@ -201,6 +201,7 @@ VBlank duration: 1/VSYNC * (16/256) = 1017.6 us #include "sound/dac.h" #include "sound/samples.h" #include "sound/sp0250.h" +#include "machine/nvram.h" #include "streams.h" #include "includes/gottlieb.h" @@ -735,7 +736,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( gottlieb_map, ADDRESS_SPACE_PROGRAM, 8 ) ADDRESS_MAP_GLOBAL_MASK(0xffff) - AM_RANGE(0x0000, 0x0fff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x0000, 0x0fff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x1000, 0x1fff) AM_RAM AM_REGION("maincpu", 0x1000) /* or ROM */ AM_RANGE(0x2000, 0x2fff) AM_RAM AM_REGION("maincpu", 0x2000) /* or ROM */ AM_RANGE(0x3000, 0x30ff) AM_MIRROR(0x0700) AM_WRITEONLY AM_BASE_GENERIC(spriteram) /* FRSEL */ @@ -1924,7 +1925,7 @@ static MACHINE_CONFIG_START( gottlieb_core, driver_device ) MDRV_MACHINE_START(gottlieb) MDRV_MACHINE_RESET(gottlieb) - MDRV_NVRAM_HANDLER(generic_1fill) + MDRV_NVRAM_ADD_1FILL("nvram") MDRV_WATCHDOG_VBLANK_INIT(16) /* video hardware */ diff --git a/src/mame/drivers/gridlee.c b/src/mame/drivers/gridlee.c index 89be324606d..75409bab2c7 100644 --- a/src/mame/drivers/gridlee.c +++ b/src/mame/drivers/gridlee.c @@ -82,6 +82,7 @@ #include "includes/gridlee.h" #include "includes/balsente.h" #include "sound/samples.h" +#include "machine/nvram.h" /* constants */ @@ -331,7 +332,7 @@ static ADDRESS_MAP_START( cpu1_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x9700, 0x9700) AM_READ_PORT("IN2") AM_WRITENOP AM_RANGE(0x9820, 0x9820) AM_READ(random_num_r) AM_RANGE(0x9828, 0x993f) AM_WRITE(gridlee_sound_w) - AM_RANGE(0x9c00, 0x9cff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x9c00, 0x9cff) AM_RAM AM_SHARE("nvram") AM_RANGE(0xa000, 0xffff) AM_ROM ADDRESS_MAP_END @@ -441,7 +442,7 @@ static MACHINE_CONFIG_START( gridlee, driver_device ) MDRV_MACHINE_START(gridlee) MDRV_MACHINE_RESET(gridlee) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ MDRV_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/gstream.c b/src/mame/drivers/gstream.c index 1f6bd688149..d395e06b8e0 100644 --- a/src/mame/drivers/gstream.c +++ b/src/mame/drivers/gstream.c @@ -123,6 +123,7 @@ RAM4 is HMC HM6264LP-70 #include "emu.h" #include "cpu/e132xs/e132xs.h" #include "sound/okim6295.h" +#include "machine/nvram.h" class gstream_state : public driver_device { @@ -269,7 +270,7 @@ static ADDRESS_MAP_START( gstream_32bit_map, ADDRESS_SPACE_PROGRAM, 32 ) AM_RANGE(0x4FA00000, 0x4FA00003) AM_WRITE(gstream_tilemap1_scrolly_w) AM_RANGE(0x4FC00000, 0x4FC00003) AM_WRITE(gstream_tilemap2_scrollx_w) AM_RANGE(0x4FE00000, 0x4FE00003) AM_WRITE(gstream_tilemap2_scrolly_w) - AM_RANGE(0xFFC00000, 0xFFC01FFF) AM_RAM AM_BASE_SIZE_GENERIC(nvram) // Backup RAM + AM_RANGE(0xFFC00000, 0xFFC01FFF) AM_RAM AM_SHARE("nvram") // Backup RAM AM_RANGE(0xFFF80000, 0xFFFFFFFF) AM_ROM AM_REGION("user1",0) // boot rom ADDRESS_MAP_END @@ -557,7 +558,7 @@ static MACHINE_CONFIG_START( gstream, gstream_state ) MDRV_MACHINE_START(gstream) MDRV_MACHINE_RESET(gstream) - MDRV_NVRAM_HANDLER(generic_1fill) + MDRV_NVRAM_ADD_1FILL("nvram") /* video hardware */ MDRV_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/highvdeo.c b/src/mame/drivers/highvdeo.c index c00c87a9292..faca3954ffb 100644 --- a/src/mame/drivers/highvdeo.c +++ b/src/mame/drivers/highvdeo.c @@ -86,6 +86,7 @@ Game is V30 based, with rom banking (2Mb) #include "cpu/nec/nec.h" #include "cpu/i86/i86.h" #include "sound/okim6376.h" +#include "machine/nvram.h" #include "fashion.lh" static UINT16 *blit_ram; @@ -255,7 +256,7 @@ static WRITE16_HANDLER( write1_w ) static ADDRESS_MAP_START( tv_vcf_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x00000, 0x003ff) AM_RAM /*irq vector area*/ - AM_RANGE(0x00400, 0x03fff) AM_RAM AM_BASE_SIZE_GENERIC( nvram ) + AM_RANGE(0x00400, 0x03fff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x40000, 0x4ffff) AM_RAM AM_BASE(&blit_ram) /*blitter ram*/ AM_RANGE(0x80000, 0xbffff) AM_ROMBANK("bank1") AM_RANGE(0xc0000, 0xfffff) AM_ROM AM_REGION("boot_prg",0) @@ -294,7 +295,7 @@ static WRITE16_DEVICE_HANDLER( tv_ncf_oki6395_w ) } static ADDRESS_MAP_START( tv_ncf_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x00000, 0x003ff) AM_RAM /*irq vector area*/ - AM_RANGE(0x00400, 0x03fff) AM_RAM AM_BASE_SIZE_GENERIC( nvram ) + AM_RANGE(0x00400, 0x03fff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x20000, 0x2ffff) AM_RAM AM_BASE(&blit_ram) /*blitter ram*/ AM_RANGE(0x40000, 0xbffff) AM_ROM AM_REGION("user1",0x40000) AM_RANGE(0xc0000, 0xfffff) AM_ROM AM_REGION("boot_prg",0) @@ -337,7 +338,7 @@ static WRITE16_HANDLER( tv_tcf_bankselect_w ) static ADDRESS_MAP_START( tv_tcf_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x00000, 0x003ff) AM_RAM /*irq vector area*/ - AM_RANGE(0x00400, 0x03fff) AM_RAM AM_BASE_SIZE_GENERIC( nvram ) + AM_RANGE(0x00400, 0x03fff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x40000, 0x5d4bf) AM_RAM AM_BASE(&blit_ram) /*blitter ram*/ AM_RANGE(0x7fe00, 0x7ffff) AM_RAM_WRITE( tv_tcf_paletteram_w ) AM_BASE_GENERIC(paletteram) AM_RANGE(0x80000, 0xbffff) AM_ROMBANK("bank1") @@ -395,7 +396,7 @@ static WRITE16_HANDLER( write2_w ) static ADDRESS_MAP_START( newmcard_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x00000, 0x003ff) AM_RAM /*irq vector area*/ - AM_RANGE(0x00400, 0x0ffff) AM_RAM AM_BASE_SIZE_GENERIC( nvram ) + AM_RANGE(0x00400, 0x0ffff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x40000, 0x7ffff) AM_RAM AM_BASE(&blit_ram) /*blitter ram*/ AM_RANGE(0x80000, 0xbffff) AM_ROMBANK("bank1") AM_RANGE(0xc0000, 0xfffff) AM_ROM AM_REGION("boot_prg",0) @@ -463,7 +464,7 @@ static WRITE16_HANDLER( brasil_status_w ) static ADDRESS_MAP_START( brasil_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x00000, 0x003ff) AM_RAM /*irq vector area*/ - AM_RANGE(0x00400, 0x0ffff) AM_RAM AM_BASE_SIZE_GENERIC( nvram ) + AM_RANGE(0x00400, 0x0ffff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x40000, 0x7ffff) AM_RAM AM_BASE(&blit_ram) /*blitter ram*/ AM_RANGE(0x80000, 0xbffff) AM_ROMBANK("bank1") AM_RANGE(0xc0000, 0xfffff) AM_ROM AM_REGION("boot_prg",0) @@ -871,7 +872,7 @@ static MACHINE_CONFIG_START( tv_vcf, driver_device ) MDRV_CPU_IO_MAP(tv_vcf_io) MDRV_CPU_VBLANK_INT("screen", vblank_irq) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") MDRV_SCREEN_ADD("screen", RASTER) MDRV_SCREEN_REFRESH_RATE(60) @@ -938,7 +939,7 @@ static MACHINE_CONFIG_START( brasil, driver_device ) MDRV_CPU_IO_MAP(brasil_io) MDRV_CPU_VBLANK_INT("screen", vblank_irq) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") MDRV_SCREEN_ADD("screen", RASTER) MDRV_SCREEN_REFRESH_RATE(60) diff --git a/src/mame/drivers/hnayayoi.c b/src/mame/drivers/hnayayoi.c index 3dc0bd6ddae..badc78276fe 100644 --- a/src/mame/drivers/hnayayoi.c +++ b/src/mame/drivers/hnayayoi.c @@ -36,6 +36,7 @@ TODO: #include "cpu/z80/z80.h" #include "sound/2203intf.h" #include "sound/msm5205.h" +#include "machine/nvram.h" #include "includes/hnayayoi.h" @@ -91,7 +92,7 @@ static WRITE8_DEVICE_HANDLER( adpcm_reset_inv_w ) static ADDRESS_MAP_START( hnayayoi_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x77ff) AM_ROM - AM_RANGE(0x7800, 0x7fff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x7800, 0x7fff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x8000, 0xffff) AM_ROM ADDRESS_MAP_END @@ -117,7 +118,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( hnfubuki_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x77ff) AM_ROM - AM_RANGE(0x7800, 0x7fff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x7800, 0x7fff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x8000, 0xfeff) AM_ROM AM_RANGE(0xff00, 0xff01) AM_DEVWRITE("ymsnd", ym2203_w) AM_RANGE(0xff02, 0xff03) AM_DEVREAD("ymsnd", ym2203_r) @@ -139,7 +140,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( untoucha_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x77ff) AM_ROM - AM_RANGE(0x7800, 0x7fff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x7800, 0x7fff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x8000, 0xffff) AM_ROM ADDRESS_MAP_END @@ -565,7 +566,7 @@ static MACHINE_CONFIG_START( hnayayoi, hnayayoi_state ) MDRV_MACHINE_START(hnayayoi) MDRV_MACHINE_RESET(hnayayoi) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ MDRV_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/hng64.c b/src/mame/drivers/hng64.c index e82fe02dc13..fc9b21930f4 100644 --- a/src/mame/drivers/hng64.c +++ b/src/mame/drivers/hng64.c @@ -445,6 +445,7 @@ or Fatal Fury for example). #include "cpu/nec/nec.h" #include "deprecat.h" #include "cpu/mips/mips3.h" +#include "machine/nvram.h" #include "includes/hng64.h" @@ -1049,7 +1050,7 @@ static ADDRESS_MAP_START( hng_map, ADDRESS_SPACE_PROGRAM, 32 ) AM_RANGE(0x1f700000, 0x1f702fff) AM_READWRITE(hng64_sysregs_r, hng64_sysregs_w) AM_BASE_MEMBER(hng64_state, sysregs) // SRAM. Coin data, Player Statistics, etc. - AM_RANGE(0x1F800000, 0x1F803fff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x1F800000, 0x1F803fff) AM_RAM AM_SHARE("nvram") // Dualport RAM AM_RANGE(0x1F808000, 0x1F8087ff) AM_READWRITE(hng64_dualport_r, hng64_dualport_w) AM_BASE_MEMBER(hng64_state, dualport) @@ -1729,7 +1730,7 @@ static MACHINE_CONFIG_START( hng64, hng64_state ) MDRV_CPU_PROGRAM_MAP(hng_comm_map) MDRV_CPU_IO_MAP(hng_comm_io_map) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") MDRV_GFXDECODE(hng64) MDRV_MACHINE_START(hyperneo) diff --git a/src/mame/drivers/holeland.c b/src/mame/drivers/holeland.c index 57c389cad16..9420339986c 100644 --- a/src/mame/drivers/holeland.c +++ b/src/mame/drivers/holeland.c @@ -14,6 +14,7 @@ #include "emu.h" #include "cpu/z80/z80.h" #include "sound/ay8910.h" +#include "machine/nvram.h" #include "includes/holeland.h" @@ -30,7 +31,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( crzrally_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0xbfff) AM_ROM - AM_RANGE(0xc000, 0xc7ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0xc000, 0xc7ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0xe000, 0xe3ff) AM_WRITE(holeland_colorram_w) AM_BASE_MEMBER(holeland_state, colorram) AM_RANGE(0xe400, 0xe7ff) AM_WRITE(holeland_videoram_w) AM_BASE_SIZE_MEMBER(holeland_state, videoram, videoram_size) AM_RANGE(0xe800, 0xebff) AM_RAM AM_BASE_SIZE_MEMBER(holeland_state, spriteram, spriteram_size) @@ -350,7 +351,7 @@ static MACHINE_CONFIG_START( crzrally, holeland_state ) MDRV_CPU_IO_MAP(io_map) MDRV_CPU_VBLANK_INT("screen", irq0_line_hold) - MDRV_NVRAM_HANDLER(generic_1fill) + MDRV_NVRAM_ADD_1FILL("nvram") /* video hardware */ MDRV_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/hyperspt.c b/src/mame/drivers/hyperspt.c index c771df1fb64..41c6f6d148d 100644 --- a/src/mame/drivers/hyperspt.c +++ b/src/mame/drivers/hyperspt.c @@ -14,6 +14,7 @@ Based on drivers from Juno First emulator by Chris Hardy (chrish@kcbbs.gen.nz) #include "sound/sn76496.h" #include "sound/vlm5030.h" #include "machine/konami1.h" +#include "machine/nvram.h" #include "includes/konamipt.h" #include "includes/trackfld.h" @@ -41,7 +42,7 @@ static ADDRESS_MAP_START( hyperspt_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x2000, 0x27ff) AM_RAM_WRITE(hyperspt_videoram_w) AM_BASE_MEMBER(trackfld_state, videoram) AM_RANGE(0x2800, 0x2fff) AM_RAM_WRITE(hyperspt_colorram_w) AM_BASE_MEMBER(trackfld_state, colorram) AM_RANGE(0x3000, 0x37ff) AM_RAM - AM_RANGE(0x3800, 0x3fff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x3800, 0x3fff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x4000, 0xffff) AM_ROM ADDRESS_MAP_END @@ -62,7 +63,7 @@ static ADDRESS_MAP_START( roadf_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x2000, 0x27ff) AM_RAM_WRITE(hyperspt_videoram_w) AM_BASE_MEMBER(trackfld_state, videoram) AM_RANGE(0x2800, 0x2fff) AM_RAM_WRITE(hyperspt_colorram_w) AM_BASE_MEMBER(trackfld_state, colorram) AM_RANGE(0x3000, 0x37ff) AM_RAM - AM_RANGE(0x3800, 0x3fff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x3800, 0x3fff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x4000, 0xffff) AM_ROM ADDRESS_MAP_END @@ -322,7 +323,7 @@ static MACHINE_CONFIG_START( hyperspt, trackfld_state ) MDRV_MACHINE_START(hyperspt) MDRV_MACHINE_RESET(hyperspt) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ MDRV_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/igs009.c b/src/mame/drivers/igs009.c index 73ffcc7de29..f62e8c041a8 100644 --- a/src/mame/drivers/igs009.c +++ b/src/mame/drivers/igs009.c @@ -20,6 +20,7 @@ NVRAM : Battery for main RAM #include "machine/8255ppi.h" #include "sound/2413intf.h" #include "sound/okim6295.h" +#include "machine/nvram.h" /*************************************************************************** Video Hardware @@ -409,7 +410,7 @@ static READ8_HANDLER( jingbell_magic_r ) static ADDRESS_MAP_START( jingbell_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE( 0x00000, 0x0f3ff ) AM_ROM - AM_RANGE( 0x0f400, 0x0ffff ) AM_RAM AM_BASE_SIZE_GENERIC( nvram ) + AM_RANGE( 0x0f400, 0x0ffff ) AM_RAM AM_SHARE("nvram") ADDRESS_MAP_END static ADDRESS_MAP_START( jingbell_portmap, ADDRESS_SPACE_IO, 8 ) @@ -639,7 +640,7 @@ static MACHINE_CONFIG_START( jingbell, driver_device ) MDRV_MACHINE_RESET(jingbell) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ MDRV_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/igs011.c b/src/mame/drivers/igs011.c index 537d6a71f9e..e278e9220e6 100644 --- a/src/mame/drivers/igs011.c +++ b/src/mame/drivers/igs011.c @@ -67,6 +67,7 @@ Notes: #include "sound/2413intf.h" #include "sound/3812intf.h" #include "sound/ics2115.h" +#include "machine/nvram.h" #define LOG_BLITTER 0 @@ -2007,7 +2008,7 @@ static ADDRESS_MAP_START( drgnwrld, ADDRESS_SPACE_PROGRAM, 16 ) // AM_RANGE( 0x01dd78, 0x01dd79 ) AM_READ ( igs011_prot1_r ) AM_RANGE( 0x000000, 0x07ffff ) AM_ROM - AM_RANGE( 0x100000, 0x103fff ) AM_RAM AM_BASE_SIZE_GENERIC( nvram ) + AM_RANGE( 0x100000, 0x103fff ) AM_RAM AM_SHARE("nvram") AM_RANGE( 0x200000, 0x200fff ) AM_RAM AM_BASE( &igs011_priority_ram ) AM_RANGE( 0x400000, 0x401fff ) AM_RAM_WRITE( igs011_palette ) AM_BASE_GENERIC( paletteram ) AM_RANGE( 0x500000, 0x500001 ) AM_READ_PORT( "COIN" ) @@ -2093,7 +2094,7 @@ static ADDRESS_MAP_START( lhb, ADDRESS_SPACE_PROGRAM, 16 ) // no reset AM_RANGE( 0x000000, 0x07ffff ) AM_ROM - AM_RANGE( 0x100000, 0x103fff ) AM_RAM AM_BASE_SIZE_GENERIC( nvram ) + AM_RANGE( 0x100000, 0x103fff ) AM_RAM AM_SHARE("nvram") AM_RANGE( 0x200000, 0x200fff ) AM_RAM AM_BASE( &igs011_priority_ram ) AM_RANGE( 0x300000, 0x3fffff ) AM_READWRITE( igs011_layers_r, igs011_layers_w ) AM_RANGE( 0x400000, 0x401fff ) AM_RAM_WRITE( igs011_palette ) AM_BASE_GENERIC( paletteram ) @@ -2134,7 +2135,7 @@ static ADDRESS_MAP_START( xymg, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE( 0x000000, 0x07ffff ) AM_ROM AM_RANGE( 0x100000, 0x103fff ) AM_RAM - AM_RANGE( 0x1f0000, 0x1f3fff ) AM_RAM AM_BASE_SIZE_GENERIC( nvram ) // extra ram + AM_RANGE( 0x1f0000, 0x1f3fff ) AM_RAM AM_SHARE("nvram") // extra ram AM_RANGE( 0x200000, 0x200fff ) AM_RAM AM_BASE( &igs011_priority_ram ) AM_RANGE( 0x300000, 0x3fffff ) AM_READWRITE( igs011_layers_r, igs011_layers_w ) AM_RANGE( 0x400000, 0x401fff ) AM_RAM_WRITE( igs011_palette ) AM_BASE_GENERIC( paletteram ) @@ -2170,7 +2171,7 @@ static ADDRESS_MAP_START( wlcc, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE( 0x519000, 0x5195ff ) AM_READ ( lhb_igs011_prot2_r ) // read AM_RANGE( 0x000000, 0x07ffff ) AM_ROM - AM_RANGE( 0x100000, 0x103fff ) AM_RAM AM_BASE_SIZE_GENERIC( nvram ) + AM_RANGE( 0x100000, 0x103fff ) AM_RAM AM_SHARE("nvram") AM_RANGE( 0x200000, 0x200fff ) AM_RAM AM_BASE( &igs011_priority_ram ) AM_RANGE( 0x300000, 0x3fffff ) AM_READWRITE( igs011_layers_r, igs011_layers_w ) AM_RANGE( 0x400000, 0x401fff ) AM_RAM_WRITE( igs011_palette ) AM_BASE_GENERIC( paletteram ) @@ -2209,7 +2210,7 @@ static ADDRESS_MAP_START( lhb2, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE( 0x020600, 0x0207ff ) AM_WRITE( igs011_prot2_reset_w ) // reset (55) AM_RANGE( 0x000000, 0x07ffff ) AM_ROM - AM_RANGE( 0x100000, 0x103fff ) AM_RAM AM_BASE_SIZE_GENERIC( nvram ) + AM_RANGE( 0x100000, 0x103fff ) AM_RAM AM_SHARE("nvram") AM_RANGE( 0x200000, 0x200001 ) AM_DEVREADWRITE8( "oki", okim6295_r, okim6295_w, 0x00ff ) AM_RANGE( 0x204000, 0x204003 ) AM_DEVWRITE8( "ymsnd", ym2413_w, 0x00ff ) AM_RANGE( 0x208000, 0x208003 ) AM_WRITE( lhb2_igs003_w ) @@ -2320,7 +2321,7 @@ static ADDRESS_MAP_START( vbowl, ADDRESS_SPACE_PROGRAM, 16 ) // AM_RANGE( 0x902000, 0x902005 ) AM_WRITE( igs012_prot_fake_r ) AM_RANGE( 0x000000, 0x07ffff ) AM_ROM - AM_RANGE( 0x100000, 0x103fff ) AM_RAM AM_BASE_SIZE_GENERIC( nvram ) + AM_RANGE( 0x100000, 0x103fff ) AM_RAM AM_SHARE("nvram") AM_RANGE( 0x200000, 0x200fff ) AM_RAM AM_BASE( &igs011_priority_ram ) AM_RANGE( 0x300000, 0x3fffff ) AM_READWRITE( igs011_layers_r, igs011_layers_w ) AM_RANGE( 0x400000, 0x401fff ) AM_RAM_WRITE( igs011_palette ) AM_BASE_GENERIC( paletteram ) @@ -3447,7 +3448,7 @@ GFXDECODE_END static MACHINE_CONFIG_START( igs011_base, driver_device ) MDRV_CPU_ADD("maincpu",M68000, XTAL_22MHz/3) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ MDRV_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/igs_m027.c b/src/mame/drivers/igs_m027.c index 73d82582829..dc9af81edfe 100644 --- a/src/mame/drivers/igs_m027.c +++ b/src/mame/drivers/igs_m027.c @@ -17,6 +17,7 @@ #include "emu.h" #include "cpu/arm7/arm7.h" #include "cpu/arm7/arm7core.h" +#include "machine/nvram.h" /*************************************************************************** @@ -370,7 +371,7 @@ static MACHINE_CONFIG_START( igs_majhong, driver_device ) MDRV_CPU_PROGRAM_MAP(igs_majhong_map) MDRV_CPU_VBLANK_INT("screen", igs_majhong_interrupt) - //MDRV_NVRAM_HANDLER(generic_0fill) + //MDRV_NVRAM_ADD_0FILL("nvram") MDRV_GFXDECODE(igs_m027) diff --git a/src/mame/drivers/ilpag.c b/src/mame/drivers/ilpag.c index 76163aaf057..ee3bc1d79c5 100644 --- a/src/mame/drivers/ilpag.c +++ b/src/mame/drivers/ilpag.c @@ -76,8 +76,19 @@ ROMs #include "cpu/m68000/m68000.h" #include "cpu/z80/z80.h" #include "sound/dac.h" +#include "machine/nvram.h" #include "deprecat.h" +class ilpag_state : public driver_device +{ +public: + ilpag_state(running_machine &machine, const driver_device_config_base &config) + : driver_device(machine, config), + m_nvram(*this, "nvram") { } + + required_shared_ptr<UINT16> m_nvram; +}; + static UINT16 *blit_romaddr,*blit_attr1_ram,*blit_dst_ram_loword,*blit_attr2_ram,*blit_dst_ram_hiword,*blit_vregs,*blit_transpen; static UINT8 *blit_buffer; @@ -251,7 +262,7 @@ static WRITE16_HANDLER( sound_write_w ) static ADDRESS_MAP_START( ilpag_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x000000, 0x0fffff) AM_ROM AM_RANGE(0x100000, 0x1fffff) AM_ROM AM_REGION("blit_data", 0) - AM_RANGE(0x200000, 0x20ffff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x200000, 0x20ffff) AM_RAM AM_SHARE("nvram") // AM_RANGE(0x800000, 0x800001) AM_READ(test_r) // AM_RANGE(0x880000, 0x880001) AM_READ(test_r) @@ -276,7 +287,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( steaser_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x000000, 0x03ffff) AM_ROM AM_RANGE(0x100000, 0x1fffff) AM_ROM AM_REGION("blit_data", 0) - AM_RANGE(0x200000, 0x20ffff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x200000, 0x20ffff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x800000, 0x800001) AM_READ(test_r) // AM_RANGE(0x840000, 0x840001) AM_WRITE(sound_write_w) @@ -418,7 +429,7 @@ static INPUT_PORTS_START( steaser ) PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_POKER_HOLD4 ) PORT_IMPULSE(1) INPUT_PORTS_END -static MACHINE_CONFIG_START( ilpag, driver_device ) +static MACHINE_CONFIG_START( ilpag, ilpag_state ) MDRV_CPU_ADD("maincpu", M68000, 11059200 ) // ? MDRV_CPU_PROGRAM_MAP(ilpag_map) MDRV_CPU_VBLANK_INT("screen",irq4_line_hold) //3 & 6 used, mcu comms? @@ -429,7 +440,7 @@ static MACHINE_CONFIG_START( ilpag, driver_device ) MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB32) MDRV_SCREEN_SIZE(512, 512) MDRV_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") MDRV_PALETTE_LENGTH(0x100) @@ -462,21 +473,22 @@ MACHINE_CONFIG_END static TIMER_DEVICE_CALLBACK( steaser_mcu_sim ) { + ilpag_state *state = timer.machine->driver_data<ilpag_state>(); // static int i; /*first off, signal the "MCU is running" flag*/ - timer.machine->generic.nvram.u16[0x932/2] = 0xffff; + state->m_nvram[0x932/2] = 0xffff; /*clear the inputs (they are impulsed)*/ // for(i=0;i<8;i+=2) -// timer->machine->generic.nvram.u16[((0x8a0)+i)/2] = 0; +// state->m_nvram[((0x8a0)+i)/2] = 0; /*finally, read the inputs*/ - timer.machine->generic.nvram.u16[0x89e/2] = input_port_read(timer.machine, "MENU") & 0xffff; - timer.machine->generic.nvram.u16[0x8a0/2] = input_port_read(timer.machine, "STAT") & 0xffff; - timer.machine->generic.nvram.u16[0x8a2/2] = input_port_read(timer.machine, "BET_DEAL") & 0xffff; - timer.machine->generic.nvram.u16[0x8a4/2] = input_port_read(timer.machine, "TAKE_DOUBLE") & 0xffff; - timer.machine->generic.nvram.u16[0x8a6/2] = input_port_read(timer.machine, "SMALL_BIG") & 0xffff; - timer.machine->generic.nvram.u16[0x8a8/2] = input_port_read(timer.machine, "CANCEL_HOLD1") & 0xffff; - timer.machine->generic.nvram.u16[0x8aa/2] = input_port_read(timer.machine, "HOLD2_HOLD3") & 0xffff; - timer.machine->generic.nvram.u16[0x8ac/2] = input_port_read(timer.machine, "HOLD4_HOLD5") & 0xffff; + state->m_nvram[0x89e/2] = input_port_read(timer.machine, "MENU") & 0xffff; + state->m_nvram[0x8a0/2] = input_port_read(timer.machine, "STAT") & 0xffff; + state->m_nvram[0x8a2/2] = input_port_read(timer.machine, "BET_DEAL") & 0xffff; + state->m_nvram[0x8a4/2] = input_port_read(timer.machine, "TAKE_DOUBLE") & 0xffff; + state->m_nvram[0x8a6/2] = input_port_read(timer.machine, "SMALL_BIG") & 0xffff; + state->m_nvram[0x8a8/2] = input_port_read(timer.machine, "CANCEL_HOLD1") & 0xffff; + state->m_nvram[0x8aa/2] = input_port_read(timer.machine, "HOLD2_HOLD3") & 0xffff; + state->m_nvram[0x8ac/2] = input_port_read(timer.machine, "HOLD4_HOLD5") & 0xffff; } /* TODO: remove this hack.*/ diff --git a/src/mame/drivers/irobot.c b/src/mame/drivers/irobot.c index 88756824351..ab81d8b0866 100644 --- a/src/mame/drivers/irobot.c +++ b/src/mame/drivers/irobot.c @@ -80,6 +80,7 @@ #include "emu.h" #include "cpu/m6809/m6809.h" #include "sound/pokey.h" +#include "machine/nvram.h" #include "includes/irobot.h" #define MAIN_CLOCK XTAL_12_096MHz @@ -93,7 +94,8 @@ static WRITE8_HANDLER( irobot_nvram_w ) { - space->machine->generic.nvram.u8[offset] = data & 0x0f; + irobot_state *state = space->machine->driver_data<irobot_state>(); + state->m_nvram[offset] = data & 0x0f; } @@ -134,7 +136,7 @@ static ADDRESS_MAP_START( irobot_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x1140, 0x1140) AM_WRITE(irobot_statwr_w) AM_RANGE(0x1180, 0x1180) AM_WRITE(irobot_out0_w) AM_RANGE(0x11c0, 0x11c0) AM_WRITE(irobot_rom_banksel_w) - AM_RANGE(0x1200, 0x12ff) AM_RAM_WRITE(irobot_nvram_w) AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x1200, 0x12ff) AM_RAM_WRITE(irobot_nvram_w) AM_SHARE("nvram") AM_RANGE(0x1300, 0x13ff) AM_READ(irobot_control_r) AM_RANGE(0x1400, 0x143f) AM_READWRITE(quad_pokey_r, quad_pokey_w) AM_RANGE(0x1800, 0x18ff) AM_WRITE(irobot_paletteram_w) @@ -287,14 +289,14 @@ static const pokey_interface pokey_config = * *************************************/ -static MACHINE_CONFIG_START( irobot, driver_device ) +static MACHINE_CONFIG_START( irobot, irobot_state ) /* basic machine hardware */ MDRV_CPU_ADD("maincpu", M6809, MAIN_CLOCK/8) MDRV_CPU_PROGRAM_MAP(irobot_map) MDRV_MACHINE_RESET(irobot) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ MDRV_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/jangou.c b/src/mame/drivers/jangou.c index ae0a352bcae..06f65f1474b 100644 --- a/src/mame/drivers/jangou.c +++ b/src/mame/drivers/jangou.c @@ -30,6 +30,7 @@ $c088-$c095 player tiles #include "sound/hc55516.h" #include "sound/msm5205.h" #include "video/resnet.h" +#include "machine/nvram.h" #define MASTER_CLOCK XTAL_19_968MHz @@ -481,7 +482,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( roylcrdn_cpu0_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x2fff) AM_ROM - AM_RANGE(0x7000, 0x77ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) /* MK48Z02B-15 ZEROPOWER RAM */ + AM_RANGE(0x7000, 0x77ff) AM_RAM AM_SHARE("nvram") /* MK48Z02B-15 ZEROPOWER RAM */ ADDRESS_MAP_END static ADDRESS_MAP_START( roylcrdn_cpu0_io, ADDRESS_SPACE_IO, 8 ) @@ -1074,7 +1075,7 @@ static MACHINE_CONFIG_DERIVED( roylcrdn, jangou ) MDRV_DEVICE_REMOVE("cpu1") - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") MDRV_MACHINE_START(common) MDRV_MACHINE_RESET(common) diff --git a/src/mame/drivers/jedi.c b/src/mame/drivers/jedi.c index 5cfb62637ff..a3d4bf8d9b0 100644 --- a/src/mame/drivers/jedi.c +++ b/src/mame/drivers/jedi.c @@ -112,6 +112,7 @@ #include "emu.h" #include "cpu/m6502/m6502.h" +#include "machine/nvram.h" #include "includes/jedi.h" @@ -248,7 +249,7 @@ static WRITE8_HANDLER( nvram_data_w ) jedi_state *state = space->machine->driver_data<jedi_state>(); if (state->nvram_enabled) - space->machine->generic.nvram.u8[offset] = data; + state->m_nvram[offset] = data; } @@ -269,7 +270,7 @@ static WRITE8_HANDLER( nvram_enable_w ) static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x07ff) AM_RAM - AM_RANGE(0x0800, 0x08ff) AM_MIRROR(0x0300) AM_RAM_WRITE(nvram_data_w) AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x0800, 0x08ff) AM_MIRROR(0x0300) AM_RAM_WRITE(nvram_data_w) AM_SHARE("nvram") AM_RANGE(0x0c00, 0x0c00) AM_MIRROR(0x03fe) AM_READ_PORT("0c00") AM_WRITENOP AM_RANGE(0x0c01, 0x0c01) AM_MIRROR(0x03fe) AM_READ_PORT("0c01") AM_WRITENOP AM_RANGE(0x1000, 0x13ff) AM_NOP @@ -351,7 +352,7 @@ static MACHINE_CONFIG_START( jedi, jedi_state ) MDRV_MACHINE_START(jedi) MDRV_MACHINE_RESET(jedi) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ MDRV_FRAGMENT_ADD(jedi_video) diff --git a/src/mame/drivers/jokrwild.c b/src/mame/drivers/jokrwild.c index 0784e836eba..ed996910409 100644 --- a/src/mame/drivers/jokrwild.c +++ b/src/mame/drivers/jokrwild.c @@ -94,6 +94,7 @@ #include "cpu/m6809/m6809.h" #include "video/mc6845.h" #include "machine/6821pia.h" +#include "machine/nvram.h" /************************* @@ -461,7 +462,7 @@ static MACHINE_CONFIG_START( jokrwild, driver_device ) MDRV_CPU_PROGRAM_MAP(jokrwild_map) MDRV_CPU_VBLANK_INT("screen", nmi_line_pulse) -// MDRV_NVRAM_HANDLER(generic_0fill) +// MDRV_NVRAM_ADD_0FILL("nvram") MDRV_PIA6821_ADD("pia0", pia0_intf) MDRV_PIA6821_ADD("pia1", pia1_intf) diff --git a/src/mame/drivers/jpmimpct.c b/src/mame/drivers/jpmimpct.c index c1d663b9a9a..0dc1082813a 100644 --- a/src/mame/drivers/jpmimpct.c +++ b/src/mame/drivers/jpmimpct.c @@ -83,6 +83,7 @@ #include "sound/upd7759.h" #include "includes/jpmimpct.h" #include "machine/meters.h" +#include "machine/nvram.h" /************************************* * @@ -623,7 +624,7 @@ static WRITE16_HANDLER( jpmio_w ) static ADDRESS_MAP_START( m68k_program_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x00000000, 0x000fffff) AM_ROM AM_RANGE(0x00100000, 0x001fffff) AM_ROM - AM_RANGE(0x00400000, 0x00403fff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x00400000, 0x00403fff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x00480000, 0x0048001f) AM_READWRITE(duart_1_r, duart_1_w) AM_RANGE(0x00480020, 0x00480033) AM_READ(inputs1_r) AM_RANGE(0x00480034, 0x00480035) AM_READ(unk_r) @@ -856,7 +857,7 @@ static MACHINE_CONFIG_START( jpmimpct, driver_device ) MDRV_QUANTUM_TIME(HZ(30000)) MDRV_MACHINE_START(jpmimpct) MDRV_MACHINE_RESET(jpmimpct) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") MDRV_TIMER_ADD( "duart_1_timer", duart_1_timer_event) @@ -1294,7 +1295,7 @@ static READ16_HANDLER( ump_r ) static ADDRESS_MAP_START( awp68k_program_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x00000000, 0x000fffff) AM_ROM AM_RANGE(0x00100000, 0x001fffff) AM_ROM - AM_RANGE(0x00400000, 0x00403fff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x00400000, 0x00403fff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x00480000, 0x0048001f) AM_READWRITE(duart_1_r, duart_1_w) AM_RANGE(0x00480020, 0x00480033) AM_READ(inputs1_r) AM_RANGE(0x00480034, 0x00480035) AM_READ(ump_r) @@ -1329,7 +1330,7 @@ static MACHINE_CONFIG_START( impctawp, driver_device ) MDRV_MACHINE_START(impctawp) MDRV_MACHINE_RESET(impctawp) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") MDRV_PPI8255_ADD( "ppi8255_0", ppi8255_intf[0] ) diff --git a/src/mame/drivers/jpmsys5.c b/src/mame/drivers/jpmsys5.c index 7594b5543ba..1a448165214 100644 --- a/src/mame/drivers/jpmsys5.c +++ b/src/mame/drivers/jpmsys5.c @@ -24,6 +24,7 @@ #include "sound/2413intf.h" #include "sound/upd7759.h" #include "video/tms34061.h" +#include "machine/nvram.h" /************************************* @@ -282,7 +283,7 @@ static ADDRESS_MAP_START( 68000_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x000000, 0x01ffff) AM_ROM AM_RANGE(0x01fffe, 0x01ffff) AM_WRITE(rombank_w) AM_RANGE(0x020000, 0x03ffff) AM_ROMBANK("bank1") - AM_RANGE(0x040000, 0x043fff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x040000, 0x043fff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x046000, 0x046001) AM_WRITENOP AM_RANGE(0x046020, 0x046021) AM_DEVREADWRITE8("acia6850_0", acia6850_stat_r, acia6850_ctrl_w, 0xff) AM_RANGE(0x046022, 0x046023) AM_DEVREADWRITE8("acia6850_0", acia6850_data_r, acia6850_data_w, 0xff) @@ -602,7 +603,7 @@ static MACHINE_CONFIG_START( jpmsys5v, driver_device ) MDRV_ACIA6850_ADD("acia6850_1", acia1_if) MDRV_ACIA6850_ADD("acia6850_2", acia2_if) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") MDRV_MACHINE_START(jpmsys5v) MDRV_MACHINE_RESET(jpmsys5v) diff --git a/src/mame/drivers/kingdrby.c b/src/mame/drivers/kingdrby.c index 43476ba976b..6a46df0d961 100644 --- a/src/mame/drivers/kingdrby.c +++ b/src/mame/drivers/kingdrby.c @@ -70,6 +70,7 @@ sg1_b.e1 4096 0x92ef3c13 D2732D #include "sound/ay8910.h" #include "sound/okim6295.h" #include "sound/2203intf.h" +#include "machine/nvram.h" #define CLK_1 XTAL_20MHz #define CLK_2 XTAL_3_579545MHz @@ -357,7 +358,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( slave_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x2fff) AM_ROM AM_RANGE(0x3000, 0x3fff) AM_ROM //sound rom tested for the post check - AM_RANGE(0x4000, 0x43ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) //backup ram + AM_RANGE(0x4000, 0x43ff) AM_RAM AM_SHARE("nvram") //backup ram AM_RANGE(0x5000, 0x5003) AM_DEVREADWRITE("ppi8255_0", ppi8255_r, ppi8255_w) /* I/O Ports */ AM_RANGE(0x6000, 0x6003) AM_DEVREADWRITE("ppi8255_1", ppi8255_r, ppi8255_w) /* I/O Ports */ AM_RANGE(0x7000, 0x73ff) AM_RAM AM_SHARE("share1") @@ -377,7 +378,7 @@ static WRITE8_HANDLER( kingdrbb_lamps_w ) static ADDRESS_MAP_START( slave_1986_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x2fff) AM_ROM AM_RANGE(0x3000, 0x3fff) AM_ROM //sound rom tested for the post check - AM_RANGE(0x4000, 0x47ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) //backup ram + AM_RANGE(0x4000, 0x47ff) AM_RAM AM_SHARE("nvram") //backup ram AM_RANGE(0x5000, 0x5003) AM_DEVREADWRITE("ppi8255_0", ppi8255_r, ppi8255_w) /* I/O Ports */ // AM_RANGE(0x6000, 0x6003) AM_DEVREADWRITE("ppi8255_1", ppi8255_r, ppi8255_w) /* I/O Ports */ AM_RANGE(0x7000, 0x73ff) AM_RAM AM_SHARE("share1") @@ -983,7 +984,7 @@ static MACHINE_CONFIG_START( kingdrby, driver_device ) MDRV_QUANTUM_PERFECT_CPU("master") - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") MDRV_PPI8255_ADD( "ppi8255_0", ppi8255_intf[0] ) MDRV_PPI8255_ADD( "ppi8255_1", ppi8255_intf[1] ) diff --git a/src/mame/drivers/kingpin.c b/src/mame/drivers/kingpin.c index b7cf7dee17c..99876a011a7 100644 --- a/src/mame/drivers/kingpin.c +++ b/src/mame/drivers/kingpin.c @@ -23,6 +23,7 @@ Todo: #include "cpu/z80/z80.h" #include "video/tms9928a.h" #include "sound/ay8910.h" +#include "machine/nvram.h" static READ8_HANDLER( io_read_missing_dips ) { @@ -89,7 +90,7 @@ INPUT_PORTS_END /* A 3.6V battery traces directly to U19, rendering it nvram */ static ADDRESS_MAP_START( kingpin_program_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0xdfff) AM_ROM - AM_RANGE(0xf000, 0xf7ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0xf000, 0xf7ff) AM_RAM AM_SHARE("nvram") ADDRESS_MAP_END static ADDRESS_MAP_START( kingpin_io_map, ADDRESS_SPACE_IO, 8 ) @@ -158,7 +159,7 @@ static MACHINE_CONFIG_START( kingpin, driver_device ) MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) MDRV_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") /* Sound chip is a AY-3-8912 */ /* diff --git a/src/mame/drivers/lastfght.c b/src/mame/drivers/lastfght.c index 9b7fbc5f882..fe6c52aa2b2 100644 --- a/src/mame/drivers/lastfght.c +++ b/src/mame/drivers/lastfght.c @@ -65,6 +65,7 @@ Notes: #include "emu.h" #include "deprecat.h" #include "cpu/h83002/h8.h" +#include "machine/nvram.h" class lastfght_state : public driver_device { @@ -413,7 +414,7 @@ static ADDRESS_MAP_START( lastfght_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE( 0x000000, 0x07ffff ) AM_ROM AM_REGION("maincpu", 0) AM_RANGE( 0x080000, 0x0fffff ) AM_ROM AM_REGION("maincpu", 0) - AM_RANGE( 0x200000, 0x20ffff ) AM_RAM AM_BASE_SIZE_GENERIC(nvram) // battery + AM_RANGE( 0x200000, 0x20ffff ) AM_RAM AM_SHARE("nvram") // battery AM_RANGE( 0x600000, 0x600001 ) AM_WRITE( lastfght_hi_w ) AM_RANGE( 0x600002, 0x600003 ) AM_READWRITE( lastfght_sound_r, lastfght_sound_w ) @@ -575,7 +576,7 @@ static MACHINE_CONFIG_START( lastfght, lastfght_state ) MDRV_CPU_PROGRAM_MAP( lastfght_map) MDRV_CPU_VBLANK_INT_HACK(unknown_interrupt,2) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") MDRV_MACHINE_START(lastfght) MDRV_MACHINE_RESET(lastfght) diff --git a/src/mame/drivers/lucky74.c b/src/mame/drivers/lucky74.c index 4d1c708598c..ac79fcf4cc5 100644 --- a/src/mame/drivers/lucky74.c +++ b/src/mame/drivers/lucky74.c @@ -672,6 +672,7 @@ #include "sound/sn76496.h" #include "sound/msm5205.h" #include "machine/8255ppi.h" +#include "machine/nvram.h" #include "lucky74.lh" #include "includes/lucky74.h" @@ -811,7 +812,7 @@ static INTERRUPT_GEN( nmi_interrupt ) static ADDRESS_MAP_START( lucky74_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0xbfff) AM_ROM - AM_RANGE(0xc000, 0xcfff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) /* NVRAM */ + AM_RANGE(0xc000, 0xcfff) AM_RAM AM_SHARE("nvram") /* NVRAM */ AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE(lucky74_fg_videoram_w) AM_BASE(&lucky74_fg_videoram) /* VRAM1-1 */ AM_RANGE(0xd800, 0xdfff) AM_RAM_WRITE(lucky74_fg_colorram_w) AM_BASE(&lucky74_fg_colorram) /* VRAM1-2 */ AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(lucky74_bg_videoram_w) AM_BASE(&lucky74_bg_videoram) /* VRAM2-1 */ @@ -1237,7 +1238,7 @@ static MACHINE_CONFIG_START( lucky74, driver_device ) MDRV_CPU_IO_MAP(lucky74_portmap) MDRV_CPU_VBLANK_INT("screen", nmi_interrupt) /* 60 Hz. measured */ - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") MDRV_SOUND_START(lucky74) diff --git a/src/mame/drivers/lvcards.c b/src/mame/drivers/lvcards.c index 782058119e6..dfb84c4be86 100644 --- a/src/mame/drivers/lvcards.c +++ b/src/mame/drivers/lvcards.c @@ -76,6 +76,7 @@ TODO: #include "emu.h" #include "cpu/z80/z80.h" #include "sound/ay8910.h" +#include "machine/nvram.h" #include "includes/lvcards.h" static UINT8 payout; @@ -149,7 +150,7 @@ static READ8_HANDLER( payout_r ) static ADDRESS_MAP_START( ponttehk_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x5fff) AM_ROM - AM_RANGE(0x6000, 0x67ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x6000, 0x67ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x8000, 0x83ff) AM_RAM_WRITE(lvcards_videoram_w) AM_BASE(&lvcards_videoram) AM_RANGE(0x8400, 0x87ff) AM_RAM_WRITE(lvcards_colorram_w) AM_BASE(&lvcards_colorram) AM_RANGE(0xa000, 0xa000) AM_READ_PORT("IN0") @@ -159,7 +160,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( lvcards_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x5fff) AM_ROM - AM_RANGE(0x6000, 0x67ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x6000, 0x67ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x9000, 0x93ff) AM_RAM_WRITE(lvcards_videoram_w) AM_BASE(&lvcards_videoram) AM_RANGE(0x9400, 0x97ff) AM_RAM_WRITE(lvcards_colorram_w) AM_BASE(&lvcards_colorram) AM_RANGE(0xa000, 0xa000) AM_READ_PORT("IN0") @@ -176,7 +177,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( lvpoker_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x5fff) AM_ROM - AM_RANGE(0x6000, 0x67ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x6000, 0x67ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x9000, 0x93ff) AM_RAM_WRITE(lvcards_videoram_w) AM_BASE(&lvcards_videoram) AM_RANGE(0x9400, 0x97ff) AM_RAM_WRITE(lvcards_colorram_w) AM_BASE(&lvcards_colorram) AM_RANGE(0xa000, 0xa000) AM_READ_PORT("IN0") @@ -496,7 +497,7 @@ MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( lvpoker, lvcards ) // basic machine hardware - MDRV_NVRAM_HANDLER(generic_1fill) + MDRV_NVRAM_ADD_1FILL("nvram") MDRV_CPU_MODIFY("maincpu") MDRV_CPU_PROGRAM_MAP(lvpoker_map) MDRV_MACHINE_START(lvpoker) @@ -506,7 +507,7 @@ MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( ponttehk, lvcards ) // basic machine hardware - MDRV_NVRAM_HANDLER(generic_1fill) + MDRV_NVRAM_ADD_1FILL("nvram") MDRV_CPU_MODIFY("maincpu") MDRV_CPU_PROGRAM_MAP(ponttehk_map) MDRV_MACHINE_RESET(lvpoker) diff --git a/src/mame/drivers/magic10.c b/src/mame/drivers/magic10.c index eb25068ed4b..eab452adf2b 100644 --- a/src/mame/drivers/magic10.c +++ b/src/mame/drivers/magic10.c @@ -78,6 +78,7 @@ #include "emu.h" #include "cpu/m68000/m68000.h" #include "sound/okim6295.h" +#include "machine/nvram.h" #include "sgsafari.lh" static tilemap_t *layer0_tilemap, *layer1_tilemap, *layer2_tilemap; @@ -263,7 +264,7 @@ static ADDRESS_MAP_START( magic10_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x100000, 0x100fff) AM_RAM_WRITE(layer1_videoram_w) AM_BASE(&layer1_videoram) AM_RANGE(0x101000, 0x101fff) AM_RAM_WRITE(layer0_videoram_w) AM_BASE(&layer0_videoram) AM_RANGE(0x102000, 0x103fff) AM_RAM_WRITE(layer2_videoram_w) AM_BASE(&layer2_videoram) - AM_RANGE(0x200000, 0x2007ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x200000, 0x2007ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x300000, 0x3001ff) AM_RAM_WRITE(paletteram_w) AM_BASE_GENERIC(paletteram) AM_RANGE(0x400000, 0x400001) AM_READ_PORT("INPUTS") AM_RANGE(0x400002, 0x400003) AM_READ_PORT("DSW") @@ -279,7 +280,7 @@ static ADDRESS_MAP_START( magic10a_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x100000, 0x100fff) AM_RAM_WRITE(layer1_videoram_w) AM_BASE(&layer1_videoram) AM_RANGE(0x101000, 0x101fff) AM_RAM_WRITE(layer0_videoram_w) AM_BASE(&layer0_videoram) AM_RANGE(0x102000, 0x103fff) AM_RAM_WRITE(layer2_videoram_w) AM_BASE(&layer2_videoram) - AM_RANGE(0x200000, 0x2007ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x200000, 0x2007ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x300000, 0x3001ff) AM_RAM_WRITE(paletteram_w) AM_BASE_GENERIC(paletteram) AM_RANGE(0x500000, 0x500001) AM_READ_PORT("INPUTS") AM_RANGE(0x500002, 0x500003) AM_READ_PORT("DSW") @@ -295,7 +296,7 @@ static ADDRESS_MAP_START( magic102_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x100000, 0x100fff) AM_RAM_WRITE(layer1_videoram_w) AM_BASE(&layer1_videoram) AM_RANGE(0x101000, 0x101fff) AM_RAM_WRITE(layer0_videoram_w) AM_BASE(&layer0_videoram) AM_RANGE(0x102000, 0x103fff) AM_RAM_WRITE(layer2_videoram_w) AM_BASE(&layer2_videoram) - AM_RANGE(0x200000, 0x2007ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x200000, 0x2007ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x400000, 0x4001ff) AM_RAM_WRITE(paletteram_w) AM_BASE_GENERIC(paletteram) AM_RANGE(0x500000, 0x500001) AM_READ(magic102_r) AM_RANGE(0x500004, 0x500005) AM_READNOP // gives credits @@ -314,7 +315,7 @@ static ADDRESS_MAP_START( hotslot_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x100000, 0x100fff) AM_RAM_WRITE(layer1_videoram_w) AM_BASE(&layer1_videoram) AM_RANGE(0x101000, 0x101fff) AM_RAM_WRITE(layer0_videoram_w) AM_BASE(&layer0_videoram) AM_RANGE(0x102000, 0x103fff) AM_RAM_WRITE(layer2_videoram_w) AM_BASE(&layer2_videoram) - AM_RANGE(0x200000, 0x2007ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x200000, 0x2007ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x400000, 0x4001ff) AM_RAM_WRITE(paletteram_w) AM_BASE_GENERIC(paletteram) AM_RANGE(0x500004, 0x500005) AM_READWRITE(hotslot_copro_r, hotslot_copro_w) // copro comm AM_RANGE(0x500006, 0x500011) AM_RAM @@ -333,7 +334,7 @@ static ADDRESS_MAP_START( sgsafari_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x100000, 0x100fff) AM_RAM_WRITE(layer1_videoram_w) AM_BASE(&layer1_videoram) AM_RANGE(0x101000, 0x101fff) AM_RAM_WRITE(layer0_videoram_w) AM_BASE(&layer0_videoram) AM_RANGE(0x102000, 0x103fff) AM_RAM_WRITE(layer2_videoram_w) AM_BASE(&layer2_videoram) - AM_RANGE(0x200000, 0x203fff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x200000, 0x203fff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x300000, 0x3001ff) AM_RAM_WRITE(paletteram_w) AM_BASE_GENERIC(paletteram) AM_RANGE(0x500002, 0x500003) AM_READ_PORT("DSW1") AM_RANGE(0x500008, 0x500009) AM_WRITE(magic10_out_w) @@ -651,7 +652,7 @@ static MACHINE_CONFIG_START( magic10, driver_device ) MDRV_CPU_PROGRAM_MAP(magic10_map) MDRV_CPU_VBLANK_INT("screen", irq1_line_hold) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") MDRV_SCREEN_ADD("screen", RASTER) MDRV_SCREEN_REFRESH_RATE(60) diff --git a/src/mame/drivers/magicfly.c b/src/mame/drivers/magicfly.c index 570dde8f546..8538d0c29da 100644 --- a/src/mame/drivers/magicfly.c +++ b/src/mame/drivers/magicfly.c @@ -399,6 +399,7 @@ #include "cpu/m6502/m6502.h" #include "video/mc6845.h" #include "sound/dac.h" +#include "machine/nvram.h" /************************* @@ -555,7 +556,7 @@ static WRITE8_HANDLER( mux_port_w ) *************************/ static ADDRESS_MAP_START( magicfly_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x07ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) /* MK48Z02B NVRAM */ + AM_RANGE(0x0000, 0x07ff) AM_RAM AM_SHARE("nvram") /* MK48Z02B NVRAM */ AM_RANGE(0x0800, 0x0800) AM_DEVWRITE("crtc", mc6845_address_w) AM_RANGE(0x0801, 0x0801) AM_DEVREADWRITE("crtc", mc6845_register_r, mc6845_register_w) AM_RANGE(0x1000, 0x13ff) AM_RAM_WRITE(magicfly_videoram_w) AM_BASE(&videoram) /* HM6116LP #1 (2K x 8) RAM (only 1st half used) */ @@ -762,7 +763,7 @@ static MACHINE_CONFIG_START( magicfly, driver_device ) MDRV_CPU_PROGRAM_MAP(magicfly_map) MDRV_CPU_VBLANK_INT("screen", nmi_line_pulse) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ MDRV_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/malzak.c b/src/mame/drivers/malzak.c index 53e18873485..20e6215519e 100644 --- a/src/mame/drivers/malzak.c +++ b/src/mame/drivers/malzak.c @@ -68,6 +68,7 @@ #include "sound/s2636.h" #include "video/s2636.h" #include "video/saa5050.h" +#include "machine/nvram.h" #include "includes/malzak.h" @@ -130,7 +131,7 @@ static ADDRESS_MAP_START( malzak2_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x1400, 0x14ff) AM_MIRROR(0x6000) AM_DEVREADWRITE("s2636_0", s2636_work_ram_r, s2636_work_ram_w) AM_RANGE(0x1500, 0x15ff) AM_MIRROR(0x6000) AM_DEVREADWRITE("s2636_1", s2636_work_ram_r, s2636_work_ram_w) AM_RANGE(0x1600, 0x16ff) AM_MIRROR(0x6000) AM_RAM_WRITE(malzak_playfield_w) - AM_RANGE(0x1700, 0x17ff) AM_MIRROR(0x6000) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x1700, 0x17ff) AM_MIRROR(0x6000) AM_RAM AM_SHARE("nvram") AM_RANGE(0x1800, 0x1fff) AM_MIRROR(0x6000) AM_DEVREADWRITE("saa5050", saa5050_videoram_r, saa5050_videoram_w) AM_RANGE(0x2000, 0x2fff) AM_ROM AM_RANGE(0x4000, 0x4fff) AM_ROM @@ -445,7 +446,7 @@ static MACHINE_CONFIG_DERIVED( malzak2, malzak ) MDRV_CPU_MODIFY( "maincpu" ) MDRV_CPU_PROGRAM_MAP(malzak2_map) - MDRV_NVRAM_HANDLER( generic_0fill ) + MDRV_NVRAM_ADD_0FILL("nvram") MACHINE_CONFIG_END ROM_START( malzak ) diff --git a/src/mame/drivers/mastboy.c b/src/mame/drivers/mastboy.c index 47e2aa3eabc..e615bdf5c7f 100644 --- a/src/mame/drivers/mastboy.c +++ b/src/mame/drivers/mastboy.c @@ -437,6 +437,7 @@ #include "cpu/z180/z180.h" #include "sound/saa1099.h" #include "sound/msm5205.h" +#include "machine/nvram.h" /* RAM areas */ static UINT8* mastboy_tileram; @@ -456,6 +457,17 @@ static int mastboy_m5205_next; static int mastboy_m5205_part; static int mastboy_m5205_sambit0, mastboy_m5205_sambit1; +class mastboy_state : public driver_device +{ +public: + mastboy_state(running_machine &machine, const driver_device_config_base &config) + : driver_device(machine, config), + m_nvram(*this, "nvram") { } + + required_shared_ptr<UINT8> m_nvram; +}; + + /* VIDEO EMULATION */ static VIDEO_START(mastboy) @@ -583,14 +595,16 @@ static WRITE8_HANDLER( mastboy_bank_w ) static READ8_HANDLER( mastboy_backupram_r ) { - return space->machine->generic.nvram.u8[offset]; + mastboy_state *state = space->machine->driver_data<mastboy_state>(); + return state->m_nvram[offset]; } static WRITE8_HANDLER( mastboy_backupram_w ) { + mastboy_state *state = space->machine->driver_data<mastboy_state>(); // if (mastboy_backupram_enabled) // { - space->machine->generic.nvram.u8[offset] = data; + state->m_nvram[offset] = data; // } // else // { @@ -685,7 +699,7 @@ static ADDRESS_MAP_START( mastboy_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0xc000, 0xffff) AM_READWRITE(banked_ram_r,banked_ram_w) // mastboy bank area read / write - AM_RANGE(0xff000, 0xff7ff) AM_READWRITE(mastboy_backupram_r,mastboy_backupram_w) AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0xff000, 0xff7ff) AM_READWRITE(mastboy_backupram_r,mastboy_backupram_w) AM_SHARE("nvram") AM_RANGE(0xff800, 0xff807) AM_READ_PORT("P1") AM_RANGE(0xff808, 0xff80f) AM_READ_PORT("P2") @@ -855,13 +869,13 @@ static MACHINE_RESET( mastboy ) -static MACHINE_CONFIG_START( mastboy, driver_device ) +static MACHINE_CONFIG_START( mastboy, mastboy_state ) MDRV_CPU_ADD("maincpu", Z180, 12000000/2) /* HD647180X0CP6-1M1R */ MDRV_CPU_PROGRAM_MAP(mastboy_map) MDRV_CPU_IO_MAP(mastboy_io_map) MDRV_CPU_VBLANK_INT("screen", mastboy_interrupt) - MDRV_NVRAM_HANDLER(generic_1fill) + MDRV_NVRAM_ADD_1FILL("nvram") MDRV_MACHINE_RESET( mastboy ) diff --git a/src/mame/drivers/maygay1b.c b/src/mame/drivers/maygay1b.c index f88d8a97cff..950fd8ca6f4 100644 --- a/src/mame/drivers/maygay1b.c +++ b/src/mame/drivers/maygay1b.c @@ -21,6 +21,7 @@ #include "sound/ay8910.h" #include "sound/2413intf.h" #include "sound/okim6376.h" +#include "machine/nvram.h" #define VERBOSE 1 #define LOG(x) do { if (VERBOSE) logerror x; } while (0) @@ -746,7 +747,7 @@ static WRITE8_HANDLER( m1_latch_w ) static ADDRESS_MAP_START( m1_memmap, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x1fff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x0000, 0x1fff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x2000, 0x2000) AM_WRITE(reel12_w) AM_RANGE(0x2010, 0x2010) AM_WRITE(reel34_w) @@ -811,7 +812,7 @@ static MACHINE_CONFIG_START( m1, driver_device ) MDRV_SOUND_ADD("msm6376", OKIM6376, M1_MASTER_CLOCK/4) //? MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") MDRV_DEFAULT_LAYOUT(layout_awpvid16) MACHINE_CONFIG_END diff --git a/src/mame/drivers/maygayv1.c b/src/mame/drivers/maygayv1.c index f1e136ee3ca..0e0ece8a3ff 100644 --- a/src/mame/drivers/maygayv1.c +++ b/src/mame/drivers/maygayv1.c @@ -132,6 +132,7 @@ Find lamps/reels after UPD changes. #include "machine/68681.h" #include "sound/2413intf.h" #include "sound/upd7759.h" +#include "machine/nvram.h" /************************************* @@ -641,7 +642,7 @@ static WRITE16_HANDLER( vsync_int_ctrl ) static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x000000, 0x07ffff) AM_ROM - AM_RANGE(0x080000, 0x083fff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x080000, 0x083fff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x100000, 0x17ffff) AM_ROM AM_REGION("maincpu", 0x80000) AM_RANGE(0x820000, 0x820003) AM_READWRITE(maygay_8279_r, maygay_8279_w) AM_RANGE(0x800000, 0x800003) AM_DEVWRITE8( "ymsnd", ym2413_w, 0xff00 ) @@ -1004,7 +1005,7 @@ static MACHINE_CONFIG_START( maygayv1, driver_device ) MDRV_MACHINE_START(maygayv1) MDRV_MACHINE_RESET(maygayv1) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") /* TODO: Use real video timings */ MDRV_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/mayumi.c b/src/mame/drivers/mayumi.c index 9b981f58ae9..5d8e4960824 100644 --- a/src/mame/drivers/mayumi.c +++ b/src/mame/drivers/mayumi.c @@ -9,6 +9,7 @@ #include "emu.h" #include "cpu/z80/z80.h" #include "sound/2203intf.h" +#include "machine/nvram.h" #define MCLK 10000000 @@ -137,7 +138,7 @@ static READ8_HANDLER( key_matrix_r ) static ADDRESS_MAP_START( mayumi_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x7fff) AM_ROM AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1") - AM_RANGE(0xc000, 0xdfff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0xc000, 0xdfff) AM_RAM AM_SHARE("nvram") AM_RANGE(0xe000, 0xf7ff) AM_RAM_WRITE(mayumi_videoram_w) AM_BASE_MEMBER(mayumi_state, videoram) ADDRESS_MAP_END @@ -402,7 +403,7 @@ static MACHINE_CONFIG_START( mayumi, mayumi_state ) MDRV_SOUND_ROUTE(2, "mono", 0.15) MDRV_SOUND_ROUTE(3, "mono", 0.40) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") MACHINE_CONFIG_END diff --git a/src/mame/drivers/mcr.c b/src/mame/drivers/mcr.c index f0d1e11734a..52a8d0ca76d 100644 --- a/src/mame/drivers/mcr.c +++ b/src/mame/drivers/mcr.c @@ -290,6 +290,7 @@ #include "machine/z80sio.h" #include "audio/mcr.h" #include "sound/samples.h" +#include "machine/nvram.h" #include "includes/mcr.h" @@ -617,7 +618,7 @@ static WRITE8_HANDLER( demoderb_op4_w ) static ADDRESS_MAP_START( cpu_90009_map, ADDRESS_SPACE_PROGRAM, 8 ) ADDRESS_MAP_UNMAP_HIGH AM_RANGE(0x0000, 0x6fff) AM_ROM - AM_RANGE(0x7000, 0x77ff) AM_MIRROR(0x0800) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x7000, 0x77ff) AM_MIRROR(0x0800) AM_RAM AM_SHARE("nvram") AM_RANGE(0xf000, 0xf1ff) AM_MIRROR(0x0200) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) AM_RANGE(0xf400, 0xf41f) AM_MIRROR(0x03e0) AM_WRITE(paletteram_xxxxRRRRBBBBGGGG_split1_w) AM_BASE_GENERIC(paletteram) AM_RANGE(0xf800, 0xf81f) AM_MIRROR(0x03e0) AM_WRITE(paletteram_xxxxRRRRBBBBGGGG_split2_w) AM_BASE_GENERIC(paletteram2) @@ -646,7 +647,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( cpu_90010_map, ADDRESS_SPACE_PROGRAM, 8 ) ADDRESS_MAP_UNMAP_HIGH AM_RANGE(0x0000, 0xbfff) AM_ROM - AM_RANGE(0xc000, 0xc7ff) AM_MIRROR(0x1800) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0xc000, 0xc7ff) AM_MIRROR(0x1800) AM_RAM AM_SHARE("nvram") AM_RANGE(0xe000, 0xe1ff) AM_MIRROR(0x1600) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) AM_RANGE(0xe800, 0xefff) AM_MIRROR(0x1000) AM_RAM_WRITE(mcr_90010_videoram_w) AM_BASE_GENERIC(videoram) AM_SIZE_GENERIC(videoram) ADDRESS_MAP_END @@ -673,7 +674,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( cpu_91490_map, ADDRESS_SPACE_PROGRAM, 8 ) ADDRESS_MAP_UNMAP_HIGH AM_RANGE(0x0000, 0xdfff) AM_ROM - AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0xe800, 0xe9ff) AM_MIRROR(0x0200) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) AM_RANGE(0xf000, 0xf7ff) AM_RAM_WRITE(mcr_91490_videoram_w) AM_BASE_GENERIC(videoram) AM_SIZE_GENERIC(videoram) AM_RANGE(0xf800, 0xf87f) AM_MIRROR(0x0780) AM_WRITE(mcr_91490_paletteram_w) AM_BASE_GENERIC(paletteram) @@ -1580,7 +1581,7 @@ static MACHINE_CONFIG_START( mcr_90009, driver_device ) MDRV_WATCHDOG_VBLANK_INIT(16) MDRV_MACHINE_START(mcr) MDRV_MACHINE_RESET(mcr) - MDRV_NVRAM_HANDLER(generic_1fill) + MDRV_NVRAM_ADD_1FILL("nvram") /* video hardware */ MDRV_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK) diff --git a/src/mame/drivers/mcr3.c b/src/mame/drivers/mcr3.c index baff30c9e05..4c389460fcc 100644 --- a/src/mame/drivers/mcr3.c +++ b/src/mame/drivers/mcr3.c @@ -106,6 +106,7 @@ #include "deprecat.h" #include "machine/z80ctc.h" #include "audio/mcr.h" +#include "machine/nvram.h" #include "includes/mcr.h" #include "turbotag.lh" @@ -477,7 +478,7 @@ static READ8_HANDLER( turbotag_kludge_r ) static ADDRESS_MAP_START( mcrmono_map, ADDRESS_SPACE_PROGRAM, 8 ) ADDRESS_MAP_UNMAP_HIGH AM_RANGE(0x0000, 0xdfff) AM_ROM - AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0xe800, 0xe9ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) AM_RANGE(0xea00, 0xebff) AM_RAM AM_RANGE(0xec00, 0xec7f) AM_MIRROR(0x0380) AM_WRITE(mcr3_paletteram_w) AM_BASE_GENERIC(paletteram) @@ -513,7 +514,7 @@ static ADDRESS_MAP_START( spyhunt_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0xdfff) AM_ROM AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(spyhunt_videoram_w) AM_BASE_GENERIC(videoram) AM_SIZE_GENERIC(videoram) AM_RANGE(0xe800, 0xebff) AM_MIRROR(0x0400) AM_RAM_WRITE(spyhunt_alpharam_w) AM_BASE(&spyhunt_alpharam) - AM_RANGE(0xf000, 0xf7ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0xf000, 0xf7ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0xf800, 0xf9ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) AM_RANGE(0xfa00, 0xfa7f) AM_MIRROR(0x0180) AM_WRITE(mcr3_paletteram_w) AM_BASE_GENERIC(paletteram) ADDRESS_MAP_END @@ -1085,7 +1086,7 @@ static MACHINE_CONFIG_START( mcr3_base, driver_device ) MDRV_WATCHDOG_VBLANK_INIT(16) MDRV_MACHINE_START(mcr) MDRV_MACHINE_RESET(mcr) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ MDRV_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK) diff --git a/src/mame/drivers/mcr68.c b/src/mame/drivers/mcr68.c index 40d720d383e..c7d422868e6 100644 --- a/src/mame/drivers/mcr68.c +++ b/src/mame/drivers/mcr68.c @@ -57,6 +57,7 @@ #include "cpu/m68000/m68000.h" #include "audio/mcr.h" #include "audio/williams.h" +#include "machine/nvram.h" #include "includes/mcr.h" @@ -386,7 +387,7 @@ static ADDRESS_MAP_START( trisport_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x000000, 0x03ffff) AM_ROM AM_RANGE(0x080000, 0x08ffff) AM_READ(trisport_port_1_r) AM_RANGE(0x0a0000, 0x0affff) AM_READ_PORT("DSW") - AM_RANGE(0x100000, 0x103fff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x100000, 0x103fff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x120000, 0x12007f) AM_WRITE(mcr68_paletteram_w) AM_BASE_GENERIC(paletteram) AM_RANGE(0x140000, 0x1407ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) AM_RANGE(0x160000, 0x160fff) AM_RAM_WRITE(mcr68_videoram_w) AM_BASE_GENERIC(videoram) AM_SIZE_GENERIC(videoram) @@ -1057,7 +1058,7 @@ static MACHINE_CONFIG_DERIVED( trisport, mcr68 ) MDRV_CPU_MODIFY("maincpu") MDRV_CPU_PROGRAM_MAP(trisport_map) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") MACHINE_CONFIG_END diff --git a/src/mame/drivers/merit.c b/src/mame/drivers/merit.c index fc2ee7ac4ef..a9e8ac0d083 100644 --- a/src/mame/drivers/merit.c +++ b/src/mame/drivers/merit.c @@ -43,6 +43,7 @@ Notes: it's important that "user1" is 0xa0000 bytes with empty space filled #include "machine/8255ppi.h" #include "sound/ay8910.h" #include "video/mc6845.h" +#include "machine/nvram.h" #define MASTER_CLOCK (XTAL_10MHz) #define CPU_CLOCK (MASTER_CLOCK / 4) @@ -67,6 +68,19 @@ static int decryption_key; static UINT8 *backup_ram; +class merit_state : public driver_device +{ +public: + merit_state(running_machine &machine, const driver_device_config_base &config) + : driver_device(machine, config), + m_nvram(*this, "nvram") { } + + required_shared_ptr<UINT8> m_nvram; + + void dodge_nvram_init(nvram_device &nvram, void *base, size_t size); +}; + + static MACHINE_START(merit) { question_address = 0; @@ -348,7 +362,7 @@ static ADDRESS_MAP_START( casino5_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x1fff) AM_ROM AM_RANGE(0x2000, 0x3fff) AM_ROMBANK("bank1") AM_RANGE(0x4000, 0x5fff) AM_ROMBANK("bank2") - AM_RANGE(0x6000, 0x6fff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x6000, 0x6fff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x7000, 0x7000) AM_WRITE(casino5_bank_w) AM_RANGE(0x7001, 0x7fff) AM_RAM AM_RANGE(0xa000, 0xa003) AM_DEVREADWRITE("ppi8255_0", ppi8255_r, ppi8255_w) @@ -362,7 +376,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( bigappg_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x7fff) AM_ROM - AM_RANGE(0xa000, 0xbfff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0xa000, 0xbfff) AM_RAM AM_SHARE("nvram") AM_RANGE(0xc004, 0xc007) AM_DEVREADWRITE("ppi8255_1", ppi8255_r, ppi8255_w) AM_RANGE(0xc008, 0xc00b) AM_DEVREADWRITE("ppi8255_0", ppi8255_r, ppi8255_w) AM_RANGE(0xe000, 0xe000) AM_DEVWRITE("crtc", mc6845_address_w) @@ -374,7 +388,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( dodge_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x7fff) AM_ROM - AM_RANGE(0xa000, 0xbfff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0xa000, 0xbfff) AM_RAM AM_SHARE("nvram") AM_RANGE(0xc004, 0xc007) AM_DEVREADWRITE("ppi8255_0", ppi8255_r, ppi8255_w) AM_RANGE(0xc008, 0xc00b) AM_DEVREADWRITE("ppi8255_1", ppi8255_r, ppi8255_w) AM_RANGE(0xe000, 0xe000) AM_DEVWRITE("crtc", mc6845_address_w) @@ -1149,21 +1163,10 @@ static const ay8910_interface merit_ay8912_interface = DEVCB_HANDLER(led2_w), DEVCB_NULL }; -static NVRAM_HANDLER(dodge) +void merit_state::dodge_nvram_init(nvram_device &nvram, void *base, size_t size) { - if (read_or_write) - { - mame_fwrite(file, machine->generic.nvram.v, machine->generic.nvram_size); - } - else if (file) - { - mame_fread(file, machine->generic.nvram.v, machine->generic.nvram_size); - } - else - { - memset(machine->generic.nvram.v, 0x00, machine->generic.nvram_size); - machine->generic.nvram.u8[0x1040] = 0xc9; /* ret */ - } + memset(base, 0x00, size); + reinterpret_cast<UINT8 *>(base)[0x1040] = 0xc9; /* ret */ } static MACHINE_START(casino5) @@ -1175,7 +1178,7 @@ static MACHINE_START(casino5) memory_set_bank(machine, "bank2", 0); } -static MACHINE_CONFIG_START( pitboss, driver_device ) +static MACHINE_CONFIG_START( pitboss, merit_state ) MDRV_CPU_ADD("maincpu",Z80, CPU_CLOCK) MDRV_CPU_PROGRAM_MAP(pitboss_map) MDRV_CPU_IO_MAP(trvwhiz_io_map) @@ -1207,7 +1210,7 @@ static MACHINE_CONFIG_DERIVED( casino5, pitboss ) MDRV_CPU_MODIFY("maincpu") MDRV_CPU_PROGRAM_MAP(casino5_map) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") MDRV_MACHINE_START(casino5) MACHINE_CONFIG_END @@ -1218,7 +1221,7 @@ static MACHINE_CONFIG_DERIVED( bigappg, pitboss ) MDRV_CPU_PROGRAM_MAP(bigappg_map) MDRV_CPU_IO_MAP(tictac_io_map) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( dodge, pitboss ) @@ -1226,7 +1229,7 @@ static MACHINE_CONFIG_DERIVED( dodge, pitboss ) MDRV_CPU_MODIFY("maincpu") MDRV_CPU_PROGRAM_MAP(dodge_map) - MDRV_NVRAM_HANDLER(dodge) + MDRV_NVRAM_REPLACE_CUSTOM("nvram", merit_state, dodge_nvram_init) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( tictac, pitboss ) diff --git a/src/mame/drivers/meritm.c b/src/mame/drivers/meritm.c index 7d29cb3ca4b..00a06b186d6 100644 --- a/src/mame/drivers/meritm.c +++ b/src/mame/drivers/meritm.c @@ -108,6 +108,7 @@ Not all regional versions are available for each Megatouch series #include "machine/z80pio.h" #include "machine/pc16552d.h" #include "machine/microtch.h" +#include "machine/nvram.h" /************************************* * @@ -547,7 +548,7 @@ static READ8_HANDLER(meritm_ds1644_r) static ADDRESS_MAP_START( meritm_crt250_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0xdfff) AM_ROMBANK("bank1") - AM_RANGE(0xe000, 0xffff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0xe000, 0xffff) AM_RAM AM_SHARE("nvram") ADDRESS_MAP_END static ADDRESS_MAP_START( meritm_crt250_questions_map, ADDRESS_SPACE_PROGRAM, 8 ) @@ -555,7 +556,7 @@ static ADDRESS_MAP_START( meritm_crt250_questions_map, ADDRESS_SPACE_PROGRAM, 8 AM_RANGE(0x0000, 0x0000) AM_WRITE(meritm_crt250_questions_lo_w) AM_RANGE(0x0001, 0x0001) AM_WRITE(meritm_crt250_questions_hi_w) AM_RANGE(0x0002, 0x0002) AM_WRITE(meritm_crt250_questions_bank_w) - AM_RANGE(0xe000, 0xffff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0xe000, 0xffff) AM_RAM AM_SHARE("nvram") ADDRESS_MAP_END static ADDRESS_MAP_START( meritm_crt250_io_map, ADDRESS_SPACE_IO, 8 ) @@ -1064,7 +1065,7 @@ static MACHINE_CONFIG_START( meritm_crt250, driver_device ) MDRV_TIMER_ADD_SCANLINE("vblank_start", vblank_start_tick, "screen", 259, 262) MDRV_TIMER_ADD_SCANLINE("vblank_end", vblank_end_tick, "screen", 262, 262) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") MDRV_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK) diff --git a/src/mame/drivers/mhavoc.c b/src/mame/drivers/mhavoc.c index 0921f2d1966..cb767d18d0f 100644 --- a/src/mame/drivers/mhavoc.c +++ b/src/mame/drivers/mhavoc.c @@ -190,6 +190,7 @@ #include "video/vector.h" #include "sound/tms5220.h" #include "sound/pokey.h" +#include "machine/nvram.h" #include "includes/mhavoc.h" /************************************* @@ -271,7 +272,7 @@ static ADDRESS_MAP_START( gamma_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x4000, 0x4000) AM_READ_PORT("DSW2") AM_WRITE(mhavoc_gamma_irq_ack_w) /* DSW at 8S, IRQ Acknowledge*/ AM_RANGE(0x4800, 0x4800) AM_WRITE(mhavoc_out_1_w) /* Coin Counters */ AM_RANGE(0x5000, 0x5000) AM_WRITE(mhavoc_alpha_w) /* Alpha Comm. Write Port */ - AM_RANGE(0x6000, 0x61ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) /* EEROM */ + AM_RANGE(0x6000, 0x61ff) AM_RAM AM_SHARE("nvram") /* EEROM */ AM_RANGE(0x8000, 0xffff) AM_ROM /* Program ROM (16K) */ ADDRESS_MAP_END @@ -301,7 +302,7 @@ static ADDRESS_MAP_START( alphaone_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x10b4, 0x10b4) AM_WRITE(mhavoc_rom_banksel_w) AM_RANGE(0x10b8, 0x10b8) AM_WRITE(mhavoc_ram_banksel_w) AM_RANGE(0x10e0, 0x10ff) AM_WRITEONLY AM_BASE(&avgdvg_colorram) /* ColorRAM */ - AM_RANGE(0x1800, 0x18ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) /* EEROM */ + AM_RANGE(0x1800, 0x18ff) AM_RAM AM_SHARE("nvram") /* EEROM */ AM_RANGE(0x2000, 0x3fff) AM_ROMBANK("bank2") /* Paged Program ROM (32K) */ AM_RANGE(0x4000, 0x4fff) AM_RAM AM_BASE(&avgdvg_vectorram) AM_SIZE(&avgdvg_vectorram_size) AM_REGION("alpha", 0x4000) /* Vector Generator RAM */ AM_RANGE(0x5000, 0x7fff) AM_ROM /* Vector ROM */ @@ -482,7 +483,7 @@ static MACHINE_CONFIG_START( mhavoc, driver_device ) MDRV_MACHINE_START(mhavoc) MDRV_MACHINE_RESET(mhavoc) - MDRV_NVRAM_HANDLER(generic_1fill) + MDRV_NVRAM_ADD_1FILL("nvram") MDRV_TIMER_ADD_PERIODIC("5k_timer", mhavoc_cpu_irq_clock, HZ(MHAVOC_CLOCK_5K)) diff --git a/src/mame/drivers/micro3d.c b/src/mame/drivers/micro3d.c index b93084f690d..363863e859f 100644 --- a/src/mame/drivers/micro3d.c +++ b/src/mame/drivers/micro3d.c @@ -28,6 +28,7 @@ #include "machine/68681.h" #include "sound/2151intf.h" #include "sound/upd7759.h" +#include "machine/nvram.h" #include "includes/micro3d.h" @@ -196,7 +197,7 @@ INPUT_PORTS_END static ADDRESS_MAP_START( hostmem, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x000000, 0x143fff) AM_ROM - AM_RANGE(0x200000, 0x20ffff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x200000, 0x20ffff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x800000, 0x83ffff) AM_RAM AM_BASE_MEMBER(micro3d_state, shared_ram) AM_RANGE(0x900000, 0x900001) AM_WRITE(host_drmath_int_w) AM_RANGE(0x920000, 0x920001) AM_READ_PORT("INPUTS_C_D") @@ -333,7 +334,7 @@ static MACHINE_CONFIG_START( micro3d, micro3d_state ) MDRV_DUART68681_ADD("duart68681", XTAL_3_6864MHz, micro3d_duart68681_config) MDRV_MACHINE_RESET(micro3d) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") MDRV_QUANTUM_TIME(HZ(3000)) MDRV_PALETTE_LENGTH(4096) diff --git a/src/mame/drivers/midtunit.c b/src/mame/drivers/midtunit.c index 19598a9202c..8f62031a116 100644 --- a/src/mame/drivers/midtunit.c +++ b/src/mame/drivers/midtunit.c @@ -24,6 +24,7 @@ #include "cpu/adsp2100/adsp2100.h" #include "audio/williams.h" #include "audio/dcs.h" +#include "machine/nvram.h" #include "includes/midtunit.h" @@ -42,7 +43,7 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 ) ADDRESS_MAP_UNMAP_HIGH AM_RANGE(0x00000000, 0x003fffff) AM_READWRITE(midtunit_vram_r, midtunit_vram_w) AM_RANGE(0x01000000, 0x013fffff) AM_RAM - AM_RANGE(0x01400000, 0x0141ffff) AM_READWRITE(midtunit_cmos_r, midtunit_cmos_w) AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x01400000, 0x0141ffff) AM_READWRITE(midtunit_cmos_r, midtunit_cmos_w) AM_SHARE("nvram") AM_RANGE(0x01480000, 0x014fffff) AM_WRITE(midtunit_cmos_enable_w) AM_RANGE(0x01600000, 0x0160003f) AM_READ(midtunit_input_r) AM_RANGE(0x01800000, 0x0187ffff) AM_RAM_WRITE(midtunit_paletteram_w) AM_BASE_GENERIC(paletteram) @@ -600,7 +601,7 @@ static const tms34010_config tms_config = * *************************************/ -static MACHINE_CONFIG_START( tunit_core, driver_device ) +static MACHINE_CONFIG_START( tunit_core, midtunit_state ) /* basic machine hardware */ MDRV_CPU_ADD("maincpu", TMS34010, CPU_CLOCK) @@ -608,7 +609,7 @@ static MACHINE_CONFIG_START( tunit_core, driver_device ) MDRV_CPU_PROGRAM_MAP(main_map) MDRV_MACHINE_RESET(midtunit) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ MDRV_PALETTE_LENGTH(32768) diff --git a/src/mame/drivers/midvunit.c b/src/mame/drivers/midvunit.c index b0863778e31..8af9f6c7627 100644 --- a/src/mame/drivers/midvunit.c +++ b/src/mame/drivers/midvunit.c @@ -24,6 +24,7 @@ #include "audio/dcs.h" #include "machine/idectrl.h" #include "machine/midwayic.h" +#include "machine/nvram.h" #include "includes/midvunit.h" @@ -182,14 +183,16 @@ static WRITE32_HANDLER( midvunit_cmos_protect_w ) static WRITE32_HANDLER( midvunit_cmos_w ) { + midvunit_state *state = space->machine->driver_data<midvunit_state>(); if (!cmos_protected) - COMBINE_DATA(space->machine->generic.nvram.u32 + offset); + COMBINE_DATA(state->m_nvram + offset); } static READ32_HANDLER( midvunit_cmos_r ) { - return space->machine->generic.nvram.u32[offset]; + midvunit_state *state = space->machine->driver_data<midvunit_state>(); + return state->m_nvram[offset]; } @@ -354,9 +357,10 @@ static const UINT32 bit_data[0x10] = static READ32_HANDLER( bit_data_r ) { + midvunit_state *state = space->machine->driver_data<midvunit_state>(); int bit = (bit_data[bit_index / 32] >> (31 - (bit_index % 32))) & 1; bit_index = (bit_index + 1) % 512; - return bit ? space->machine->generic.nvram.u32[offset] : ~space->machine->generic.nvram.u32[offset]; + return bit ? state->m_nvram[offset] : ~state->m_nvram[offset]; } @@ -502,7 +506,7 @@ static ADDRESS_MAP_START( midvunit_map, ADDRESS_SPACE_PROGRAM, 32 ) AM_RANGE(0x995020, 0x995020) AM_WRITE(midvunit_cmos_protect_w) AM_RANGE(0x997000, 0x997000) AM_NOP // communications AM_RANGE(0x9a0000, 0x9a0000) AM_WRITE(midvunit_sound_w) - AM_RANGE(0x9c0000, 0x9c1fff) AM_READWRITE(midvunit_cmos_r, midvunit_cmos_w) AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x9c0000, 0x9c1fff) AM_READWRITE(midvunit_cmos_r, midvunit_cmos_w) AM_SHARE("nvram") AM_RANGE(0x9e0000, 0x9e7fff) AM_RAM_WRITE(midvunit_paletteram_w) AM_BASE_GENERIC(paletteram) AM_RANGE(0xa00000, 0xbfffff) AM_READWRITE(midvunit_textureram_r, midvunit_textureram_w) AM_BASE(&midvunit_textureram) AM_RANGE(0xc00000, 0xffffff) AM_ROM AM_REGION("user1", 0) @@ -1018,7 +1022,7 @@ INPUT_PORTS_END * *************************************/ -static MACHINE_CONFIG_START( midvcommon, driver_device ) +static MACHINE_CONFIG_START( midvcommon, midvunit_state ) /* basic machine hardware */ MDRV_CPU_ADD("maincpu", TMS32031, CPU_CLOCK) @@ -1026,7 +1030,7 @@ static MACHINE_CONFIG_START( midvcommon, driver_device ) MDRV_MACHINE_START(midvunit) MDRV_MACHINE_RESET(midvunit) - MDRV_NVRAM_HANDLER(generic_1fill) + MDRV_NVRAM_ADD_1FILL("nvram") MDRV_TIMER_ADD("timer0", NULL) MDRV_TIMER_ADD("timer1", NULL) @@ -1058,6 +1062,7 @@ static MACHINE_CONFIG_DERIVED( midvplus, midvcommon ) MDRV_CPU_PROGRAM_MAP(midvplus_map) MDRV_MACHINE_RESET(midvplus) + MDRV_DEVICE_REMOVE("nvram") MDRV_NVRAM_HANDLER(midway_serial_pic2) MDRV_IDE_CONTROLLER_ADD("ide", NULL) diff --git a/src/mame/drivers/midwunit.c b/src/mame/drivers/midwunit.c index 0914dfdab0a..ba0e5d3a8fe 100644 --- a/src/mame/drivers/midwunit.c +++ b/src/mame/drivers/midwunit.c @@ -88,6 +88,7 @@ Notes: #include "cpu/tms34010/tms34010.h" #include "cpu/adsp2100/adsp2100.h" #include "audio/dcs.h" +#include "machine/nvram.h" #include "includes/midwunit.h" @@ -103,7 +104,7 @@ Notes: static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x00000000, 0x003fffff) AM_READWRITE(midtunit_vram_r, midtunit_vram_w) AM_RANGE(0x01000000, 0x013fffff) AM_RAM - AM_RANGE(0x01400000, 0x0145ffff) AM_READWRITE(midwunit_cmos_r, midwunit_cmos_w) AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x01400000, 0x0145ffff) AM_READWRITE(midwunit_cmos_r, midwunit_cmos_w) AM_SHARE("nvram") AM_RANGE(0x01480000, 0x014fffff) AM_WRITE(midwunit_cmos_enable_w) AM_RANGE(0x01600000, 0x0160001f) AM_READWRITE(midwunit_security_r, midwunit_security_w) AM_RANGE(0x01680000, 0x0168001f) AM_READWRITE(midwunit_sound_r, midwunit_sound_w) @@ -631,14 +632,14 @@ static const tms34010_config tms_config = * *************************************/ -static MACHINE_CONFIG_START( wunit, driver_device ) +static MACHINE_CONFIG_START( wunit, midwxunit_state ) MDRV_CPU_ADD("maincpu", TMS34010, 50000000) MDRV_CPU_CONFIG(tms_config) MDRV_CPU_PROGRAM_MAP(main_map) MDRV_MACHINE_RESET(midwunit) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ MDRV_PALETTE_LENGTH(32768) diff --git a/src/mame/drivers/midxunit.c b/src/mame/drivers/midxunit.c index 9bb187056e1..5ba1b1f2b25 100644 --- a/src/mame/drivers/midxunit.c +++ b/src/mame/drivers/midxunit.c @@ -83,6 +83,7 @@ There's a separate sound board also, but it wasn't available so is not documente #include "cpu/tms34010/tms34010.h" #include "cpu/adsp2100/adsp2100.h" #include "audio/dcs.h" +#include "machine/nvram.h" #include "includes/midwunit.h" @@ -107,7 +108,7 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x60c000e0, 0x60c000ff) AM_READWRITE(midwunit_security_r, midxunit_security_w) AM_RANGE(0x80800000, 0x8080001f) AM_READWRITE(midxunit_analog_r, midxunit_analog_select_w) AM_RANGE(0x80c00000, 0x80c000ff) AM_READWRITE(midxunit_uart_r, midxunit_uart_w) - AM_RANGE(0xa0440000, 0xa047ffff) AM_READWRITE(midwunit_cmos_r, midxunit_cmos_w) AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0xa0440000, 0xa047ffff) AM_READWRITE(midwunit_cmos_r, midxunit_cmos_w) AM_SHARE("nvram") AM_RANGE(0xa0800000, 0xa08fffff) AM_READWRITE(midxunit_paletteram_r, midxunit_paletteram_w) AM_BASE_GENERIC(paletteram) AM_RANGE(0xc0000000, 0xc00003ff) AM_READWRITE(tms34020_io_register_r, tms34020_io_register_w) AM_RANGE(0xc0c00000, 0xc0c000ff) AM_MIRROR(0x00400000) AM_READWRITE(midtunit_dma_r, midtunit_dma_w) @@ -255,7 +256,7 @@ static const tms34010_config tms_config = * *************************************/ -static MACHINE_CONFIG_START( midxunit, driver_device ) +static MACHINE_CONFIG_START( midxunit, midwxunit_state ) /* basic machine hardware */ MDRV_CPU_ADD("maincpu", TMS34020, 40000000) @@ -263,7 +264,7 @@ static MACHINE_CONFIG_START( midxunit, driver_device ) MDRV_CPU_PROGRAM_MAP(main_map) MDRV_MACHINE_RESET(midxunit) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ MDRV_PALETTE_LENGTH(32768) diff --git a/src/mame/drivers/midzeus.c b/src/mame/drivers/midzeus.c index 39509fffd33..537362f2db8 100644 --- a/src/mame/drivers/midzeus.c +++ b/src/mame/drivers/midzeus.c @@ -36,6 +36,7 @@ The Grid v1.2 10/18/2000 #include "machine/midwayic.h" #include "machine/timekpr.h" #include "audio/dcs.h" +#include "machine/nvram.h" #include "crusnexo.lh" @@ -132,8 +133,9 @@ static INTERRUPT_GEN( display_irq ) static WRITE32_HANDLER( cmos_w ) { + midzeus_state *state = space->machine->driver_data<midzeus_state>(); if (bitlatch[2] && !cmos_protected) - COMBINE_DATA(&space->machine->generic.nvram.u32[offset]); + COMBINE_DATA(&state->m_nvram[offset]); else logerror("%06X:timekeeper_w with bitlatch[2] = %d, cmos_protected = %d\n", cpu_get_pc(space->cpu), bitlatch[2], cmos_protected); cmos_protected = TRUE; @@ -142,7 +144,8 @@ static WRITE32_HANDLER( cmos_w ) static READ32_HANDLER( cmos_r ) { - return space->machine->generic.nvram.u32[offset] | 0xffffff00; + midzeus_state *state = space->machine->driver_data<midzeus_state>(); + return state->m_nvram[offset] | 0xffffff00; } @@ -591,7 +594,7 @@ static ADDRESS_MAP_START( zeus_map, ADDRESS_SPACE_PROGRAM, 32 ) AM_RANGE(0x8d0000, 0x8d0004) AM_READWRITE(bitlatches_r, bitlatches_w) AM_RANGE(0x990000, 0x99000f) AM_READWRITE(midway_ioasic_r, midway_ioasic_w) AM_RANGE(0x9e0000, 0x9e0000) AM_WRITENOP // watchdog? - AM_RANGE(0x9f0000, 0x9f7fff) AM_READWRITE(cmos_r, cmos_w) AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x9f0000, 0x9f7fff) AM_READWRITE(cmos_r, cmos_w) AM_SHARE("nvram") AM_RANGE(0x9f8000, 0x9f8000) AM_WRITE(cmos_protect_w) AM_RANGE(0xa00000, 0xffffff) AM_ROM AM_REGION("user1", 0) ADDRESS_MAP_END @@ -1107,7 +1110,7 @@ INPUT_PORTS_END * *************************************/ -static MACHINE_CONFIG_START( midzeus, driver_device ) +static MACHINE_CONFIG_START( midzeus, midzeus_state ) /* basic machine hardware */ MDRV_CPU_ADD("maincpu", TMS32032, CPU_CLOCK) @@ -1116,7 +1119,7 @@ static MACHINE_CONFIG_START( midzeus, driver_device ) MDRV_MACHINE_START(midzeus) MDRV_MACHINE_RESET(midzeus) - MDRV_NVRAM_HANDLER(generic_1fill) + MDRV_NVRAM_ADD_1FILL("nvram") /* video hardware */ MDRV_PALETTE_LENGTH(32768) diff --git a/src/mame/drivers/mil4000.c b/src/mame/drivers/mil4000.c index 1293fbfd8c8..b97f729f214 100644 --- a/src/mame/drivers/mil4000.c +++ b/src/mame/drivers/mil4000.c @@ -87,6 +87,7 @@ Changes (2008-12-10, Roberto Fresca): #include "emu.h" #include "cpu/m68000/m68000.h" #include "sound/okim6295.h" +#include "machine/nvram.h" #include "mil4000.lh" @@ -266,7 +267,7 @@ static ADDRESS_MAP_START( mil4000_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x70801e, 0x70801f) AM_DEVREADWRITE8("oki", okim6295_r, okim6295_w, 0x00ff) AM_RANGE(0x780000, 0x780fff) AM_RAM_WRITE(paletteram16_RRRRRGGGGGBBBBBx_word_w) AM_BASE_GENERIC(paletteram) - AM_RANGE(0xff0000, 0xffffff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) // 2x CY62256L-70 (U7 & U8). + AM_RANGE(0xff0000, 0xffffff) AM_RAM AM_SHARE("nvram") // 2x CY62256L-70 (U7 & U8). ADDRESS_MAP_END @@ -349,7 +350,7 @@ static MACHINE_CONFIG_START( mil4000, driver_device ) // irq 2/4/5 point to the same place, others invalid MDRV_CPU_VBLANK_INT("screen", irq5_line_hold) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") MDRV_SCREEN_ADD("screen", RASTER) MDRV_SCREEN_REFRESH_RATE(60) diff --git a/src/mame/drivers/miniboy7.c b/src/mame/drivers/miniboy7.c index 77ac03511fc..404923d63e1 100644 --- a/src/mame/drivers/miniboy7.c +++ b/src/mame/drivers/miniboy7.c @@ -149,6 +149,7 @@ #include "video/mc6845.h" #include "machine/6821pia.h" #include "sound/ay8910.h" +#include "machine/nvram.h" /*********************************** @@ -435,7 +436,7 @@ static MACHINE_CONFIG_START( miniboy7, driver_device ) MDRV_CPU_PROGRAM_MAP(miniboy7_map) MDRV_CPU_VBLANK_INT("screen", nmi_line_pulse) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") MDRV_PIA6821_ADD("pia0", miniboy7_pia0_intf) /* video hardware */ diff --git a/src/mame/drivers/model1.c b/src/mame/drivers/model1.c index 4eb64158a6d..3a9cf9ca233 100644 --- a/src/mame/drivers/model1.c +++ b/src/mame/drivers/model1.c @@ -633,6 +633,7 @@ Notes: #include "cpu/mb86233/mb86233.h" #include "sound/multipcm.h" #include "sound/2612intf.h" +#include "machine/nvram.h" #include "includes/model1.h" static int model1_sound_irq; @@ -887,7 +888,7 @@ static ADDRESS_MAP_START( model1_mem, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0xc00040, 0xc00043) AM_READWRITE(network_ctl_r, network_ctl_w) - AM_RANGE(0xc00200, 0xc002ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0xc00200, 0xc002ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0xc40000, 0xc40001) AM_WRITE(snd_latch_to_68k_w) AM_RANGE(0xc40002, 0xc40003) AM_READ(snd_68k_ready_r) @@ -935,7 +936,7 @@ static ADDRESS_MAP_START( model1_vr_mem, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0xc00040, 0xc00043) AM_READWRITE(network_ctl_r, network_ctl_w) - AM_RANGE(0xc00200, 0xc002ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0xc00200, 0xc002ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0xc40000, 0xc40001) AM_WRITE(snd_latch_to_68k_w) AM_RANGE(0xc40002, 0xc40003) AM_READ(snd_68k_ready_r) @@ -1507,7 +1508,7 @@ static MACHINE_CONFIG_START( model1, driver_device ) MDRV_MACHINE_START(model1) MDRV_MACHINE_RESET(model1) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") MDRV_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK ) @@ -1551,7 +1552,7 @@ static MACHINE_CONFIG_START( model1_vr, driver_device ) MDRV_MACHINE_START(model1) MDRV_MACHINE_RESET(model1_vr) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") MDRV_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK ) diff --git a/src/mame/drivers/mpoker.c b/src/mame/drivers/mpoker.c index 86cecbabb68..f17503ce9a6 100644 --- a/src/mame/drivers/mpoker.c +++ b/src/mame/drivers/mpoker.c @@ -170,6 +170,7 @@ #include "emu.h" #include "cpu/z80/z80.h" //#include "sound/dac.h" +#include "machine/nvram.h" #include "mpoker.lh" static UINT8 output[8]; @@ -453,7 +454,7 @@ static WRITE8_HANDLER( outport7_w ) static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x2fff) AM_ROM // AM_RANGE(0x0158, 0x0158) AM_WRITE (muxed_w) - AM_RANGE(0x3800, 0x38ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) /* NVRAM = 2x SCM5101E */ + AM_RANGE(0x3800, 0x38ff) AM_RAM AM_SHARE("nvram") /* NVRAM = 2x SCM5101E */ AM_RANGE(0x4000, 0x47ff) AM_RAM AM_BASE(&mpoker_video) /* 4x MM2114N-3 */ AM_RANGE(0x8000, 0x8000) AM_READ_PORT("SW1") AM_RANGE(0x8001, 0x8001) AM_READ (mixport_r) /* DIP switch bank 2 + a sort of watchdog */ @@ -565,7 +566,7 @@ static MACHINE_CONFIG_START( mpoker, driver_device ) MDRV_CPU_PROGRAM_MAP(main_map) MDRV_CPU_VBLANK_INT("screen", irq0_line_hold) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ MDRV_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/mpu4.c b/src/mame/drivers/mpu4.c index 905e91163d1..2180a929c2b 100644 --- a/src/mame/drivers/mpu4.c +++ b/src/mame/drivers/mpu4.c @@ -246,6 +246,7 @@ TODO: - Fix lamp timing, MAME doesn't update fast enough to see everything #include "emu.h" #include "machine/6821pia.h" #include "machine/6840ptm.h" +#include "machine/nvram.h" #include "deprecat.h" #include "cpu/m6809/m6809.h" @@ -1750,7 +1751,7 @@ static TIMER_DEVICE_CALLBACK( gen_50hz ) static ADDRESS_MAP_START( mod2_memmap, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x07ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x0000, 0x07ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x0800, 0x0810) AM_READWRITE(characteriser_r,characteriser_w) AM_RANGE(0x0850, 0x0850) AM_READWRITE(bankswitch_r,bankswitch_w) /* write bank (rom page select) */ @@ -1770,7 +1771,7 @@ static ADDRESS_MAP_START( mod2_memmap, ADDRESS_SPACE_PROGRAM, 8 ) ADDRESS_MAP_END static ADDRESS_MAP_START( mod4_yam_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x07ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x0000, 0x07ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x0800, 0x0810) AM_READWRITE(characteriser_r,characteriser_w) @@ -1793,7 +1794,7 @@ static ADDRESS_MAP_START( mod4_yam_map, ADDRESS_SPACE_PROGRAM, 8 ) ADDRESS_MAP_END static ADDRESS_MAP_START( mod4_oki_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x07ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x0000, 0x07ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x0800, 0x0810) AM_READWRITE(characteriser_r,characteriser_w) @@ -1821,7 +1822,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( dutch_memmap, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x07ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x0000, 0x07ff) AM_RAM AM_SHARE("nvram") // AM_RANGE(0x0800, 0x0810) AM_READWRITE(characteriser_r,characteriser_w) @@ -1880,7 +1881,7 @@ static MACHINE_CONFIG_START( mpu4mod2, driver_device ) MDRV_SOUND_CONFIG(ay8910_config) MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") MDRV_DEFAULT_LAYOUT(layout_mpu4) MACHINE_CONFIG_END diff --git a/src/mame/drivers/mpu4drvr.c b/src/mame/drivers/mpu4drvr.c index 077e4a1f618..1f9bf5a7049 100644 --- a/src/mame/drivers/mpu4drvr.c +++ b/src/mame/drivers/mpu4drvr.c @@ -182,6 +182,7 @@ TODO: #include "sound/saa1099.h" #include "video/mc6845.h" #include "video/resnet.h" +#include "machine/nvram.h" #ifdef MAME_DEBUG #define MPU4VIDVERBOSE 1 @@ -1936,7 +1937,7 @@ ADDRESS_MAP_END /* TODO: Fix up MPU4 map*/ static ADDRESS_MAP_START( mpu4_6809_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x07ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x0000, 0x07ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x0800, 0x0800) AM_DEVREADWRITE("acia6850_0", acia6850_stat_r, acia6850_ctrl_w) AM_RANGE(0x0801, 0x0801) AM_DEVREADWRITE("acia6850_0", acia6850_data_r, acia6850_data_w) AM_RANGE(0x0880, 0x0881) AM_NOP /* Could be a UART datalogger is here. */ @@ -2101,7 +2102,7 @@ static const mc6845_interface hd6845_intf = static ADDRESS_MAP_START( dealem_memmap, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x07ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x0000, 0x07ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x0800, 0x0800) AM_DEVWRITE("crtc", mc6845_address_w) AM_RANGE(0x0801, 0x0801) AM_DEVREADWRITE("crtc", mc6845_register_r, mc6845_register_w) @@ -2229,7 +2230,7 @@ static MACHINE_CONFIG_START( mpu4_vid, driver_device ) MDRV_CPU_PROGRAM_MAP(mpu4_6809_map) MDRV_TIMER_ADD_PERIODIC("50hz",gen_50hz, HZ(100)) - MDRV_NVRAM_HANDLER(generic_0fill) /* confirm */ + MDRV_NVRAM_ADD_0FILL("nvram") /* confirm */ /* 6840 PTM */ MDRV_PTM6840_ADD("6840ptm", ptm_ic2_intf) @@ -2320,7 +2321,7 @@ static MACHINE_CONFIG_START( dealem, driver_device ) MDRV_SOUND_CONFIG(ay8910_config) MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ MDRV_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/mquake.c b/src/mame/drivers/mquake.c index 0a63b590513..ef2109de5e5 100644 --- a/src/mame/drivers/mquake.c +++ b/src/mame/drivers/mquake.c @@ -12,6 +12,7 @@ #include "includes/amiga.h" #include "sound/es5503.h" #include "machine/6526cia.h" +#include "machine/nvram.h" @@ -145,7 +146,7 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0xe80000, 0xe8ffff) AM_READWRITE(amiga_autoconfig_r, amiga_autoconfig_w) AM_RANGE(0xfc0000, 0xffffff) AM_ROM AM_REGION("user1", 0) /* System ROM */ - AM_RANGE(0x200000, 0x203fff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x200000, 0x203fff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x204000, 0x2041ff) AM_DEVREADWRITE8("ensoniq", es5503_r, mquake_es5503_w, 0x00ff) AM_RANGE(0x282000, 0x282001) AM_READ_PORT("SW.LO") AM_RANGE(0x282002, 0x282003) AM_READ_PORT("SW.HI") @@ -363,7 +364,7 @@ static MACHINE_CONFIG_START( mquake, driver_device ) MDRV_CPU_PROGRAM_MAP(main_map) MDRV_MACHINE_RESET(mquake) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ MDRV_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK) diff --git a/src/mame/drivers/multfish.c b/src/mame/drivers/multfish.c index 2d7c57bd0fc..daf20b897f8 100644 --- a/src/mame/drivers/multfish.c +++ b/src/mame/drivers/multfish.c @@ -129,6 +129,7 @@ below are simply made to the banking address to run on other boards. #include "emu.h" #include "sound/ay8910.h" #include "cpu/z80/z80.h" +#include "machine/nvram.h" #define multfish_VIDRAM_SIZE (0x2000*0x10) #define multfish_BRAM_SIZE (0x2000*0x10) @@ -355,7 +356,7 @@ static WRITE8_HANDLER(multfish_rtc_w) static ADDRESS_MAP_START( multfish_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x7fff) AM_ROM AM_WRITE(multfish_vid_w) AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1") - AM_RANGE(0xc000, 0xdff7) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0xc000, 0xdff7) AM_RAM AM_SHARE("nvram") AM_RANGE(0xdff8, 0xdfff) AM_READWRITE(multfish_rtc_r, multfish_rtc_w) AM_RANGE(0xe000, 0xffff) AM_READWRITE(bankedram_r, bankedram_w) ADDRESS_MAP_END @@ -624,7 +625,7 @@ static MACHINE_CONFIG_START( multfish, driver_device ) MDRV_GFXDECODE(multfish) MDRV_PALETTE_LENGTH(0x1000) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") MDRV_VIDEO_START(multfish) MDRV_VIDEO_UPDATE(multfish) diff --git a/src/mame/drivers/namcofl.c b/src/mame/drivers/namcofl.c index 20fa87bd1cf..821c8bdc550 100644 --- a/src/mame/drivers/namcofl.c +++ b/src/mame/drivers/namcofl.c @@ -163,6 +163,7 @@ OSC3: 48.384MHz #include "cpu/i960/i960.h" #include "cpu/m37710/m37710.h" #include "sound/c352.h" +#include "machine/nvram.h" #include "namcofl.lh" #include "includes/namcofl.h" @@ -236,7 +237,7 @@ static ADDRESS_MAP_START( namcofl_mem, ADDRESS_SPACE_PROGRAM, 32 ) AM_RANGE(0x00000000, 0x000fffff) AM_RAMBANK("bank1") AM_RANGE(0x10000000, 0x100fffff) AM_RAMBANK("bank2") AM_RANGE(0x20000000, 0x201fffff) AM_ROM AM_REGION("user1", 0) /* data */ - AM_RANGE(0x30000000, 0x30001fff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) /* nvram */ + AM_RANGE(0x30000000, 0x30001fff) AM_RAM AM_SHARE("nvram") /* nvram */ AM_RANGE(0x30100000, 0x30100003) AM_WRITE(namcofl_spritebank_w) AM_RANGE(0x30284000, 0x3028bfff) AM_READWRITE(namcofl_share_r, namcofl_share_w) AM_RANGE(0x30300000, 0x30303fff) AM_RAM /* COMRAM */ @@ -597,7 +598,7 @@ static MACHINE_CONFIG_START( namcofl, driver_device ) MDRV_MACHINE_START(namcofl) MDRV_MACHINE_RESET(namcofl) - MDRV_NVRAM_HANDLER(generic_1fill) + MDRV_NVRAM_ADD_1FILL("nvram") MDRV_SCREEN_ADD("screen", RASTER) MDRV_SCREEN_REFRESH_RATE(60) diff --git a/src/mame/drivers/namcos1.c b/src/mame/drivers/namcos1.c index 4e6f3269700..c941a0e6b95 100644 --- a/src/mame/drivers/namcos1.c +++ b/src/mame/drivers/namcos1.c @@ -344,6 +344,7 @@ C - uses sub board with support for player 3 and 4 controls #include "sound/2151intf.h" #include "sound/namco.h" #include "sound/dac.h" +#include "machine/nvram.h" #include "includes/namcos1.h" static int dac0_value, dac1_value, dac0_gain, dac1_gain; @@ -485,7 +486,7 @@ static ADDRESS_MAP_START( mcu_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x4000, 0xbfff) AM_ROMBANK("bank20") /* banked ROM */ AM_RANGE(0xc000, 0xc000) AM_WRITE(namcos1_mcu_patch_w) /* kludge! see notes */ AM_RANGE(0xc000, 0xc7ff) AM_RAMBANK("bank19") /* TRIRAM (shared) */ - AM_RANGE(0xc800, 0xcfff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) /* EEPROM */ + AM_RANGE(0xc800, 0xcfff) AM_RAM AM_SHARE("nvram") /* EEPROM */ AM_RANGE(0xd000, 0xd000) AM_WRITE(namcos1_dac0_w) AM_RANGE(0xd400, 0xd400) AM_WRITE(namcos1_dac1_w) AM_RANGE(0xd800, 0xd800) AM_WRITE(namcos1_mcu_bankswitch_w) /* ROM bank selector */ @@ -1101,7 +1102,7 @@ static MACHINE_CONFIG_START( ns1, driver_device ) MDRV_QUANTUM_TIME(HZ(38400)) MDRV_MACHINE_RESET(namcos1) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ MDRV_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS) diff --git a/src/mame/drivers/namcos23.c b/src/mame/drivers/namcos23.c index ec011cee143..bd40fd3c9d2 100644 --- a/src/mame/drivers/namcos23.c +++ b/src/mame/drivers/namcos23.c @@ -1159,6 +1159,7 @@ Notes: #include "cpu/h83002/h8.h" #include "cpu/sh2/sh2.h" #include "sound/c352.h" +#include "machine/nvram.h" #define S23_BUSCLOCK (66664460/2) // 33 MHz CPU bus clock / input, somehow derived from 14.31721 MHz crystal #define S23_VSYNC1 (59.8824) @@ -2241,7 +2242,7 @@ static ADDRESS_MAP_START( gorgon_map, ADDRESS_SPACE_PROGRAM, 32 ) AM_RANGE(0x08000000, 0x087fffff) AM_ROM AM_REGION("data", 0) // data ROMs - AM_RANGE(0x0c000000, 0x0c00ffff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) // BACKUP + AM_RANGE(0x0c000000, 0x0c00ffff) AM_RAM AM_SHARE("nvram") // BACKUP AM_RANGE(0x0d000000, 0x0d00000f) AM_READWRITE16( s23_ctl_r, s23_ctl_w, 0xffffffff ) // write for LEDs at d000000, watchdog at d000004 @@ -2260,7 +2261,7 @@ static ADDRESS_MAP_START( ss23_map, ADDRESS_SPACE_PROGRAM, 32 ) AM_RANGE(0x04400000, 0x0440ffff) AM_RAM AM_BASE(&namcos23_shared_ram) AM_RANGE(0x04c3ff08, 0x04c3ff0b) AM_WRITE( s23_mcuen_w ) AM_RANGE(0x04c3ff0c, 0x04c3ff0f) AM_RAM - AM_RANGE(0x06000000, 0x0600ffff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) // Backup + AM_RANGE(0x06000000, 0x0600ffff) AM_RAM AM_SHARE("nvram") // Backup AM_RANGE(0x06200000, 0x06203fff) AM_RAM // C422 AM_RANGE(0x06400000, 0x0640000f) AM_READWRITE16( s23_c422_r, s23_c422_w, 0xffffffff ) // C422 registers AM_RANGE(0x06800000, 0x06807fff) AM_RAM_WRITE( s23_txtchar_w ) AM_BASE(&namcos23_charram) // text layer characters (shown as CGRAM in POST) @@ -2899,7 +2900,7 @@ static MACHINE_CONFIG_START( gorgon, driver_device ) MDRV_PALETTE_LENGTH(0x8000) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") MDRV_GFXDECODE(namcos23) @@ -2947,7 +2948,7 @@ static MACHINE_CONFIG_START( s23, driver_device ) MDRV_GFXDECODE(namcos23) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") MDRV_VIDEO_START(ss23) MDRV_VIDEO_UPDATE(ss23) @@ -2989,7 +2990,7 @@ static MACHINE_CONFIG_START( ss23, driver_device ) MDRV_GFXDECODE(namcos23) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") MDRV_VIDEO_START(ss23) MDRV_VIDEO_UPDATE(ss23) diff --git a/src/mame/drivers/niyanpai.c b/src/mame/drivers/niyanpai.c index 4d3cdf0418c..661c43c43da 100644 --- a/src/mame/drivers/niyanpai.c +++ b/src/mame/drivers/niyanpai.c @@ -41,6 +41,7 @@ Memo: #include "sound/dac.h" #include "sound/3812intf.h" #include "cpu/z80/z80daisy.h" +#include "machine/nvram.h" #include "includes/niyanpai.h" @@ -273,7 +274,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( niyanpai_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x000000, 0x03ffff) AM_ROM - AM_RANGE(0x040000, 0x040fff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x040000, 0x040fff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x0a0000, 0x0a08ff) AM_READWRITE(niyanpai_palette_r,niyanpai_palette_w) AM_RANGE(0x0a0900, 0x0a11ff) AM_RAM // palette work ram? @@ -313,7 +314,7 @@ static ADDRESS_MAP_START( musobana_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x0a0000, 0x0a08ff) AM_READWRITE(niyanpai_palette_r,niyanpai_palette_w) AM_RANGE(0x0a0900, 0x0a11ff) AM_RAM // palette work ram? - AM_RANGE(0x0a8000, 0x0a87ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x0a8000, 0x0a87ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x0bf800, 0x0bffff) AM_RAM AM_RANGE(0x200000, 0x200001) AM_WRITE(niyanpai_sound_w) @@ -352,7 +353,7 @@ static ADDRESS_MAP_START( mhhonban_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x060900, 0x0611ff) AM_RAM // palette work ram? AM_RANGE(0x07f800, 0x07ffff) AM_RAM - AM_RANGE(0x0a8000, 0x0a87ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x0a8000, 0x0a87ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x0bf000, 0x0bffff) AM_RAM AM_RANGE(0x200000, 0x200001) AM_WRITE(niyanpai_sound_w) @@ -786,7 +787,7 @@ static MACHINE_CONFIG_START( niyanpai, driver_device ) MDRV_Z80CTC_ADD("ctc", 8000000 /* same as "audiocpu" */, ctc_intf) MDRV_MACHINE_RESET(niyanpai) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ MDRV_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/norautp.c b/src/mame/drivers/norautp.c index 2082e603c30..4ae04565784 100644 --- a/src/mame/drivers/norautp.c +++ b/src/mame/drivers/norautp.c @@ -539,6 +539,7 @@ #include "cpu/z80/z80.h" #include "cpu/i8085/i8085.h" #include "machine/i8255a.h" +#include "machine/nvram.h" #include "includes/norautp.h" #include "noraut11.lh" @@ -802,7 +803,7 @@ static READ8_HANDLER( test2_r ) static ADDRESS_MAP_START( norautp_map, ADDRESS_SPACE_PROGRAM, 8 ) ADDRESS_MAP_GLOBAL_MASK(0x3fff) AM_RANGE(0x0000, 0x1fff) AM_ROM - AM_RANGE(0x2000, 0x27ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) /* 6116 */ + AM_RANGE(0x2000, 0x27ff) AM_RAM AM_SHARE("nvram") /* 6116 */ ADDRESS_MAP_END static ADDRESS_MAP_START( norautp_portmap, ADDRESS_SPACE_IO, 8 ) @@ -833,31 +834,31 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( nortest1_map, ADDRESS_SPACE_PROGRAM, 8 ) ADDRESS_MAP_GLOBAL_MASK(0x7fff) AM_RANGE(0x0000, 0x2fff) AM_ROM - AM_RANGE(0x5000, 0x57ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x5000, 0x57ff) AM_RAM AM_SHARE("nvram") ADDRESS_MAP_END static ADDRESS_MAP_START( norautxp_map, ADDRESS_SPACE_PROGRAM, 8 ) // ADDRESS_MAP_GLOBAL_MASK(~0x4000) ADDRESS_MAP_GLOBAL_MASK(0x7fff) AM_RANGE(0x0000, 0x3fff) AM_ROM /* need to be checked */ - AM_RANGE(0x6000, 0x67ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) /* HM6116 */ + AM_RANGE(0x6000, 0x67ff) AM_RAM AM_SHARE("nvram") /* HM6116 */ ADDRESS_MAP_END static ADDRESS_MAP_START( norautx4_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x3fff) AM_ROM - AM_RANGE(0x6000, 0x67ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) /* 6116 */ + AM_RANGE(0x6000, 0x67ff) AM_RAM AM_SHARE("nvram") /* 6116 */ ADDRESS_MAP_END #ifdef UNUSED_CODE static ADDRESS_MAP_START( norautx8_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x7fff) AM_ROM /* need to be checked */ - AM_RANGE(0xc000, 0xc7ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) /* 6116 */ + AM_RANGE(0xc000, 0xc7ff) AM_RAM AM_SHARE("nvram") /* 6116 */ ADDRESS_MAP_END #endif static ADDRESS_MAP_START( kimble_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0xbfff) AM_ROM - AM_RANGE(0xc000, 0xc7ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0xc000, 0xc7ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0xc800, 0xc9ff) AM_RAM /* working RAM? */ ADDRESS_MAP_END @@ -873,26 +874,26 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( dphl_map, ADDRESS_SPACE_PROGRAM, 8 ) ADDRESS_MAP_GLOBAL_MASK(0x7fff) /* A15 not connected */ AM_RANGE(0x0000, 0x3fff) AM_ROM - AM_RANGE(0x5000, 0x53ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) /* should be 2x 0x100 segments (4x 2111) */ + AM_RANGE(0x5000, 0x53ff) AM_RAM AM_SHARE("nvram") /* should be 2x 0x100 segments (4x 2111) */ ADDRESS_MAP_END static ADDRESS_MAP_START( dphla_map, ADDRESS_SPACE_PROGRAM, 8 ) ADDRESS_MAP_GLOBAL_MASK(0x3fff) AM_RANGE(0x0000, 0x1fff) AM_ROM - AM_RANGE(0x2000, 0x23ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x2000, 0x23ff) AM_RAM AM_SHARE("nvram") ADDRESS_MAP_END static ADDRESS_MAP_START( ssjkrpkr_map, ADDRESS_SPACE_PROGRAM, 8 ) ADDRESS_MAP_GLOBAL_MASK(0x7fff) AM_RANGE(0x0000, 0x1fff) AM_ROM - AM_RANGE(0x4000, 0x43ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x4000, 0x43ff) AM_RAM AM_SHARE("nvram") ADDRESS_MAP_END static ADDRESS_MAP_START( dphltest_map, ADDRESS_SPACE_PROGRAM, 8 ) // ADDRESS_MAP_GLOBAL_MASK(0x7fff) /* A15 not connected */ AM_RANGE(0x0000, 0x6fff) AM_ROM AM_RANGE(0x7000, 0x7fff) AM_RAM - AM_RANGE(0x8000, 0x87ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x8000, 0x87ff) AM_RAM AM_SHARE("nvram") ADDRESS_MAP_END /* @@ -910,13 +911,13 @@ ADDRESS_MAP_END */ static ADDRESS_MAP_START( kimbldhl_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x7fff) AM_ROM - AM_RANGE(0xc000, 0xc7ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0xc000, 0xc7ff) AM_RAM AM_SHARE("nvram") ADDRESS_MAP_END static ADDRESS_MAP_START( drhl_map, ADDRESS_SPACE_PROGRAM, 8 ) ADDRESS_MAP_GLOBAL_MASK(0x7fff) /* A15 not connected */ AM_RANGE(0x0000, 0x3fff) AM_ROM - AM_RANGE(0x5000, 0x53ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x5000, 0x53ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x5400, 0x57ff) AM_RAM ADDRESS_MAP_END @@ -1242,7 +1243,7 @@ static MACHINE_CONFIG_START( noraut_base, driver_device ) MDRV_CPU_PROGRAM_MAP(norautp_map) MDRV_CPU_IO_MAP(norautp_portmap) - MDRV_NVRAM_HANDLER(generic_0fill) /* doesn't work if placed at derivative drivers */ + MDRV_NVRAM_ADD_0FILL("nvram") /* doesn't work if placed at derivative drivers */ /* 3x 8255 */ MDRV_I8255A_ADD( "ppi8255_0", ppi8255_intf_0 ) diff --git a/src/mame/drivers/nyny.c b/src/mame/drivers/nyny.c index de41bfe15f8..a60e1f7402b 100644 --- a/src/mame/drivers/nyny.c +++ b/src/mame/drivers/nyny.c @@ -70,6 +70,7 @@ #include "cpu/m6809/m6809.h" #include "sound/ay8910.h" #include "sound/dac.h" +#include "machine/nvram.h" #define MAIN_CPU_MASTER_CLOCK XTAL_11_2MHz @@ -542,7 +543,7 @@ static ADDRESS_MAP_START( nyny_main_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x4000, 0x5fff) AM_RAM AM_BASE_MEMBER(nyny_state, videoram2) AM_RANGE(0x6000, 0x7fff) AM_RAM AM_BASE_MEMBER(nyny_state, colorram2) AM_RANGE(0x8000, 0x9fff) AM_RAM - AM_RANGE(0xa000, 0xa0ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) /* SRAM (coin counter, shown when holding F2) */ + AM_RANGE(0xa000, 0xa0ff) AM_RAM AM_SHARE("nvram") /* SRAM (coin counter, shown when holding F2) */ AM_RANGE(0xa100, 0xa100) AM_MIRROR(0x00fe) AM_DEVWRITE("crtc", mc6845_address_w) AM_RANGE(0xa101, 0xa101) AM_MIRROR(0x00fe) AM_DEVWRITE("crtc", mc6845_register_w) AM_RANGE(0xa200, 0xa20f) AM_MIRROR(0x00f0) AM_READWRITE(nyny_pia_1_2_r, nyny_pia_1_2_w) @@ -726,7 +727,7 @@ static MACHINE_CONFIG_START( nyny, nyny_state ) MDRV_MACHINE_START(nyny) MDRV_MACHINE_RESET(nyny) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ MDRV_VIDEO_UPDATE(nyny) diff --git a/src/mame/drivers/ojankohs.c b/src/mame/drivers/ojankohs.c index 2e28d44dce9..76f10ac5720 100644 --- a/src/mame/drivers/ojankohs.c +++ b/src/mame/drivers/ojankohs.c @@ -36,6 +36,7 @@ Memo: #include "includes/ojankohs.h" #include "sound/ay8910.h" #include "sound/msm5205.h" +#include "machine/nvram.h" static WRITE8_HANDLER( ojankohs_rombank_w ) @@ -201,7 +202,7 @@ static ADDRESS_MAP_START( ojankohs_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x7fff) AM_ROM AM_RANGE(0x8000, 0x8fff) AM_RAM_WRITE(ojankohs_videoram_w) AM_RANGE(0x9000, 0x9fff) AM_RAM_WRITE(ojankohs_colorram_w) - AM_RANGE(0xa000, 0xb7ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0xa000, 0xb7ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0xb800, 0xbfff) AM_RAM_WRITE(ojankohs_palette_w) AM_RANGE(0xc000, 0xffff) AM_ROMBANK("bank1") ADDRESS_MAP_END @@ -211,14 +212,14 @@ static ADDRESS_MAP_START( ojankoy_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x7fff) AM_ROM AM_RANGE(0x8000, 0x9fff) AM_RAM_WRITE(ojankohs_videoram_w) AM_RANGE(0xa000, 0xafff) AM_RAM_WRITE(ojankohs_colorram_w) - AM_RANGE(0xb000, 0xbfff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0xb000, 0xbfff) AM_RAM AM_SHARE("nvram") AM_RANGE(0xc000, 0xffff) AM_ROMBANK("bank1") ADDRESS_MAP_END static ADDRESS_MAP_START( ojankoc_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x77ff) AM_ROM - AM_RANGE(0x7800, 0x7fff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x7800, 0x7fff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x8000, 0xffff) AM_ROMBANK("bank1") AM_WRITE(ojankoc_videoram_w) ADDRESS_MAP_END @@ -866,7 +867,7 @@ static MACHINE_CONFIG_START( ojankohs, ojankohs_state ) MDRV_MACHINE_START(ojankohs) MDRV_MACHINE_RESET(ojankohs) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ MDRV_SCREEN_ADD("screen", RASTER) @@ -904,7 +905,7 @@ static MACHINE_CONFIG_START( ojankoy, ojankohs_state ) MDRV_MACHINE_START(ojankoy) MDRV_MACHINE_RESET(ojankohs) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ MDRV_SCREEN_ADD("screen", RASTER) @@ -943,7 +944,7 @@ static MACHINE_CONFIG_START( ccasino, ojankohs_state ) MDRV_MACHINE_START(ojankohs) MDRV_MACHINE_RESET(ojankohs) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ MDRV_SCREEN_ADD("screen", RASTER) @@ -981,7 +982,7 @@ static MACHINE_CONFIG_START( ojankoc, ojankohs_state ) MDRV_MACHINE_START(ojankoc) MDRV_MACHINE_RESET(ojankohs) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ MDRV_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/omegrace.c b/src/mame/drivers/omegrace.c index bd8029642e3..04adc10e9a3 100644 --- a/src/mame/drivers/omegrace.c +++ b/src/mame/drivers/omegrace.c @@ -218,6 +218,7 @@ #include "video/vector.h" #include "video/avgdvg.h" #include "sound/ay8910.h" +#include "machine/nvram.h" #include "rendlay.h" @@ -328,7 +329,7 @@ static WRITE8_HANDLER( omegrace_soundlatch_w ) static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x3fff) AM_ROM AM_RANGE(0x4000, 0x4bff) AM_RAM - AM_RANGE(0x5c00, 0x5cff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) /* NVRAM */ + AM_RANGE(0x5c00, 0x5cff) AM_RAM AM_SHARE("nvram") /* NVRAM */ AM_RANGE(0x8000, 0x8fff) AM_RAM AM_BASE(&avgdvg_vectorram) AM_SIZE(&avgdvg_vectorram_size) AM_REGION("maincpu", 0x8000) /* vector ram */ AM_RANGE(0x9000, 0x9fff) AM_ROM /* vector rom */ ADDRESS_MAP_END @@ -488,7 +489,7 @@ static MACHINE_CONFIG_START( omegrace, driver_device ) MDRV_CPU_PERIODIC_INT(nmi_line_pulse,250) MDRV_MACHINE_RESET(omegrace) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ MDRV_SCREEN_ADD("screen", VECTOR) diff --git a/src/mame/drivers/pcat_nit.c b/src/mame/drivers/pcat_nit.c index 461bd786ed9..cbcf9ceeaff 100644 --- a/src/mame/drivers/pcat_nit.c +++ b/src/mame/drivers/pcat_nit.c @@ -91,6 +91,8 @@ Smitdogg #include "video/pc_vga.h" #include "video/pc_video.h" +static UINT8 *banked_nvram; + static void pcat_nit_microtouch_tx_callback(running_machine *machine, UINT8 data) { ins8250_receive(machine->device("ns16450_0"), data); @@ -143,13 +145,11 @@ static WRITE8_HANDLER(pcat_nit_rombank_w) else { // nvram bank - memory_unmap_read(space, 0x000d8000, 0x000dffff, 0, 0); - memory_unmap_write(space, 0x000d8000, 0x000dffff, 0, 0); + memory_unmap_readwrite(space, 0x000d8000, 0x000dffff, 0, 0); - memory_install_read_bank(space, 0x000d8000, 0x000d9fff, 0, 0, "nvrambank" ); - memory_install_write_bank(space, 0x000d8000, 0x000d9fff, 0, 0, "nvrambank" ); + memory_install_readwrite_bank(space, 0x000d8000, 0x000d9fff, 0, 0, "nvrambank" ); - memory_set_bankptr(space->machine, "nvrambank", space->machine->generic.nvram.u8); + memory_set_bankptr(space->machine, "nvrambank", banked_nvram); } } @@ -380,8 +380,7 @@ ROM_END static DRIVER_INIT(pcat_nit) { - machine->generic.nvram_size = 0x2000; - machine->generic.nvram.u8 = auto_alloc_array(machine, UINT8, machine->generic.nvram_size); + banked_nvram = auto_alloc_array(machine, UINT8, 0x2000); pc_vga_init(machine, &vga_interface, NULL); } diff --git a/src/mame/drivers/pingpong.c b/src/mame/drivers/pingpong.c index d6a3641ffba..cbb7aea1a10 100644 --- a/src/mame/drivers/pingpong.c +++ b/src/mame/drivers/pingpong.c @@ -8,6 +8,7 @@ Ping Pong (c) 1985 Konami #include "cpu/z80/z80.h" #include "deprecat.h" #include "sound/sn76496.h" +#include "machine/nvram.h" #include "includes/pingpong.h" static int intenable; @@ -105,7 +106,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( merlinmm_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x3fff) AM_ROM - AM_RANGE(0x5000, 0x53ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x5000, 0x53ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x5400, 0x57ff) AM_RAM AM_RANGE(0x6000, 0x6007) AM_WRITENOP /* solenoid writes */ AM_RANGE(0x7000, 0x7000) AM_READ_PORT("IN4") @@ -483,7 +484,7 @@ static MACHINE_CONFIG_DERIVED( merlinmm, pingpong ) MDRV_CPU_PROGRAM_MAP(merlinmm_map) MDRV_CPU_VBLANK_INT_HACK(pingpong_interrupt,2) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") MACHINE_CONFIG_END diff --git a/src/mame/drivers/pkscram.c b/src/mame/drivers/pkscram.c index d0ff94b53d0..48fd9b8ff86 100644 --- a/src/mame/drivers/pkscram.c +++ b/src/mame/drivers/pkscram.c @@ -14,6 +14,7 @@ driver by David Haywood and few bits by Pierpaolo Prazzoli #include "emu.h" #include "cpu/m68000/m68000.h" #include "sound/2203intf.h" +#include "machine/nvram.h" static int interrupt_scanline=192; @@ -82,7 +83,7 @@ static WRITE16_HANDLER( pkscramble_output_w ) static ADDRESS_MAP_START( pkscramble_map, ADDRESS_SPACE_PROGRAM, 16 ) ADDRESS_MAP_GLOBAL_MASK(0x7ffff) AM_RANGE(0x000000, 0x01ffff) AM_ROM - AM_RANGE(0x040000, 0x0400ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x040000, 0x0400ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x041000, 0x043fff) AM_RAM // main ram AM_RANGE(0x044000, 0x044fff) AM_RAM_WRITE(pkscramble_fgtilemap_w) AM_BASE(&pkscramble_fgtilemap_ram) // fg tilemap AM_RANGE(0x045000, 0x045fff) AM_RAM_WRITE(pkscramble_mdtilemap_w) AM_BASE(&pkscramble_mdtilemap_ram) // md tilemap (just a copy of fg?) @@ -278,7 +279,7 @@ static MACHINE_CONFIG_START( pkscramble, driver_device ) MDRV_CPU_PROGRAM_MAP(pkscramble_map) //MDRV_CPU_VBLANK_INT("screen", irq1_line_hold) /* only valid irq */ - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") MDRV_MACHINE_START(pkscramble) MDRV_MACHINE_RESET(pkscramble) diff --git a/src/mame/drivers/polepos.c b/src/mame/drivers/polepos.c index 2c8720872e1..5a3edc1299e 100644 --- a/src/mame/drivers/polepos.c +++ b/src/mame/drivers/polepos.c @@ -228,6 +228,7 @@ Todo: #include "audio/namco54.h" #include "includes/polepos.h" #include "sound/tms5220.h" +#include "machine/nvram.h" #include "polepos.lh" #include "topracer.lh" @@ -478,7 +479,7 @@ static MACHINE_RESET( polepos ) static ADDRESS_MAP_START( z80_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x2fff) AM_ROM - AM_RANGE(0x3000, 0x37ff) AM_MIRROR(0x0800) AM_RAM AM_BASE_SIZE_GENERIC(nvram) /* Battery Backup */ + AM_RANGE(0x3000, 0x37ff) AM_MIRROR(0x0800) AM_RAM AM_SHARE("nvram") /* Battery Backup */ AM_RANGE(0x4000, 0x47ff) AM_READWRITE(polepos_sprite_r, polepos_sprite_w) /* Motion Object */ AM_RANGE(0x4800, 0x4bff) AM_READWRITE(polepos_road_r, polepos_road_w) /* Road Memory */ AM_RANGE(0x4c00, 0x4fff) AM_READWRITE(polepos_alpha_r, polepos_alpha_w) /* Alphanumeric (char ram) */ @@ -891,7 +892,7 @@ static MACHINE_CONFIG_START( polepos, driver_device ) MDRV_QUANTUM_TIME(HZ(6000)) /* some interleaving */ MDRV_MACHINE_RESET(polepos) - MDRV_NVRAM_HANDLER(generic_1fill) + MDRV_NVRAM_ADD_1FILL("nvram") /* video hardware */ MDRV_SCREEN_ADD("screen", RASTER) @@ -974,7 +975,7 @@ static MACHINE_CONFIG_START( topracern, driver_device ) MDRV_QUANTUM_TIME(HZ(6000)) /* some interleaving */ MDRV_MACHINE_RESET(polepos) - MDRV_NVRAM_HANDLER(generic_1fill) + MDRV_NVRAM_ADD_1FILL("nvram") /* video hardware */ MDRV_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/portrait.c b/src/mame/drivers/portrait.c index 07a1f3e3f00..338b30fbf79 100644 --- a/src/mame/drivers/portrait.c +++ b/src/mame/drivers/portrait.c @@ -87,6 +87,7 @@ DM81LS95 = TriState buffer #include "cpu/z80/z80.h" #include "cpu/mcs48/mcs48.h" #include "sound/tms5220.h" +#include "machine/nvram.h" #include "includes/portrait.h" static WRITE8_HANDLER( portrait_ctrl_w ) @@ -129,7 +130,7 @@ static ADDRESS_MAP_START( portrait_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0xa010, 0xa010) AM_READ_PORT("INPUTS") AM_RANGE(0xa018, 0xa018) AM_READNOP AM_WRITE(portrait_positive_scroll_w) AM_RANGE(0xa019, 0xa019) AM_WRITE(portrait_negative_scroll_w) - AM_RANGE(0xa800, 0xa83f) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0xa800, 0xa83f) AM_RAM AM_SHARE("nvram") AM_RANGE(0xffff, 0xffff) AM_READNOP ADDRESS_MAP_END @@ -248,7 +249,7 @@ static MACHINE_CONFIG_START( portrait, driver_device ) MDRV_CPU_PROGRAM_MAP(portrait_sound_map) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") MDRV_SCREEN_ADD("screen", RASTER) MDRV_SCREEN_REFRESH_RATE(50) diff --git a/src/mame/drivers/psattack.c b/src/mame/drivers/psattack.c index b26c1f88445..0a26e13c9bd 100644 --- a/src/mame/drivers/psattack.c +++ b/src/mame/drivers/psattack.c @@ -76,6 +76,7 @@ GUN_xP are 6 pin gun connectors (pins 1-4 match the UNICO sytle guns): #include "video/vrender0.h" #include "machine/ds1302.h" #include "sound/vrender0.h" +#include "machine/nvram.h" static READ32_HANDLER( psattack_unk_r ) { @@ -165,7 +166,7 @@ static MACHINE_CONFIG_START( psattack, driver_device ) MDRV_MACHINE_START(psattack) MDRV_MACHINE_RESET(psattack) - //MDRV_NVRAM_HANDLER(generic_0fill) + //MDRV_NVRAM_ADD_0FILL("nvram") MDRV_SCREEN_ADD("screen", RASTER) MDRV_SCREEN_REFRESH_RATE(60) diff --git a/src/mame/drivers/punchout.c b/src/mame/drivers/punchout.c index 037ce14ae5f..ccb991e6628 100644 --- a/src/mame/drivers/punchout.c +++ b/src/mame/drivers/punchout.c @@ -114,6 +114,7 @@ DIP locations verified for: #include "cpu/m6502/m6502.h" #include "sound/vlm5030.h" #include "sound/nes_apu.h" +#include "machine/nvram.h" #include "rendlay.h" #include "includes/punchout.h" @@ -314,7 +315,7 @@ static WRITE8_HANDLER( spunchout_exp_w ) static ADDRESS_MAP_START( punchout_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0xbfff) AM_ROM - AM_RANGE(0xc000, 0xc3ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0xc000, 0xc3ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0xd000, 0xd7ff) AM_RAM AM_RANGE(0xd800, 0xdfff) AM_RAM_WRITE(punchout_bg_top_videoram_w) AM_BASE(&punchout_bg_top_videoram) AM_RANGE(0xdff0, 0xdff7) AM_BASE(&punchout_spr1_ctrlram) @@ -328,7 +329,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( armwrest_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0xbfff) AM_ROM - AM_RANGE(0xc000, 0xc3ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0xc000, 0xc3ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0xd000, 0xd7ff) AM_RAM AM_RANGE(0xd800, 0xdfff) AM_RAM_WRITE(armwrest_fg_videoram_w) AM_BASE(&armwrest_fg_videoram) AM_RANGE(0xdff0, 0xdff7) AM_BASE(&punchout_spr1_ctrlram) @@ -935,7 +936,7 @@ static MACHINE_CONFIG_START( punchout, driver_device ) MDRV_CPU_VBLANK_INT("top", nmi_line_pulse) MDRV_MACHINE_RESET(punchout) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ MDRV_GFXDECODE(punchout) diff --git a/src/mame/drivers/qdrmfgp.c b/src/mame/drivers/qdrmfgp.c index 0786d39d05d..37a80436454 100644 --- a/src/mame/drivers/qdrmfgp.c +++ b/src/mame/drivers/qdrmfgp.c @@ -25,6 +25,7 @@ GP1 HDD data contents: #include "machine/idectrl.h" #include "sound/k054539.h" #include "video/konicdev.h" +#include "machine/nvram.h" #include "includes/qdrmfgp.h" static UINT8 *sndram; @@ -77,7 +78,8 @@ static WRITE16_HANDLER( gp_control_w ) if (control & 0x0100) { - int vol = space->machine->generic.nvram.u16[0x10] & 0xff; + qdrmfgp_state *state = space->machine->driver_data<qdrmfgp_state>(); + int vol = state->m_nvram[0x10] & 0xff; if (vol) { running_device *k054539 = space->machine->device("konami"); @@ -107,7 +109,8 @@ static WRITE16_HANDLER( gp2_control_w ) if (control & 0x0100) { - int vol = space->machine->generic.nvram.u16[0x8] & 0xff; + qdrmfgp_state *state = space->machine->driver_data<qdrmfgp_state>(); + int vol = state->m_nvram[0x8] & 0xff; if (vol) { running_device *k054539 = space->machine->device("konami"); @@ -336,7 +339,7 @@ static void gp2_ide_interrupt(running_device *device, int state) static ADDRESS_MAP_START( qdrmfgp_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x000000, 0x0fffff) AM_ROM AM_RANGE(0x100000, 0x10ffff) AM_RAM AM_BASE(&workram) /* work ram */ - AM_RANGE(0x180000, 0x183fff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) /* backup ram */ + AM_RANGE(0x180000, 0x183fff) AM_RAM AM_SHARE("nvram") /* backup ram */ AM_RANGE(0x280000, 0x280fff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram) AM_RANGE(0x300000, 0x30003f) AM_DEVWRITE("k056832", k056832_word_w) /* video reg */ AM_RANGE(0x320000, 0x32001f) AM_DEVREADWRITE("k053252", k053252_word_r, k053252_word_w) /* ccu */ @@ -359,7 +362,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( qdrmfgp2_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x000000, 0x0fffff) AM_ROM AM_RANGE(0x100000, 0x110fff) AM_RAM AM_BASE(&workram) /* work ram */ - AM_RANGE(0x180000, 0x183fff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) /* backup ram */ + AM_RANGE(0x180000, 0x183fff) AM_RAM AM_SHARE("nvram") /* backup ram */ AM_RANGE(0x280000, 0x280fff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram) AM_RANGE(0x300000, 0x30003f) AM_DEVWRITE("k056832", k056832_word_w) /* video reg */ AM_RANGE(0x320000, 0x32001f) AM_DEVREADWRITE("k053252", k053252_word_r, k053252_word_w) /* ccu */ @@ -634,7 +637,7 @@ static MACHINE_RESET( qdrmfgp ) * *************************************/ -static MACHINE_CONFIG_START( qdrmfgp, driver_device ) +static MACHINE_CONFIG_START( qdrmfgp, qdrmfgp_state ) /* basic machine hardware */ MDRV_CPU_ADD("maincpu", M68000, 32000000/2) /* 16.000 MHz */ @@ -643,7 +646,7 @@ static MACHINE_CONFIG_START( qdrmfgp, driver_device ) MDRV_MACHINE_START(qdrmfgp) MDRV_MACHINE_RESET(qdrmfgp) - MDRV_NVRAM_HANDLER(generic_1fill) + MDRV_NVRAM_ADD_1FILL("nvram") MDRV_IDE_CONTROLLER_ADD("ide", ide_interrupt) @@ -672,7 +675,7 @@ static MACHINE_CONFIG_START( qdrmfgp, driver_device ) MDRV_SOUND_ROUTE(1, "rspeaker", 1.0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( qdrmfgp2, driver_device ) +static MACHINE_CONFIG_START( qdrmfgp2, qdrmfgp_state ) /* basic machine hardware */ MDRV_CPU_ADD("maincpu", M68000, 32000000/2) /* 16.000 MHz */ @@ -681,7 +684,7 @@ static MACHINE_CONFIG_START( qdrmfgp2, driver_device ) MDRV_MACHINE_START(qdrmfgp2) MDRV_MACHINE_RESET(qdrmfgp) - MDRV_NVRAM_HANDLER(generic_1fill) + MDRV_NVRAM_ADD_1FILL("nvram") MDRV_IDE_CONTROLLER_ADD("ide", gp2_ide_interrupt) diff --git a/src/mame/drivers/qix.c b/src/mame/drivers/qix.c index 8bf7bb6f015..51a14a4f533 100644 --- a/src/mame/drivers/qix.c +++ b/src/mame/drivers/qix.c @@ -226,6 +226,7 @@ Interrupts: #include "rendlay.h" #include "includes/qix.h" #include "cpu/m6809/m6809.h" +#include "machine/nvram.h" #include "elecyoyo.lh" @@ -560,7 +561,7 @@ static MACHINE_CONFIG_START( qix_base, qix_state ) MDRV_QUANTUM_PERFECT_CPU("maincpu") MDRV_MACHINE_RESET(qix) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") MDRV_PIA6821_ADD("pia0", qix_pia_0_intf) MDRV_PIA6821_ADD("pia1", qix_pia_1_intf) diff --git a/src/mame/drivers/quantum.c b/src/mame/drivers/quantum.c index e326f86fbb0..62af0207e04 100644 --- a/src/mame/drivers/quantum.c +++ b/src/mame/drivers/quantum.c @@ -48,6 +48,7 @@ #include "video/vector.h" #include "video/avgdvg.h" #include "sound/pokey.h" +#include "machine/nvram.h" #define MASTER_CLOCK (12096000) #define CLOCK_3KHZ (MASTER_CLOCK / 4096) @@ -118,7 +119,7 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x800000, 0x801fff) AM_RAM AM_BASE((UINT16 **)&avgdvg_vectorram) AM_SIZE(&avgdvg_vectorram_size) AM_RANGE(0x840000, 0x84001f) AM_DEVREADWRITE8("pokey1", pokey_r, pokey_w, 0x00ff) AM_RANGE(0x840020, 0x84003f) AM_DEVREADWRITE8("pokey2", pokey_r, pokey_w, 0x00ff) - AM_RANGE(0x900000, 0x9001ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x900000, 0x9001ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x940000, 0x940001) AM_READ(trackball_r) /* trackball */ AM_RANGE(0x948000, 0x948001) AM_READ_PORT("SYSTEM") AM_RANGE(0x950000, 0x95001f) AM_WRITEONLY AM_BASE((UINT16**)&avgdvg_colorram) @@ -232,7 +233,7 @@ static MACHINE_CONFIG_START( quantum, driver_device ) MDRV_CPU_PROGRAM_MAP(main_map) MDRV_CPU_PERIODIC_INT(irq1_line_hold, (double)MASTER_CLOCK / 4096 / 12) - MDRV_NVRAM_HANDLER(generic_1fill) + MDRV_NVRAM_ADD_1FILL("nvram") /* video hardware */ MDRV_SCREEN_ADD("screen", VECTOR) diff --git a/src/mame/drivers/r2dtank.c b/src/mame/drivers/r2dtank.c index e17067c7e84..9eff3affbc5 100644 --- a/src/mame/drivers/r2dtank.c +++ b/src/mame/drivers/r2dtank.c @@ -38,6 +38,7 @@ RAM = 4116 (x11) #include "cpu/m6800/m6800.h" #include "cpu/m6809/m6809.h" #include "sound/ay8910.h" +#include "machine/nvram.h" #define LOG_AUDIO_COMM (0) @@ -412,7 +413,7 @@ static ADDRESS_MAP_START( r2dtank_main_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x8004, 0x8004) AM_READWRITE(audio_answer_r, audio_command_w) AM_RANGE(0xb000, 0xb000) AM_DEVWRITE("crtc", mc6845_address_w) AM_RANGE(0xb001, 0xb001) AM_DEVWRITE("crtc", mc6845_register_w) - AM_RANGE(0xc000, 0xc007) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0xc000, 0xc007) AM_RAM AM_SHARE("nvram") AM_RANGE(0xc800, 0xffff) AM_ROM ADDRESS_MAP_END @@ -523,7 +524,7 @@ static MACHINE_CONFIG_START( r2dtank, driver_device ) MDRV_CPU_PROGRAM_MAP(r2dtank_audio_map) MDRV_MACHINE_START(r2dtank) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ MDRV_VIDEO_UPDATE(r2dtank) diff --git a/src/mame/drivers/re900.c b/src/mame/drivers/re900.c index 201de50f468..680fea2b26a 100644 --- a/src/mame/drivers/re900.c +++ b/src/mame/drivers/re900.c @@ -78,6 +78,7 @@ #include "cpu/mcs51/mcs51.h" #include "video/tms9928a.h" #include "sound/ay8910.h" +#include "machine/nvram.h" #include "re900.lh" static UINT8 *re900_rom; @@ -209,7 +210,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( mem_io, ADDRESS_SPACE_IO, 8 ) AM_RANGE(0x0000, 0xbfff) AM_READ (rom_r) - AM_RANGE(0xc000, 0xdfff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0xc000, 0xdfff) AM_RAM AM_SHARE("nvram") AM_RANGE(0xe000, 0xe000) AM_WRITE(TMS9928A_vram_w) AM_RANGE(0xe001, 0xe001) AM_WRITE(TMS9928A_register_w) AM_RANGE(0xe800, 0xe801) AM_DEVWRITE("ay_re900", ay8910_address_data_w) @@ -400,7 +401,7 @@ static MACHINE_CONFIG_START( re900, driver_device ) MDRV_SCREEN_MODIFY("screen") MDRV_SCREEN_REFRESH_RATE(60) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") /* sound hardware */ MDRV_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/roul.c b/src/mame/drivers/roul.c index 95aded1a8dc..23df24ffec0 100644 --- a/src/mame/drivers/roul.c +++ b/src/mame/drivers/roul.c @@ -50,6 +50,7 @@ not handled commands with reg[3] & 0xc0 == 0x00 #include "cpu/z80/z80.h" #include "sound/ay8910.h" #include "roul.lh" +#include "machine/nvram.h" #define VIDEOBUF_SIZE 256*256 @@ -153,7 +154,7 @@ static WRITE8_HANDLER( ball_w ) static ADDRESS_MAP_START( roul_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x7fff) AM_ROM - AM_RANGE(0x8000, 0x8fff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x8000, 0x8fff) AM_RAM AM_SHARE("nvram") ADDRESS_MAP_END static ADDRESS_MAP_START( roul_cpu_io_map, ADDRESS_SPACE_IO, 8 ) @@ -251,7 +252,7 @@ static MACHINE_CONFIG_START( roul, driver_device ) MDRV_CPU_PROGRAM_MAP(sound_map) MDRV_CPU_IO_MAP(sound_cpu_io_map) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") MDRV_PALETTE_INIT(roul) diff --git a/src/mame/drivers/royalmah.c b/src/mame/drivers/royalmah.c index d6bba87bb25..6727af99f5d 100644 --- a/src/mame/drivers/royalmah.c +++ b/src/mame/drivers/royalmah.c @@ -95,11 +95,12 @@ Stephh's notes (based on the games Z80 code and some tests) : #include "machine/msm6242.h" #include "sound/ay8910.h" #include "sound/dac.h" +#include "machine/nvram.h" static UINT8 input_port_select, dsw_select, rombank; static int palette_base; - +static UINT8 *janptr96_nvram; static PALETTE_INIT( royalmah ) { @@ -421,7 +422,7 @@ static WRITE8_HANDLER ( mjclub_bank_w ) static ADDRESS_MAP_START( royalmah_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE( 0x0000, 0x6fff ) AM_ROM AM_WRITE( royalmah_rom_w ) - AM_RANGE( 0x7000, 0x7fff ) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE( 0x7000, 0x7fff ) AM_RAM AM_SHARE("nvram") AM_RANGE( 0x8000, 0xffff ) AM_ROMBANK( "bank1" ) // banked ROMs not present in royalmah AM_RANGE( 0x8000, 0xffff ) AM_WRITEONLY AM_BASE_GENERIC(videoram) ADDRESS_MAP_END @@ -429,7 +430,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( mjapinky_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE( 0x0000, 0x6fff ) AM_ROM AM_WRITE( royalmah_rom_w ) - AM_RANGE( 0x7000, 0x77ff ) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE( 0x7000, 0x77ff ) AM_RAM AM_SHARE("nvram") AM_RANGE( 0x7800, 0x7fff ) AM_RAM AM_RANGE( 0x8000, 0x8000 ) AM_READ( mjapinky_dsw_r ) AM_RANGE( 0x8000, 0xffff ) AM_ROMBANK( "bank1" ) @@ -564,7 +565,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( janho_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE( 0x0000, 0x6fff ) AM_ROM AM_WRITE( royalmah_rom_w ) - AM_RANGE( 0x7000, 0x7fff ) AM_RAM AM_SHARE("share1") AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE( 0x7000, 0x7fff ) AM_RAM AM_SHARE("share1") AM_SHARE("nvram") AM_RANGE( 0x8000, 0xffff ) AM_WRITEONLY AM_BASE_GENERIC(videoram) ADDRESS_MAP_END @@ -686,7 +687,7 @@ static ADDRESS_MAP_START( jansou_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE( 0x6407, 0x6407 ) AM_READ(jansou_dsw_r) AM_RANGE( 0x6800, 0x6800 ) AM_WRITE(jansou_sound_w) - AM_RANGE( 0x7000, 0x77ff ) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE( 0x7000, 0x77ff ) AM_RAM AM_SHARE("nvram") AM_RANGE( 0x8000, 0xffff ) AM_WRITEONLY AM_BASE_GENERIC(videoram) ADDRESS_MAP_END @@ -707,7 +708,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( janptr96_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE( 0x0000, 0x5fff) AM_ROM - AM_RANGE( 0x6000, 0x6fff ) AM_RAMBANK("bank3") // nvram + AM_RANGE( 0x6000, 0x6fff ) AM_RAMBANK("bank3") AM_SHARE("nvram") // nvram AM_RANGE( 0x7000, 0x7fff ) AM_RAMBANK("bank2") // banked nvram AM_RANGE( 0x8000, 0xffff ) AM_ROMBANK("bank1") AM_RANGE( 0x8000, 0xffff ) AM_WRITEONLY AM_BASE_GENERIC(videoram) @@ -743,7 +744,7 @@ static WRITE8_HANDLER( janptr96_rombank_w ) static WRITE8_HANDLER( janptr96_rambank_w ) { - memory_set_bankptr(space->machine, "bank2",space->machine->generic.nvram.u8 + 0x1000 + 0x1000 * data); + memory_set_bankptr(space->machine, "bank2", janptr96_nvram + 0x1000 + 0x1000 * data); } static READ8_HANDLER( janptr96_unknown_r ) @@ -840,7 +841,7 @@ static WRITE8_HANDLER( mjifb_videoram_w ) static ADDRESS_MAP_START( mjifb_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE( 0x0000, 0x6fff ) AM_ROM - AM_RANGE( 0x7000, 0x7fff ) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE( 0x7000, 0x7fff ) AM_RAM AM_SHARE("nvram") AM_RANGE( 0x8000, 0xbfff ) AM_READWRITE(mjifb_rom_io_r, mjifb_rom_io_w) AM_BASE_GENERIC(videoram) AM_RANGE( 0xc000, 0xffff ) AM_ROM AM_WRITE(mjifb_videoram_w) // AM_RANGE( 0xc000, 0xffff ) AM_ROM AM_WRITEONLY This should, but doesn't work @@ -939,7 +940,7 @@ static WRITE8_HANDLER( mjdejavu_rom_io_w ) static ADDRESS_MAP_START( mjdejavu_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE( 0x0000, 0x6fff ) AM_ROM - AM_RANGE( 0x7000, 0x7fff ) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE( 0x7000, 0x7fff ) AM_RAM AM_SHARE("nvram") AM_RANGE( 0x8000, 0xbfff ) AM_READWRITE(mjdejavu_rom_io_r, mjdejavu_rom_io_w) AM_BASE_GENERIC(videoram) AM_RANGE( 0xc000, 0xffff ) AM_ROM AM_WRITE(mjifb_videoram_w) ADDRESS_MAP_END @@ -980,7 +981,7 @@ static ADDRESS_MAP_START( mjtensin_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE( 0x6ff0, 0x6ff0 ) AM_READWRITE( janptr96_dsw_r, janptr96_dswsel_w ) AM_RANGE( 0x6ff1, 0x6ff1 ) AM_WRITE( mjderngr_palbank_w ) AM_RANGE( 0x6ff3, 0x6ff3 ) AM_WRITE( mjtensin_6ff3_w ) - AM_RANGE( 0x7000, 0x7fff ) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE( 0x7000, 0x7fff ) AM_RAM AM_SHARE("nvram") AM_RANGE( 0x8000, 0xffff ) AM_ROMBANK( "bank1" ) AM_RANGE( 0x8000, 0xffff ) AM_WRITEONLY AM_BASE_GENERIC(videoram) ADDRESS_MAP_END @@ -1039,7 +1040,7 @@ static WRITE8_HANDLER( cafetime_7fe3_w ) static ADDRESS_MAP_START( cafetime_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE( 0x0000, 0x5fff ) AM_ROM - AM_RANGE( 0x6000, 0x7eff ) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE( 0x6000, 0x7eff ) AM_RAM AM_SHARE("nvram") AM_RANGE( 0x7fc1, 0x7fc1 ) AM_DEVREAD( "aysnd", ay8910_r ) AM_RANGE( 0x7fc2, 0x7fc3 ) AM_DEVWRITE( "aysnd", ay8910_data_address_w ) AM_RANGE( 0x7fd0, 0x7fd0 ) AM_WRITE( janptr96_coin_counter_w ) @@ -1172,7 +1173,7 @@ static READ8_HANDLER( mjvegasa_12500_r ) static ADDRESS_MAP_START( mjvegasa_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE( 0x00000, 0x05fff ) AM_ROM - AM_RANGE( 0x06000, 0x07fff ) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE( 0x06000, 0x07fff ) AM_RAM AM_SHARE("nvram") AM_RANGE( 0x08000, 0x0ffff ) AM_READWRITE(mjvegasa_rom_io_r, mjvegasa_rom_io_w) AM_BASE_GENERIC(videoram) AM_RANGE( 0x10001, 0x10001 ) AM_DEVREAD( "aysnd", ay8910_r ) @@ -3101,7 +3102,7 @@ static MACHINE_CONFIG_START( royalmah, driver_device ) MDRV_CPU_IO_MAP(royalmah_iomap) MDRV_CPU_VBLANK_INT("screen", irq0_line_hold) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ MDRV_VIDEO_UPDATE(royalmah) @@ -4596,10 +4597,9 @@ static DRIVER_INIT( ippatsu ) { memory_set_bankptr(machine, "bank1", memory_regi static DRIVER_INIT( janptr96 ) { - machine->generic.nvram_size = 0x1000 * 9; - machine->generic.nvram.u8 = auto_alloc_array(machine, UINT8, machine->generic.nvram_size ); - - memory_set_bankptr(machine, "bank3",machine->generic.nvram.u8); + janptr96_nvram = auto_alloc_array(machine, UINT8, 0x1000 * 9); + memory_set_bankptr(machine, "bank3", janptr96_nvram); + machine->device<nvram_device>("nvram")->set_base(janptr96_nvram, 0x1000 * 9); } GAME( 1981, royalmj, 0, royalmah, royalmah, 0, ROT0, "Nichibutsu", "Royal Mahjong (Japan, v1.13)", 0 ) diff --git a/src/mame/drivers/sauro.c b/src/mame/drivers/sauro.c index 2e56056d119..6d1e741af9e 100644 --- a/src/mame/drivers/sauro.c +++ b/src/mame/drivers/sauro.c @@ -125,6 +125,7 @@ Stephh's notes (based on the games Z80 code and some tests) : #include "sound/3812intf.h" #include "sound/sp0256.h" #include "includes/sauro.h" +#include "machine/nvram.h" static WRITE8_HANDLER( sauro_sound_command_w ) @@ -164,7 +165,7 @@ static WRITE8_DEVICE_HANDLER( adpcm_w ) static ADDRESS_MAP_START( sauro_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0xdfff) AM_ROM - AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0xe800, 0xebff) AM_RAM AM_BASE_SIZE_MEMBER(sauro_state, spriteram, spriteram_size) AM_RANGE(0xf000, 0xf3ff) AM_RAM_WRITE(tecfri_videoram_w) AM_BASE_MEMBER(sauro_state, videoram) AM_RANGE(0xf400, 0xf7ff) AM_RAM_WRITE(tecfri_colorram_w) AM_BASE_MEMBER(sauro_state, colorram) @@ -210,7 +211,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( trckydoc_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0xdfff) AM_ROM - AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0xe800, 0xebff) AM_RAM AM_MIRROR(0x400) AM_BASE_SIZE_MEMBER(sauro_state, spriteram, spriteram_size) AM_RANGE(0xf000, 0xf3ff) AM_RAM_WRITE(tecfri_videoram_w) AM_BASE_MEMBER(sauro_state, videoram) AM_RANGE(0xf400, 0xf7ff) AM_RAM_WRITE(tecfri_colorram_w) AM_BASE_MEMBER(sauro_state, colorram) @@ -376,7 +377,7 @@ static MACHINE_CONFIG_START( tecfri, sauro_state ) MDRV_CPU_ADD("maincpu", Z80, XTAL_20MHz/4) /* verified on pcb */ MDRV_CPU_VBLANK_INT("screen", irq0_line_hold) - MDRV_NVRAM_HANDLER(generic_1fill) + MDRV_NVRAM_ADD_1FILL("nvram") /* video hardware */ MDRV_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/sderby.c b/src/mame/drivers/sderby.c index 6a640c52cab..61bd9960777 100644 --- a/src/mame/drivers/sderby.c +++ b/src/mame/drivers/sderby.c @@ -62,6 +62,7 @@ #include "cpu/m68000/m68000.h" #include "sound/okim6295.h" #include "includes/sderby.h" +#include "machine/nvram.h" #include "sderby.lh" #include "spacewin.lh" @@ -287,7 +288,7 @@ static ADDRESS_MAP_START( sderby_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x30800e, 0x30800f) AM_DEVREADWRITE8("oki", okim6295_r, okim6295_w, 0x00ff) AM_RANGE(0x380000, 0x380fff) AM_WRITE(paletteram16_RRRRRGGGGGBBBBBx_word_w) AM_BASE_GENERIC(paletteram) AM_RANGE(0x500000, 0x500001) AM_WRITENOP /* unknown... write 0x01 in game, and 0x00 on reset */ - AM_RANGE(0xd00000, 0xd007ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0xd00000, 0xd007ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0xffc000, 0xffffff) AM_RAM ADDRESS_MAP_END @@ -308,7 +309,7 @@ static ADDRESS_MAP_START( spacewin_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0xd00000, 0xd001ff) AM_RAM AM_RANGE(0x800000, 0x800fff) AM_RAM AM_BASE_MEMBER(sderby_state,spriteram) AM_SIZE_MEMBER(sderby_state,spriteram_size) AM_RANGE(0x801000, 0x80100d) AM_WRITENOP /* unknown */ - AM_RANGE(0x8f0000, 0x8f07ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) /* 16K Dallas DS1220Y-200 NVRAM */ + AM_RANGE(0x8f0000, 0x8f07ff) AM_RAM AM_SHARE("nvram") /* 16K Dallas DS1220Y-200 NVRAM */ AM_RANGE(0x8fc000, 0x8fffff) AM_RAM ADDRESS_MAP_END @@ -328,7 +329,7 @@ static ADDRESS_MAP_START( roulette_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x70800e, 0x70800f) AM_READWRITE(rprot_r, rprot_w) /* MCU communication */ AM_RANGE(0x780000, 0x780fff) AM_WRITE(paletteram16_RRRRRGGGGGBBBBBx_word_w) AM_BASE_GENERIC(paletteram) - AM_RANGE(0xff0000, 0xff07ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0xff0000, 0xff07ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0xffc000, 0xffffff) AM_RAM ADDRESS_MAP_END @@ -459,7 +460,7 @@ static MACHINE_CONFIG_START( sderby, sderby_state ) MDRV_CPU_PROGRAM_MAP(sderby_map) MDRV_CPU_VBLANK_INT("screen", irq2_line_hold) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") MDRV_SCREEN_ADD("screen", RASTER) MDRV_SCREEN_REFRESH_RATE(60) @@ -484,7 +485,7 @@ static MACHINE_CONFIG_START( spacewin, sderby_state ) MDRV_CPU_PROGRAM_MAP(spacewin_map) MDRV_CPU_VBLANK_INT("screen", irq2_line_hold) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") MDRV_SCREEN_ADD("screen", RASTER) MDRV_SCREEN_REFRESH_RATE(60) @@ -509,7 +510,7 @@ static MACHINE_CONFIG_START( pmroulet, sderby_state ) MDRV_CPU_PROGRAM_MAP(roulette_map) MDRV_CPU_VBLANK_INT("screen", irq2_line_hold) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") MDRV_SCREEN_ADD("screen", RASTER) MDRV_SCREEN_REFRESH_RATE(60) diff --git a/src/mame/drivers/seattle.c b/src/mame/drivers/seattle.c index aa79c519cfd..7104abf4398 100644 --- a/src/mame/drivers/seattle.c +++ b/src/mame/drivers/seattle.c @@ -191,9 +191,21 @@ #include "machine/midwayic.h" #include "machine/smc91c9x.h" #include "video/voodoo.h" +#include "machine/nvram.h" +class seattle_state : public driver_device +{ +public: + seattle_state(running_machine &machine, const driver_device_config_base &config) + : driver_device(machine, config), + m_nvram(*this, "nvram") { } + + required_shared_ptr<UINT32> m_nvram; +}; + + /************************************* * * Debugging constants @@ -1574,15 +1586,17 @@ static WRITE32_DEVICE_HANDLER( widget_w ) static WRITE32_HANDLER( cmos_w ) { + seattle_state *state = space->machine->driver_data<seattle_state>(); if (cmos_write_enabled) - COMBINE_DATA(space->machine->generic.nvram.u32 + offset); + COMBINE_DATA(state->m_nvram + offset); cmos_write_enabled = FALSE; } static READ32_HANDLER( cmos_r ) { - return space->machine->generic.nvram.u32[offset]; + seattle_state *state = space->machine->driver_data<seattle_state>(); + return state->m_nvram[offset]; } @@ -1734,7 +1748,7 @@ static ADDRESS_MAP_START( seattle_map, ADDRESS_SPACE_PROGRAM, 32 ) AM_RANGE(0x0c000000, 0x0c000fff) AM_READWRITE(galileo_r, galileo_w) AM_RANGE(0x13000000, 0x13000003) AM_WRITE(asic_fifo_w) AM_RANGE(0x16000000, 0x1600003f) AM_READWRITE(midway_ioasic_r, midway_ioasic_w) - AM_RANGE(0x16100000, 0x1611ffff) AM_READWRITE(cmos_r, cmos_w) AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x16100000, 0x1611ffff) AM_READWRITE(cmos_r, cmos_w) AM_SHARE("nvram") AM_RANGE(0x17000000, 0x17000003) AM_READWRITE(cmos_protect_r, cmos_protect_w) AM_RANGE(0x17100000, 0x17100003) AM_WRITE(seattle_watchdog_w) AM_RANGE(0x17300000, 0x17300003) AM_RAM_WRITE(seattle_interrupt_enable_w) AM_BASE(&interrupt_enable) @@ -2457,7 +2471,7 @@ static const mips3_config r5000_config = SYSTEM_CLOCK /* system clock rate */ }; -static MACHINE_CONFIG_START( seattle_common, driver_device ) +static MACHINE_CONFIG_START( seattle_common, seattle_state ) /* basic machine hardware */ MDRV_CPU_ADD("maincpu", R5000LE, SYSTEM_CLOCK*3) @@ -2466,7 +2480,7 @@ static MACHINE_CONFIG_START( seattle_common, driver_device ) MDRV_MACHINE_START(seattle) MDRV_MACHINE_RESET(seattle) - MDRV_NVRAM_HANDLER(generic_1fill) + MDRV_NVRAM_ADD_1FILL("nvram") MDRV_IDE_CONTROLLER_ADD("ide", ide_interrupt) MDRV_IDE_BUS_MASTER_SPACE("maincpu", PROGRAM) diff --git a/src/mame/drivers/segac2.c b/src/mame/drivers/segac2.c index aeccffdd6de..4132d934f77 100644 --- a/src/mame/drivers/segac2.c +++ b/src/mame/drivers/segac2.c @@ -68,6 +68,7 @@ #include "emu.h" #include "cpu/m68000/m68000.h" +#include "machine/nvram.h" #include "sound/okim6295.h" #include "sound/sn76496.h" #include "sound/2612intf.h" @@ -131,7 +132,7 @@ static MACHINE_START( segac2 ) static MACHINE_RESET( segac2 ) { - megadrive_ram = machine->generic.nvram.u16; + megadrive_ram = reinterpret_cast<UINT16 *>(memory_get_shared(*machine, "nvram")); /* set up interrupts and such */ MACHINE_RESET_CALL(megadriv); @@ -629,7 +630,7 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x880100, 0x880101) AM_MIRROR(0x13fefe) AM_WRITE(counter_timer_w) AM_RANGE(0x8c0000, 0x8c0fff) AM_MIRROR(0x13f000) AM_READWRITE(palette_r, palette_w) AM_BASE_GENERIC(paletteram) AM_RANGE(0xc00000, 0xc0001f) AM_MIRROR(0x18ff00) AM_READWRITE(megadriv_vdp_r, megadriv_vdp_w) - AM_RANGE(0xe00000, 0xe0ffff) AM_MIRROR(0x1f0000) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0xe00000, 0xe0ffff) AM_MIRROR(0x1f0000) AM_RAM AM_SHARE("nvram") ADDRESS_MAP_END @@ -1368,7 +1369,7 @@ static MACHINE_CONFIG_START( segac, driver_device ) MDRV_MACHINE_START(segac2) MDRV_MACHINE_RESET(segac2) - MDRV_NVRAM_HANDLER(generic_randfill) + MDRV_NVRAM_ADD_RANDOM_FILL("nvram") MDRV_FRAGMENT_ADD(megadriv_timers) diff --git a/src/mame/drivers/sengokmj.c b/src/mame/drivers/sengokmj.c index 69b3633ace5..8d85057abff 100644 --- a/src/mame/drivers/sengokmj.c +++ b/src/mame/drivers/sengokmj.c @@ -56,6 +56,7 @@ RSSENGO2.72 chr. #include "audio/seibu.h" #include "sound/3812intf.h" #include "includes/sei_crtc.h" +#include "machine/nvram.h" static UINT16 sengokumj_mux_data; static UINT8 hopper_io; @@ -101,7 +102,7 @@ static READ16_HANDLER( sengokmj_system_r ) static ADDRESS_MAP_START( sengokmj_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x00000, 0x07fff) AM_RAM - AM_RANGE(0x08000, 0x09fff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x08000, 0x09fff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x0c000, 0x0c7ff) AM_RAM_WRITE(seibucrtc_sc0vram_w) AM_BASE(&seibucrtc_sc0vram) AM_RANGE(0x0c800, 0x0cfff) AM_RAM_WRITE(seibucrtc_sc1vram_w) AM_BASE(&seibucrtc_sc1vram) AM_RANGE(0x0d000, 0x0d7ff) AM_RAM_WRITE(seibucrtc_sc2vram_w) AM_BASE(&seibucrtc_sc2vram) @@ -286,7 +287,7 @@ static MACHINE_CONFIG_START( sengokmj, driver_device ) SEIBU_SOUND_SYSTEM_CPU(14318180/4) MDRV_MACHINE_RESET(seibu_sound) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ MDRV_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/seta2.c b/src/mame/drivers/seta2.c index a4ef68a6e68..c1db20aa507 100644 --- a/src/mame/drivers/seta2.c +++ b/src/mame/drivers/seta2.c @@ -536,6 +536,7 @@ The same H8/3007 code "FC21 IOPR-0" at U49 is used for FUNCUBE 2,3,4 & 5 #include "machine/eeprom.h" #include "sound/x1_010.h" #include "includes/seta2.h" +#include "machine/nvram.h" /*************************************************************************** @@ -835,7 +836,7 @@ static WRITE16_HANDLER( samshoot_coin_w ) static ADDRESS_MAP_START( samshoot_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE( 0x000000, 0x1fffff ) AM_ROM AM_RANGE( 0x200000, 0x20ffff ) AM_RAM - AM_RANGE( 0x300000, 0x30ffff ) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE( 0x300000, 0x30ffff ) AM_RAM AM_SHARE("nvram") AM_RANGE( 0x400000, 0x400001 ) AM_READ_PORT("DSW1") // DSW 1 AM_RANGE( 0x400002, 0x400003 ) AM_READ_PORT("BUTTONS") // Buttons @@ -870,19 +871,21 @@ ADDRESS_MAP_END // RAM shared with the sub CPU static READ32_HANDLER( funcube_nvram_dword_r ) { - UINT16 val = space->machine->generic.nvram.u16[offset]; + seta2_state *state = space->machine->driver_data<seta2_state>(); + UINT16 val = state->m_nvram[offset]; return ((val & 0xff00) << 8) | (val & 0x00ff); } static WRITE32_HANDLER( funcube_nvram_dword_w ) { + seta2_state *state = space->machine->driver_data<seta2_state>(); if (ACCESSING_BITS_0_7) { - space->machine->generic.nvram.u16[offset] = (space->machine->generic.nvram.u16[offset] & 0xff00) | (data & 0x000000ff); + state->m_nvram[offset] = (state->m_nvram[offset] & 0xff00) | (data & 0x000000ff); } if (ACCESSING_BITS_16_23) { - space->machine->generic.nvram.u16[offset] = (space->machine->generic.nvram.u16[offset] & 0x00ff) | ((data & 0x00ff0000) >> 8); + state->m_nvram[offset] = (state->m_nvram[offset] & 0x00ff) | ((data & 0x00ff0000) >> 8); } } @@ -980,7 +983,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( funcube_sub_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE( 0x000000, 0x01ffff ) AM_ROM - AM_RANGE( 0x200000, 0x20017f ) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE( 0x200000, 0x20017f ) AM_RAM AM_SHARE("nvram") ADDRESS_MAP_END @@ -2390,7 +2393,7 @@ static MACHINE_CONFIG_DERIVED( samshoot, mj4simai ) MDRV_CPU_PROGRAM_MAP(samshoot_map) MDRV_CPU_VBLANK_INT_HACK(samshoot_interrupt,2) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ MDRV_SCREEN_MODIFY("screen") @@ -2459,7 +2462,7 @@ static MACHINE_CONFIG_START( funcube, seta2_state ) MDRV_CPU_IO_MAP(funcube_sub_io) MDRV_CPU_PERIODIC_INT(funcube_sub_timer_irq, 60*10 ) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") MDRV_MACHINE_RESET( funcube ) diff --git a/src/mame/drivers/sigmab98.c b/src/mame/drivers/sigmab98.c index 54cb04da4b4..4535a32ad4f 100644 --- a/src/mame/drivers/sigmab98.c +++ b/src/mame/drivers/sigmab98.c @@ -28,6 +28,7 @@ To Do: #include "sound/ymz280b.h" #include "machine/eeprom.h" #include "machine/ticket.h" +#include "machine/nvram.h" /*************************************************************************** @@ -332,7 +333,7 @@ static ADDRESS_MAP_START( gegege_mem_map, ADDRESS_SPACE_PROGRAM, 8 ) // AM_RANGE( 0xd001, 0xd021 ) AM_RAM AM_RANGE( 0xd800, 0xdfff ) AM_RAMBANK("rambank") - AM_RANGE( 0xe000, 0xefff ) AM_RAM AM_BASE_SIZE_GENERIC(nvram) // battery + AM_RANGE( 0xe000, 0xefff ) AM_RAM AM_SHARE("nvram") // battery AM_RANGE( 0xf000, 0xffff ) AM_RAM ADDRESS_MAP_END @@ -467,7 +468,7 @@ static MACHINE_CONFIG_START( gegege, driver_device ) MDRV_CPU_IO_MAP(gegege_io_map) MDRV_CPU_VBLANK_INT("screen", gegege_vblank_interrupt) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") MDRV_EEPROM_ADD("eeprom", eeprom_intf) MDRV_TICKET_DISPENSER_ADD("hopper", 200, TICKET_MOTOR_ACTIVE_LOW, TICKET_STATUS_ACTIVE_LOW ) diff --git a/src/mame/drivers/skylncr.c b/src/mame/drivers/skylncr.c index 5fb7f189cfb..3e9c50d85a2 100644 --- a/src/mame/drivers/skylncr.c +++ b/src/mame/drivers/skylncr.c @@ -36,6 +36,7 @@ #include "cpu/z80/z80.h" #include "sound/ay8910.h" #include "machine/8255ppi.h" +#include "machine/nvram.h" static tilemap_t *tmap; @@ -313,7 +314,7 @@ static WRITE8_HANDLER( skylncr_nmi_enable_w ) static ADDRESS_MAP_START( mem_map_skylncr, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x7fff) AM_ROM - AM_RANGE(0x8000, 0x87ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x8000, 0x87ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x8800, 0x8fff) AM_RAM_WRITE( skylncr_videoram_w ) AM_BASE( &skylncr_videoram ) AM_RANGE(0x9000, 0x97ff) AM_RAM_WRITE( skylncr_colorram_w ) AM_BASE( &skylncr_colorram ) @@ -664,7 +665,7 @@ static MACHINE_CONFIG_START( skylncr, driver_device ) MDRV_CPU_IO_MAP(io_map_skylncr) MDRV_CPU_VBLANK_INT("screen", skylncr_vblank_interrupt) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") /* 1x M5M82C255, or 2x PPI8255 */ MDRV_PPI8255_ADD( "ppi8255_0", ppi8255_intf[0] ) diff --git a/src/mame/drivers/sms.c b/src/mame/drivers/sms.c index 287af7790f7..387aef1635b 100644 --- a/src/mame/drivers/sms.c +++ b/src/mame/drivers/sms.c @@ -217,6 +217,7 @@ U145 1Brown PAL14H4CN #include "cpu/z80/z80.h" #include "sound/ay8910.h" #include "machine/8255ppi.h" +#include "machine/nvram.h" /************************************* * @@ -479,7 +480,7 @@ static PALETTE_INIT( sms ) *************************************/ static ADDRESS_MAP_START( sms_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x00000, 0x007ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x00000, 0x007ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x00800, 0x00803) AM_DEVREADWRITE("ppi8255_0", ppi8255_r, ppi8255_w) AM_RANGE(0x01000, 0x01007) AM_WRITE(video_w) AM_RANGE(0x01800, 0x01803) AM_READWRITE(link_r, link_w) @@ -490,7 +491,7 @@ static ADDRESS_MAP_START( sms_map, ADDRESS_SPACE_PROGRAM, 8 ) ADDRESS_MAP_END static ADDRESS_MAP_START( sureshot_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x00000, 0x007ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x00000, 0x007ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x02000, 0x02007) AM_WRITE(video_w) AM_RANGE(0x03000, 0x03003) AM_DEVREADWRITE("ppi8255_0", ppi8255_r, ppi8255_w) AM_RANGE(0x03800, 0x03803) AM_READWRITE(link_r, link_w) @@ -547,7 +548,7 @@ static MACHINE_CONFIG_START( sms, driver_device ) MDRV_PPI8255_ADD( "ppi8255_0", ppi8255_intf[0] ) MDRV_PPI8255_ADD( "ppi8255_1", ppi8255_intf[1] ) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ MDRV_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/snookr10.c b/src/mame/drivers/snookr10.c index de99f514205..0ab5a2771b0 100644 --- a/src/mame/drivers/snookr10.c +++ b/src/mame/drivers/snookr10.c @@ -366,6 +366,7 @@ #include "sound/okim6295.h" #include "snookr10.lh" #include "includes/snookr10.h" +#include "machine/nvram.h" static int outportl, outporth; static int bit0, bit1, bit2, bit3, bit4, bit5; @@ -496,7 +497,7 @@ static WRITE8_HANDLER( output_port_1_w ) *************************/ static ADDRESS_MAP_START( snookr10_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x0fff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x0000, 0x0fff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x1000, 0x1000) AM_DEVREADWRITE("oki", okim6295_r, okim6295_w) AM_RANGE(0x3000, 0x3000) AM_READ_PORT("IN0") /* IN0 */ AM_RANGE(0x3001, 0x3001) AM_READ_PORT("IN1") /* IN1 */ @@ -511,7 +512,7 @@ static ADDRESS_MAP_START( snookr10_map, ADDRESS_SPACE_PROGRAM, 8 ) ADDRESS_MAP_END static ADDRESS_MAP_START( tenballs_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x0fff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x0000, 0x0fff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x1000, 0x1000) AM_DEVREADWRITE("oki", okim6295_r, okim6295_w) AM_RANGE(0x4000, 0x4000) AM_READ_PORT("IN0") /* IN0 */ AM_RANGE(0x4001, 0x4001) AM_READ_PORT("IN1") /* IN1 */ @@ -693,7 +694,7 @@ static MACHINE_CONFIG_START( snookr10, driver_device ) MDRV_CPU_PROGRAM_MAP(snookr10_map) MDRV_CPU_VBLANK_INT("screen", nmi_line_pulse) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ diff --git a/src/mame/drivers/speedbal.c b/src/mame/drivers/speedbal.c index c0846ce6fbf..810dff34498 100644 --- a/src/mame/drivers/speedbal.c +++ b/src/mame/drivers/speedbal.c @@ -55,6 +55,7 @@ c1 ?? #include "deprecat.h" #include "sound/3812intf.h" #include "includes/speedbal.h" +#include "machine/nvram.h" static WRITE8_HANDLER( speedbal_coincounter_w ) { @@ -70,7 +71,7 @@ static ADDRESS_MAP_START( main_cpu_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0xe000, 0xe1ff) AM_RAM_WRITE(speedbal_background_videoram_w) AM_BASE(&speedbal_background_videoram) AM_RANGE(0xe800, 0xefff) AM_RAM_WRITE(speedbal_foreground_videoram_w) AM_BASE(&speedbal_foreground_videoram) AM_RANGE(0xf000, 0xf5ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_be_w) AM_BASE_GENERIC(paletteram) - AM_RANGE(0xf600, 0xfeff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0xf600, 0xfeff) AM_RAM AM_SHARE("nvram") AM_RANGE(0xff00, 0xffff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) ADDRESS_MAP_END @@ -230,7 +231,7 @@ static MACHINE_CONFIG_START( speedbal, driver_device ) MDRV_CPU_IO_MAP(sound_cpu_io_map) MDRV_CPU_VBLANK_INT_HACK(irq0_line_hold,8) - MDRV_NVRAM_HANDLER(generic_1fill) + MDRV_NVRAM_ADD_1FILL("nvram") /* video hardware */ MDRV_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/spiders.c b/src/mame/drivers/spiders.c index 5a6a4f95a02..2fcbc25fc90 100644 --- a/src/mame/drivers/spiders.c +++ b/src/mame/drivers/spiders.c @@ -195,6 +195,7 @@ #include "machine/6821pia.h" #include "machine/74123.h" #include "includes/spiders.h" +#include "machine/nvram.h" #define MAIN_CPU_MASTER_CLOCK (11200000) @@ -588,7 +589,7 @@ static ADDRESS_MAP_START( spiders_main_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0xbfff) AM_RAM AM_BASE(&spiders_ram) AM_RANGE(0xc000, 0xc000) AM_DEVWRITE("crtc", mc6845_address_w) AM_RANGE(0xc001, 0xc001) AM_DEVREADWRITE("crtc", mc6845_register_r, mc6845_register_w) - AM_RANGE(0xc020, 0xc027) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0xc020, 0xc027) AM_RAM AM_SHARE("nvram") AM_RANGE(0xc044, 0xc047) AM_DEVREADWRITE("pia1", pia6821_r, pia6821_w) AM_RANGE(0xc048, 0xc04b) AM_DEVREADWRITE("pia2", pia6821_alt_r, pia6821_alt_w) AM_RANGE(0xc050, 0xc053) AM_DEVREADWRITE("pia3", pia6821_r, pia6821_w) @@ -716,7 +717,7 @@ static MACHINE_CONFIG_START( spiders, driver_device ) MDRV_CPU_PROGRAM_MAP(spiders_audio_map) MDRV_MACHINE_START(spiders) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ MDRV_VIDEO_UPDATE(spiders) diff --git a/src/mame/drivers/spoker.c b/src/mame/drivers/spoker.c index af4dc77fe2e..37bd486929d 100644 --- a/src/mame/drivers/spoker.c +++ b/src/mame/drivers/spoker.c @@ -12,6 +12,7 @@ TODO: #include "cpu/z180/z180.h" #include "sound/2413intf.h" #include "sound/okim6295.h" +#include "machine/nvram.h" /*************************************************************************** @@ -212,7 +213,7 @@ static READ8_HANDLER( spoker_magic_r ) static ADDRESS_MAP_START( spoker_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE( 0x00000, 0x0f3ff ) AM_ROM - AM_RANGE( 0x0f400, 0x0ffff ) AM_RAM AM_BASE_SIZE_GENERIC( nvram ) + AM_RANGE( 0x0f400, 0x0ffff ) AM_RAM AM_SHARE("nvram") ADDRESS_MAP_END static ADDRESS_MAP_START( spoker_portmap, ADDRESS_SPACE_IO, 8 ) @@ -394,7 +395,7 @@ static MACHINE_CONFIG_START( spoker, spoker_state ) MDRV_MACHINE_RESET(spoker) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ MDRV_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/srmp2.c b/src/mame/drivers/srmp2.c index 5fdd9908287..9151d123176 100644 --- a/src/mame/drivers/srmp2.c +++ b/src/mame/drivers/srmp2.c @@ -58,6 +58,7 @@ Note: #include "sound/ay8910.h" #include "sound/msm5205.h" #include "includes/srmp2.h" +#include "machine/nvram.h" /*************************************************************************** @@ -365,7 +366,7 @@ static WRITE8_HANDLER( srmp3_rombank_w ) static ADDRESS_MAP_START( srmp2_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x000000, 0x03ffff) AM_ROM - AM_RANGE(0x0c0000, 0x0c3fff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x0c0000, 0x0c3fff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x140000, 0x143fff) AM_RAM AM_BASE_MEMBER(srmp2_state,spriteram2.u16) /* Sprites Code + X + Attr */ AM_RANGE(0x180000, 0x180609) AM_RAM AM_BASE_MEMBER(srmp2_state,spriteram1.u16) /* Sprites Y */ AM_RANGE(0x1c0000, 0x1c0001) AM_WRITENOP /* ??? */ @@ -408,7 +409,7 @@ static ADDRESS_MAP_START( mjyuugi_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0xd00000, 0xd00609) AM_RAM AM_BASE_MEMBER(srmp2_state,spriteram1.u16) /* Sprites Y */ AM_RANGE(0xd02000, 0xd023ff) AM_RAM /* ??? only writes $00fa */ AM_RANGE(0xe00000, 0xe03fff) AM_RAM AM_BASE_MEMBER(srmp2_state,spriteram2.u16) /* Sprites Code + X + Attr */ - AM_RANGE(0xffc000, 0xffffff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0xffc000, 0xffffff) AM_RAM AM_SHARE("nvram") ADDRESS_MAP_END @@ -526,7 +527,7 @@ static WRITE8_HANDLER( srmp3_flags_w ) static ADDRESS_MAP_START( srmp3_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x7fff) AM_ROM AM_RANGE(0x8000, 0x9fff) AM_ROMBANK("bank1") /* rom bank */ - AM_RANGE(0xa000, 0xa7ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) /* work ram */ + AM_RANGE(0xa000, 0xa7ff) AM_RAM AM_SHARE("nvram") /* work ram */ AM_RANGE(0xa800, 0xa800) AM_WRITENOP /* flag ? */ AM_RANGE(0xb000, 0xb303) AM_RAM AM_BASE_MEMBER(srmp2_state,spriteram1.u8) /* Sprites Y */ AM_RANGE(0xb800, 0xb800) AM_WRITENOP /* flag ? */ @@ -1015,7 +1016,7 @@ static MACHINE_CONFIG_START( srmp2, srmp2_state ) MDRV_CPU_VBLANK_INT_HACK(srmp2_interrupt,16) /* Interrupt times is not understood */ MDRV_MACHINE_RESET(srmp2) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ MDRV_SCREEN_ADD("screen", RASTER) @@ -1055,7 +1056,7 @@ static MACHINE_CONFIG_START( srmp3, srmp2_state ) MDRV_CPU_VBLANK_INT("screen", irq0_line_hold) MDRV_MACHINE_RESET(srmp3) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ MDRV_SCREEN_ADD("screen", RASTER) @@ -1092,7 +1093,7 @@ static MACHINE_CONFIG_START( mjyuugi, srmp2_state ) MDRV_CPU_VBLANK_INT_HACK(srmp2_interrupt,16) /* Interrupt times is not understood */ MDRV_MACHINE_RESET(srmp2) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ MDRV_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/starwars.c b/src/mame/drivers/starwars.c index 6632347a67c..4b64a39a8b9 100644 --- a/src/mame/drivers/starwars.c +++ b/src/mame/drivers/starwars.c @@ -29,6 +29,7 @@ #include "sound/tms5220.h" #include "sound/pokey.h" #include "machine/x2212.h" +#include "machine/nvram.h" #include "includes/starwars.h" #include "includes/slapstic.h" @@ -336,7 +337,7 @@ static MACHINE_CONFIG_START( starwars, driver_device ) MDRV_CPU_PROGRAM_MAP(sound_map) MDRV_MACHINE_RESET(starwars) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") MDRV_RIOT6532_ADD("riot", MASTER_CLOCK / 8, starwars_riot6532_intf) diff --git a/src/mame/drivers/statriv2.c b/src/mame/drivers/statriv2.c index 7d3cf632b07..5d5f821adba 100644 --- a/src/mame/drivers/statriv2.c +++ b/src/mame/drivers/statriv2.c @@ -73,6 +73,7 @@ quaquiz2 - no inputs, needs NVRAM #include "sound/ay8910.h" #include "machine/8255ppi.h" #include "video/tms9927.h" +#include "machine/nvram.h" #define MASTER_CLOCK 12440000 @@ -271,7 +272,7 @@ static const ppi8255_interface ppi8255_intf = static ADDRESS_MAP_START( statriv2_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x3fff) AM_ROM AM_RANGE(0x4000, 0x43ff) AM_RAM - AM_RANGE(0x4800, 0x48ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x4800, 0x48ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0xc800, 0xcfff) AM_RAM_WRITE(statriv2_videoram_w) AM_BASE_GENERIC(videoram) ADDRESS_MAP_END @@ -575,7 +576,7 @@ static MACHINE_CONFIG_START( statriv2, driver_device ) MDRV_CPU_IO_MAP(statriv2_io_map) MDRV_CPU_VBLANK_INT("screen", statriv2_interrupt) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") /* 1x 8255 */ MDRV_PPI8255_ADD("ppi", ppi8255_intf) diff --git a/src/mame/drivers/supdrapo.c b/src/mame/drivers/supdrapo.c index ec1a744a7fe..86776dc281b 100644 --- a/src/mame/drivers/supdrapo.c +++ b/src/mame/drivers/supdrapo.c @@ -63,6 +63,7 @@ #include "emu.h" #include "cpu/z80/z80.h" #include "sound/ay8910.h" +#include "machine/nvram.h" class supdrapo_state : public driver_device { @@ -257,7 +258,7 @@ static ADDRESS_MAP_START( sdpoker_mem, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x8004, 0x8004) AM_READ_PORT("IN3") AM_WRITE(debug8004_w) AM_RANGE(0x8005, 0x8005) AM_READ_PORT("SW2") AM_RANGE(0x8006, 0x8006) AM_READ_PORT("SW1") - AM_RANGE(0x9000, 0x90ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x9000, 0x90ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x9400, 0x9400) AM_READ(sdpoker_rng_r) AM_RANGE(0x9800, 0x9801) AM_DEVWRITE("aysnd", ay8910_data_address_w) ADDRESS_MAP_END @@ -438,7 +439,7 @@ static MACHINE_CONFIG_START( supdrapo, supdrapo_state ) MDRV_MACHINE_START(supdrapo) MDRV_MACHINE_RESET(supdrapo) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ MDRV_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/suprnova.c b/src/mame/drivers/suprnova.c index c0c165a7986..97e04592eb9 100644 --- a/src/mame/drivers/suprnova.c +++ b/src/mame/drivers/suprnova.c @@ -191,6 +191,7 @@ NEP-16 #include "sound/ymz280b.h" #include "cpu/sh2/sh2.h" #include "includes/suprnova.h" +#include "machine/nvram.h" #define BIOS_SKIP 1 // Skip Bios as it takes too long and doesn't complete atm. @@ -768,7 +769,7 @@ static ADDRESS_MAP_START( skns_map, ADDRESS_SPACE_PROGRAM, 32 ) AM_RANGE(0x00400004, 0x00400007) AM_READ_PORT("400004") /* In between is write only */ AM_RANGE(0x0040000c, 0x0040000f) AM_READ_PORT("40000c") - AM_RANGE(0x00800000, 0x00801fff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) /* 'backup' RAM */ + AM_RANGE(0x00800000, 0x00801fff) AM_RAM AM_SHARE("nvram") /* 'backup' RAM */ AM_RANGE(0x00c00000, 0x00c00003) AM_DEVREADWRITE8("ymz", ymz280b_r, ymz280b_w, 0xffff0000) /* ymz280_w (sound) */ AM_RANGE(0x01000000, 0x0100000f) AM_READWRITE(skns_msm6242_r, skns_msm6242_w) AM_RANGE(0x01800000, 0x01800003) AM_WRITE(skns_hit2_w) @@ -836,7 +837,7 @@ static MACHINE_CONFIG_START( skns, driver_device ) MDRV_CPU_VBLANK_INT_HACK(skns_interrupt,2) MDRV_MACHINE_RESET(skns) - MDRV_NVRAM_HANDLER(generic_1fill) + MDRV_NVRAM_ADD_1FILL("nvram") MDRV_TIMER_ADD_PERIODIC("int15_timer", interrupt_callback, MSEC(2)) MDRV_TIMER_PARAM(15) diff --git a/src/mame/drivers/tatsumi.c b/src/mame/drivers/tatsumi.c index 7cd06f525cf..e94746459c8 100644 --- a/src/mame/drivers/tatsumi.c +++ b/src/mame/drivers/tatsumi.c @@ -144,6 +144,7 @@ #include "includes/tatsumi.h" #include "sound/2151intf.h" #include "sound/okim6295.h" +#include "machine/nvram.h" #include "roundup5.lh" @@ -194,7 +195,7 @@ static WRITE16_HANDLER(cyclwarr_sound_w) static ADDRESS_MAP_START( apache3_v30_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x00000, 0x03fff) AM_RAM - AM_RANGE(0x04000, 0x07fff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x04000, 0x07fff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x08000, 0x08fff) AM_RAM_WRITE(apache3_palette_w) AM_BASE_GENERIC(paletteram) AM_RANGE(0x0c000, 0x0dfff) AM_RAM_WRITE(roundup5_text_w) AM_BASE_GENERIC(videoram) AM_RANGE(0x0e800, 0x0e803) AM_WRITENOP // CRT @@ -874,7 +875,7 @@ static MACHINE_CONFIG_START( apache3, driver_device ) MDRV_CPU_VBLANK_INT("screen", irq0_line_hold) MDRV_QUANTUM_TIME(HZ(6000)) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") MDRV_MACHINE_RESET(apache3) /* video hardware */ diff --git a/src/mame/drivers/tceptor.c b/src/mame/drivers/tceptor.c index dbd3e809b9f..7a34543a178 100644 --- a/src/mame/drivers/tceptor.c +++ b/src/mame/drivers/tceptor.c @@ -18,6 +18,7 @@ #include "rendlay.h" #include "tceptor2.lh" #include "includes/tceptor.h" +#include "machine/nvram.h" /*******************************************************************/ @@ -228,7 +229,7 @@ static ADDRESS_MAP_START( mcu_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x8800, 0x8800) AM_WRITE(mcu_irq_enable_w) AM_RANGE(0x8000, 0xbfff) AM_ROM AM_RANGE(0xc000, 0xc7ff) AM_RAM - AM_RANGE(0xc800, 0xdfff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) // Battery Backup + AM_RANGE(0xc800, 0xdfff) AM_RAM AM_SHARE("nvram") // Battery Backup AM_RANGE(0xf000, 0xffff) AM_ROM ADDRESS_MAP_END @@ -386,7 +387,7 @@ static MACHINE_CONFIG_START( tceptor, driver_device ) MDRV_QUANTUM_TIME(HZ(6000)) - MDRV_NVRAM_HANDLER(generic_1fill) + MDRV_NVRAM_ADD_1FILL("nvram") MDRV_MACHINE_START(tceptor) MDRV_MACHINE_RESET(tceptor) diff --git a/src/mame/drivers/tickee.c b/src/mame/drivers/tickee.c index 1fb5643a946..10186162ee2 100644 --- a/src/mame/drivers/tickee.c +++ b/src/mame/drivers/tickee.c @@ -24,6 +24,7 @@ #include "video/tlc34076.h" #include "sound/ay8910.h" #include "sound/okim6295.h" +#include "machine/nvram.h" #define CPU_CLOCK XTAL_40MHz #define VIDEO_CLOCK XTAL_14_31818MHz @@ -352,7 +353,7 @@ static WRITE16_DEVICE_HANDLER( sound_bank_w ) static ADDRESS_MAP_START( tickee_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x00000000, 0x003fffff) AM_RAM AM_BASE(&tickee_vram) AM_RANGE(0x02000000, 0x02ffffff) AM_ROM AM_REGION("user1", 0) - AM_RANGE(0x04000000, 0x04003fff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x04000000, 0x04003fff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x04100000, 0x041000ff) AM_DEVREADWRITE8("tlc34076", tlc34076_r, tlc34076_w, 0x00ff) AM_RANGE(0x04200000, 0x0420000f) AM_DEVREAD8("ym1", ay8910_r, 0x00ff) AM_RANGE(0x04200000, 0x0420001f) AM_DEVWRITE8("ym1", ay8910_address_data_w, 0x00ff) @@ -370,7 +371,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( ghoshunt_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x00000000, 0x003fffff) AM_RAM AM_BASE(&tickee_vram) AM_RANGE(0x02000000, 0x02ffffff) AM_ROM AM_REGION("user1", 0) - AM_RANGE(0x04100000, 0x04103fff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x04100000, 0x04103fff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x04200000, 0x042000ff) AM_DEVREADWRITE8("tlc34076", tlc34076_r, tlc34076_w, 0x00ff) AM_RANGE(0x04300000, 0x0430000f) AM_DEVREAD8("ym1", ay8910_r, 0x00ff) AM_RANGE(0x04300000, 0x0430001f) AM_DEVWRITE8("ym1", ay8910_address_data_w, 0x00ff) @@ -386,7 +387,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( mouseatk_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x00000000, 0x003fffff) AM_RAM AM_BASE(&tickee_vram) AM_RANGE(0x02000000, 0x02ffffff) AM_ROM AM_REGION("user1", 0) - AM_RANGE(0x04000000, 0x04003fff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x04000000, 0x04003fff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x04100000, 0x041000ff) AM_DEVREADWRITE8("tlc34076", tlc34076_r, tlc34076_w, 0x00ff) AM_RANGE(0x04200000, 0x0420000f) AM_DEVREAD8("ym", ay8910_r, 0x00ff) AM_RANGE(0x04200000, 0x0420000f) AM_DEVWRITE8("ym", ay8910_address_data_w, 0x00ff) @@ -417,7 +418,7 @@ static ADDRESS_MAP_START( rapidfir_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0xfc000c00, 0xfc000c1f) AM_READ_PORT("DSW1") AM_RANGE(0xfc000e00, 0xfc000e1f) AM_READ(watchdog_reset16_r) AM_RANGE(0xfc100000, 0xfc1000ff) AM_DEVREADWRITE8("tlc34076", tlc34076_r, tlc34076_w, 0x00ff) - AM_RANGE(0xfc200000, 0xfc207fff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0xfc200000, 0xfc207fff) AM_RAM AM_SHARE("nvram") AM_RANGE(0xfc300000, 0xfc30000f) AM_DEVREADWRITE8("oki", okim6295_r, okim6295_w, 0x00ff) AM_RANGE(0xfc400010, 0xfc40001f) AM_READ(ff7f_r) AM_RANGE(0xfe000000, 0xffffffff) AM_ROM AM_REGION("user1", 0) @@ -732,7 +733,7 @@ static MACHINE_CONFIG_START( tickee, driver_device ) MDRV_CPU_PROGRAM_MAP(tickee_map) MDRV_MACHINE_RESET(tickee) - MDRV_NVRAM_HANDLER(generic_1fill) + MDRV_NVRAM_ADD_1FILL("nvram") MDRV_TICKET_DISPENSER_ADD("ticket1", 100, TICKET_MOTOR_ACTIVE_LOW, TICKET_STATUS_ACTIVE_HIGH) MDRV_TICKET_DISPENSER_ADD("ticket2", 100, TICKET_MOTOR_ACTIVE_LOW, TICKET_STATUS_ACTIVE_HIGH) @@ -776,7 +777,7 @@ static MACHINE_CONFIG_START( rapidfir, driver_device ) MDRV_CPU_PROGRAM_MAP(rapidfir_map) MDRV_MACHINE_RESET(rapidfir) - MDRV_NVRAM_HANDLER(generic_1fill) + MDRV_NVRAM_ADD_1FILL("nvram") /* video hardware */ MDRV_TLC34076_ADD("tlc34076", TLC34076_6_BIT) @@ -804,7 +805,7 @@ static MACHINE_CONFIG_START( mouseatk, driver_device ) MDRV_CPU_PROGRAM_MAP(mouseatk_map) MDRV_MACHINE_RESET(tickee) - MDRV_NVRAM_HANDLER(generic_1fill) + MDRV_NVRAM_ADD_1FILL("nvram") MDRV_TICKET_DISPENSER_ADD("ticket1", 100, TICKET_MOTOR_ACTIVE_LOW, TICKET_STATUS_ACTIVE_HIGH) MDRV_TICKET_DISPENSER_ADD("ticket2", 100, TICKET_MOTOR_ACTIVE_LOW, TICKET_STATUS_ACTIVE_HIGH) diff --git a/src/mame/drivers/tmaster.c b/src/mame/drivers/tmaster.c index d278961c8ad..59238d662cf 100644 --- a/src/mame/drivers/tmaster.c +++ b/src/mame/drivers/tmaster.c @@ -108,6 +108,7 @@ To Do: #include "machine/eeprom.h" #include "machine/microtch.h" #include "machine/68681.h" +#include "machine/nvram.h" /*************************************************************************** @@ -475,7 +476,7 @@ static READ16_HANDLER( tmaster_coins_r ) static ADDRESS_MAP_START( tmaster_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE( 0x000000, 0x1fffff ) AM_ROM AM_RANGE( 0x200000, 0x27ffff ) AM_RAM - AM_RANGE( 0x280000, 0x28ffef ) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE( 0x280000, 0x28ffef ) AM_RAM AM_SHARE("nvram") AM_RANGE( 0x28fff0, 0x28ffff ) AM_READWRITE( rtc_r, rtc_w ) AM_RANGE( 0x300010, 0x300011 ) AM_READ( tmaster_coins_r ) @@ -880,7 +881,7 @@ static MACHINE_CONFIG_START( tm3k, driver_device ) MDRV_DUART68681_ADD( "duart68681", XTAL_8_664MHz / 2 /*??*/, tmaster_duart68681_config ) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") MDRV_SCREEN_ADD("screen", RASTER) MDRV_SCREEN_REFRESH_RATE(60) diff --git a/src/mame/drivers/tmnt.c b/src/mame/drivers/tmnt.c index b26f81abef0..cb0174ecca2 100644 --- a/src/mame/drivers/tmnt.c +++ b/src/mame/drivers/tmnt.c @@ -77,11 +77,10 @@ Updates: #include "sound/k054539.h" #include "sound/k007232.h" #include "sound/upd7759.h" +#include "machine/nvram.h" #include "includes/tmnt.h" #include "includes/konamipt.h" -static UINT16 cuebrick_nvram[0x400 * 0x20]; // 32k paged in a 1k window - static READ16_HANDLER( k052109_word_noA12_r ) { tmnt_state *state = space->machine->driver_data<tmnt_state>(); @@ -573,13 +572,13 @@ static WRITE16_HANDLER( prmrsocr_eeprom_w ) static READ16_HANDLER( cuebrick_nv_r ) { tmnt_state *state = space->machine->driver_data<tmnt_state>(); - return cuebrick_nvram[offset + (state->cuebrick_nvram_bank * 0x400 / 2)]; + return state->m_cuebrick_nvram[offset + (state->cuebrick_nvram_bank * 0x400 / 2)]; } static WRITE16_HANDLER( cuebrick_nv_w ) { tmnt_state *state = space->machine->driver_data<tmnt_state>(); - COMBINE_DATA(&cuebrick_nvram[offset + (state->cuebrick_nvram_bank * 0x400 / 2)]); + COMBINE_DATA(&state->m_cuebrick_nvram[offset + (state->cuebrick_nvram_bank * 0x400 / 2)]); } static WRITE16_HANDLER( cuebrick_nvbank_w ) @@ -600,7 +599,7 @@ static ADDRESS_MAP_START( cuebrick_main_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x0a0010, 0x0a0011) AM_READ_PORT("DSW1") AM_WRITE(watchdog_reset16_w) AM_RANGE(0x0a0012, 0x0a0013) AM_READ_PORT("DSW2") AM_RANGE(0x0a0018, 0x0a0019) AM_READ_PORT("DSW3") - AM_RANGE(0x0b0000, 0x0b03ff) AM_READWRITE(cuebrick_nv_r, cuebrick_nv_w) + AM_RANGE(0x0b0000, 0x0b03ff) AM_READWRITE(cuebrick_nv_r, cuebrick_nv_w) AM_SHARE("nvram") AM_RANGE(0x0b0400, 0x0b0401) AM_WRITE(cuebrick_nvbank_w) AM_RANGE(0x0c0000, 0x0c0003) AM_DEVREADWRITE8("ymsnd", ym2151_r, ym2151_w, 0xff00) AM_RANGE(0x100000, 0x107fff) AM_READWRITE(k052109_word_noA12_r, k052109_word_noA12_w) @@ -2295,7 +2294,7 @@ static MACHINE_CONFIG_START( cuebrick, tmnt_state ) MDRV_SCREEN_VISIBLE_AREA(13*8, (64-13)*8-1, 2*8, 30*8-1 ) MDRV_PALETTE_LENGTH(1024) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") MDRV_VIDEO_START(cuebrick) MDRV_VIDEO_UPDATE(mia) @@ -4285,8 +4284,8 @@ static DRIVER_INIT( tmnt ) static DRIVER_INIT( cuebrick ) { - machine->generic.nvram.u8 = (UINT8 *)cuebrick_nvram; - machine->generic.nvram_size = 0x400 * 0x20; + tmnt_state *state = machine->driver_data<tmnt_state>(); + machine->device<nvram_device>("nvram")->set_base(state->m_cuebrick_nvram, sizeof(state->m_cuebrick_nvram)); } GAME( 1989, cuebrick, 0, cuebrick, cuebrick, cuebrick, ROT0, "Konami", "Cue Brick (World version D)", GAME_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/trackfld.c b/src/mame/drivers/trackfld.c index 35a9774e883..436230cd1d0 100644 --- a/src/mame/drivers/trackfld.c +++ b/src/mame/drivers/trackfld.c @@ -189,6 +189,7 @@ MAIN BOARD: #include "sound/msm5205.h" #include "includes/trackfld.h" #include "includes/konamipt.h" +#include "machine/nvram.h" #define MASTER_CLOCK XTAL_18_432MHz #define SOUND_CLOCK XTAL_14_31818MHz @@ -284,7 +285,7 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x1c00, 0x1c3f) AM_RAM AM_BASE_SIZE_MEMBER(trackfld_state, spriteram, spriteram_size) AM_RANGE(0x1c40, 0x1c5f) AM_RAM AM_BASE_MEMBER(trackfld_state, scroll2) AM_RANGE(0x1c60, 0x1fff) AM_RAM - AM_RANGE(0x2800, 0x2fff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x2800, 0x2fff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x3000, 0x37ff) AM_RAM_WRITE(trackfld_videoram_w) AM_BASE_MEMBER(trackfld_state, videoram) AM_RANGE(0x3800, 0x3fff) AM_RAM_WRITE(trackfld_colorram_w) AM_BASE_MEMBER(trackfld_state, colorram) AM_RANGE(0x6000, 0xffff) AM_ROM @@ -313,7 +314,7 @@ static ADDRESS_MAP_START( yieartf_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x1c00, 0x1c3f) AM_RAM AM_BASE_SIZE_MEMBER(trackfld_state, spriteram, spriteram_size) AM_RANGE(0x1c40, 0x1c5f) AM_RAM AM_BASE_MEMBER(trackfld_state, scroll2) AM_RANGE(0x1c60, 0x1fff) AM_RAM - AM_RANGE(0x2800, 0x2fff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x2800, 0x2fff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x3000, 0x37ff) AM_RAM_WRITE(trackfld_videoram_w) AM_BASE_MEMBER(trackfld_state, videoram) AM_RANGE(0x3800, 0x3fff) AM_RAM_WRITE(trackfld_colorram_w) AM_BASE_MEMBER(trackfld_state, colorram) AM_RANGE(0x6000, 0xffff) AM_ROM @@ -340,7 +341,7 @@ static ADDRESS_MAP_START( reaktor_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x9c40, 0x9c5f) AM_RAM AM_BASE_MEMBER(trackfld_state, scroll2) AM_RANGE(0x9c60, 0x9fff) AM_RAM AM_RANGE(0xa800, 0xabff) AM_RAM - AM_RANGE(0xac00, 0xafff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0xac00, 0xafff) AM_RAM AM_SHARE("nvram") AM_RANGE(0xb000, 0xb7ff) AM_RAM_WRITE(trackfld_videoram_w) AM_BASE_MEMBER(trackfld_state, videoram) AM_RANGE(0xb800, 0xbfff) AM_RAM_WRITE(trackfld_colorram_w) AM_BASE_MEMBER(trackfld_state, colorram) ADDRESS_MAP_END @@ -373,7 +374,7 @@ static ADDRESS_MAP_START( mastkin_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x1c40, 0x1c5f) AM_RAM AM_BASE_MEMBER(trackfld_state, scroll2) AM_RANGE(0x1c60, 0x1fff) AM_RAM AM_RANGE(0x2800, 0x2bff) AM_RAM - AM_RANGE(0x2c00, 0x2fff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x2c00, 0x2fff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x3000, 0x37ff) AM_RAM_WRITE(trackfld_videoram_w) AM_BASE_MEMBER(trackfld_state, videoram) AM_RANGE(0x3800, 0x3fff) AM_RAM_WRITE(trackfld_colorram_w) AM_BASE_MEMBER(trackfld_state, colorram) AM_RANGE(0x6000, 0xffff) AM_ROM @@ -399,7 +400,7 @@ static ADDRESS_MAP_START( wizzquiz_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x1c40, 0x1c5f) AM_RAM AM_BASE_MEMBER(trackfld_state, scroll2) AM_RANGE(0x1c60, 0x1fff) AM_RAM AM_RANGE(0x2800, 0x2bff) AM_RAM - AM_RANGE(0x2c00, 0x2fff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x2c00, 0x2fff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x3000, 0x37ff) AM_RAM_WRITE(trackfld_videoram_w) AM_BASE_MEMBER(trackfld_state, videoram) AM_RANGE(0x3800, 0x3fff) AM_RAM_WRITE(trackfld_colorram_w) AM_BASE_MEMBER(trackfld_state, colorram) AM_RANGE(0xc000, 0xc000) AM_WRITE(questions_bank_w) @@ -1005,7 +1006,7 @@ static MACHINE_CONFIG_START( trackfld, trackfld_state ) MDRV_MACHINE_START(trackfld) MDRV_MACHINE_RESET(trackfld) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ MDRV_SCREEN_ADD("screen", RASTER) @@ -1049,7 +1050,7 @@ static MACHINE_CONFIG_START( yieartf, trackfld_state ) MDRV_MACHINE_START(trackfld) MDRV_MACHINE_RESET(trackfld) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ MDRV_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/triplhnt.c b/src/mame/drivers/triplhnt.c index 1612d384557..99ce40389cd 100644 --- a/src/mame/drivers/triplhnt.c +++ b/src/mame/drivers/triplhnt.c @@ -12,6 +12,7 @@ To Do: #include "emu.h" #include "cpu/m6800/m6800.h" +#include "machine/nvram.h" #include "includes/triplhnt.h" static UINT8 triplhnt_cmos[16]; @@ -23,8 +24,7 @@ static UINT8 triplhnt_hit_code; static DRIVER_INIT( triplhnt ) { - machine->generic.nvram.u8 = triplhnt_cmos; - machine->generic.nvram_size = sizeof triplhnt_cmos; + machine->device<nvram_device>("nvram")->set_base(triplhnt_cmos, sizeof(triplhnt_cmos)); } @@ -148,7 +148,7 @@ static ADDRESS_MAP_START( triplhnt_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0c0a, 0x0c0a) AM_READ_PORT("0C0A") AM_RANGE(0x0c0b, 0x0c0b) AM_READ(triplhnt_input_port_4_r) AM_RANGE(0x0c10, 0x0c1f) AM_READ(triplhnt_da_latch_r) - AM_RANGE(0x0c20, 0x0c2f) AM_READ(triplhnt_cmos_r) + AM_RANGE(0x0c20, 0x0c2f) AM_READ(triplhnt_cmos_r) AM_SHARE("nvram") AM_RANGE(0x0c30, 0x0c3f) AM_READWRITE(triplhnt_misc_r, triplhnt_misc_w) AM_RANGE(0x0c40, 0x0c40) AM_READ_PORT("0C40") AM_RANGE(0x0c48, 0x0c48) AM_READ_PORT("0C48") @@ -316,7 +316,7 @@ static MACHINE_CONFIG_START( triplhnt, driver_device ) MDRV_CPU_PROGRAM_MAP(triplhnt_map) MDRV_CPU_VBLANK_INT("screen", irq0_line_hold) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ MDRV_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/trvquest.c b/src/mame/drivers/trvquest.c index 8b9b7277a9e..641a9384d1e 100644 --- a/src/mame/drivers/trvquest.c +++ b/src/mame/drivers/trvquest.c @@ -39,6 +39,7 @@ Notes: #include "machine/6522via.h" #include "sound/ay8910.h" #include "includes/gameplan.h" +#include "machine/nvram.h" static READ8_HANDLER( trvquest_question_r ) { @@ -58,7 +59,7 @@ static WRITE8_DEVICE_HANDLER( trvquest_misc_w ) } static ADDRESS_MAP_START( cpu_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x1fff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) // cmos ram + AM_RANGE(0x0000, 0x1fff) AM_RAM AM_SHARE("nvram") // cmos ram AM_RANGE(0x2000, 0x27ff) AM_RAM // main ram AM_RANGE(0x3800, 0x380f) AM_DEVREADWRITE("via6522_1", via_r, via_w) AM_RANGE(0x3810, 0x381f) AM_DEVREADWRITE("via6522_2", via_r, via_w) @@ -221,7 +222,7 @@ static MACHINE_CONFIG_START( trvquest, gameplan_state ) MDRV_CPU_PROGRAM_MAP(cpu_map) MDRV_CPU_VBLANK_INT("screen", trvquest_interrupt) - MDRV_NVRAM_HANDLER(generic_1fill) + MDRV_NVRAM_ADD_1FILL("nvram") MDRV_MACHINE_START(trvquest) MDRV_MACHINE_RESET(trvquest) diff --git a/src/mame/drivers/twin16.c b/src/mame/drivers/twin16.c index 7e193e40308..50d6bab2fa1 100644 --- a/src/mame/drivers/twin16.c +++ b/src/mame/drivers/twin16.c @@ -49,6 +49,7 @@ Known Issues: #include "sound/2151intf.h" #include "sound/k007232.h" #include "sound/upd7759.h" +#include "machine/nvram.h" #include "includes/twin16.h" #include "includes/konamipt.h" @@ -248,7 +249,7 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x0a0000, 0x0a0001) AM_WRITE(twin16_CPUA_register_w) AM_RANGE(0x0a0008, 0x0a0009) AM_WRITE(sound_command_w) AM_RANGE(0x0a0010, 0x0a0011) AM_WRITE(watchdog_reset16_w) - AM_RANGE(0x0b0000, 0x0b03ff) AM_READWRITE(cuebrickj_nvram_r, cuebrickj_nvram_w) + AM_RANGE(0x0b0000, 0x0b03ff) AM_READWRITE(cuebrickj_nvram_r, cuebrickj_nvram_w) AM_SHARE("nvram") AM_RANGE(0x0b0400, 0x0b0401) AM_WRITE(cuebrickj_nvram_bank_w) AM_RANGE(0x0c0000, 0x0c000f) AM_WRITE(twin16_video_register_w) AM_RANGE(0x0c000e, 0x0c000f) AM_READ(twin16_sprite_status_r) @@ -830,7 +831,7 @@ MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( cuebrickj, twin16 ) MDRV_SCREEN_MODIFY("screen") MDRV_SCREEN_VISIBLE_AREA(1*8, 39*8-1, 2*8, 30*8-1) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") MACHINE_CONFIG_END /* ROMs */ @@ -1329,8 +1330,7 @@ static DRIVER_INIT( cuebrickj ) { gfx_untangle(machine); - machine->generic.nvram.u8 = (UINT8 *)cuebrickj_nvram; - machine->generic.nvram_size = 0x400*0x20; + machine->device<nvram_device>("nvram")->set_base(cuebrickj_nvram, 0x400*0x20); } /* Game Drivers */ diff --git a/src/mame/drivers/tx1.c b/src/mame/drivers/tx1.c index 7a9f777bc32..f83f8b3dadb 100644 --- a/src/mame/drivers/tx1.c +++ b/src/mame/drivers/tx1.c @@ -45,6 +45,7 @@ #include "sound/ay8910.h" #include "rendlay.h" #include "includes/tx1.h" +#include "machine/nvram.h" #include "tx1.lh" #include "buggyboy.lh" @@ -508,7 +509,7 @@ static const ppi8255_interface tx1_ppi8255_intf = static ADDRESS_MAP_START( tx1_main, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x00000, 0x00fff) AM_MIRROR(0x1000) AM_RAM AM_RANGE(0x02000, 0x02fff) AM_MIRROR(0x1000) AM_RAM - AM_RANGE(0x04000, 0x04fff) AM_MIRROR(0x1000) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x04000, 0x04fff) AM_MIRROR(0x1000) AM_RAM AM_SHARE("nvram") AM_RANGE(0x06000, 0x06fff) AM_READWRITE(tx1_crtc_r, tx1_crtc_w) AM_RANGE(0x08000, 0x09fff) AM_RAM AM_BASE(&tx1_vram) AM_RANGE(0x0a000, 0x0afff) AM_RAM AM_SHARE("share1") AM_BASE(&tx1_rcram) @@ -559,7 +560,7 @@ ADDRESS_MAP_END *************************************/ static ADDRESS_MAP_START( buggyboy_main, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x00000, 0x03fff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x00000, 0x03fff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x04000, 0x04fff) AM_READWRITE(tx1_crtc_r, tx1_crtc_w) AM_RANGE(0x08000, 0x09fff) AM_RAM AM_BASE(&buggyboy_vram) AM_RANGE(0x0a000, 0x0afff) AM_RAM AM_SHARE("share1") AM_BASE(&buggyboy_rcram) AM_SIZE(&buggyboy_rcram_size) @@ -574,7 +575,7 @@ static ADDRESS_MAP_START( buggyboy_main, ADDRESS_SPACE_PROGRAM, 16 ) ADDRESS_MAP_END static ADDRESS_MAP_START( buggybjr_main, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x00000, 0x03fff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x00000, 0x03fff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x04000, 0x04fff) AM_READWRITE(tx1_crtc_r, tx1_crtc_w) AM_RANGE(0x08000, 0x08fff) AM_RAM AM_BASE(&buggyboy_vram) AM_RANGE(0x0a000, 0x0afff) AM_RAM AM_SHARE("share1") AM_BASE(&buggyboy_rcram) AM_SIZE(&buggyboy_rcram_size) @@ -714,7 +715,7 @@ static MACHINE_CONFIG_START( tx1, driver_device ) MDRV_CPU_PERIODIC_INT(irq0_line_hold, TX1_PIXEL_CLOCK / 4 / 2048 / 2) MDRV_MACHINE_RESET(tx1) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") MDRV_PPI8255_ADD("ppi8255", tx1_ppi8255_intf) @@ -767,7 +768,7 @@ static MACHINE_CONFIG_START( buggyboy, driver_device ) MDRV_CPU_IO_MAP(buggyboy_sound_io) MDRV_MACHINE_RESET(buggyboy) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") MDRV_PPI8255_ADD("ppi8255", buggyboy_ppi8255_intf) @@ -822,7 +823,7 @@ static MACHINE_CONFIG_START( buggybjr, driver_device ) MDRV_CPU_PERIODIC_INT(z80_irq, BUGGYBOY_ZCLK / 2 / 4 / 2048) MDRV_MACHINE_RESET(buggybjr) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") MDRV_SCREEN_ADD("screen", RASTER) MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) diff --git a/src/mame/drivers/upscope.c b/src/mame/drivers/upscope.c index 315c716ef2a..6700c7891ee 100644 --- a/src/mame/drivers/upscope.c +++ b/src/mame/drivers/upscope.c @@ -27,8 +27,18 @@ #include "cpu/m68000/m68000.h" #include "includes/amiga.h" #include "machine/6526cia.h" +#include "machine/nvram.h" +class upscope_state : public driver_device +{ +public: + upscope_state(running_machine &machine, const driver_device_config_base &config) + : driver_device(machine, config) { } + + UINT8 m_nvram[0x100]; +}; + /************************************* * @@ -193,8 +203,9 @@ static WRITE8_DEVICE_HANDLER( upscope_cia_1_porta_w ) /* if SEL == 0 && BUSY == 1, we write data to NVRAM */ else if ((data & 5) == 1) { + upscope_state *state = device->machine->driver_data<upscope_state>(); if (LOG_IO) logerror("NVRAM data write @ %02X = %02X\n", nvram_address_latch, parallel_data); - device->machine->generic.nvram.u8[nvram_address_latch] = parallel_data; + state->m_nvram[nvram_address_latch] = parallel_data; } /* if SEL == 0 && BUSY == 0, who knows? */ @@ -217,7 +228,8 @@ static WRITE8_DEVICE_HANDLER( upscope_cia_1_porta_w ) /* if SEL == 0, we read NVRAM */ else { - nvram_data_latch = device->machine->generic.nvram.u8[nvram_address_latch]; + upscope_state *state = device->machine->driver_data<upscope_state>(); + nvram_data_latch = state->m_nvram[nvram_address_latch]; if (LOG_IO) logerror("NVRAM data read @ %02X = %02X\n", nvram_address_latch, nvram_data_latch); } } @@ -300,14 +312,14 @@ static const mos6526_interface cia_1_intf = DEVCB_NULL }; -static MACHINE_CONFIG_START( upscope, driver_device ) +static MACHINE_CONFIG_START( upscope, upscope_state ) /* basic machine hardware */ MDRV_CPU_ADD("maincpu", M68000, AMIGA_68000_NTSC_CLOCK) MDRV_CPU_PROGRAM_MAP(main_map) MDRV_MACHINE_RESET(amiga) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ MDRV_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK) @@ -391,8 +403,8 @@ static DRIVER_INIT( upscope ) amiga_machine_config(machine, &upscope_intf); /* allocate NVRAM */ - machine->generic.nvram_size = 0x100; - machine->generic.nvram.u8 = auto_alloc_array(machine, UINT8, machine->generic.nvram_size); + upscope_state *state = machine->driver_data<upscope_state>(); + machine->device<nvram_device>("nvram")->set_base(state->m_nvram, sizeof(state->m_nvram)); /* set up memory */ memory_configure_bank(machine, "bank1", 0, 1, amiga_chip_ram, 0); diff --git a/src/mame/drivers/usgames.c b/src/mame/drivers/usgames.c index 058a5b2b1f3..7322b51439f 100644 --- a/src/mame/drivers/usgames.c +++ b/src/mame/drivers/usgames.c @@ -28,6 +28,7 @@ Sound: AY-3-8912 #include "video/mc6845.h" #include "sound/ay8910.h" #include "includes/usgames.h" +#include "machine/nvram.h" static WRITE8_HANDLER( usgames_rombank_w ) @@ -60,7 +61,7 @@ static WRITE8_HANDLER( lamps2_w ) static ADDRESS_MAP_START( usgames_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x1fff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x0000, 0x1fff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x2000, 0x2000) AM_READ_PORT("DSW") AM_RANGE(0x2010, 0x2010) AM_READ_PORT("INPUTS") AM_RANGE(0x2020, 0x2020) AM_WRITE(lamps1_w) @@ -79,7 +80,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( usg185_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x1fff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x0000, 0x1fff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x2000, 0x2001) AM_DEVWRITE("aysnd", ay8910_address_data_w) AM_RANGE(0x2400, 0x2400) AM_READ_PORT("DSW") AM_RANGE(0x2410, 0x2410) AM_READ_PORT("INPUTS") @@ -235,7 +236,7 @@ static MACHINE_CONFIG_START( usg32, driver_device ) MDRV_CPU_PROGRAM_MAP(usgames_map) MDRV_CPU_PERIODIC_INT(irq0_line_hold,5*60) /* ?? */ - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ MDRV_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/vcombat.c b/src/mame/drivers/vcombat.c index 008f01163dd..18330e892bd 100644 --- a/src/mame/drivers/vcombat.c +++ b/src/mame/drivers/vcombat.c @@ -87,6 +87,7 @@ TODO : This is a partially working driver. Most of the memory maps for #include "video/tlc34076.h" #include "video/mc6845.h" #include "sound/dac.h" +#include "machine/nvram.h" static UINT16* m68k_framebuffer[2]; @@ -327,7 +328,7 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x60000c, 0x60000d) AM_WRITE(crtc_w) AM_RANGE(0x600010, 0x600011) AM_RAM AM_BASE(&framebuffer_ctrl) - AM_RANGE(0x700000, 0x7007ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x700000, 0x7007ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x701000, 0x701001) AM_READ(main_irqiack_r) AM_RANGE(0x702000, 0x702001) AM_READ(control_3_r) AM_RANGE(0x705000, 0x705001) AM_RAM AM_SHARE("share4") /* M1->M0 */ @@ -564,7 +565,7 @@ static MACHINE_CONFIG_START( vcombat, driver_device ) MDRV_CPU_PROGRAM_MAP(sound_map) MDRV_CPU_PERIODIC_INT(irq1_line_hold, 15000) /* Remove this if MC6845 is enabled */ - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") MDRV_MACHINE_RESET(vcombat) /* Temporary hack for experimenting with timing. */ @@ -609,7 +610,7 @@ static MACHINE_CONFIG_START( shadfgtr, driver_device ) MDRV_CPU_ADD("soundcpu", M68000, XTAL_12MHz) MDRV_CPU_PROGRAM_MAP(sound_map) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") MDRV_MACHINE_RESET(shadfgtr) MDRV_TLC34076_ADD("tlc34076", TLC34076_6_BIT) diff --git a/src/mame/drivers/vertigo.c b/src/mame/drivers/vertigo.c index 25093c45e13..083222ba9c1 100644 --- a/src/mame/drivers/vertigo.c +++ b/src/mame/drivers/vertigo.c @@ -17,6 +17,7 @@ #include "includes/exidy440.h" #include "machine/74148.h" #include "machine/pit8253.h" +#include "machine/nvram.h" @@ -42,7 +43,7 @@ static ADDRESS_MAP_START( vertigo_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x004060, 0x00406f) AM_WRITE(vertigo_motor_w) AM_MIRROR(0x001000) AM_RANGE(0x004070, 0x00407f) AM_WRITE(vertigo_wsot_w) AM_MIRROR(0x001000) AM_RANGE(0x006000, 0x006007) AM_DEVREADWRITE("pit8254", vertigo_pit8254_lsb_r, vertigo_pit8254_lsb_w) - AM_RANGE(0x007000, 0x0073ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x007000, 0x0073ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x800000, 0x81ffff) AM_ROM ADDRESS_MAP_END @@ -124,7 +125,7 @@ static MACHINE_CONFIG_START( vertigo, driver_device ) */ MDRV_MACHINE_START(vertigo) MDRV_MACHINE_RESET(vertigo) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ MDRV_SCREEN_ADD("screen", VECTOR) diff --git a/src/mame/drivers/victory.c b/src/mame/drivers/victory.c index 95b96f20737..9a233c06124 100644 --- a/src/mame/drivers/victory.c +++ b/src/mame/drivers/victory.c @@ -98,6 +98,7 @@ #include "cpu/z80/z80.h" #include "includes/exidy.h" #include "includes/victory.h" +#include "machine/nvram.h" @@ -131,7 +132,7 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0xc400, 0xc7ff) AM_RAM AM_BASE(&victory_videoram) AM_RANGE(0xc800, 0xdfff) AM_RAM AM_BASE(&victory_charram) AM_RANGE(0xe000, 0xefff) AM_RAM - AM_RANGE(0xf000, 0xf7ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0xf000, 0xf7ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0xf800, 0xf800) AM_MIRROR(0x07fc) AM_READWRITE(victory_sound_response_r, victory_sound_command_w) AM_RANGE(0xf801, 0xf801) AM_MIRROR(0x07fc) AM_READ(victory_sound_status_r) ADDRESS_MAP_END @@ -215,7 +216,7 @@ static MACHINE_CONFIG_START( victory, driver_device ) MDRV_CPU_IO_MAP(main_io_map) MDRV_CPU_VBLANK_INT("screen", victory_vblank_interrupt) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ MDRV_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK | VIDEO_ALWAYS_UPDATE) diff --git a/src/mame/drivers/vroulet.c b/src/mame/drivers/vroulet.c index 481832e5728..7a1df32273f 100644 --- a/src/mame/drivers/vroulet.c +++ b/src/mame/drivers/vroulet.c @@ -38,6 +38,7 @@ Tomasz Slanina 20050225 #include "cpu/z80/z80.h" #include "machine/8255ppi.h" #include "sound/ay8910.h" +#include "machine/nvram.h" /* video */ @@ -105,7 +106,7 @@ static VIDEO_UPDATE(vroulet) static ADDRESS_MAP_START( vroulet_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x5fff) AM_ROM - AM_RANGE(0x6000, 0x67ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x6000, 0x67ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x8000, 0x8000) AM_NOP AM_RANGE(0x9000, 0x93ff) AM_RAM_WRITE(vroulet_videoram_w) AM_BASE(&videoram) AM_RANGE(0x9400, 0x97ff) AM_RAM_WRITE(vroulet_colorram_w) AM_BASE(&colorram) @@ -266,7 +267,7 @@ static MACHINE_CONFIG_START( vroulet, driver_device ) MDRV_CPU_IO_MAP(vroulet_io_map) MDRV_CPU_VBLANK_INT("screen", irq0_line_hold) - MDRV_NVRAM_HANDLER(generic_1fill) + MDRV_NVRAM_ADD_1FILL("nvram") MDRV_PPI8255_ADD( "ppi8255_0", ppi8255_intf[0] ) MDRV_PPI8255_ADD( "ppi8255_1", ppi8255_intf[1] ) diff --git a/src/mame/drivers/williams.c b/src/mame/drivers/williams.c index 8dd4e57635c..1a6f25930b7 100644 --- a/src/mame/drivers/williams.c +++ b/src/mame/drivers/williams.c @@ -500,6 +500,7 @@ #include "machine/ticket.h" #include "audio/williams.h" #include "includes/williams.h" +#include "machine/nvram.h" #define MASTER_CLOCK (12000000) @@ -517,7 +518,7 @@ static ADDRESS_MAP_START( defender_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0xbfff) AM_RAM AM_BASE(&williams_videoram) /* range from 0xc000-0xcfff is mapped programmatically below */ AM_RANGE(0xc000, 0xc00f) AM_BASE_GENERIC(paletteram) - AM_RANGE(0xc400, 0xc4ff) AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0xc400, 0xc4ff) AM_SHARE("nvram") AM_RANGE(0xc000, 0xcfff) AM_ROMBANK("bank1") AM_RANGE(0xd000, 0xdfff) AM_WRITE(defender_bank_select_w) AM_RANGE(0xd000, 0xffff) AM_ROM @@ -538,7 +539,7 @@ void defender_install_io_space(address_space *space) memory_install_read8_handler (space, 0xc800, 0xcbff, 0, 0x03e0, williams_video_counter_r); memory_install_readwrite8_device_handler(space, pia_1, 0xcc00, 0xcc03, 0, 0x03e0, pia6821_r, pia6821_w); memory_install_readwrite8_device_handler(space, pia_0, 0xcc04, 0xcc07, 0, 0x03e0, pia6821_r, pia6821_w); - memory_set_bankptr(space->machine, "bank3", space->machine->generic.nvram.v); + memory_set_bankptr(space->machine, "bank3", space->machine->driver_data<williams_state>()->m_nvram); memory_set_bankptr(space->machine, "bank4", space->machine->generic.paletteram.v); } @@ -560,7 +561,7 @@ static ADDRESS_MAP_START( williams_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0xca00, 0xca07) AM_MIRROR(0x00f8) AM_WRITE(williams_blitter_w) AM_RANGE(0xcb00, 0xcbff) AM_READ(williams_video_counter_r) AM_RANGE(0xcbff, 0xcbff) AM_WRITE(williams_watchdog_reset_w) - AM_RANGE(0xcc00, 0xcfff) AM_RAM_WRITE(williams_cmos_w) AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0xcc00, 0xcfff) AM_RAM_WRITE(williams_cmos_w) AM_SHARE("nvram") AM_RANGE(0xd000, 0xffff) AM_ROM ADDRESS_MAP_END @@ -575,7 +576,7 @@ static ADDRESS_MAP_START( williams_extra_ram_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0xca00, 0xca07) AM_MIRROR(0x00f8) AM_WRITE(williams_blitter_w) AM_RANGE(0xcb00, 0xcbff) AM_READ(williams_video_counter_r) AM_RANGE(0xcbff, 0xcbff) AM_WRITE(williams_watchdog_reset_w) - AM_RANGE(0xcc00, 0xcfff) AM_RAM_WRITE(williams_cmos_w) AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0xcc00, 0xcfff) AM_RAM_WRITE(williams_cmos_w) AM_SHARE("nvram") AM_RANGE(0xd000, 0xdfff) AM_RAM AM_RANGE(0xe000, 0xffff) AM_ROM ADDRESS_MAP_END @@ -604,7 +605,7 @@ static ADDRESS_MAP_START( blaster_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0xca00, 0xca07) AM_MIRROR(0x00f8) AM_WRITE(williams_blitter_w) AM_RANGE(0xcb00, 0xcbff) AM_READ(williams_video_counter_r) AM_RANGE(0xcbff, 0xcbff) AM_WRITE(williams_watchdog_reset_w) - AM_RANGE(0xcc00, 0xcfff) AM_RAM_WRITE(williams_cmos_w) AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0xcc00, 0xcfff) AM_RAM_WRITE(williams_cmos_w) AM_SHARE("nvram") AM_RANGE(0xd000, 0xffff) AM_ROM ADDRESS_MAP_END @@ -633,7 +634,7 @@ static ADDRESS_MAP_START( williams2_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0xcb80, 0xcb9f) AM_WRITE(defender_video_control_w) AM_RANGE(0xcba0, 0xcbbf) AM_WRITE(williams2_blit_window_enable_w) AM_RANGE(0xcbe0, 0xcbef) AM_READ(williams2_video_counter_r) - AM_RANGE(0xcc00, 0xcfff) AM_RAM_WRITE(williams_cmos_w) AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0xcc00, 0xcfff) AM_RAM_WRITE(williams_cmos_w) AM_SHARE("nvram") AM_RANGE(0xd000, 0xffff) AM_ROM ADDRESS_MAP_END @@ -655,7 +656,7 @@ static ADDRESS_MAP_START( williams2_extra_ram_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0xcb80, 0xcb9f) AM_WRITE(defender_video_control_w) AM_RANGE(0xcba0, 0xcbbf) AM_WRITE(williams2_blit_window_enable_w) AM_RANGE(0xcbe0, 0xcbef) AM_READ(williams2_video_counter_r) - AM_RANGE(0xcc00, 0xcfff) AM_RAM_WRITE(williams_cmos_w) AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0xcc00, 0xcfff) AM_RAM_WRITE(williams_cmos_w) AM_SHARE("nvram") AM_RANGE(0xd000, 0xdfff) AM_RAM AM_RANGE(0xe000, 0xffff) AM_ROM ADDRESS_MAP_END @@ -1426,7 +1427,7 @@ GFXDECODE_END * *************************************/ -static MACHINE_CONFIG_START( defender, driver_device ) +static MACHINE_CONFIG_START( defender, williams_state ) /* basic machine hardware */ MDRV_CPU_ADD("maincpu", M6809, MASTER_CLOCK/3/4) @@ -1437,7 +1438,7 @@ static MACHINE_CONFIG_START( defender, driver_device ) MDRV_MACHINE_START(defender) MDRV_MACHINE_RESET(defender) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") MDRV_TIMER_ADD("scan_timer", williams_va11_callback) MDRV_TIMER_ADD("240_timer", williams_count240_callback) @@ -1603,7 +1604,7 @@ static MACHINE_CONFIG_DERIVED( blastkit, blaster ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( williams2, driver_device ) +static MACHINE_CONFIG_START( williams2, williams_state ) /* basic machine hardware */ MDRV_CPU_ADD("maincpu", M6809, MASTER_CLOCK/3/4) @@ -1614,7 +1615,7 @@ static MACHINE_CONFIG_START( williams2, driver_device ) MDRV_MACHINE_START(williams2) MDRV_MACHINE_RESET(williams2) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") MDRV_TIMER_ADD("scan_timer", williams2_va11_callback) MDRV_TIMER_ADD("254_timer", williams2_endscreen_callback) diff --git a/src/mame/drivers/wink.c b/src/mame/drivers/wink.c index 84bee6d6535..d50e08f88b3 100644 --- a/src/mame/drivers/wink.c +++ b/src/mame/drivers/wink.c @@ -14,6 +14,7 @@ #include "emu.h" #include "cpu/z80/z80.h" #include "sound/ay8910.h" +#include "machine/nvram.h" static tilemap_t *bg_tilemap; static UINT8 sound_flag; @@ -88,7 +89,7 @@ static WRITE8_HANDLER( sound_irq_w ) static ADDRESS_MAP_START( wink_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x7fff) AM_ROM AM_RANGE(0x8000, 0x87ff) AM_RAM - AM_RANGE(0x9000, 0x97ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x9000, 0x97ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0xa000, 0xa3ff) AM_RAM_WRITE(bgram_w) AM_BASE_GENERIC(videoram) ADDRESS_MAP_END @@ -323,7 +324,7 @@ static MACHINE_CONFIG_START( wink, driver_device ) MDRV_CPU_IO_MAP(wink_sound_io) MDRV_CPU_PERIODIC_INT(wink_sound, 15625) - MDRV_NVRAM_HANDLER(generic_1fill) + MDRV_NVRAM_ADD_1FILL("nvram") MDRV_MACHINE_RESET(wink) /* video hardware */ diff --git a/src/mame/drivers/witch.c b/src/mame/drivers/witch.c index a685552fefb..f0e05e781a0 100644 --- a/src/mame/drivers/witch.c +++ b/src/mame/drivers/witch.c @@ -193,6 +193,7 @@ TODO : #include "cpu/z80/z80.h" #include "sound/es8712.h" #include "sound/2203intf.h" +#include "machine/nvram.h" #define UNBANKED_SIZE 0x800 @@ -451,7 +452,7 @@ static ADDRESS_MAP_START( map_main, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_split1_w) AM_BASE_GENERIC(paletteram) AM_RANGE(0xe800, 0xefff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_split2_w) AM_BASE_GENERIC(paletteram2) AM_RANGE(0xf000, 0xf0ff) AM_RAM AM_SHARE("share1") - AM_RANGE(0xf100, 0xf17f) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0xf100, 0xf17f) AM_RAM AM_SHARE("nvram") AM_RANGE(0xf180, 0xffff) AM_RAM AM_SHARE("share2") ADDRESS_MAP_END @@ -767,7 +768,7 @@ static MACHINE_CONFIG_START( witch, driver_device ) MDRV_CPU_PROGRAM_MAP(map_sub) MDRV_CPU_VBLANK_INT("screen", witch_sub_interrupt) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ MDRV_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/wldarrow.c b/src/mame/drivers/wldarrow.c index 7f803270fa2..d4c2e28a4d0 100644 --- a/src/mame/drivers/wldarrow.c +++ b/src/mame/drivers/wldarrow.c @@ -22,6 +22,7 @@ todo: #include "emu.h" #include "cpu/i8085/i8085.h" #include "sound/dac.h" +#include "machine/nvram.h" #define NUM_PENS (8) @@ -169,7 +170,7 @@ static ADDRESS_MAP_START( wldarrow_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x4000, 0x5fff) AM_RAM AM_BASE(&wldarrow_videoram_0) AM_SIZE(&wldarrow_videoram_size) AM_RANGE(0x6000, 0x7fff) AM_RAM AM_BASE(&wldarrow_videoram_1) AM_RANGE(0x8000, 0x9fff) AM_RAM AM_BASE(&wldarrow_videoram_2) - AM_RANGE(0xcd00, 0xcdff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0xcd00, 0xcdff) AM_RAM AM_SHARE("nvram") AM_RANGE(0xf000, 0xf000) AM_READ_PORT("BITSW") AM_DEVWRITE("dac", wldarrow_dac_1_w) AM_RANGE(0xf004, 0xf004) AM_READ_PORT("IN1") AM_WRITE(lights_1_w) AM_RANGE(0xf006, 0xf006) AM_READ_PORT("IN2") AM_WRITE(lights_2_w) @@ -350,7 +351,7 @@ static MACHINE_CONFIG_START( wldarrow, driver_device ) MDRV_CPU_ADD("maincpu", I8080, 2000000) MDRV_CPU_PROGRAM_MAP(wldarrow_map) - MDRV_NVRAM_HANDLER(generic_0fill) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ MDRV_VIDEO_UPDATE(wldarrow) diff --git a/src/mame/drivers/xtheball.c b/src/mame/drivers/xtheball.c index 3d923521412..f2afb122793 100644 --- a/src/mame/drivers/xtheball.c +++ b/src/mame/drivers/xtheball.c @@ -10,6 +10,7 @@ #include "cpu/tms34010/tms34010.h" #include "video/tlc34076.h" #include "machine/ticket.h" +#include "machine/nvram.h" #include "sound/dac.h" @@ -199,7 +200,7 @@ static READ16_HANDLER( analogy_watchdog_r ) *************************************/ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x00000000, 0x0001ffff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x00000000, 0x0001ffff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x01000000, 0x010fffff) AM_RAM AM_BASE(&vram_bg) AM_RANGE(0x02000000, 0x020fffff) AM_RAM AM_BASE(&vram_fg) AM_RANGE(0x03000000, 0x030000ff) AM_DEVREADWRITE8("tlc34076", tlc34076_r, tlc34076_w, 0x00ff) @@ -327,7 +328,7 @@ static MACHINE_CONFIG_START( xtheball, driver_device ) MDRV_CPU_PROGRAM_MAP(main_map) MDRV_CPU_PERIODIC_INT(irq1_line_hold, 15000) - MDRV_NVRAM_HANDLER(generic_1fill) + MDRV_NVRAM_ADD_1FILL("nvram") MDRV_TICKET_DISPENSER_ADD("ticket", 100, TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_HIGH) diff --git a/src/mame/includes/atetris.h b/src/mame/includes/atetris.h index ef184e6a3a1..63d9c127393 100644 --- a/src/mame/includes/atetris.h +++ b/src/mame/includes/atetris.h @@ -4,6 +4,16 @@ *************************************************************************/ +class atetris_state : public driver_device +{ +public: + atetris_state(running_machine &machine, const driver_device_config_base &config) + : driver_device(machine, config), + m_nvram(*this, "nvram") { } + + required_shared_ptr<UINT8> m_nvram; +}; + /*----------- defined in video/atetris.c -----------*/ VIDEO_START( atetris ); diff --git a/src/mame/includes/aztarac.h b/src/mame/includes/aztarac.h index 5aaa42704de..6f0ef7fadec 100644 --- a/src/mame/includes/aztarac.h +++ b/src/mame/includes/aztarac.h @@ -4,6 +4,16 @@ *************************************************************************/ +class aztarac_state : public driver_device +{ +public: + aztarac_state(running_machine &machine, const driver_device_config_base &config) + : driver_device(machine, config), + m_nvram(*this, "nvram") { } + + required_shared_ptr<UINT16> m_nvram; +}; + /*----------- defined in audio/aztarac.c -----------*/ READ16_HANDLER( aztarac_sound_r ); diff --git a/src/mame/includes/beathead.h b/src/mame/includes/beathead.h index 7a34e150193..ac11699275c 100644 --- a/src/mame/includes/beathead.h +++ b/src/mame/includes/beathead.h @@ -13,7 +13,8 @@ class beathead_state : public atarigen_state public: beathead_state(running_machine &machine, const driver_device_config_base &config) : atarigen_state(machine, config), - m_maincpu(*this, "maincpu") { } + m_maincpu(*this, "maincpu"), + m_nvram(*this, "nvram") { } virtual void machine_start(); virtual void machine_reset(); @@ -23,6 +24,8 @@ public: required_device<asap_device> m_maincpu; + required_shared_ptr<UINT32> m_nvram; + UINT32 * m_videoram; UINT32 * m_paletteram; diff --git a/src/mame/includes/capbowl.h b/src/mame/includes/capbowl.h index 669231429a0..11b5b679117 100644 --- a/src/mame/includes/capbowl.h +++ b/src/mame/includes/capbowl.h @@ -4,15 +4,18 @@ *************************************************************************/ +#include "machine/nvram.h" + class capbowl_state : public driver_device { public: capbowl_state(running_machine &machine, const driver_device_config_base &config) : driver_device(machine, config) { } + void init_nvram(nvram_device &nvram, void *base, size_t size); + /* memory pointers */ UINT8 * rowaddress; -// UINT8 * nvram; // currently this uses generic_nvram /* video-related */ offs_t blitter_addr; diff --git a/src/mame/includes/ccastles.h b/src/mame/includes/ccastles.h index a012d2579a4..d3e24b0158b 100644 --- a/src/mame/includes/ccastles.h +++ b/src/mame/includes/ccastles.h @@ -8,13 +8,14 @@ class ccastles_state : public driver_device { public: ccastles_state(running_machine &machine, const driver_device_config_base &config) - : driver_device(machine, config) { } + : driver_device(machine, config), + nvram_stage(*this, "nvram") { } /* memory pointers */ UINT8 * videoram; UINT8 * spriteram; -// UINT8 * nvram_stage; // currently this uses generic nvram handlers -// UINT8 * nvram; // currently this uses generic nvram handlers + required_shared_ptr<UINT8> nvram_stage; + UINT8 nvram[0x100]; /* video-related */ const UINT8 *syncprom; diff --git a/src/mame/includes/cloud9.h b/src/mame/includes/cloud9.h index 652b83a903d..3cd2eb54c19 100644 --- a/src/mame/includes/cloud9.h +++ b/src/mame/includes/cloud9.h @@ -8,14 +8,15 @@ class cloud9_state : public driver_device { public: cloud9_state(running_machine &machine, const driver_device_config_base &config) - : driver_device(machine, config) { } + : driver_device(machine, config), + nvram_stage(*this, "nvram") { } /* memory pointers */ UINT8 * videoram; UINT8 * spriteram; UINT8 * paletteram; -// UINT8 * nvram_stage; // currently this uses generic nvram handlers -// UINT8 * nvram; // currently this uses generic nvram handlers + required_shared_ptr<UINT8> nvram_stage; // currently this uses generic nvram handlers + UINT8 nvram[0x100]; // currently this uses generic nvram handlers /* video-related */ const UINT8 *syncprom; diff --git a/src/mame/includes/coolpool.h b/src/mame/includes/coolpool.h index 4b082cdde19..086909a0c04 100644 --- a/src/mame/includes/coolpool.h +++ b/src/mame/includes/coolpool.h @@ -2,9 +2,11 @@ class coolpool_state : public driver_device { public: coolpool_state(running_machine &machine, const driver_device_config_base &config) - : driver_device(machine, config) { } + : driver_device(machine, config), + m_nvram(*this, "nvram") { } UINT16 *vram_base; + required_shared_ptr<UINT16> m_nvram; UINT8 cmd_pending; UINT16 iop_cmd; diff --git a/src/mame/includes/foodf.h b/src/mame/includes/foodf.h index cb9c95a5360..b079bcde892 100644 --- a/src/mame/includes/foodf.h +++ b/src/mame/includes/foodf.h @@ -10,7 +10,10 @@ class foodf_state : public atarigen_state { public: foodf_state(running_machine &machine, const driver_device_config_base &config) - : atarigen_state(machine, config) { } + : atarigen_state(machine, config), + m_nvram(*this, "nvram") { } + + required_shared_ptr<UINT16> m_nvram; double rweights[3]; double gweights[3]; diff --git a/src/mame/includes/gladiatr.h b/src/mame/includes/gladiatr.h index 07c67b210f5..b73359448f2 100644 --- a/src/mame/includes/gladiatr.h +++ b/src/mame/includes/gladiatr.h @@ -1,3 +1,13 @@ +class gladiatr_state : public driver_device +{ +public: + gladiatr_state(running_machine &machine, const driver_device_config_base &config) + : driver_device(machine, config), + m_nvram(*this, "nvram") { } + + required_shared_ptr<UINT8> m_nvram; +}; + /*----------- defined in video/gladiatr.c -----------*/ extern UINT8 *gladiatr_videoram, *gladiatr_colorram,*gladiatr_textram; diff --git a/src/mame/includes/irobot.h b/src/mame/includes/irobot.h index 83df795c401..d01e7054a75 100644 --- a/src/mame/includes/irobot.h +++ b/src/mame/includes/irobot.h @@ -4,6 +4,16 @@ *************************************************************************/ +class irobot_state : public driver_device +{ +public: + irobot_state(running_machine &machine, const driver_device_config_base &config) + : driver_device(machine, config), + m_nvram(*this, "nvram") { } + + required_shared_ptr<UINT8> m_nvram; +}; + /*----------- defined in machine/irobot.c -----------*/ extern UINT8 irobot_vg_clear; diff --git a/src/mame/includes/jedi.h b/src/mame/includes/jedi.h index 60f0545538d..b1f72f24ba2 100644 --- a/src/mame/includes/jedi.h +++ b/src/mame/includes/jedi.h @@ -18,7 +18,10 @@ class jedi_state : public driver_device { public: jedi_state(running_machine &machine, const driver_device_config_base &config) - : driver_device(machine, config) { } + : driver_device(machine, config), + m_nvram(*this, "nvram") { } + + required_shared_ptr<UINT8> m_nvram; /* machine state */ UINT8 a2d_select; diff --git a/src/mame/includes/midtunit.h b/src/mame/includes/midtunit.h index fd779b78244..736d7044583 100644 --- a/src/mame/includes/midtunit.h +++ b/src/mame/includes/midtunit.h @@ -6,6 +6,16 @@ #include "midyunit.h" +class midtunit_state : public driver_device +{ +public: + midtunit_state(running_machine &machine, const driver_device_config_base &config) + : driver_device(machine, config), + m_nvram(*this, "nvram") { } + + required_shared_ptr<UINT16> m_nvram; +}; + /*----------- defined in machine/midtunit.c -----------*/ WRITE16_HANDLER( midtunit_cmos_enable_w ); diff --git a/src/mame/includes/midvunit.h b/src/mame/includes/midvunit.h index f732f6feb96..f432524cff3 100644 --- a/src/mame/includes/midvunit.h +++ b/src/mame/includes/midvunit.h @@ -8,6 +8,16 @@ #define MIDVUNIT_VIDEO_CLOCK 33000000 +class midvunit_state : public driver_device +{ +public: + midvunit_state(running_machine &machine, const driver_device_config_base &config) + : driver_device(machine, config), + m_nvram(*this, "nvram") { } + + required_shared_ptr<UINT32> m_nvram; +}; + /*----------- defined in video/midvunit.c -----------*/ diff --git a/src/mame/includes/midwunit.h b/src/mame/includes/midwunit.h index 59c8e8ab69a..f228551bb2d 100644 --- a/src/mame/includes/midwunit.h +++ b/src/mame/includes/midwunit.h @@ -6,6 +6,16 @@ #include "midtunit.h" +class midwxunit_state : public driver_device +{ +public: + midwxunit_state(running_machine &machine, const driver_device_config_base &config) + : driver_device(machine, config), + m_nvram(*this, "nvram") { } + + required_shared_ptr<UINT16> m_nvram; +}; + /*----------- defined in machine/midwunit.c -----------*/ extern UINT8 *midwunit_decode_memory; diff --git a/src/mame/includes/midzeus.h b/src/mame/includes/midzeus.h index 06f649ca0e0..bba0a282f80 100644 --- a/src/mame/includes/midzeus.h +++ b/src/mame/includes/midzeus.h @@ -6,6 +6,16 @@ #define MIDZEUS_VIDEO_CLOCK XTAL_66_6667MHz +class midzeus_state : public driver_device +{ +public: + midzeus_state(running_machine &machine, const driver_device_config_base &config) + : driver_device(machine, config), + m_nvram(*this, "nvram") { } + + required_shared_ptr<UINT32> m_nvram; +}; + /*----------- defined in video/midzeus.c -----------*/ diff --git a/src/mame/includes/qdrmfgp.h b/src/mame/includes/qdrmfgp.h index 9d91edd1df6..e0c7a3b4492 100644 --- a/src/mame/includes/qdrmfgp.h +++ b/src/mame/includes/qdrmfgp.h @@ -1,3 +1,13 @@ +class qdrmfgp_state : public driver_device +{ +public: + qdrmfgp_state(running_machine &machine, const driver_device_config_base &config) + : driver_device(machine, config), + m_nvram(*this, "nvram") { } + + required_shared_ptr<UINT8> m_nvram; +}; + /*----------- defined in drivers/qdrmfgp.c -----------*/ int qdrmfgp_get_palette(void); diff --git a/src/mame/includes/seta2.h b/src/mame/includes/seta2.h index 9357a95364c..c5aab0d52ee 100644 --- a/src/mame/includes/seta2.h +++ b/src/mame/includes/seta2.h @@ -2,7 +2,10 @@ class seta2_state : public driver_device { public: seta2_state(running_machine &machine, const driver_device_config_base &config) - : driver_device(machine, config) { } + : driver_device(machine, config), + m_nvram(*this, "nvram") { } + + required_shared_ptr<UINT16> m_nvram; UINT16 *vregs; int yoffset; diff --git a/src/mame/includes/tmnt.h b/src/mame/includes/tmnt.h index e793073077e..019a3c24d9a 100644 --- a/src/mame/includes/tmnt.h +++ b/src/mame/includes/tmnt.h @@ -31,6 +31,7 @@ public: int tmnt_soundlatch; int cuebrick_snd_irqlatch, cuebrick_nvram_bank; int toggle, last; + UINT16 m_cuebrick_nvram[0x400 * 0x20]; // 32k paged in a 1k window /* devices */ running_device *maincpu; diff --git a/src/mame/includes/triplhnt.h b/src/mame/includes/triplhnt.h index 831dbcfb4b5..6e265e34381 100644 --- a/src/mame/includes/triplhnt.h +++ b/src/mame/includes/triplhnt.h @@ -7,6 +7,7 @@ #include "sound/discrete.h" #include "sound/samples.h" + /* Discrete Sound Input Nodes */ #define TRIPLHNT_BEAR_ROAR_DATA NODE_01 #define TRIPLHNT_BEAR_EN NODE_02 diff --git a/src/mame/includes/williams.h b/src/mame/includes/williams.h index 387ec0cfbe6..6fc91c01d8e 100644 --- a/src/mame/includes/williams.h +++ b/src/mame/includes/williams.h @@ -7,6 +7,17 @@ #include "machine/6821pia.h" +class williams_state : public driver_device +{ +public: + williams_state(running_machine &machine, const driver_device_config_base &config) + : driver_device(machine, config), + m_nvram(*this, "nvram") { } + + required_shared_ptr<UINT8> m_nvram; +}; + + /*----------- defined in drivers/williams.c -----------*/ void defender_install_io_space(address_space *space); diff --git a/src/mame/machine/midtunit.c b/src/mame/machine/midtunit.c index 8c334a9412a..9133b95b3e1 100644 --- a/src/mame/machine/midtunit.c +++ b/src/mame/machine/midtunit.c @@ -79,7 +79,8 @@ WRITE16_HANDLER( midtunit_cmos_w ) { if (1)/*cmos_write_enable)*/ { - COMBINE_DATA(space->machine->generic.nvram.u16+offset); + midtunit_state *state = space->machine->driver_data<midtunit_state>(); + COMBINE_DATA(state->m_nvram+offset); cmos_write_enable = 0; } else @@ -92,7 +93,8 @@ WRITE16_HANDLER( midtunit_cmos_w ) READ16_HANDLER( midtunit_cmos_r ) { - return space->machine->generic.nvram.u16[offset]; + midtunit_state *state = space->machine->driver_data<midtunit_state>(); + return state->m_nvram[offset]; } diff --git a/src/mame/machine/midwunit.c b/src/mame/machine/midwunit.c index 0d21e268efc..2ebbd94e61f 100644 --- a/src/mame/machine/midwunit.c +++ b/src/mame/machine/midwunit.c @@ -67,7 +67,8 @@ WRITE16_HANDLER( midwunit_cmos_w ) { if (cmos_write_enable) { - COMBINE_DATA(space->machine->generic.nvram.u16+offset); + midwxunit_state *state = space->machine->driver_data<midwxunit_state>(); + COMBINE_DATA(state->m_nvram+offset); cmos_write_enable = 0; } else @@ -80,13 +81,15 @@ WRITE16_HANDLER( midwunit_cmos_w ) WRITE16_HANDLER( midxunit_cmos_w ) { - COMBINE_DATA(space->machine->generic.nvram.u16+offset); + midwxunit_state *state = space->machine->driver_data<midwxunit_state>(); + COMBINE_DATA(state->m_nvram+offset); } READ16_HANDLER( midwunit_cmos_r ) { - return space->machine->generic.nvram.u16[offset]; + midwxunit_state *state = space->machine->driver_data<midwxunit_state>(); + return state->m_nvram[offset]; } diff --git a/src/mame/machine/williams.c b/src/mame/machine/williams.c index 91bd1f3e076..e679ee6e48f 100644 --- a/src/mame/machine/williams.c +++ b/src/mame/machine/williams.c @@ -641,14 +641,16 @@ READ8_DEVICE_HANDLER( williams_input_port_49way_0_5_r ) WRITE8_HANDLER( williams_cmos_w ) { /* only 4 bits are valid */ - space->machine->generic.nvram.u8[offset] = data | 0xf0; + williams_state *state = space->machine->driver_data<williams_state>(); + state->m_nvram[offset] = data | 0xf0; } WRITE8_HANDLER( bubbles_cmos_w ) { /* bubbles has additional CMOS for a full 8 bits */ - space->machine->generic.nvram.u8[offset] = data; + williams_state *state = space->machine->driver_data<williams_state>(); + state->m_nvram[offset] = data; } diff --git a/src/mame/video/qix.c b/src/mame/video/qix.c index 320acc286ad..bcef67cf4f7 100644 --- a/src/mame/video/qix.c +++ b/src/mame/video/qix.c @@ -367,7 +367,7 @@ static VIDEO_UPDATE( qix ) static ADDRESS_MAP_START( qix_video_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x7fff) AM_READWRITE(qix_videoram_r, qix_videoram_w) AM_RANGE(0x8000, 0x83ff) AM_RAM AM_SHARE("share1") - AM_RANGE(0x8400, 0x87ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x8400, 0x87ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x8800, 0x8800) AM_MIRROR(0x03ff) AM_WRITE(qix_palettebank_w) AM_RANGE(0x8c00, 0x8c00) AM_MIRROR(0x03fe) AM_READWRITE(qix_data_firq_r, qix_data_firq_w) AM_RANGE(0x8c01, 0x8c01) AM_MIRROR(0x03fe) AM_READWRITE(qix_video_firq_ack_r, qix_video_firq_ack_w) @@ -384,7 +384,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( zookeep_video_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x7fff) AM_READWRITE(qix_videoram_r, qix_videoram_w) AM_RANGE(0x8000, 0x83ff) AM_RAM AM_SHARE("share1") - AM_RANGE(0x8400, 0x87ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x8400, 0x87ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x8800, 0x8800) AM_MIRROR(0x03fe) AM_WRITE(qix_palettebank_w) AM_RANGE(0x8801, 0x8801) AM_MIRROR(0x03fe) AM_WRITE(zookeep_bankswitch_w) AM_RANGE(0x8c00, 0x8c00) AM_MIRROR(0x03fe) AM_READWRITE(qix_data_firq_r, qix_data_firq_w) @@ -403,7 +403,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( slither_video_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x7fff) AM_READWRITE(qix_videoram_r, slither_videoram_w) AM_RANGE(0x8000, 0x83ff) AM_RAM AM_SHARE("share1") - AM_RANGE(0x8400, 0x87ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) + AM_RANGE(0x8400, 0x87ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x8800, 0x8800) AM_MIRROR(0x03ff) AM_WRITE(qix_palettebank_w) AM_RANGE(0x8c00, 0x8c00) AM_MIRROR(0x03fe) AM_READWRITE(qix_data_firq_r, qix_data_firq_w) AM_RANGE(0x8c01, 0x8c01) AM_MIRROR(0x03fe) AM_READWRITE(qix_video_firq_ack_r, qix_video_firq_ack_w) |