summaryrefslogtreecommitdiffstatshomepage
path: root/trunk/src/emu/imagedev/cartslot.h
diff options
context:
space:
mode:
Diffstat (limited to 'trunk/src/emu/imagedev/cartslot.h')
-rw-r--r--trunk/src/emu/imagedev/cartslot.h84
1 files changed, 84 insertions, 0 deletions
diff --git a/trunk/src/emu/imagedev/cartslot.h b/trunk/src/emu/imagedev/cartslot.h
new file mode 100644
index 00000000000..2b31a3beb01
--- /dev/null
+++ b/trunk/src/emu/imagedev/cartslot.h
@@ -0,0 +1,84 @@
+/***************************************************************************
+
+ Cartrige loading
+
+***************************************************************************/
+
+#ifndef __CARTSLOT_H__
+#define __CARTSLOT_H__
+
+#include "image.h"
+
+
+/***************************************************************************
+ MACROS
+***************************************************************************/
+#define ROM_CART_LOAD(tag,offset,length,flags) \
+ { NULL, tag, offset, length, ROMENTRYTYPE_CARTRIDGE | (flags) },
+
+#define ROM_MIRROR 0x01000000
+#define ROM_NOMIRROR 0x00000000
+#define ROM_FULLSIZE 0x02000000
+#define ROM_FILL_FF 0x04000000
+#define ROM_NOCLEAR 0x08000000
+
+DECLARE_LEGACY_IMAGE_DEVICE(CARTSLOT, cartslot);
+
+
+
+/***************************************************************************
+ TYPE DEFINITIONS
+***************************************************************************/
+
+typedef struct _cartslot_config cartslot_config;
+struct _cartslot_config
+{
+ const char * extensions;
+ const char * interface;
+ int must_be_loaded;
+ device_start_func device_start;
+ device_image_load_func device_load;
+ device_image_unload_func device_unload;
+ device_image_partialhash_func device_partialhash;
+ device_image_display_info_func device_displayinfo;
+};
+
+
+/***************************************************************************
+ DEVICE CONFIGURATION MACROS
+***************************************************************************/
+
+#define MCFG_CARTSLOT_ADD(_tag) \
+ MCFG_DEVICE_ADD(_tag, CARTSLOT, 0) \
+
+#define MCFG_CARTSLOT_MODIFY(_tag) \
+ MCFG_DEVICE_MODIFY(_tag) \
+
+#define MCFG_CARTSLOT_EXTENSION_LIST(_extensions) \
+ MCFG_DEVICE_CONFIG_DATAPTR(cartslot_config, extensions, _extensions)
+
+#define MCFG_CARTSLOT_NOT_MANDATORY \
+ MCFG_DEVICE_CONFIG_DATA32(cartslot_config, must_be_loaded, FALSE)
+
+#define MCFG_CARTSLOT_MANDATORY \
+ MCFG_DEVICE_CONFIG_DATA32(cartslot_config, must_be_loaded, TRUE)
+
+#define MCFG_CARTSLOT_START(_start) \
+ MCFG_DEVICE_CONFIG_DATAPTR(cartslot_config, device_start, DEVICE_START_NAME(_start))
+
+#define MCFG_CARTSLOT_LOAD(_load) \
+ MCFG_DEVICE_CONFIG_DATAPTR(cartslot_config, device_load, DEVICE_IMAGE_LOAD_NAME(_load))
+
+#define MCFG_CARTSLOT_UNLOAD(_unload) \
+ MCFG_DEVICE_CONFIG_DATAPTR(cartslot_config, device_unload, DEVICE_IMAGE_UNLOAD_NAME(_unload))
+
+#define MCFG_CARTSLOT_DISPLAY_INFO(_displayinfo) \
+ MCFG_DEVICE_CONFIG_DATAPTR(cartslot_config, device_displayinfo, DEVICE_IMAGE_DISPLAY_INFO_NAME(_displayinfo))
+
+#define MCFG_CARTSLOT_PARTIALHASH(_partialhash) \
+ MCFG_DEVICE_CONFIG_DATAPTR(cartslot_config, device_partialhash, _partialhash)
+
+#define MCFG_CARTSLOT_INTERFACE(_interface) \
+ MCFG_DEVICE_CONFIG_DATAPTR(cartslot_config, interface, _interface )
+
+#endif /* __cart_slot_H__ */