summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/vtech/memexp/memory.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/bus/vtech/memexp/memory.h')
-rw-r--r--src/devices/bus/vtech/memexp/memory.h39
1 files changed, 18 insertions, 21 deletions
diff --git a/src/devices/bus/vtech/memexp/memory.h b/src/devices/bus/vtech/memexp/memory.h
index f8a0fe78e7d..2f467c73fdd 100644
--- a/src/devices/bus/vtech/memexp/memory.h
+++ b/src/devices/bus/vtech/memexp/memory.h
@@ -20,68 +20,65 @@
// ======================> vtech_laser110_16k_device
-class vtech_laser110_16k_device : public device_t, public device_vtech_memexp_interface
+class vtech_laser110_16k_device : public vtech_memexp_device
{
public:
// construction/destruction
vtech_laser110_16k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
protected:
- virtual void device_start() override;
- virtual void device_reset() override;
+ virtual void device_start() override ATTR_COLD;
-private:
- std::vector<uint8_t> m_ram;
+ virtual void mem_map(address_map &map) override ATTR_COLD;
};
// ======================> vtech_laser210_16k_device
-class vtech_laser210_16k_device : public device_t, public device_vtech_memexp_interface
+class vtech_laser210_16k_device : public vtech_memexp_device
{
public:
// construction/destruction
vtech_laser210_16k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
protected:
- virtual void device_start() override;
- virtual void device_reset() override;
+ virtual void device_start() override ATTR_COLD;
-private:
- std::vector<uint8_t> m_ram;
+ virtual void mem_map(address_map &map) override ATTR_COLD;
};
// ======================> vtech_laser310_16k_device
-class vtech_laser310_16k_device : public device_t, public device_vtech_memexp_interface
+class vtech_laser310_16k_device : public vtech_memexp_device
{
public:
// construction/destruction
vtech_laser310_16k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
protected:
- virtual void device_start() override;
- virtual void device_reset() override;
+ virtual void device_start() override ATTR_COLD;
-private:
- std::vector<uint8_t> m_ram;
+ virtual void mem_map(address_map &map) override ATTR_COLD;
};
// ======================> vtech_laser_64k_device
-class vtech_laser_64k_device : public device_t, public device_vtech_memexp_interface
+class vtech_laser_64k_device : public vtech_memexp_device
{
public:
// construction/destruction
vtech_laser_64k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- DECLARE_WRITE8_MEMBER( bankswitch_w );
-
protected:
- virtual void device_start() override;
- virtual void device_reset() override;
+ virtual void device_start() override ATTR_COLD;
+
+ virtual void mem_map(address_map &map) override ATTR_COLD;
+ virtual void io_map(address_map &map) override ATTR_COLD;
private:
- std::vector<uint8_t> m_ram;
+ required_memory_bank m_fixed_bank;
+ required_memory_bank m_bank;
+
+ std::unique_ptr<uint8_t[]> m_ram;
};
// device type definition