diff options
Diffstat (limited to 'src/devices/bus/nes/irem.h')
-rw-r--r-- | src/devices/bus/nes/irem.h | 54 |
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) |