diff options
Diffstat (limited to 'src/mame/apple/dafb.h')
-rw-r--r-- | src/mame/apple/dafb.h | 41 |
1 files changed, 30 insertions, 11 deletions
diff --git a/src/mame/apple/dafb.h b/src/mame/apple/dafb.h index 744582a36d1..8caa339bb5e 100644 --- a/src/mame/apple/dafb.h +++ b/src/mame/apple/dafb.h @@ -18,7 +18,7 @@ public: dafb_base(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock); virtual ~dafb_base() = default; - void map(address_map &map); + void map(address_map &map) ATTR_COLD; u32 vram_r(offs_t offset); void vram_w(offs_t offset, u32 data, u32 mem_mask); @@ -35,10 +35,10 @@ public: virtual void clockgen_w(offs_t offset, u8 data); protected: - virtual void device_start() override; - virtual void device_reset() override; - virtual void device_add_mconfig(machine_config &config) override; - virtual ioport_constructor device_input_ports() const override; + virtual void device_start() override ATTR_COLD; + virtual void device_reset() override ATTR_COLD; + virtual void device_add_mconfig(machine_config &config) override ATTR_COLD; + virtual ioport_constructor device_input_ports() const override ATTR_COLD; void recalc_ints(); void recalc_mode(); @@ -101,7 +101,7 @@ private: TIMER_CALLBACK_MEMBER(cursor_tick); }; -// Discrete DAFB: Quadra 700 & 900, includes "TurboSCSI" +// Discrete DAFB II: Quadra 950, includes "TurboSCSI" class dafb_device: public dafb_base { public: @@ -120,21 +120,39 @@ public: template <int bus> void turboscsi_dma_w(offs_t offset, u16 data, u16 mem_mask); protected: - virtual void device_start() override; + dafb_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock); + + virtual void device_start() override ATTR_COLD; private: required_device<m68000_musashi_device> m_maincpu; ncr53c94_device *m_ncr[2]; }; +class dafb_q950_device : public dafb_device +{ +public: + dafb_q950_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock = 0); + +protected: + virtual void device_start() override ATTR_COLD; + virtual ioport_constructor device_input_ports() const override ATTR_COLD; + + virtual u32 ramdac_r(offs_t offset) override; + virtual void ramdac_w(offs_t offset, u32 data) override; + +private: + u8 m_pcbr1; +}; + class dafb_memc_device: public dafb_base { public: dafb_memc_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock = 0); protected: - virtual void device_start() override; - virtual ioport_constructor device_input_ports() const override; + virtual void device_start() override ATTR_COLD; + virtual ioport_constructor device_input_ports() const override ATTR_COLD; virtual u8 clockgen_r(offs_t offset) override; virtual void clockgen_w(offs_t offset, u8 data) override; @@ -153,8 +171,8 @@ public: dafb_memcjr_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock = 0); protected: - virtual void device_start() override; - virtual ioport_constructor device_input_ports() const override; + virtual void device_start() override ATTR_COLD; + virtual ioport_constructor device_input_ports() const override ATTR_COLD; virtual u8 clockgen_r(offs_t offset) override; virtual void clockgen_w(offs_t offset, u8 data) override; @@ -171,6 +189,7 @@ private: }; DECLARE_DEVICE_TYPE(DAFB, dafb_device) +DECLARE_DEVICE_TYPE(DAFB_Q950, dafb_q950_device) DECLARE_DEVICE_TYPE(DAFB_MEMC, dafb_memc_device) DECLARE_DEVICE_TYPE(DAFB_MEMCJR, dafb_memcjr_device) |