#ifndef __NES_LEGACY_H #define __NES_LEGACY_H #include "machine/nes_nxrom.h" // ======================> nes_ffe3_device class nes_ffe3_device : public nes_nrom_device { public: // construction/destruction nes_ffe3_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); // device-level overrides virtual void device_start(); virtual DECLARE_WRITE8_MEMBER(write_h); virtual void pcb_reset(); }; // ======================> nes_ffe4_device class nes_ffe4_device : public nes_nrom_device { public: // construction/destruction nes_ffe4_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source); nes_ffe4_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); // device-level overrides virtual void device_start(); virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr); virtual DECLARE_WRITE8_MEMBER(write_l); virtual DECLARE_WRITE8_MEMBER(write_h); virtual DECLARE_READ8_MEMBER(chr_r); virtual DECLARE_WRITE8_MEMBER(chr_w); virtual void pcb_reset(); protected: UINT16 m_irq_count; int m_irq_enable; static const device_timer_id TIMER_IRQ = 0; emu_timer *irq_timer; UINT8 m_latch; UINT8 *m_exram; int m_exram_enabled; int m_exram_bank; }; // ======================> nes_ffe8_device class nes_ffe8_device : public nes_ffe4_device { public: // construction/destruction nes_ffe8_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); // device-level overrides virtual DECLARE_WRITE8_MEMBER(write_l); virtual DECLARE_WRITE8_MEMBER(write_h) {} virtual void pcb_reset(); }; // device type definition extern const device_type NES_FFE3; extern const device_type NES_FFE4; extern const device_type NES_FFE8; #endif