summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/apple/dafb.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/apple/dafb.h')
-rw-r--r--src/mame/apple/dafb.h41
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)