diff options
Diffstat (limited to 'src/emu/imagedev/multcart.h')
-rw-r--r-- | src/emu/imagedev/multcart.h | 194 |
1 files changed, 0 insertions, 194 deletions
diff --git a/src/emu/imagedev/multcart.h b/src/emu/imagedev/multcart.h deleted file mode 100644 index 801e9daa7b1..00000000000 --- a/src/emu/imagedev/multcart.h +++ /dev/null @@ -1,194 +0,0 @@ -/********************************************************************* - - multcart.h - - Multi-cartridge handling code - -*********************************************************************/ - -#ifndef __MULTCART_H__ -#define __MULTCART_H__ - -#include "osdcore.h" - -#define TAG_PCB "pcb" - -DECLARE_LEGACY_IMAGE_DEVICE(MULTICARTSLOT, multicartslot); - -/*************************************************************************** - TYPE DEFINITIONS -***************************************************************************/ - -enum _multicart_load_flags -{ - MULTICART_FLAGS_DONT_LOAD_RESOURCES = 0x00, - MULTICART_FLAGS_LOAD_RESOURCES = 0x01 -}; -typedef enum _multicart_load_flags multicart_load_flags; - -enum _multicart_resource_type -{ - MULTICART_RESOURCE_TYPE_INVALID, - MULTICART_RESOURCE_TYPE_ROM, - MULTICART_RESOURCE_TYPE_RAM -}; -typedef enum _multicart_resource_type multicart_resource_type; - -typedef struct _multicart_resource multicart_resource; -struct _multicart_resource -{ - const char * id; - const char * filename; - multicart_resource * next; - multicart_resource_type type; - UINT32 length; - void * ptr; -}; - - -typedef struct _multicart_socket multicart_socket; -struct _multicart_socket -{ - const char * id; - multicart_socket * next; - const multicart_resource * resource; - void * ptr; -}; - - -typedef struct _multicart_private multicart_private; - -typedef struct _multicart_t multicart_t; -struct _multicart_t -{ - const multicart_resource * resources; - const multicart_socket * sockets; - const char * pcb_type; - const char * gamedrv_name; /* need this to find the path to the nvram files */ - multicart_private * data; -}; - -typedef struct _multicartslot_t multicartslot_t; -struct _multicartslot_t -{ - device_t *pcb_device; - multicart_t *mc; -}; - - -typedef struct _multicartslot_pcb_type multicartslot_pcb_type; -struct _multicartslot_pcb_type -{ - const char * name; - device_type devtype; -}; - - -typedef struct _multicartslot_config multicartslot_config; -struct _multicartslot_config -{ - const char * extensions; - device_start_func device_start; - device_image_load_func device_load; - device_image_unload_func device_unload; - multicartslot_pcb_type pcb_types[16]; -}; - -enum _multicart_open_error -{ - MCERR_NONE, - MCERR_NOT_MULTICART, - MCERR_CORRUPT, - MCERR_OUT_OF_MEMORY, - MCERR_XML_ERROR, - MCERR_INVALID_FILE_REF, - MCERR_ZIP_ERROR, - MCERR_MISSING_RAM_LENGTH, - MCERR_INVALID_RAM_SPEC, - MCERR_UNKNOWN_RESOURCE_TYPE, - MCERR_INVALID_RESOURCE_REF, - MCERR_INVALID_FILE_FORMAT, - MCERR_MISSING_LAYOUT, - MCERR_NO_PCB_OR_RESOURCES -}; -typedef enum _multicart_open_error multicart_open_error; - -const char *multicart_error_text(multicart_open_error error); - -/*************************************************************************** - PROTOTYPES -***************************************************************************/ - -/* opens a multicart */ -multicart_open_error multicart_open(emu_options &options, const char *filename, const char *drvname, multicart_load_flags load_flags, multicart_t **cart); - -/* closes a multicart */ -void multicart_close(emu_options &options, multicart_t *cart); - -/* accesses the PCB associated with this cartslot */ -device_t *cartslot_get_pcb(device_t *device); - -/* accesses a particular socket */ -void *cartslot_get_socket(device_t *device, const char *socket_name); - -/* accesses a particular socket; gets the length of the associated resource */ -int cartslot_get_resource_length(device_t *device, const char *socket_name); - -#define DECLARE_LEGACY_CART_SLOT_DEVICE(name, basename) _DECLARE_LEGACY_DEVICE(name, basename, basename##_device, legacy_cart_slot_device_base) -#define DEFINE_LEGACY_CART_SLOT_DEVICE(name, basename) _DEFINE_LEGACY_DEVICE(name, basename, basename##_device, legacy_cart_slot_device_base) - -#define MCFG_MULTICARTSLOT_ADD(_tag) \ - MCFG_DEVICE_ADD(_tag, MULTICARTSLOT, 0) \ - -#define MCFG_MULTICARTSLOT_MODIFY(_tag) \ - MCFG_DEVICE_MODIFY(_tag) \ - -#define MCFG_MULTICARTSLOT_PCBTYPE(_index, _pcb_type_name, _pcb_devtype) \ - MCFG_DEVICE_CONFIG_DATAPTR_ARRAY_MEMBER(multicartslot_config, pcb_types, _index, multicartslot_pcb_type, name, _pcb_type_name) \ - MCFG_DEVICE_CONFIG_DATAPTR_ARRAY_MEMBER(multicartslot_config, pcb_types, _index, multicartslot_pcb_type, devtype, _pcb_devtype) - -#define MCFG_MULTICARTSLOT_START(_start) \ - MCFG_DEVICE_CONFIG_DATAPTR(multicartslot_config, device_start, DEVICE_START_NAME(_start)) - -#define MCFG_MULTICARTSLOT_LOAD(_load) \ - MCFG_DEVICE_CONFIG_DATAPTR(multicartslot_config, device_load, DEVICE_IMAGE_LOAD_NAME(_load)) - -#define MCFG_MULTICARTSLOT_UNLOAD(_unload) \ - MCFG_DEVICE_CONFIG_DATAPTR(multicartslot_config, device_unload, DEVICE_IMAGE_UNLOAD_NAME(_unload)) - -#define MCFG_MULTICARTSLOT_EXTENSION_LIST(_extensions) \ - MCFG_DEVICE_CONFIG_DATAPTR(multicartslot_config, extensions, _extensions) - - -// ======================> device_cart_slot_interface - -// class representing interface-specific live cart_slot -class device_cart_slot_interface : public device_interface -{ -public: - // construction/destruction - device_cart_slot_interface(const machine_config &mconfig, device_t &device); - virtual ~device_cart_slot_interface(); -}; - - -// ======================> legacy_cart_slot_device - -// legacy_cart_slot_device is a legacy_device_base with a cart_slot interface -class legacy_cart_slot_device_base : public legacy_device_base, - public device_cart_slot_interface -{ -protected: - // construction/destruction - legacy_cart_slot_device_base(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, UINT32 clock, device_get_config_func get_config); - -public: - using legacy_device_base::get_legacy_int; - using legacy_device_base::get_legacy_fct; - using legacy_device_base::get_legacy_ptr; - - // device_cart_slot_interface overrides -}; - - -#endif /* __MULTCART_H__ */ |