summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/nes/namcot.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/bus/nes/namcot.h')
-rw-r--r--src/devices/bus/nes/namcot.h63
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