diff options
Diffstat (limited to 'src/devices/bus/sega8/sega8_slot.h')
-rw-r--r-- | src/devices/bus/sega8/sega8_slot.h | 38 |
1 files changed, 22 insertions, 16 deletions
diff --git a/src/devices/bus/sega8/sega8_slot.h b/src/devices/bus/sega8/sega8_slot.h index ca9ad1f1dba..fa26d4bed72 100644 --- a/src/devices/bus/sega8/sega8_slot.h +++ b/src/devices/bus/sega8/sega8_slot.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __SEGA8_SLOT_H -#define __SEGA8_SLOT_H +#ifndef MAME_BUS_SEGA8_SLOT_H +#define MAME_BUS_SEGA8_SLOT_H + +#pragma once #include "softlist_dev.h" @@ -34,8 +36,8 @@ enum }; -extern const device_type SEGA8_CART_SLOT; -extern const device_type SEGA8_CARD_SLOT; +DECLARE_DEVICE_TYPE(SEGA8_CART_SLOT, sega8_cart_slot_device) +DECLARE_DEVICE_TYPE(SEGA8_CARD_SLOT, sega8_card_slot_device) // ======================> device_sega8_cart_interface @@ -44,22 +46,21 @@ class device_sega8_cart_interface : public device_slot_card_interface { public: // construction/destruction - device_sega8_cart_interface(const machine_config &mconfig, device_t &device); virtual ~device_sega8_cart_interface(); // reading and writing virtual DECLARE_READ8_MEMBER(read_cart) { return 0xff; } - virtual DECLARE_WRITE8_MEMBER(write_cart) {} - virtual DECLARE_WRITE8_MEMBER(write_mapper) {} + virtual DECLARE_WRITE8_MEMBER(write_cart) { } + virtual DECLARE_WRITE8_MEMBER(write_mapper) { } virtual int get_lphaser_xoffs() { return m_lphaser_xoffs; } // a few carts (for SG1000) acts as a RAM expansion, taking control of the system RAM in 0xc000-0xffff virtual DECLARE_READ8_MEMBER(read_ram) { return 0xff; } - virtual DECLARE_WRITE8_MEMBER(write_ram) {} + virtual DECLARE_WRITE8_MEMBER(write_ram) { } void rom_alloc(uint32_t size, const char *tag); void ram_alloc(uint32_t size); - virtual void late_bank_setup() {} + virtual void late_bank_setup() { } void set_has_battery(bool val) { has_battery = val; } bool get_has_battery() { return has_battery; } @@ -77,7 +78,9 @@ public: void save_ram() { device().save_item(NAME(m_ram)); } -//private: +protected: + device_sega8_cart_interface(const machine_config &mconfig, device_t &device); + // internal state uint8_t *m_rom; uint32_t m_rom_size; @@ -103,13 +106,9 @@ class sega8_cart_slot_device : public device_t, { public: // construction/destruction - sega8_cart_slot_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, bool is_card, const char *shortname, const char *source); sega8_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual ~sega8_cart_slot_device(); - // device-level overrides - virtual void device_start() override; - // image-level overrides virtual image_init_result call_load() override; virtual void call_unload() override; @@ -150,8 +149,15 @@ public: virtual DECLARE_READ8_MEMBER(read_ram); virtual DECLARE_WRITE8_MEMBER(write_ram); + int get_lphaser_xoffs() { return m_cart ? m_cart->get_lphaser_xoffs() : -1; } + int get_sms_mode() { return m_cart->get_sms_mode(); } + +protected: + sega8_cart_slot_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, bool is_card); + + // device-level overrides + virtual void device_start() override; -//protected: int m_type; bool m_must_be_loaded, m_is_card; const char *m_interface; @@ -242,4 +248,4 @@ SLOT_INTERFACE_EXTERN( sg1000mk3_cart ); SLOT_INTERFACE_EXTERN( sms_cart ); SLOT_INTERFACE_EXTERN( gg_cart ); -#endif +#endif // MAME_BUS_SEGA8_SLOT_H |