diff options
Diffstat (limited to 'src/devices/bus/nes/namcot.h')
-rw-r--r-- | src/devices/bus/nes/namcot.h | 63 |
1 files changed, 38 insertions, 25 deletions
diff --git a/src/devices/bus/nes/namcot.h b/src/devices/bus/nes/namcot.h index bb65a0c8953..a4ab64084e1 100644 --- a/src/devices/bus/nes/namcot.h +++ b/src/devices/bus/nes/namcot.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __NES_NAMCOT_H -#define __NES_NAMCOT_H +#ifndef MAME_BUS_NES_NAMCOT_H +#define MAME_BUS_NES_NAMCOT_H + +#pragma once #include "nxrom.h" @@ -12,16 +14,19 @@ class nes_namcot3433_device : public nes_nrom_device { public: // construction/destruction - nes_namcot3433_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); nes_namcot3433_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(dxrom_write); virtual DECLARE_WRITE8_MEMBER(write_h) override { dxrom_write(space, offset, data, mem_mask); } virtual void pcb_reset() override; +protected: + nes_namcot3433_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override; + private: uint8_t m_latch; }; @@ -35,12 +40,14 @@ public: // construction/destruction nes_namcot3446_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: uint8_t m_latch; }; @@ -54,12 +61,14 @@ public: // construction/destruction nes_namcot3425_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: uint8_t m_latch; uint8_t m_reg[4]; @@ -72,12 +81,8 @@ class nes_namcot340_device : public nes_nrom_device { public: // construction/destruction - nes_namcot340_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); nes_namcot340_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; virtual DECLARE_READ8_MEMBER(n340_loread); virtual DECLARE_WRITE8_MEMBER(n340_lowrite); virtual DECLARE_WRITE8_MEMBER(n340_hiwrite); @@ -88,10 +93,17 @@ public: virtual void pcb_reset() override; protected: + static constexpr device_timer_id TIMER_IRQ = 0; + + nes_namcot340_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // device-level overrides + virtual void device_start() override; + virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + uint16_t m_irq_count; int m_irq_enable; - static const device_timer_id TIMER_IRQ = 0; emu_timer *irq_timer; // Namcot-163 chip contains 8K of internal ram, possibly battery backed up (not emulated yet) @@ -129,8 +141,6 @@ public: // construction/destruction nes_namcot163_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; virtual DECLARE_READ8_MEMBER(read_l) override; virtual DECLARE_READ8_MEMBER(read_m) override; virtual DECLARE_WRITE8_MEMBER(write_l) override; @@ -143,6 +153,10 @@ public: virtual void pcb_reset() override; +protected: + // device-level overrides + virtual void device_start() override; + private: void set_mirror(uint8_t page, uint8_t data); @@ -151,13 +165,12 @@ private: }; - // device type definition -extern const device_type NES_NAMCOT3433; -extern const device_type NES_NAMCOT3446; -extern const device_type NES_NAMCOT3425; -extern const device_type NES_NAMCOT175; -extern const device_type NES_NAMCOT340; -extern const device_type NES_NAMCOT163; - -#endif +DECLARE_DEVICE_TYPE(NES_NAMCOT3433, nes_namcot3433_device) +DECLARE_DEVICE_TYPE(NES_NAMCOT3446, nes_namcot3446_device) +DECLARE_DEVICE_TYPE(NES_NAMCOT3425, nes_namcot3425_device) +DECLARE_DEVICE_TYPE(NES_NAMCOT340, nes_namcot340_device) +DECLARE_DEVICE_TYPE(NES_NAMCOT175, nes_namcot175_device) +DECLARE_DEVICE_TYPE(NES_NAMCOT163, nes_namcot163_device) + +#endif // MAME_BUS_NES_NAMCOT_H |