diff options
Diffstat (limited to 'src/devices/bus/nes/sunsoft_dcs.h')
-rw-r--r-- | src/devices/bus/nes/sunsoft_dcs.h | 33 |
1 files changed, 21 insertions, 12 deletions
diff --git a/src/devices/bus/nes/sunsoft_dcs.h b/src/devices/bus/nes/sunsoft_dcs.h index 479f27aa39e..4b564a20f07 100644 --- a/src/devices/bus/nes/sunsoft_dcs.h +++ b/src/devices/bus/nes/sunsoft_dcs.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __NES_SUNSOFT_DCS_H -#define __NES_SUNSOFT_DCS_H +#ifndef MAME_BUS_NES_SUNSOFT_DCS_H +#define MAME_BUS_NES_SUNSOFT_DCS_H + +#pragma once #include "sunsoft.h" #include "softlist_dev.h" @@ -19,7 +21,6 @@ class ntb_cart_interface : public device_slot_card_interface { public: // construction/destruction - ntb_cart_interface(const machine_config &mconfig, device_t &device); virtual ~ntb_cart_interface(); // reading and writing @@ -28,16 +29,21 @@ public: uint8_t *get_cart_base() { return m_rom; } protected: + ntb_cart_interface(const machine_config &mconfig, device_t &device); + // internal state uint8_t *m_rom; }; // ======================> nes_ntb_slot_device +class nes_sunsoft_dcs_device; + class nes_ntb_slot_device : public device_t, public device_image_interface, public device_slot_interface { + friend class nes_sunsoft_dcs_device; public: // construction/destruction nes_ntb_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); @@ -64,11 +70,12 @@ public: virtual DECLARE_READ8_MEMBER(read); +protected: ntb_cart_interface* m_cart; }; // device type definition -extern const device_type NES_NTB_SLOT; +DECLARE_DEVICE_TYPE(NES_NTB_SLOT, nes_ntb_slot_device) #define MCFG_NTB_MINICART_ADD(_tag, _slot_intf) \ @@ -101,7 +108,7 @@ protected: }; // device type definition -extern const device_type NES_NTB_ROM; +DECLARE_DEVICE_TYPE(NES_NTB_ROM, nes_ntb_rom_device) @@ -121,10 +128,7 @@ public: // construction/destruction nes_sunsoft_dcs_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual machine_config_constructor device_mconfig_additions() const override; - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; virtual DECLARE_READ8_MEMBER(read_m) override; virtual DECLARE_READ8_MEMBER(read_h) override; virtual DECLARE_WRITE8_MEMBER(write_m) override; @@ -132,18 +136,23 @@ public: virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + private: + static constexpr device_timer_id TIMER_PROTECT = 0; + int m_timer_on, m_exrom_enable; required_device<nes_ntb_slot_device> m_subslot; - static const device_timer_id TIMER_PROTECT = 0; emu_timer *ntb_enable_timer; attotime timer_freq; }; - // device type definition -extern const device_type NES_SUNSOFT_DCS; +DECLARE_DEVICE_TYPE(NES_SUNSOFT_DCS, nes_sunsoft_dcs_device) -#endif +#endif // MAME_BUS_NES_SUNSOFT_DCS_H |