diff options
Diffstat (limited to 'src/emu/machine/nvram.h')
-rw-r--r-- | src/emu/machine/nvram.h | 64 |
1 files changed, 21 insertions, 43 deletions
diff --git a/src/emu/machine/nvram.h b/src/emu/machine/nvram.h index 736a6bbac19..06906161ecc 100644 --- a/src/emu/machine/nvram.h +++ b/src/emu/machine/nvram.h @@ -50,40 +50,40 @@ #define MCFG_NVRAM_ADD_0FILL(_tag) \ MCFG_DEVICE_ADD(_tag, NVRAM, 0) \ - nvram_device_config::static_set_default_value(device, nvram_device_config::DEFAULT_ALL_0); \ + nvram_device::static_set_default_value(*device, nvram_device::DEFAULT_ALL_0); \ #define MCFG_NVRAM_ADD_1FILL(_tag) \ MCFG_DEVICE_ADD(_tag, NVRAM, 0) \ - nvram_device_config::static_set_default_value(device, nvram_device_config::DEFAULT_ALL_1); \ + nvram_device::static_set_default_value(*device, nvram_device::DEFAULT_ALL_1); \ #define MCFG_NVRAM_ADD_RANDOM_FILL(_tag) \ MCFG_DEVICE_ADD(_tag, NVRAM, 0) \ - nvram_device_config::static_set_default_value(device, nvram_device_config::DEFAULT_RANDOM); \ + nvram_device::static_set_default_value(*device, nvram_device::DEFAULT_RANDOM); \ #define MCFG_NVRAM_ADD_NO_FILL(_tag) \ MCFG_DEVICE_ADD(_tag, NVRAM, 0) \ - nvram_device_config::static_set_default_value(device, nvram_device_config::DEFAULT_NONE); \ + nvram_device::static_set_default_value(*device, nvram_device::DEFAULT_NONE); \ #define MCFG_NVRAM_ADD_CUSTOM(_tag, _class, _method) \ MCFG_DEVICE_ADD(_tag, NVRAM, 0) \ - nvram_device_config::static_set_custom_handler(device, nvram_init_delegate(&_class::_method, #_class "::" #_method, (_class *)0)); \ + nvram_device::static_set_custom_handler(*device, nvram_init_delegate(&_class::_method, #_class "::" #_method, (_class *)0)); \ #define MCFG_NVRAM_REPLACE_0FILL(_tag) \ MCFG_DEVICE_REPLACE(_tag, NVRAM, 0) \ - nvram_device_config::static_set_default_value(device, nvram_device_config::DEFAULT_ALL_0); \ + nvram_device::static_set_default_value(*device, nvram_device::DEFAULT_ALL_0); \ #define MCFG_NVRAM_REPLACE_1FILL(_tag) \ MCFG_DEVICE_REPLACE(_tag, NVRAM, 0) \ - nvram_device_config::static_set_default_value(device, nvram_device_config::DEFAULT_ALL_1); \ + nvram_device::static_set_default_value(*device, nvram_device::DEFAULT_ALL_1); \ #define MCFG_NVRAM_REPLACE_RANDOM_FILL(_tag) \ MCFG_DEVICE_REPLACE(_tag, NVRAM, 0) \ - nvram_device_config::static_set_default_value(device, nvram_device_config::DEFAULT_RANDOM); \ + nvram_device::static_set_default_value(*device, nvram_device::DEFAULT_RANDOM); \ #define MCFG_NVRAM_REPLACE_CUSTOM(_tag, _class, _method) \ MCFG_DEVICE_REPLACE(_tag, NVRAM, 0) \ - nvram_device_config::static_set_custom_handler(device, nvram_init_delegate(&_class::_method, #_class "::" #_method, (_class *)0)); \ + nvram_device::static_set_custom_handler(*device, nvram_init_delegate(&_class::_method, #_class "::" #_method, (_class *)0)); \ @@ -98,16 +98,11 @@ class nvram_device; typedef delegate<void (nvram_device &, void *, size_t)> nvram_init_delegate; -// ======================> nvram_device_config +// ======================> nvram_device -class nvram_device_config : public device_config, - public device_config_nvram_interface +class nvram_device : public device_t, + public device_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 @@ -119,32 +114,13 @@ public: DEFAULT_NONE }; - // 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; + // construction/destruction + nvram_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); // 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_delegate callback); - -protected: - // internal state - default_value m_default_value; - nvram_init_delegate m_custom_handler; -}; - + static void static_set_default_value(device_t &device, default_value value); + static void static_set_custom_handler(device_t &device, nvram_init_delegate callback); -// ======================> 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; } @@ -160,11 +136,13 @@ protected: // internal helpers void determine_final_base(); - // internal state - const nvram_device_config & m_config; + // configuration state + default_value m_default_value; + nvram_init_delegate m_custom_handler; + + // runtime state void * m_base; size_t m_length; - nvram_init_delegate m_custom_handler; }; |