summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/nes/irem.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/bus/nes/irem.h')
-rw-r--r--src/devices/bus/nes/irem.h54
1 files changed, 26 insertions, 28 deletions
diff --git a/src/devices/bus/nes/irem.h b/src/devices/bus/nes/irem.h
index 82fd0815c38..eef809ca7b5 100644
--- a/src/devices/bus/nes/irem.h
+++ b/src/devices/bus/nes/irem.h
@@ -14,15 +14,11 @@ class nes_lrog017_device : public nes_nrom_device
{
public:
// construction/destruction
- nes_lrog017_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ nes_lrog017_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
- virtual void write_h(offs_t offset, uint8_t data) override;
+ virtual void write_h(offs_t offset, u8 data) override;
virtual void pcb_reset() override;
-
-protected:
- // device-level overrides
- virtual void device_start() override;
};
@@ -32,15 +28,11 @@ class nes_holydivr_device : public nes_nrom_device
{
public:
// construction/destruction
- nes_holydivr_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ nes_holydivr_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
- virtual void write_h(offs_t offset, uint8_t data) override;
+ virtual void write_h(offs_t offset, u8 data) override;
virtual void pcb_reset() override;
-
-protected:
- // device-level overrides
- virtual void device_start() override;
};
@@ -50,15 +42,11 @@ class nes_tam_s1_device : public nes_nrom_device
{
public:
// construction/destruction
- nes_tam_s1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ nes_tam_s1_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
- virtual void write_h(offs_t offset, uint8_t data) override;
+ virtual void write_h(offs_t offset, u8 data) override;
virtual void pcb_reset() override;
-
-protected:
- // device-level overrides
- virtual void device_start() override;
};
@@ -68,44 +56,54 @@ class nes_g101_device : public nes_nrom_device
{
public:
// construction/destruction
- nes_g101_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ nes_g101_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
- virtual void write_h(offs_t offset, uint8_t data) override;
+ virtual void write_h(offs_t offset, u8 data) override;
virtual void pcb_reset() override;
protected:
+ // construction/destruction
+ nes_g101_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, u8 prg_mask);
+
// device-level overrides
virtual void device_start() override;
- uint8_t m_latch;
+ void set_prg();
+ u8 m_latch;
+
+private:
+ u8 m_reg;
+ const u8 m_prg_mask;
};
// ======================> nes_h3001_device
-class nes_h3001_device : public nes_nrom_device
+class nes_h3001_device : public nes_g101_device
{
public:
// construction/destruction
- nes_h3001_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ nes_h3001_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
- virtual void write_h(offs_t offset, uint8_t data) override;
+ virtual void write_h(offs_t offset, u8 data) override;
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;
- uint16_t m_irq_count, m_irq_count_latch;
- int m_irq_enable;
+ TIMER_CALLBACK_MEMBER(irq_timer_tick);
+
+private:
+ u16 m_irq_count, m_irq_count_latch;
+ u8 m_irq_enable;
- static const device_timer_id TIMER_IRQ = 0;
emu_timer *irq_timer;
};
+
// device type definition
DECLARE_DEVICE_TYPE(NES_LROG017, nes_lrog017_device)
DECLARE_DEVICE_TYPE(NES_HOLYDIVR, nes_holydivr_device)