diff options
Diffstat (limited to 'src/devices/cpu/nec/v25.h')
-rw-r--r-- | src/devices/cpu/nec/v25.h | 44 |
1 files changed, 23 insertions, 21 deletions
diff --git a/src/devices/cpu/nec/v25.h b/src/devices/cpu/nec/v25.h index c5cc0b5ee2a..00bf192f22f 100644 --- a/src/devices/cpu/nec/v25.h +++ b/src/devices/cpu/nec/v25.h @@ -1,8 +1,10 @@ // license:BSD-3-Clause // copyright-holders:Bryan McPhail, Alex W. Jackson /* ASG 971222 -- rewrote this interface */ -#ifndef __NEC_V25_H_ -#define __NEC_V25_H_ +#ifndef MAME_CPU_NEC_V25_H +#define MAME_CPU_NEC_V25_H + +#pragma once #define NEC_INPUT_LINE_INTP0 10 @@ -48,24 +50,24 @@ enum class v25_common_device : public cpu_device { public: - // construction/destruction - v25_common_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, bool is_16bit, offs_t fetch_xor, uint8_t prefetch_size, uint8_t prefetch_cycles, uint32_t chip_type); - // static configuration helpers static void set_decryption_table(device_t &device, const uint8_t *decryption_table) { downcast<v25_common_device &>(device).m_v25v35_decryptiontable = decryption_table; } - template<class _Object> static devcb_base & set_pt_in_cb(device_t &device, _Object object) { return downcast<v25_common_device &>(device).m_pt_in.set_callback(object); } - template<class _Object> static devcb_base & set_p0_in_cb(device_t &device, _Object object) { return downcast<v25_common_device &>(device).m_p0_in.set_callback(object); } - template<class _Object> static devcb_base & set_p1_in_cb(device_t &device, _Object object) { return downcast<v25_common_device &>(device).m_p1_in.set_callback(object); } - template<class _Object> static devcb_base & set_p2_in_cb(device_t &device, _Object object) { return downcast<v25_common_device &>(device).m_p2_in.set_callback(object); } + template <class Object> static devcb_base & set_pt_in_cb(device_t &device, Object &&cb) { return downcast<v25_common_device &>(device).m_pt_in.set_callback(std::forward<Object>(cb)); } + template <class Object> static devcb_base & set_p0_in_cb(device_t &device, Object &&cb) { return downcast<v25_common_device &>(device).m_p0_in.set_callback(std::forward<Object>(cb)); } + template <class Object> static devcb_base & set_p1_in_cb(device_t &device, Object &&cb) { return downcast<v25_common_device &>(device).m_p1_in.set_callback(std::forward<Object>(cb)); } + template <class Object> static devcb_base & set_p2_in_cb(device_t &device, Object &&cb) { return downcast<v25_common_device &>(device).m_p2_in.set_callback(std::forward<Object>(cb)); } - template<class _Object> static devcb_base & set_p0_out_cb(device_t &device, _Object object) { return downcast<v25_common_device &>(device).m_p0_out.set_callback(object); } - template<class _Object> static devcb_base & set_p1_out_cb(device_t &device, _Object object) { return downcast<v25_common_device &>(device).m_p1_out.set_callback(object); } - template<class _Object> static devcb_base & set_p2_out_cb(device_t &device, _Object object) { return downcast<v25_common_device &>(device).m_p2_out.set_callback(object); } + template <class Object> static devcb_base & set_p0_out_cb(device_t &device, Object &&cb) { return downcast<v25_common_device &>(device).m_p0_out.set_callback(std::forward<Object>(cb)); } + template <class Object> static devcb_base & set_p1_out_cb(device_t &device, Object &&cb) { return downcast<v25_common_device &>(device).m_p1_out.set_callback(std::forward<Object>(cb)); } + template <class Object> static devcb_base & set_p2_out_cb(device_t &device, Object &&cb) { return downcast<v25_common_device &>(device).m_p2_out.set_callback(std::forward<Object>(cb)); } TIMER_CALLBACK_MEMBER(v25_timer_callback); protected: + // construction/destruction + v25_common_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, bool is_16bit, offs_t fetch_xor, uint8_t prefetch_size, uint8_t prefetch_cycles, uint32_t chip_type); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -98,12 +100,12 @@ private: address_space_config m_program_config; address_space_config m_io_config; -/* internal RAM and register banks */ -union internalram -{ - uint16_t w[128]; - uint8_t b[256]; -}; + /* internal RAM and register banks */ + union internalram + { + uint16_t w[128]; + uint8_t b[256]; + }; internalram m_ram; offs_t m_fetch_xor; @@ -487,8 +489,8 @@ public: }; -extern const device_type V25; -extern const device_type V35; +DECLARE_DEVICE_TYPE(V25, v25_device) +DECLARE_DEVICE_TYPE(V35, v35_device) -#endif +#endif // MAME_CPU_NEC_V25_H |