summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/snes/snes_slot.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/bus/snes/snes_slot.h')
-rw-r--r--src/devices/bus/snes/snes_slot.h50
1 files changed, 28 insertions, 22 deletions
diff --git a/src/devices/bus/snes/snes_slot.h b/src/devices/bus/snes/snes_slot.h
index 16ac7e49016..20f35fdad24 100644
--- a/src/devices/bus/snes/snes_slot.h
+++ b/src/devices/bus/snes/snes_slot.h
@@ -1,7 +1,9 @@
// license:BSD-3-Clause
// copyright-holders:Fabio Priuli
-#ifndef __SNS_SLOT_H
-#define __SNS_SLOT_H
+#ifndef MAME_BUS_SNES_SNES_SLOT_H
+#define MAME_BUS_SNES_SNES_SLOT_H
+
+#pragma once
#include "softlist_dev.h"
@@ -102,37 +104,39 @@ class device_sns_cart_interface : public device_slot_card_interface
{
public:
// construction/destruction
- device_sns_cart_interface(const machine_config &mconfig, device_t &device);
virtual ~device_sns_cart_interface();
// reading and writing
virtual DECLARE_READ8_MEMBER(read_l) { return 0xff; } // ROM access in range [00-7f]
virtual DECLARE_READ8_MEMBER(read_h) { return 0xff; } // ROM access in range [80-ff]
virtual DECLARE_READ8_MEMBER(read_ram) { if (!m_nvram.empty()) return m_nvram[offset & (m_nvram.size()-1)]; else return 0xff; } // NVRAM access
- virtual DECLARE_WRITE8_MEMBER(write_l) {} // used by carts with subslots
- virtual DECLARE_WRITE8_MEMBER(write_h) {} // used by carts with subslots
+ virtual DECLARE_WRITE8_MEMBER(write_l) { } // used by carts with subslots
+ virtual DECLARE_WRITE8_MEMBER(write_h) { } // used by carts with subslots
virtual DECLARE_WRITE8_MEMBER(write_ram) { if (!m_nvram.empty()) m_nvram[offset & (m_nvram.size()-1)] = data; } // NVRAM access
virtual DECLARE_READ8_MEMBER(chip_read) { return 0xff; }
- virtual DECLARE_WRITE8_MEMBER(chip_write) {}
- virtual void speedup_addon_bios_access() {};
+ virtual DECLARE_WRITE8_MEMBER(chip_write) { }
+ virtual void speedup_addon_bios_access() {}
void rom_alloc(uint32_t size, const char *tag);
void nvram_alloc(uint32_t size);
void rtc_ram_alloc(uint32_t size);
void addon_bios_alloc(uint32_t size);
- uint8_t* get_rom_base() { return m_rom; };
- uint8_t* get_nvram_base() { return &m_nvram[0]; };
- uint8_t* get_addon_bios_base() { return &m_bios[0]; };
- uint8_t* get_rtc_ram_base() { return &m_rtc_ram[0]; };
- uint32_t get_rom_size() { return m_rom_size; };
- uint32_t get_nvram_size() { return m_nvram.size(); };
- uint32_t get_addon_bios_size() { return m_bios.size(); };
- uint32_t get_rtc_ram_size() { return m_rtc_ram.size(); };
+ uint8_t* get_rom_base() { return m_rom; }
+ uint8_t* get_nvram_base() { return &m_nvram[0]; }
+ uint8_t* get_addon_bios_base() { return &m_bios[0]; }
+ uint8_t* get_rtc_ram_base() { return &m_rtc_ram[0]; }
+ uint32_t get_rom_size() { return m_rom_size; }
+ uint32_t get_nvram_size() { return m_nvram.size(); }
+ uint32_t get_addon_bios_size() { return m_bios.size(); }
+ uint32_t get_rtc_ram_size() { return m_rtc_ram.size(); }
void rom_map_setup(uint32_t size);
void save_nvram() { device().save_item(NAME(m_nvram)); }
void save_rtc_ram() { device().save_item(NAME(m_rtc_ram)); }
+protected:
+ device_sns_cart_interface(const machine_config &mconfig, device_t &device);
+
// internal state
uint8_t *m_rom;
uint32_t m_rom_size;
@@ -152,7 +156,6 @@ class base_sns_cart_slot_device : public device_t,
{
public:
// construction/destruction
- base_sns_cart_slot_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source);
virtual ~base_sns_cart_slot_device();
// device-level overrides
@@ -208,11 +211,14 @@ public:
int m_type;
device_sns_cart_interface* m_cart;
+
+protected:
+ base_sns_cart_slot_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
};
// ======================> sns_cart_slot_device
-class sns_cart_slot_device : public base_sns_cart_slot_device
+class sns_cart_slot_device : public base_sns_cart_slot_device
{
public:
// construction/destruction
@@ -223,7 +229,7 @@ public:
// ======================> sns_sufami_cart_slot_device
-class sns_sufami_cart_slot_device : public base_sns_cart_slot_device
+class sns_sufami_cart_slot_device : public base_sns_cart_slot_device
{
public:
// construction/destruction
@@ -247,9 +253,9 @@ public:
// device type definition
-extern const device_type SNS_CART_SLOT;
-extern const device_type SNS_SUFAMI_CART_SLOT;
-extern const device_type SNS_BSX_CART_SLOT;
+DECLARE_DEVICE_TYPE(SNS_CART_SLOT, sns_cart_slot_device)
+DECLARE_DEVICE_TYPE(SNS_SUFAMI_CART_SLOT, sns_sufami_cart_slot_device)
+DECLARE_DEVICE_TYPE(SNS_BSX_CART_SLOT, sns_bsx_cart_slot_device)
/***************************************************************************
@@ -272,4 +278,4 @@ extern const device_type SNS_BSX_CART_SLOT;
MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, false)
-#endif
+#endif // MAME_BUS_SNES_SNES_SLOT_H