diff options
203 files changed, 309 insertions, 981 deletions
diff --git a/src/emu/bus/a1bus/a1cassette.c b/src/emu/bus/a1bus/a1cassette.c index 0b7e53a5bea..33f781229a8 100644 --- a/src/emu/bus/a1bus/a1cassette.c +++ b/src/emu/bus/a1bus/a1cassette.c @@ -27,8 +27,7 @@ static const cassette_interface apple1_cassette_interface = cassette_default_formats, NULL, (cassette_state)(CASSETTE_STOPPED), - "apple1_cass", - NULL + "apple1_cass" }; MACHINE_CONFIG_FRAGMENT( cassette ) diff --git a/src/emu/bus/a2bus/a2corvus.c b/src/emu/bus/a2bus/a2corvus.c index 783e6fe7054..44a0ae8c0b3 100644 --- a/src/emu/bus/a2bus/a2corvus.c +++ b/src/emu/bus/a2bus/a2corvus.c @@ -57,10 +57,14 @@ const device_type A2BUS_CORVUS = &device_creator<a2bus_corvus_device>; static MACHINE_CONFIG_FRAGMENT(corvus) MCFG_DEVICE_ADD(CORVUS_HD_TAG, CORVUS_HDC, 0) - MCFG_HARDDISK_CONFIG_ADD("harddisk1", corvus_hdc_t::hd_intf) - MCFG_HARDDISK_CONFIG_ADD("harddisk2", corvus_hdc_t::hd_intf) - MCFG_HARDDISK_CONFIG_ADD("harddisk3", corvus_hdc_t::hd_intf) - MCFG_HARDDISK_CONFIG_ADD("harddisk4", corvus_hdc_t::hd_intf) + MCFG_HARDDISK_ADD("harddisk1") + MCFG_HARDDISK_INTERFACE("corvus_hdd") + MCFG_HARDDISK_ADD("harddisk2") + MCFG_HARDDISK_INTERFACE("corvus_hdd") + MCFG_HARDDISK_ADD("harddisk3") + MCFG_HARDDISK_INTERFACE("corvus_hdd") + MCFG_HARDDISK_ADD("harddisk4") + MCFG_HARDDISK_INTERFACE("corvus_hdd") MACHINE_CONFIG_END ROM_START( corvus ) diff --git a/src/emu/bus/a2bus/a2diskii.c b/src/emu/bus/a2bus/a2diskii.c index 5f0bcd11f87..b896acc2fda 100644 --- a/src/emu/bus/a2bus/a2diskii.c +++ b/src/emu/bus/a2bus/a2diskii.c @@ -41,15 +41,9 @@ const applefdc_interface fdc_interface = static const floppy_interface floppy_interface = { - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, FLOPPY_STANDARD_5_25_DSHD, LEGACY_FLOPPY_OPTIONS_NAME(apple2), - "floppy_5_25", - NULL + "floppy_5_25" }; MACHINE_CONFIG_FRAGMENT( diskii ) diff --git a/src/emu/bus/adamnet/ddp.c b/src/emu/bus/adamnet/ddp.c index 8755d266f5e..5cc71853953 100644 --- a/src/emu/bus/adamnet/ddp.c +++ b/src/emu/bus/adamnet/ddp.c @@ -88,8 +88,7 @@ static const cassette_interface adam_cassette_interface = coleco_adam_cassette_formats, &adam_cassette_options, (cassette_state)(CASSETTE_PLAY | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_MUTED), - "adam_cass", - NULL + "adam_cass" }; diff --git a/src/emu/bus/bml3/bml3mp1802.c b/src/emu/bus/bml3/bml3mp1802.c index be953016fc4..fb00f9d7acd 100644 --- a/src/emu/bus/bml3/bml3mp1802.c +++ b/src/emu/bus/bml3/bml3mp1802.c @@ -23,11 +23,6 @@ const device_type BML3BUS_MP1802 = &device_creator<bml3bus_mp1802_device>; static const floppy_interface bml3_mp1802_floppy_interface = { - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, FLOPPY_STANDARD_5_25_DSDD, LEGACY_FLOPPY_OPTIONS_NAME(default), NULL diff --git a/src/emu/bus/bml3/bml3mp1805.c b/src/emu/bus/bml3/bml3mp1805.c index 7b679d4881c..225a48d254f 100644 --- a/src/emu/bus/bml3/bml3mp1805.c +++ b/src/emu/bus/bml3/bml3mp1805.c @@ -23,11 +23,6 @@ const device_type BML3BUS_MP1805 = &device_creator<bml3bus_mp1805_device>; static const floppy_interface bml3_mp1805_floppy_interface = { - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, FLOPPY_STANDARD_3_SSDD, LEGACY_FLOPPY_OPTIONS_NAME(default), NULL diff --git a/src/emu/bus/coco/coco_fdc.c b/src/emu/bus/coco/coco_fdc.c index 305622c5873..190ca2585e4 100644 --- a/src/emu/bus/coco/coco_fdc.c +++ b/src/emu/bus/coco/coco_fdc.c @@ -94,15 +94,9 @@ static const floppy_interface coco_floppy_interface = { - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, FLOPPY_STANDARD_5_25_DSHD, LEGACY_FLOPPY_OPTIONS_NAME(coco), - "floppy_5_25", - NULL + "floppy_5_25" }; diff --git a/src/emu/bus/ieee488/c8050.c b/src/emu/bus/ieee488/c8050.c index 262b70aa693..22cf3eda78f 100644 --- a/src/emu/bus/ieee488/c8050.c +++ b/src/emu/bus/ieee488/c8050.c @@ -684,15 +684,9 @@ LEGACY_FLOPPY_OPTIONS_END static const floppy_interface c8050_floppy_interface = { - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, FLOPPY_STANDARD_5_25_SSDD, LEGACY_FLOPPY_OPTIONS_NAME(c8050), - "floppy_5_25", - NULL + "floppy_5_25" }; @@ -702,15 +696,9 @@ static const floppy_interface c8050_floppy_interface = static const floppy_interface c8250_floppy_interface = { - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, FLOPPY_STANDARD_5_25_DSQD, LEGACY_FLOPPY_OPTIONS_NAME(c8250), - "floppy_5_25", - NULL + "floppy_5_25" }; diff --git a/src/emu/bus/ieee488/hardbox.c b/src/emu/bus/ieee488/hardbox.c index 9564c870b9d..ce6ff83557f 100644 --- a/src/emu/bus/ieee488/hardbox.c +++ b/src/emu/bus/ieee488/hardbox.c @@ -286,10 +286,14 @@ static MACHINE_CONFIG_FRAGMENT( hardbox ) MCFG_I8255_OUT_PORTC_CB(WRITE8(hardbox_device, ppi1_pc_w)) MCFG_DEVICE_ADD(CORVUS_HDC_TAG, CORVUS_HDC, 0) - MCFG_HARDDISK_CONFIG_ADD("harddisk1", corvus_hdc_t::hd_intf) - MCFG_HARDDISK_CONFIG_ADD("harddisk2", corvus_hdc_t::hd_intf) - MCFG_HARDDISK_CONFIG_ADD("harddisk3", corvus_hdc_t::hd_intf) - MCFG_HARDDISK_CONFIG_ADD("harddisk4", corvus_hdc_t::hd_intf) + MCFG_HARDDISK_ADD("harddisk1") + MCFG_HARDDISK_INTERFACE("corvus_hdd") + MCFG_HARDDISK_ADD("harddisk2") + MCFG_HARDDISK_INTERFACE("corvus_hdd") + MCFG_HARDDISK_ADD("harddisk3") + MCFG_HARDDISK_INTERFACE("corvus_hdd") + MCFG_HARDDISK_ADD("harddisk4") + MCFG_HARDDISK_INTERFACE("corvus_hdd") MACHINE_CONFIG_END diff --git a/src/emu/bus/ieee488/softbox.c b/src/emu/bus/ieee488/softbox.c index 2d129e3979e..09c2d30f03a 100644 --- a/src/emu/bus/ieee488/softbox.c +++ b/src/emu/bus/ieee488/softbox.c @@ -264,11 +264,14 @@ static MACHINE_CONFIG_FRAGMENT( softbox ) MCFG_COM8116_FT_HANDLER(DEVWRITELINE(I8251_TAG, i8251_device, write_txc)) MCFG_DEVICE_ADD(CORVUS_HDC_TAG, CORVUS_HDC, 0) - MCFG_HARDDISK_CONFIG_ADD("harddisk1", corvus_hdc_t::hd_intf) - MCFG_HARDDISK_CONFIG_ADD("harddisk2", corvus_hdc_t::hd_intf) - MCFG_HARDDISK_CONFIG_ADD("harddisk3", corvus_hdc_t::hd_intf) - MCFG_HARDDISK_CONFIG_ADD("harddisk4", corvus_hdc_t::hd_intf) - + MCFG_HARDDISK_ADD("harddisk1") + MCFG_HARDDISK_INTERFACE("corvus_hdd") + MCFG_HARDDISK_ADD("harddisk2") + MCFG_HARDDISK_INTERFACE("corvus_hdd") + MCFG_HARDDISK_ADD("harddisk3") + MCFG_HARDDISK_INTERFACE("corvus_hdd") + MCFG_HARDDISK_ADD("harddisk4") + MCFG_HARDDISK_INTERFACE("corvus_hdd") //MCFG_IMI7000_BUS_ADD("imi5000h", NULL, NULL, NULL) MACHINE_CONFIG_END diff --git a/src/emu/bus/pet/c2n.c b/src/emu/bus/pet/c2n.c index ad139e7730d..64b4e40ffed 100644 --- a/src/emu/bus/pet/c2n.c +++ b/src/emu/bus/pet/c2n.c @@ -31,8 +31,7 @@ const cassette_interface cbm_cassette_interface = cbm_cassette_formats, NULL, (cassette_state) (CASSETTE_STOPPED | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_MUTED), - "cbm_cass", - NULL + "cbm_cass" }; diff --git a/src/emu/bus/scsi/scsicd.c b/src/emu/bus/scsi/scsicd.c index 0ae5b97dce6..fb1f1cafbd2 100644 --- a/src/emu/bus/scsi/scsicd.c +++ b/src/emu/bus/scsi/scsicd.c @@ -29,10 +29,9 @@ void scsicd_device::device_start() scsihle_device::device_start(); } -cdrom_interface scsicd_device::cd_intf = { "cdrom", NULL }; - static MACHINE_CONFIG_FRAGMENT(scsi_cdrom) - MCFG_CDROM_ADD("image", scsicd_device::cd_intf) + MCFG_CDROM_ADD("image") + MCFG_CDROM_INTERFACE("cdrom") MCFG_SOUND_ADD("cdda", CDDA, 0) MACHINE_CONFIG_END diff --git a/src/emu/bus/scsi/scsicd.h b/src/emu/bus/scsi/scsicd.h index 67e10df2572..e8de6d4b080 100644 --- a/src/emu/bus/scsi/scsicd.h +++ b/src/emu/bus/scsi/scsicd.h @@ -21,8 +21,6 @@ public: scsicd_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source); virtual machine_config_constructor device_mconfig_additions() const; - static struct cdrom_interface cd_intf; - protected: virtual void device_start(); }; diff --git a/src/emu/bus/scsi/scsihd.c b/src/emu/bus/scsi/scsihd.c index 637dacfcab9..3534146999a 100644 --- a/src/emu/bus/scsi/scsihd.c +++ b/src/emu/bus/scsi/scsihd.c @@ -28,10 +28,9 @@ void scsihd_device::device_start() scsihle_device::device_start(); } -harddisk_interface scsihd_device::hd_intf = { "scsi_hdd", NULL }; - static MACHINE_CONFIG_FRAGMENT(scsi_harddisk) - MCFG_HARDDISK_CONFIG_ADD("image", scsihd_device::hd_intf) + MCFG_HARDDISK_ADD("image") + MCFG_HARDDISK_INTERFACE("scsi_hdd") MACHINE_CONFIG_END machine_config_constructor scsihd_device::device_mconfig_additions() const diff --git a/src/emu/bus/scsi/scsihd.h b/src/emu/bus/scsi/scsihd.h index de64e099c4b..6b6362480a3 100644 --- a/src/emu/bus/scsi/scsihd.h +++ b/src/emu/bus/scsi/scsihd.h @@ -21,8 +21,6 @@ public: scsihd_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source); virtual machine_config_constructor device_mconfig_additions() const; - static struct harddisk_interface hd_intf; - protected: virtual void device_start(); }; diff --git a/src/emu/bus/ti99_peb/peribox.c b/src/emu/bus/ti99_peb/peribox.c index 32434090b19..63f3c93b135 100644 --- a/src/emu/bus/ti99_peb/peribox.c +++ b/src/emu/bus/ti99_peb/peribox.c @@ -225,15 +225,9 @@ CRUCLK* 51||52 DBIN // TODO: Connect other lines (think about how to propagate to the controller) static const floppy_interface ti99_4_floppy_interface = { - DEVCB_DEVICE_LINE_MEMBER( DEVICE_SELF_OWNER, peribox_device, indexhole ), // Index hole (floppy out, line) - DEVCB_NULL, // Motor (floppy in, line) - DEVCB_NULL, // Track 0 (out, line) - DEVCB_NULL, // Write protect (out, line) - DEVCB_NULL, // Ready (out, line) FLOPPY_STANDARD_5_25_DSHD, // type LEGACY_FLOPPY_OPTIONS_NAME(ti99), // image formats - NULL, // interface - NULL // display info + NULL // interface }; peribox_device::peribox_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) @@ -457,7 +451,19 @@ MACHINE_CONFIG_FRAGMENT( peribox_device ) MCFG_PERIBOX_SLOT_ADD( PEBSLOT7, peribox_slot7 ) MCFG_PERIBOX_SLOT_ADD( PEBSLOT8, peribox_slot8 ) - MCFG_LEGACY_FLOPPY_4_DRIVES_ADD(ti99_4_floppy_interface) + MCFG_DEVICE_ADD(FLOPPY_0, LEGACY_FLOPPY, 0) + MCFG_DEVICE_CONFIG(ti99_4_floppy_interface) + MCFG_LEGACY_FLOPPY_IDX_CB(WRITELINE(peribox_device, indexhole)) + MCFG_DEVICE_ADD(FLOPPY_1, LEGACY_FLOPPY, 0) + MCFG_DEVICE_CONFIG(ti99_4_floppy_interface) + MCFG_LEGACY_FLOPPY_IDX_CB(WRITELINE(peribox_device, indexhole)) + MCFG_DEVICE_ADD(FLOPPY_2, LEGACY_FLOPPY, 0) + MCFG_DEVICE_CONFIG(ti99_4_floppy_interface) + MCFG_LEGACY_FLOPPY_IDX_CB(WRITELINE(peribox_device, indexhole)) + MCFG_DEVICE_ADD(FLOPPY_3, LEGACY_FLOPPY, 0) + MCFG_DEVICE_CONFIG(ti99_4_floppy_interface) + MCFG_LEGACY_FLOPPY_IDX_CB(WRITELINE(peribox_device, indexhole)) + MCFG_MFMHD_3_DRIVES_ADD() MACHINE_CONFIG_END @@ -512,7 +518,18 @@ MACHINE_CONFIG_FRAGMENT( peribox_gen_device ) MCFG_PERIBOX_SLOT_ADD( PEBSLOT7, peribox_slot7nobwg ) MCFG_PERIBOX_SLOT_ADD( PEBSLOT8, peribox_slot8nobwg ) - MCFG_LEGACY_FLOPPY_4_DRIVES_ADD(ti99_4_floppy_interface) + MCFG_DEVICE_ADD(FLOPPY_0, LEGACY_FLOPPY, 0) + MCFG_DEVICE_CONFIG(ti99_4_floppy_interface) + MCFG_LEGACY_FLOPPY_IDX_CB(WRITELINE(peribox_device, indexhole)) + MCFG_DEVICE_ADD(FLOPPY_1, LEGACY_FLOPPY, 0) + MCFG_DEVICE_CONFIG(ti99_4_floppy_interface) + MCFG_LEGACY_FLOPPY_IDX_CB(WRITELINE(peribox_device, indexhole)) + MCFG_DEVICE_ADD(FLOPPY_2, LEGACY_FLOPPY, 0) + MCFG_DEVICE_CONFIG(ti99_4_floppy_interface) + MCFG_LEGACY_FLOPPY_IDX_CB(WRITELINE(peribox_device, indexhole)) + MCFG_DEVICE_ADD(FLOPPY_3, LEGACY_FLOPPY, 0) + MCFG_DEVICE_CONFIG(ti99_4_floppy_interface) + MCFG_LEGACY_FLOPPY_IDX_CB(WRITELINE(peribox_device, indexhole)) MCFG_MFMHD_3_DRIVES_ADD() MACHINE_CONFIG_END @@ -554,7 +571,18 @@ MACHINE_CONFIG_FRAGMENT( peribox_998_device ) MCFG_PERIBOX_SLOT_ADD( PEBSLOT7, peribox_slot998 ) MCFG_PERIBOX_SLOT_ADD( PEBSLOT8, peribox_slot8nobwg ) - MCFG_LEGACY_FLOPPY_4_DRIVES_ADD(ti99_4_floppy_interface) + MCFG_DEVICE_ADD(FLOPPY_0, LEGACY_FLOPPY, 0) + MCFG_DEVICE_CONFIG(ti99_4_floppy_interface) + MCFG_LEGACY_FLOPPY_IDX_CB(WRITELINE(peribox_device, indexhole)) + MCFG_DEVICE_ADD(FLOPPY_1, LEGACY_FLOPPY, 0) + MCFG_DEVICE_CONFIG(ti99_4_floppy_interface) + MCFG_LEGACY_FLOPPY_IDX_CB(WRITELINE(peribox_device, indexhole)) + MCFG_DEVICE_ADD(FLOPPY_2, LEGACY_FLOPPY, 0) + MCFG_DEVICE_CONFIG(ti99_4_floppy_interface) + MCFG_LEGACY_FLOPPY_IDX_CB(WRITELINE(peribox_device, indexhole)) + MCFG_DEVICE_ADD(FLOPPY_3, LEGACY_FLOPPY, 0) + MCFG_DEVICE_CONFIG(ti99_4_floppy_interface) + MCFG_LEGACY_FLOPPY_IDX_CB(WRITELINE(peribox_device, indexhole)) MCFG_MFMHD_3_DRIVES_ADD() MACHINE_CONFIG_END @@ -597,7 +625,18 @@ MACHINE_CONFIG_FRAGMENT( peribox_sg_device ) MCFG_PERIBOX_SLOT_ADD( PEBSLOT7, peribox_slot7 ) MCFG_PERIBOX_SLOT_ADD( PEBSLOT8, peribox_slot7 ) - MCFG_LEGACY_FLOPPY_4_DRIVES_ADD(ti99_4_floppy_interface) + MCFG_DEVICE_ADD(FLOPPY_0, LEGACY_FLOPPY, 0) + MCFG_DEVICE_CONFIG(ti99_4_floppy_interface) + MCFG_LEGACY_FLOPPY_IDX_CB(WRITELINE(peribox_device, indexhole)) + MCFG_DEVICE_ADD(FLOPPY_1, LEGACY_FLOPPY, 0) + MCFG_DEVICE_CONFIG(ti99_4_floppy_interface) + MCFG_LEGACY_FLOPPY_IDX_CB(WRITELINE(peribox_device, indexhole)) + MCFG_DEVICE_ADD(FLOPPY_2, LEGACY_FLOPPY, 0) + MCFG_DEVICE_CONFIG(ti99_4_floppy_interface) + MCFG_LEGACY_FLOPPY_IDX_CB(WRITELINE(peribox_device, indexhole)) + MCFG_DEVICE_ADD(FLOPPY_3, LEGACY_FLOPPY, 0) + MCFG_DEVICE_CONFIG(ti99_4_floppy_interface) + MCFG_LEGACY_FLOPPY_IDX_CB(WRITELINE(peribox_device, indexhole)) MCFG_MFMHD_3_DRIVES_ADD() MACHINE_CONFIG_END @@ -627,7 +666,18 @@ MACHINE_CONFIG_FRAGMENT( peribox_ev_device ) MCFG_PERIBOX_SLOT_ADD( PEBSLOT7, peribox_slot7 ) MCFG_PERIBOX_SLOT_ADD( PEBSLOT8, peribox_slot8 ) - MCFG_LEGACY_FLOPPY_4_DRIVES_ADD(ti99_4_floppy_interface) + MCFG_DEVICE_ADD(FLOPPY_0, LEGACY_FLOPPY, 0) + MCFG_DEVICE_CONFIG(ti99_4_floppy_interface) + MCFG_LEGACY_FLOPPY_IDX_CB(WRITELINE(peribox_device, indexhole)) + MCFG_DEVICE_ADD(FLOPPY_1, LEGACY_FLOPPY, 0) + MCFG_DEVICE_CONFIG(ti99_4_floppy_interface) + MCFG_LEGACY_FLOPPY_IDX_CB(WRITELINE(peribox_device, indexhole)) + MCFG_DEVICE_ADD(FLOPPY_2, LEGACY_FLOPPY, 0) + MCFG_DEVICE_CONFIG(ti99_4_floppy_interface) + MCFG_LEGACY_FLOPPY_IDX_CB(WRITELINE(peribox_device, indexhole)) + MCFG_DEVICE_ADD(FLOPPY_3, LEGACY_FLOPPY, 0) + MCFG_DEVICE_CONFIG(ti99_4_floppy_interface) + MCFG_LEGACY_FLOPPY_IDX_CB(WRITELINE(peribox_device, indexhole)) MCFG_MFMHD_3_DRIVES_ADD() MACHINE_CONFIG_END diff --git a/src/emu/diimage.c b/src/emu/diimage.c index b8a31e185db..e1fe0691ca8 100644 --- a/src/emu/diimage.c +++ b/src/emu/diimage.c @@ -1035,9 +1035,6 @@ bool device_image_interface::finish_load() { image_checkhash(); - if (m_from_swlist) - call_display_info(); - if (has_been_created()) { err = call_create(m_create_format, m_create_args); diff --git a/src/emu/diimage.h b/src/emu/diimage.h index f97fa25a5b0..5a35899ba4e 100644 --- a/src/emu/diimage.h +++ b/src/emu/diimage.h @@ -104,7 +104,6 @@ typedef delegate<int (device_image_interface &)> device_image_load_delegate; typedef delegate<void (device_image_interface &)> device_image_func_delegate; // legacy typedef void (*device_image_partialhash_func)(hash_collection &, const unsigned char *, unsigned long, const char *); -typedef void (*device_image_display_info_func)(device_image_interface &image); //************************************************************************** // MACROS @@ -115,9 +114,6 @@ typedef void (*device_image_display_info_func)(device_image_interface &image); #define IMAGE_VERIFY_PASS FALSE #define IMAGE_VERIFY_FAIL TRUE -#define DEVICE_IMAGE_DISPLAY_INFO_NAME(name) device_image_display_info_func##name -#define DEVICE_IMAGE_DISPLAY_INFO(name) void DEVICE_IMAGE_DISPLAY_INFO_NAME(name)(device_image_interface &image) - #define DEVICE_IMAGE_LOAD_MEMBER_NAME(_name) device_image_load_##_name #define DEVICE_IMAGE_LOAD_NAME(_class,_name) _class::DEVICE_IMAGE_LOAD_MEMBER_NAME(_name) #define DECLARE_DEVICE_IMAGE_LOAD_MEMBER(_name) int DEVICE_IMAGE_LOAD_MEMBER_NAME(_name)(device_image_interface &image) @@ -152,7 +148,6 @@ public: virtual bool call_create(int format_type, option_resolution *format_options) { return FALSE; } virtual void call_unload() { } virtual void call_display() { } - virtual void call_display_info() { } virtual device_image_partialhash_func get_partial_hash() const { return NULL; } virtual bool core_opens_image_file() const { return TRUE; } virtual iodevice_t image_type() const = 0; diff --git a/src/emu/imagedev/cartslot.h b/src/emu/imagedev/cartslot.h index 9b524dbda9f..f30e590f45b 100644 --- a/src/emu/imagedev/cartslot.h +++ b/src/emu/imagedev/cartslot.h @@ -35,10 +35,17 @@ public: cartslot_image_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); virtual ~cartslot_image_device(); + static void static_set_device_load(device_t &device, device_image_load_delegate callback) { downcast<cartslot_image_device &>(device).m_device_image_load = callback; } + static void static_set_device_unload(device_t &device, device_image_func_delegate callback) { downcast<cartslot_image_device &>(device).m_device_image_unload = callback; } + static void static_set_partialhash(device_t &device, device_image_partialhash_func callback) { downcast<cartslot_image_device &>(device).m_device_image_partialhash = callback; } + + static void static_set_extensions(device_t &device, const char *_extensions) { downcast<cartslot_image_device &>(device).m_extensions = _extensions; } + static void static_set_interface(device_t &device, const char *_interface) { downcast<cartslot_image_device &>(device).m_interface = _interface; } + static void static_set_must_be_loaded(device_t &device, bool _must_be_loaded) { downcast<cartslot_image_device &>(device).m_must_be_loaded = _must_be_loaded; } + // image-level overrides virtual bool call_load(); virtual void call_unload(); - virtual void call_display_info() { if (!m_device_image_displayinfo.isnull()) m_device_image_displayinfo(*this); } virtual bool call_softlist_load(software_list_device &swlist, const char *swname, const rom_entry *start_entry) { load_software_part_region( *this, swlist, swname, start_entry ); return TRUE; } virtual device_image_partialhash_func get_partial_hash() const { return m_device_image_partialhash; } @@ -53,14 +60,6 @@ public: virtual const char *file_extensions() const { return m_extensions; } virtual const option_guide *create_option_guide() const { return NULL; } - void set_extensions(const char *_extensions) { m_extensions = _extensions; } - void set_interface(const char *_interface) { m_interface = _interface; } - void set_must_be_loaded(bool _must_be_loaded) { m_must_be_loaded = _must_be_loaded; } - void set_device_load(device_image_load_delegate _load) { m_device_image_load = _load; } - void set_device_unload(device_image_func_delegate _unload) { m_device_image_unload = _unload; } - void set_partialhash(device_image_partialhash_func _partialhash) { m_device_image_partialhash = _partialhash; } - void set_displayinfo(device_image_func_delegate _displayinfo) { m_device_image_displayinfo = _displayinfo; } - protected: // device-level overrides virtual void device_config_complete(); @@ -76,7 +75,6 @@ protected: device_image_load_delegate m_device_image_load; device_image_func_delegate m_device_image_unload; device_image_partialhash_func m_device_image_partialhash; - device_image_func_delegate m_device_image_displayinfo; }; // device type definition @@ -90,28 +88,26 @@ extern const device_type CARTSLOT; MCFG_DEVICE_ADD(_tag, CARTSLOT, 0) #define MCFG_CARTSLOT_MODIFY(_tag) \ MCFG_DEVICE_MODIFY(_tag) + #define MCFG_CARTSLOT_EXTENSION_LIST(_extensions) \ - static_cast<cartslot_image_device *>(device)->set_extensions(_extensions); + cartslot_image_device::static_set_extensions(*device, _extensions); #define MCFG_CARTSLOT_INTERFACE(_interface) \ - static_cast<cartslot_image_device *>(device)->set_interface(_interface); + cartslot_image_device::static_set_interface(*device, _interface); #define MCFG_CARTSLOT_NOT_MANDATORY \ - static_cast<cartslot_image_device *>(device)->set_must_be_loaded(FALSE); + cartslot_image_device::static_set_must_be_loaded(*device, FALSE); #define MCFG_CARTSLOT_MANDATORY \ - static_cast<cartslot_image_device *>(device)->set_must_be_loaded(TRUE); + cartslot_image_device::static_set_must_be_loaded(*device, TRUE); -#define MCFG_CARTSLOT_LOAD(_class,_load) \ - static_cast<cartslot_image_device *>(device)->set_device_load( DEVICE_IMAGE_LOAD_DELEGATE(_class,_load)); +#define MCFG_CARTSLOT_LOAD(_class,_method) \ + cartslot_image_device::static_set_device_load(*device, device_image_load_delegate(&DEVICE_IMAGE_LOAD_NAME(_class,_method), #_class "::device_image_load_" #_method, downcast<_class *>(owner))); -#define MCFG_CARTSLOT_UNLOAD(_class,_unload) \ - static_cast<cartslot_image_device *>(device)->set_device_unload( DEVICE_IMAGE_UNLOAD_DELEGATE(_class,_unload)); +#define MCFG_CARTSLOT_UNLOAD(_class,_method) \ + cartslot_image_device::static_set_device_unload(*device, device_image_func_delegate(&DEVICE_IMAGE_UNLOAD_NAME(_class,_method), #_class "::device_image_unload_" #_method, downcast<_class *>(owner))); #define MCFG_CARTSLOT_PARTIALHASH(_partialhash) \ - static_cast<cartslot_image_device *>(device)->set_partialhash(_partialhash); - -#define MCFG_CARTSLOT_DISPLAY_INFO(_class,_displayinfo) \ - static_cast<cartslot_image_device *>(device)->set_displayinfo(&DEVICE_IMAGE_DISPLAY_INFO_NAME(_class,_displayinfo)); + cartslot_image_device::static_set_partialhash(*device, _partialhash); #endif /* __CARTSLOT_H__ */ diff --git a/src/emu/imagedev/cassette.c b/src/emu/imagedev/cassette.c index 73e45cbac9c..f05294ce299 100644 --- a/src/emu/imagedev/cassette.c +++ b/src/emu/imagedev/cassette.c @@ -24,8 +24,7 @@ const cassette_interface default_cassette_interface = cassette_default_formats, NULL, CASSETTE_PLAY, - "cass", - NULL + "cass" }; @@ -71,7 +70,6 @@ void cassette_image_device::device_config_complete() memset(&m_create_opts, 0, sizeof(m_create_opts)); memset(&m_default_state, 0, sizeof(m_default_state)); memset(&m_interface, 0, sizeof(m_interface)); - memset(&m_device_displayinfo, 0, sizeof(m_device_displayinfo)); } m_extension_list[0] = '\0'; diff --git a/src/emu/imagedev/cassette.h b/src/emu/imagedev/cassette.h index 7fd6c2ea4fb..7feb2b3b5ec 100644 --- a/src/emu/imagedev/cassette.h +++ b/src/emu/imagedev/cassette.h @@ -45,7 +45,6 @@ struct cassette_interface const struct CassetteOptions *m_create_opts; cassette_state m_default_state; const char * m_interface; - device_image_display_info_func m_device_displayinfo; }; // ======================> cassette_image_device @@ -64,7 +63,6 @@ public: virtual bool call_create(int format_type, option_resolution *format_options); virtual void call_unload(); virtual void call_display(); - virtual void call_display_info() { if (m_device_displayinfo) m_device_displayinfo(*this); } virtual bool call_softlist_load(software_list_device &swlist, const char *swname, const rom_entry *start_entry) { return load_software(swlist, swname, start_entry); } virtual iodevice_t image_type() const { return IO_CASSETTE; } diff --git a/src/emu/imagedev/chd_cd.c b/src/emu/imagedev/chd_cd.c index 098792a20a2..091502b3d2d 100644 --- a/src/emu/imagedev/chd_cd.c +++ b/src/emu/imagedev/chd_cd.c @@ -26,13 +26,15 @@ const device_type CDROM = &device_creator<cdrom_image_device>; cdrom_image_device::cdrom_image_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : device_t(mconfig, CDROM, "CD-ROM Image", tag, owner, clock, "cdrom_image", __FILE__), - device_image_interface(mconfig, *this) + device_image_interface(mconfig, *this), + m_interface(NULL) { } cdrom_image_device::cdrom_image_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source) : device_t(mconfig, type, name, tag, owner, clock, shortname, source), - device_image_interface(mconfig, *this) + device_image_interface(mconfig, *this), + m_interface(NULL) { } //------------------------------------------------- @@ -51,18 +53,6 @@ cdrom_image_device::~cdrom_image_device() void cdrom_image_device::device_config_complete() { - // inherit a copy of the static data - const cdrom_interface *intf = reinterpret_cast<const cdrom_interface *>(static_config()); - if (intf != NULL) - *static_cast<cdrom_interface *>(this) = *intf; - - // or initialize to defaults if none provided - else - { - memset(&m_interface, 0, sizeof(m_interface)); - memset(&m_device_displayinfo, 0, sizeof(m_device_displayinfo)); - } - m_extension_list = "chd,cue,toc,nrg,gdi,iso,cdr"; m_formatlist.append(*global_alloc(image_device_format("chdcd", "CD-ROM drive", m_extension_list, cd_option_spec))); diff --git a/src/emu/imagedev/chd_cd.h b/src/emu/imagedev/chd_cd.h index 1504a28f13f..49bad527ffb 100644 --- a/src/emu/imagedev/chd_cd.h +++ b/src/emu/imagedev/chd_cd.h @@ -14,19 +14,11 @@ /*************************************************************************** TYPE DEFINITIONS ***************************************************************************/ -// ======================> cdrom_interface - -struct cdrom_interface -{ - const char * m_interface; - device_image_display_info_func m_device_displayinfo; -}; // ======================> cdrom_image_device class cdrom_image_device : public device_t, - public cdrom_interface, - public device_image_interface + public device_image_interface { public: // construction/destruction @@ -34,10 +26,11 @@ public: cdrom_image_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source); virtual ~cdrom_image_device(); + static void static_set_interface(device_t &device, const char *_interface) { downcast<cdrom_image_device &>(device).m_interface = _interface; } + // image-level overrides virtual bool call_load(); virtual void call_unload(); - virtual void call_display_info() { if (m_device_displayinfo) m_device_displayinfo(*this); } virtual bool call_softlist_load(software_list_device &swlist, const char *swname, const rom_entry *start_entry) { load_software_part_region(*this, swlist, swname, start_entry ); return TRUE; } virtual iodevice_t image_type() const { return IO_CDROM; } @@ -62,6 +55,7 @@ protected: chd_file m_self_chd; cdrom_file *m_cdrom_handle; const char *m_extension_list; + const char *m_interface; }; // device type definition @@ -72,7 +66,10 @@ extern const device_type CDROM; ***************************************************************************/ -#define MCFG_CDROM_ADD(_tag, _config) \ - MCFG_DEVICE_ADD(_tag, CDROM, 0) \ - MCFG_DEVICE_CONFIG(_config) +#define MCFG_CDROM_ADD(_tag) \ + MCFG_DEVICE_ADD(_tag, CDROM, 0) + +#define MCFG_CDROM_INTERFACE(_interface) \ + cdrom_image_device::static_set_interface(*device, _interface); + #endif /* CHD_CD_H */ diff --git a/src/emu/imagedev/diablo.c b/src/emu/imagedev/diablo.c index 269b819688d..4fefea270c4 100644 --- a/src/emu/imagedev/diablo.c +++ b/src/emu/imagedev/diablo.c @@ -37,7 +37,8 @@ diablo_image_device::diablo_image_device(const machine_config &mconfig, const ch m_chd(NULL), m_hard_disk_handle(NULL), m_device_image_load(device_image_load_delegate()), - m_device_image_unload(device_image_func_delegate()) + m_device_image_unload(device_image_func_delegate()), + m_interface(NULL) { } @@ -57,18 +58,6 @@ diablo_image_device::~diablo_image_device() void diablo_image_device::device_config_complete() { - // inherit a copy of the static data - const diablo_interface *intf = reinterpret_cast<const diablo_interface *>(static_config()); - if (intf != NULL) - *static_cast<diablo_interface *>(this) = *intf; - - // or initialize to defaults if none provided - else - { - memset(&m_interface, 0, sizeof(m_interface)); - memset(&m_device_displayinfo, 0, sizeof(m_device_displayinfo)); - } - m_formatlist.append(*global_alloc(image_device_format("chd", "CHD Hard drive", "chd,dsk", dsk_option_spec))); // set brief and instance name diff --git a/src/emu/imagedev/diablo.h b/src/emu/imagedev/diablo.h index bf064990452..44601b4f9ec 100644 --- a/src/emu/imagedev/diablo.h +++ b/src/emu/imagedev/diablo.h @@ -17,18 +17,9 @@ TYPE DEFINITIONS ***************************************************************************/ -// ======================> diablo_interface - -struct diablo_interface -{ - const char * m_interface; - device_image_display_info_func m_device_displayinfo; -}; - // ======================> diablo_image_device class diablo_image_device : public device_t, - public diablo_interface, public device_image_interface { public: @@ -36,14 +27,14 @@ public: diablo_image_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); virtual ~diablo_image_device(); - void set_device_load(device_image_load_delegate _load) { m_device_image_load = _load; } - void set_device_unload(device_image_func_delegate _unload) { m_device_image_unload = _unload; } + static void static_set_device_load(device_t &device, device_image_load_delegate callback) { downcast<diablo_image_device &>(device).m_device_image_load = callback; } + static void static_set_device_unload(device_t &device, device_image_func_delegate callback) { downcast<diablo_image_device &>(device).m_device_image_unload = callback; } + static void static_set_interface(device_t &device, const char *_interface) { downcast<diablo_image_device &>(device).m_interface = _interface; } // image-level overrides virtual bool call_load(); virtual bool call_create(int create_format, option_resolution *create_args); virtual void call_unload(); - virtual void call_display_info() { if (m_device_displayinfo) m_device_displayinfo(*this); } virtual bool call_softlist_load(software_list_device &swlist, const char *swname, const rom_entry *start_entry) { load_software_part_region(*this, swlist, swname, start_entry ); return TRUE; } virtual iodevice_t image_type() const { return IO_HARDDISK; } @@ -76,6 +67,7 @@ protected: device_image_load_delegate m_device_image_load; device_image_func_delegate m_device_image_unload; + const char * m_interface; }; // device type definition @@ -91,10 +83,13 @@ extern const device_type DIABLO; MCFG_DEVICE_ADD(_tag, DIABLO, 0) \ MCFG_DEVICE_CONFIG(_config) -#define MCFG_DIABLO_LOAD(_class,_load) \ - static_cast<diablo_image_device *>(device)->set_device_load( DEVICE_IMAGE_LOAD_DELEGATE(_class,_load)); +#define MCFG_DIABLO_LOAD(_class,_method) \ + diablo_image_device::static_set_device_load(*device, device_image_load_delegate(&DEVICE_IMAGE_LOAD_NAME(_class,_method), #_class "::device_image_load_" #_method, downcast<_class *>(owner))); + +#define MCFG_DIABLO_UNLOAD(_class,_method) \ + diablo_image_device::static_set_device_unload(*device, device_image_func_delegate(&DEVICE_IMAGE_UNLOAD_NAME(_class,_method), #_class "::device_image_unload_" #_method, downcast<_class *>(owner))); -#define MCFG_DIABLO_UNLOAD(_class,_unload) \ - static_cast<diablo_image_device *>(device)->set_device_unload( DEVICE_IMAGE_UNLOAD_DELEGATE(_class,_unload)); +#define MCFG_DIABLO_INTERFACE(_interface) \ + diablo_image_device::static_set_interface(*device, _interface); #endif /* _IMAGEDEV_DIABLO_H_ */ diff --git a/src/emu/imagedev/flopdrv.c b/src/emu/imagedev/flopdrv.c index 8bb9aedc535..d3fb79073ee 100644 --- a/src/emu/imagedev/flopdrv.c +++ b/src/emu/imagedev/flopdrv.c @@ -122,7 +122,6 @@ void legacy_floppy_image_device::floppy_drive_init() /* initialise flags */ m_flags = 0; m_index_pulse_callback = NULL; - m_ready_state_change_callback = NULL; m_index_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(legacy_floppy_image_device::floppy_drive_index_callback),this)); m_idx = 0; @@ -194,10 +193,7 @@ void legacy_floppy_image_device::floppy_drive_set_flag_state(int flag, int state if (flag & FLOPPY_DRIVE_READY) { /* trigger state change callback */ - m_out_rdy_func(new_state ? ASSERT_LINE : CLEAR_LINE); - - if (m_ready_state_change_callback) - m_ready_state_change_callback(m_controller, this, new_state); + //m_out_rdy_func(new_state ? ASSERT_LINE : CLEAR_LINE); } } } @@ -270,7 +266,7 @@ void legacy_floppy_image_device::floppy_drive_seek(signed int signed_tracks) /* set track 0 flag */ m_tk00 = (m_current_track == 0) ? CLEAR_LINE : ASSERT_LINE; - m_out_tk00_func(m_tk00); + //m_out_tk00_func(m_tk00); /* clear disk changed flag */ m_dskchg = ASSERT_LINE; @@ -393,11 +389,6 @@ void legacy_floppy_image_device::floppy_drive_set_index_pulse_callback(void (*ca m_index_pulse_callback = callback; } -void legacy_floppy_image_device::floppy_drive_set_ready_state_change_callback(void (*callback)(device_t *controller,device_t *img, int state)) -{ - m_ready_state_change_callback = callback; -} - int legacy_floppy_image_device::floppy_drive_get_current_track() { return m_current_track; @@ -473,7 +464,7 @@ error: TIMER_CALLBACK_MEMBER( legacy_floppy_image_device::set_wpt ) { m_wpt = param; - m_out_wpt_func(param); + //m_out_wpt_func(param); } legacy_floppy_image_device *floppy_get_device(running_machine &machine,int drive) @@ -645,7 +636,7 @@ WRITE_LINE_MEMBER( legacy_floppy_image_device::floppy_stp_w ) } /* update track 0 line with new status */ - m_out_tk00_func(m_tk00); + //m_out_tk00_func(m_tk00); } m_stp = state; @@ -704,6 +695,7 @@ const device_type LEGACY_FLOPPY = &device_creator<legacy_floppy_image_device>; legacy_floppy_image_device::legacy_floppy_image_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : device_t(mconfig, LEGACY_FLOPPY, "Floppy Disk", tag, owner, clock, "legacy_floppy_image", __FILE__), device_image_interface(mconfig, *this), + m_out_idx_func(*this), m_drtn(0), m_stp(0), m_wtg(0), @@ -721,7 +713,6 @@ legacy_floppy_image_device::legacy_floppy_image_device(const machine_config &mco m_current_track(0), m_index_pulse_callback(NULL), m_rpm(0.0f), - m_ready_state_change_callback(NULL), m_id_index(0), m_controller(NULL), m_floppy(NULL), @@ -736,6 +727,7 @@ legacy_floppy_image_device::legacy_floppy_image_device(const machine_config &mco legacy_floppy_image_device::legacy_floppy_image_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source) : device_t(mconfig, type, name, tag, owner, clock, shortname, source), device_image_interface(mconfig, *this), + m_out_idx_func(*this), m_drtn(0), m_stp(0), m_wtg(0), @@ -753,7 +745,6 @@ legacy_floppy_image_device::legacy_floppy_image_device(const machine_config &mco m_current_track(0), m_index_pulse_callback(NULL), m_rpm(0.0f), - m_ready_state_change_callback(NULL), m_id_index(0), m_controller(NULL), m_floppy(NULL), @@ -786,20 +777,20 @@ void legacy_floppy_image_device::device_start() m_active = FALSE; /* resolve callbacks */ - m_out_idx_func.resolve(m_config->out_idx_func, *this); - m_in_mon_func.resolve(m_config->in_mon_func, *this); - m_out_tk00_func.resolve(m_config->out_tk00_func, *this); - m_out_wpt_func.resolve(m_config->out_wpt_func, *this); - m_out_rdy_func.resolve(m_config->out_rdy_func, *this); + m_out_idx_func.resolve_safe(); + //m_in_mon_func.resolve(m_config->in_mon_func, *this); + //m_out_tk00_func.resolve(m_config->out_tk00_func, *this); + //m_out_wpt_func.resolve(m_config->out_wpt_func, *this); + //m_out_rdy_func.resolve(m_config->out_rdy_func, *this); // m_out_dskchg_func.resolve(m_config->out_dskchg_func, *this); /* by default we are not write-protected */ m_wpt = ASSERT_LINE; - m_out_wpt_func(m_wpt); + //m_out_wpt_func(m_wpt); /* not at track 0 */ m_tk00 = ASSERT_LINE; - m_out_tk00_func(m_tk00); + //m_out_tk00_func(m_tk00); /* motor off */ m_mon = ASSERT_LINE; @@ -850,7 +841,7 @@ bool legacy_floppy_image_device::call_load() /* push disk halfway into drive */ m_wpt = CLEAR_LINE; - m_out_wpt_func(m_wpt); + //m_out_wpt_func(m_wpt); /* set timer for disk load */ int next_wpt; @@ -879,19 +870,12 @@ void legacy_floppy_image_device::call_unload() /* pull disk halfway out of drive */ m_wpt = CLEAR_LINE; - m_out_wpt_func(m_wpt); + //m_out_wpt_func(m_wpt); /* set timer for disk eject */ machine().scheduler().timer_set(attotime::from_msec(250), timer_expired_delegate(FUNC(legacy_floppy_image_device::set_wpt),this), ASSERT_LINE); } -void legacy_floppy_image_device::call_display_info() -{ - if (((floppy_interface*)(this)->static_config())->device_displayinfo) { - ((floppy_interface*)(this)->static_config())->device_displayinfo(*this); - } -} - bool legacy_floppy_image_device::is_creatable() const { int cnt = 0; diff --git a/src/emu/imagedev/flopdrv.h b/src/emu/imagedev/flopdrv.h index 94a3520d5bb..2b197573bc4 100644 --- a/src/emu/imagedev/flopdrv.h +++ b/src/emu/imagedev/flopdrv.h @@ -62,17 +62,9 @@ struct floppy_type_t struct floppy_interface { - devcb_write_line out_idx_func; /* index */ - devcb_read_line in_mon_func; /* motor on */ - devcb_write_line out_tk00_func; /* track 00 */ - devcb_write_line out_wpt_func; /* write protect */ - devcb_write_line out_rdy_func; /* ready */ -// devcb_write_line out_dskchg_func; /* disk changed */ - floppy_type_t floppy_type; const struct FloppyFormat *formats; const char *interface; - device_image_display_info_func device_displayinfo; }; struct chrn_id @@ -90,6 +82,8 @@ struct chrn_id /* set if index has just occurred */ #define FLOPPY_DRIVE_INDEX 0x0020 +#define MCFG_LEGACY_FLOPPY_IDX_CB(_devcb) \ + devcb = &legacy_floppy_image_device::set_out_idx_func(*device, DEVCB2_##_devcb); class legacy_floppy_image_device : public device_t, public device_image_interface @@ -100,11 +94,12 @@ public: legacy_floppy_image_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source); ~legacy_floppy_image_device(); + template<class _Object> static devcb2_base &set_out_idx_func(device_t &device, _Object object) { return downcast<legacy_floppy_image_device &>(device).m_out_idx_func.set_callback(object); } + virtual bool call_load(); virtual bool call_softlist_load(software_list_device &swlist, const char *swname, const rom_entry *start_entry) { return load_software(swlist, swname, start_entry); } virtual bool call_create(int format_type, option_resolution *format_options); virtual void call_unload(); - virtual void call_display_info(); virtual iodevice_t image_type() const { return IO_FLOPPY; } @@ -132,7 +127,6 @@ public: void floppy_install_load_proc(void (*proc)(device_image_interface &image)); void floppy_install_unload_proc(void (*proc)(device_image_interface &image)); void floppy_drive_set_index_pulse_callback(void (*callback)(device_t *controller,device_t *image, int state)); - void floppy_drive_set_ready_state_change_callback(void (*callback)(device_t *controller,device_t *img, int state)); int floppy_drive_get_current_track(); UINT64 floppy_drive_get_current_track_size(int head); void floppy_drive_set_rpm(float rpm); @@ -175,12 +169,7 @@ protected: virtual void device_start(); /* callbacks */ - devcb_resolved_write_line m_out_idx_func; - devcb_resolved_read_line m_in_mon_func; - devcb_resolved_write_line m_out_tk00_func; - devcb_resolved_write_line m_out_wpt_func; - devcb_resolved_write_line m_out_rdy_func; - devcb_resolved_write_line m_out_dskchg_func; + devcb2_write_line m_out_idx_func; /* state of input lines */ int m_drtn; /* direction */ @@ -218,8 +207,6 @@ protected: /* rotation per minute => gives index pulse frequency */ float m_rpm; - void (*m_ready_state_change_callback)(device_t *controller,device_t *img, int state); - int m_id_index; device_t *m_controller; diff --git a/src/emu/imagedev/floppy.h b/src/emu/imagedev/floppy.h index 51d007a1cb3..a82a4feccf0 100644 --- a/src/emu/imagedev/floppy.h +++ b/src/emu/imagedev/floppy.h @@ -70,7 +70,6 @@ public: virtual bool call_load(); virtual void call_unload(); virtual bool call_create(int format_type, option_resolution *format_options); - virtual void call_display_info() {} virtual bool call_softlist_load(software_list_device &swlist, const char *swname, const rom_entry *start_entry) { return load_software(swlist, swname, start_entry); } virtual const char *image_interface() const = 0; virtual iodevice_t image_type() const { return IO_FLOPPY; } diff --git a/src/emu/imagedev/harddriv.c b/src/emu/imagedev/harddriv.c index 03639711520..39df8d250a4 100644 --- a/src/emu/imagedev/harddriv.c +++ b/src/emu/imagedev/harddriv.c @@ -42,7 +42,8 @@ harddisk_image_device::harddisk_image_device(const machine_config &mconfig, cons m_chd(NULL), m_hard_disk_handle(NULL), m_device_image_load(device_image_load_delegate()), - m_device_image_unload(device_image_func_delegate()) + m_device_image_unload(device_image_func_delegate()), + m_interface(NULL) { } @@ -62,18 +63,6 @@ harddisk_image_device::~harddisk_image_device() void harddisk_image_device::device_config_complete() { - // inherit a copy of the static data - const harddisk_interface *intf = reinterpret_cast<const harddisk_interface *>(static_config()); - if (intf != NULL) - *static_cast<harddisk_interface *>(this) = *intf; - - // or initialize to defaults if none provided - else - { - memset(&m_interface, 0, sizeof(m_interface)); - memset(&m_device_displayinfo, 0, sizeof(m_device_displayinfo)); - } - m_formatlist.append(*global_alloc(image_device_format("chd", "CHD Hard drive", "chd,hd", hd_option_spec))); // set brief and instance name diff --git a/src/emu/imagedev/harddriv.h b/src/emu/imagedev/harddriv.h index 33f019a8460..f808dc7e3ea 100644 --- a/src/emu/imagedev/harddriv.h +++ b/src/emu/imagedev/harddriv.h @@ -15,18 +15,9 @@ TYPE DEFINITIONS ***************************************************************************/ -// ======================> harddisk_interface - -struct harddisk_interface -{ - const char * m_interface; - device_image_display_info_func m_device_displayinfo; -}; - // ======================> harddisk_image_device class harddisk_image_device : public device_t, - public harddisk_interface, public device_image_interface { public: @@ -34,14 +25,14 @@ public: harddisk_image_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); virtual ~harddisk_image_device(); - void set_device_load(device_image_load_delegate _load) { m_device_image_load = _load; } - void set_device_unload(device_image_func_delegate _unload) { m_device_image_unload = _unload; } + static void static_set_device_load(device_t &device, device_image_load_delegate callback) { downcast<harddisk_image_device &>(device).m_device_image_load = callback; } + static void static_set_device_unload(device_t &device, device_image_func_delegate callback) { downcast<harddisk_image_device &>(device).m_device_image_unload = callback; } + static void static_set_interface(device_t &device, const char *_interface) { downcast<harddisk_image_device &>(device).m_interface = _interface; } // image-level overrides virtual bool call_load(); virtual bool call_create(int create_format, option_resolution *create_args); virtual void call_unload(); - virtual void call_display_info() { if (m_device_displayinfo) m_device_displayinfo(*this); } virtual bool call_softlist_load(software_list_device &swlist, const char *swname, const rom_entry *start_entry) { load_software_part_region(*this, swlist, swname, start_entry ); return TRUE; } virtual iodevice_t image_type() const { return IO_HARDDISK; } @@ -74,6 +65,7 @@ protected: device_image_load_delegate m_device_image_load; device_image_func_delegate m_device_image_unload; + const char * m_interface; }; // device type definition @@ -85,14 +77,14 @@ extern const device_type HARDDISK; #define MCFG_HARDDISK_ADD(_tag) \ MCFG_DEVICE_ADD(_tag, HARDDISK, 0) -#define MCFG_HARDDISK_CONFIG_ADD(_tag,_config) \ - MCFG_DEVICE_ADD(_tag, HARDDISK, 0) \ - MCFG_DEVICE_CONFIG(_config) -#define MCFG_HARDDISK_LOAD(_class,_load) \ - static_cast<harddisk_image_device *>(device)->set_device_load( DEVICE_IMAGE_LOAD_DELEGATE(_class,_load)); +#define MCFG_HARDDISK_LOAD(_class,_method) \ + harddisk_image_device::static_set_device_load(*device, device_image_load_delegate(&DEVICE_IMAGE_LOAD_NAME(_class,_method), #_class "::device_image_load_" #_method, downcast<_class *>(owner))); + +#define MCFG_HARDDISK_UNLOAD(_class,_method) \ + harddisk_image_device::static_set_device_unload(*device, device_image_func_delegate(&DEVICE_IMAGE_UNLOAD_NAME(_class,_method), #_class "::device_image_unload_" #_method, downcast<_class *>(owner))); -#define MCFG_HARDDISK_UNLOAD(_class,_unload) \ - static_cast<harddisk_image_device *>(device)->set_device_unload( DEVICE_IMAGE_UNLOAD_DELEGATE(_class,_unload)); +#define MCFG_HARDDISK_INTERFACE(_interface) \ + harddisk_image_device::static_set_interface(*device, _interface); #endif /* HARDDRIV_H */ diff --git a/src/emu/imagedev/snapquik.h b/src/emu/imagedev/snapquik.h index 11bc025d3c9..fcee39909b1 100644 --- a/src/emu/imagedev/snapquik.h +++ b/src/emu/imagedev/snapquik.h @@ -21,6 +21,8 @@ public: snapshot_image_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source); virtual ~snapshot_image_device(); + static void static_set_interface(device_t &device, const char *_interface) { downcast<snapshot_image_device &>(device).m_interface = _interface; } + // image-level overrides virtual bool call_load(); virtual bool call_softlist_load(software_list_device &swlist, const char *swname, const rom_entry *start_entry) { return load_software(swlist, swname, start_entry); } @@ -37,7 +39,6 @@ public: TIMER_CALLBACK_MEMBER(process_snapshot_or_quickload); void set_handler(snapquick_load_delegate load, const char *ext, seconds_t sec) { m_load = load; m_file_extensions = ext; m_delay_seconds = sec; }; - void set_interface(const char *_interface) { m_interface = _interface; } protected: // device-level overrides virtual void device_config_complete(); @@ -88,13 +89,13 @@ extern const device_type QUICKLOAD; static_cast<snapshot_image_device *>(device)->set_handler(SNAPSHOT_LOAD_DELEGATE(_class,_load), _file_extensions, _delay); #define MCFG_SNAPSHOT_INTERFACE(_interface) \ - static_cast<snapshot_image_device *>(device)->set_interface(_interface); + snapshot_image_device::static_set_interface(*device, _interface); #define MCFG_QUICKLOAD_ADD(_tag, _class, _load, _file_extensions, _delay) \ MCFG_DEVICE_ADD(_tag, QUICKLOAD, 0) \ static_cast<quickload_image_device *>(device)->set_handler(QUICKLOAD_LOAD_DELEGATE(_class,_load), _file_extensions, _delay); #define MCFG_QUICKLOAD_INTERFACE(_interface) \ - static_cast<quickload_image_device *>(device)->set_interface(_interface); + quickload_image_device::static_set_interface(*device, _interface); #endif /* __SNAPQUIK_H__ */ diff --git a/src/emu/machine/atapicdr.c b/src/emu/machine/atapicdr.c index 2ac2728f827..21dc7b99f9a 100644 --- a/src/emu/machine/atapicdr.c +++ b/src/emu/machine/atapicdr.c @@ -15,10 +15,9 @@ atapi_cdrom_device::atapi_cdrom_device(const machine_config &mconfig, device_typ { } -cdrom_interface atapi_cdrom_device::cd_intf = { "cdrom", NULL }; - static MACHINE_CONFIG_FRAGMENT( atapicdr ) - MCFG_CDROM_ADD("image", atapi_cdrom_device::cd_intf) + MCFG_CDROM_ADD("image") + MCFG_CDROM_INTERFACE("cdrom") MCFG_SOUND_ADD("cdda", CDDA, 0) MACHINE_CONFIG_END diff --git a/src/emu/machine/atapicdr.h b/src/emu/machine/atapicdr.h index c5c6817a839..e589279e719 100644 --- a/src/emu/machine/atapicdr.h +++ b/src/emu/machine/atapicdr.h @@ -26,8 +26,6 @@ public: atapi_cdrom_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); atapi_cdrom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock,const char *shortname, const char *source); - static struct cdrom_interface cd_intf; - protected: // device-level overrides virtual void device_start(); diff --git a/src/emu/machine/corvushd.c b/src/emu/machine/corvushd.c index 9884d963e20..9242e727b7b 100644 --- a/src/emu/machine/corvushd.c +++ b/src/emu/machine/corvushd.c @@ -70,8 +70,6 @@ const device_type CORVUS_HDC = &device_creator<corvus_hdc_t>; -harddisk_interface corvus_hdc_t::hd_intf = { "corvus_hdd", NULL }; - corvus_hdc_t::corvus_hdc_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : device_t(mconfig, CORVUS_HDC, "Corvus Flat Cable HDC", tag, owner, clock, "corvus_hdc", __FILE__), m_status(0), diff --git a/src/emu/machine/corvushd.h b/src/emu/machine/corvushd.h index 7cdffa25a1d..09e3fcaf25c 100644 --- a/src/emu/machine/corvushd.h +++ b/src/emu/machine/corvushd.h @@ -186,8 +186,6 @@ public: DECLARE_WRITE8_MEMBER( write ); DECLARE_READ8_MEMBER( status_r ); - static struct harddisk_interface hd_intf; - protected: // device-level overrides virtual void device_start(); diff --git a/src/emu/machine/nscsi_cd.c b/src/emu/machine/nscsi_cd.c index 5ba6cd6115a..b832f54e47f 100644 --- a/src/emu/machine/nscsi_cd.c +++ b/src/emu/machine/nscsi_cd.c @@ -28,10 +28,9 @@ void nscsi_cdrom_device::device_reset() cur_lba = -1; } -cdrom_interface nscsi_cdrom_device::cd_intf = { "cdrom", NULL }; - static MACHINE_CONFIG_FRAGMENT(scsi_cdrom) - MCFG_CDROM_ADD("image", nscsi_cdrom_device::cd_intf) + MCFG_CDROM_ADD("image") + MCFG_CDROM_INTERFACE("cdrom") MACHINE_CONFIG_END machine_config_constructor nscsi_cdrom_device::device_mconfig_additions() const diff --git a/src/emu/machine/nscsi_cd.h b/src/emu/machine/nscsi_cd.h index 967d2597232..10855f86c5b 100644 --- a/src/emu/machine/nscsi_cd.h +++ b/src/emu/machine/nscsi_cd.h @@ -10,8 +10,6 @@ public: nscsi_cdrom_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); virtual machine_config_constructor device_mconfig_additions() const; - static struct cdrom_interface cd_intf; - protected: virtual void device_start(); virtual void device_reset(); diff --git a/src/emu/machine/nscsi_hd.c b/src/emu/machine/nscsi_hd.c index 2eeed489992..10ae415f42e 100644 --- a/src/emu/machine/nscsi_hd.c +++ b/src/emu/machine/nscsi_hd.c @@ -38,10 +38,9 @@ void nscsi_harddisk_device::device_reset() cur_lba = -1; } -harddisk_interface nscsi_harddisk_device::hd_intf = { "scsi_hdd", NULL }; - static MACHINE_CONFIG_FRAGMENT(scsi_harddisk) - MCFG_HARDDISK_CONFIG_ADD("image", nscsi_harddisk_device::hd_intf) + MCFG_HARDDISK_ADD("image") + MCFG_HARDDISK_INTERFACE("scsi_hdd") MACHINE_CONFIG_END machine_config_constructor nscsi_harddisk_device::device_mconfig_additions() const diff --git a/src/emu/machine/nscsi_hd.h b/src/emu/machine/nscsi_hd.h index effe912dc79..84b98ab5dc7 100644 --- a/src/emu/machine/nscsi_hd.h +++ b/src/emu/machine/nscsi_hd.h @@ -12,8 +12,6 @@ public: virtual machine_config_constructor device_mconfig_additions() const; - static struct harddisk_interface hd_intf; - protected: virtual void device_start(); virtual void device_reset(); diff --git a/src/mame/drivers/3do.c b/src/mame/drivers/3do.c index de0d186cb4a..8628aa86ea6 100644 --- a/src/mame/drivers/3do.c +++ b/src/mame/drivers/3do.c @@ -152,13 +152,6 @@ void _3do_state::machine_reset() m_clio.cstatbits = 0x01; /* bit 0 = reset of clio caused by power on */ } -struct cdrom_interface _3do_cdrom = -{ - NULL, - NULL -}; - - static MACHINE_CONFIG_START( 3do, _3do_state ) /* Basic machine hardware */ @@ -175,7 +168,7 @@ static MACHINE_CONFIG_START( 3do, _3do_state ) MCFG_SCREEN_RAW_PARAMS( X2_CLOCK_NTSC / 2, 1592, 254, 1534, 263, 22, 262 ) MCFG_SCREEN_UPDATE_DRIVER(_3do_state, screen_update__3do) - MCFG_CDROM_ADD( "cdrom", _3do_cdrom) + MCFG_CDROM_ADD("cdrom") MACHINE_CONFIG_END @@ -193,7 +186,7 @@ static MACHINE_CONFIG_START( 3do_pal, _3do_state ) MCFG_SCREEN_RAW_PARAMS( X2_CLOCK_PAL / 2, 1592, 254, 1534, 263, 22, 262 ) // TODO: proper params MCFG_SCREEN_UPDATE_DRIVER(_3do_state, screen_update__3do) - MCFG_CDROM_ADD( "cdrom", _3do_cdrom) + MCFG_CDROM_ADD("cdrom") MACHINE_CONFIG_END #if 0 diff --git a/src/mame/drivers/cd32.c b/src/mame/drivers/cd32.c index 4cee7e3516c..4bb0fc1abe1 100644 --- a/src/mame/drivers/cd32.c +++ b/src/mame/drivers/cd32.c @@ -795,14 +795,10 @@ static MACHINE_CONFIG_START( cd32base, cd32_state ) MCFG_AMIGA_FDC_INDEX_CALLBACK(DEVWRITELINE("cia_1", legacy_mos6526_device, flag_w)) MACHINE_CONFIG_END -struct cdrom_interface cd32_cdrom = -{ - "cd32_cdrom", - NULL -}; static MACHINE_CONFIG_DERIVED( cd32, cd32base ) - MCFG_CDROM_ADD( "cdrom", cd32_cdrom ) + MCFG_CDROM_ADD( "cdrom" ) + MCFG_CDROM_INTERFACE("cd32_cdrom") MCFG_SOFTWARE_LIST_ADD("cd_list","cd32") MACHINE_CONFIG_END diff --git a/src/mame/drivers/cdi.c b/src/mame/drivers/cdi.c index 38fe4741c39..44c7a6d53f7 100644 --- a/src/mame/drivers/cdi.c +++ b/src/mame/drivers/cdi.c @@ -303,19 +303,6 @@ MACHINE_RESET_MEMBER(cdi_state,quizrr42) m_scc->set_quizard_mcu_ack(0x57); } -static DEVICE_IMAGE_DISPLAY_INFO(cdi_cdinfo) -{ - const char *compatibility = image.get_feature("compatibility"); - if (compatibility) - { - if (!core_stricmp(compatibility, "DVC")) - { - osd_printf_warning("This software requires the Digital Video Cartridge to work.\n"); - osd_printf_warning("Therefore, it might not work in MESS at present.\n"); - } - } -} - /************************* * Machine Drivers * *************************/ @@ -366,20 +353,16 @@ static MACHINE_CONFIG_START( cdi, cdi_state ) MCFG_MK48T08_ADD( "mk48t08" ) MACHINE_CONFIG_END -struct cdrom_interface cdi_cdrom = -{ - "cdi_cdrom", - DEVICE_IMAGE_DISPLAY_INFO_NAME(cdi_cdinfo) -}; - // Standard CD-i system, with CD-ROM image device (MESS) and Software List (MESS) static MACHINE_CONFIG_DERIVED( cdi_base, cdi ) MCFG_MACHINE_RESET_OVERRIDE(cdi_state, cdi ) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( cdimono1, cdi_base ) - MCFG_CDROM_ADD( "cdrom", cdi_cdrom ) + MCFG_CDROM_ADD( "cdrom" ) + MCFG_CDROM_INTERFACE("cdi_cdrom") MCFG_SOFTWARE_LIST_ADD("cd_list","cdi") + MCFG_SOFTWARE_LIST_FILTER("cd_list","!DVC") MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( quizard, cdi_base ) diff --git a/src/mame/drivers/jaguar.c b/src/mame/drivers/jaguar.c index 89c8452cc36..939d719c987 100644 --- a/src/mame/drivers/jaguar.c +++ b/src/mame/drivers/jaguar.c @@ -1891,12 +1891,6 @@ static MACHINE_CONFIG_START( jaguar, jaguar_state ) MCFG_EEPROM_SERIAL_93C46_ADD("eeprom") MACHINE_CONFIG_END -struct cdrom_interface jagcd_cdrom = -{ - "jag_cdrom", - NULL -}; - static MACHINE_CONFIG_DERIVED( jaguarcd, jaguar ) MCFG_CPU_MODIFY("maincpu") MCFG_CPU_PROGRAM_MAP(jaguarcd_map) @@ -1909,7 +1903,8 @@ static MACHINE_CONFIG_DERIVED( jaguarcd, jaguar ) MCFG_JAGUAR_IRQ_HANDLER(WRITELINE(jaguar_state, dsp_cpu_int)) MCFG_CPU_PROGRAM_MAP(jagcd_dsp_map) - MCFG_CDROM_ADD( "cdrom",jagcd_cdrom ) + MCFG_CDROM_ADD("cdrom") + MCFG_CDROM_INTERFACE("jag_cdrom") MACHINE_CONFIG_END /************************************* diff --git a/src/mess/drivers/a2600.c b/src/mess/drivers/a2600.c index 7d55a3093fb..03f87dfa097 100644 --- a/src/mess/drivers/a2600.c +++ b/src/mess/drivers/a2600.c @@ -1900,8 +1900,7 @@ static const cassette_interface a2600_cassette_interface = a26_cassette_formats, NULL, (cassette_state)(CASSETTE_PLAY | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_ENABLED), - "a2600_cass", - NULL + "a2600_cass" }; static MACHINE_CONFIG_FRAGMENT(a2600_cartslot) diff --git a/src/mess/drivers/abc80.c b/src/mess/drivers/abc80.c index 0722e79f36c..372ae5845cd 100644 --- a/src/mess/drivers/abc80.c +++ b/src/mess/drivers/abc80.c @@ -407,7 +407,6 @@ static const cassette_interface abc80_cassette_interface = cassette_default_formats, NULL, (cassette_state)(CASSETTE_STOPPED | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_MUTED), - NULL, NULL }; diff --git a/src/mess/drivers/abc80x.c b/src/mess/drivers/abc80x.c index a68826e5b3c..02fe2cc41ac 100644 --- a/src/mess/drivers/abc80x.c +++ b/src/mess/drivers/abc80x.c @@ -773,7 +773,6 @@ static const cassette_interface cass_intf = cassette_default_formats, NULL, (cassette_state)(CASSETTE_STOPPED | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_MUTED), - NULL, NULL }; diff --git a/src/mess/drivers/ace.c b/src/mess/drivers/ace.c index d0647578e2d..dd4dbf90c04 100644 --- a/src/mess/drivers/ace.c +++ b/src/mess/drivers/ace.c @@ -539,7 +539,6 @@ static const cassette_interface ace_cassette_interface = ace_cassette_formats, NULL, (cassette_state)(CASSETTE_STOPPED), - NULL, NULL }; diff --git a/src/mess/drivers/aim65.c b/src/mess/drivers/aim65.c index b44750d18f4..5bc534029a3 100644 --- a/src/mess/drivers/aim65.c +++ b/src/mess/drivers/aim65.c @@ -151,7 +151,6 @@ static const cassette_interface aim65_1_cassette_interface = cassette_default_formats, NULL, (cassette_state)(CASSETTE_PLAY | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_ENABLED), - NULL, NULL }; @@ -161,7 +160,6 @@ static const cassette_interface aim65_2_cassette_interface = cassette_default_formats, NULL, (cassette_state)(CASSETTE_RECORD | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_MUTED), - NULL, NULL }; diff --git a/src/mess/drivers/alesis.c b/src/mess/drivers/alesis.c index eefa0527c7d..d37282c0893 100644 --- a/src/mess/drivers/alesis.c +++ b/src/mess/drivers/alesis.c @@ -248,8 +248,7 @@ static const cassette_interface hr16_cassette_interface = cassette_default_formats, NULL, (cassette_state)(CASSETTE_STOPPED), - "hr16_cass", - NULL + "hr16_cass" }; static MACHINE_CONFIG_START( hr16, alesis_state ) diff --git a/src/mess/drivers/alphatro.c b/src/mess/drivers/alphatro.c index 626632b52f1..efdd73a487d 100644 --- a/src/mess/drivers/alphatro.c +++ b/src/mess/drivers/alphatro.c @@ -449,8 +449,7 @@ static const cassette_interface alphatro_cassette_interface = cassette_default_formats, NULL, (cassette_state) (CASSETTE_PLAY | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED), - "alphatro_cass", - NULL + "alphatro_cass" }; static MACHINE_CONFIG_START( alphatro, alphatro_state ) diff --git a/src/mess/drivers/amiga.c b/src/mess/drivers/amiga.c index e6099da8a6b..72a00a2f8cc 100644 --- a/src/mess/drivers/amiga.c +++ b/src/mess/drivers/amiga.c @@ -639,12 +639,6 @@ static MACHINE_CONFIG_DERIVED( a500ntsc, ntsc ) MCFG_SOFTWARE_LIST_ADD("flop_ecs","amigaecs_flop") MACHINE_CONFIG_END -struct cdrom_interface cdtv_cdrom = -{ - "cdrom", - NULL -}; - static MACHINE_CONFIG_DERIVED_CLASS( cdtv, ntsc, cdtv_state) MCFG_CPU_REPLACE("maincpu", M68000, CDTV_CLOCK_X1 / 4) MCFG_CPU_PROGRAM_MAP(cdtv_mem) @@ -668,7 +662,9 @@ static MACHINE_CONFIG_DERIVED_CLASS( cdtv, ntsc, cdtv_state) MCFG_SOUND_ROUTE( 1, "rspeaker", 1.0 ) /* cdrom */ - MCFG_CDROM_ADD( "cdrom", cdtv_cdrom) + MCFG_CDROM_ADD( "cdrom") + MCFG_CDROM_INTERFACE("cdrom") + MCFG_SOFTWARE_LIST_ADD("cd_list", "cdtv") MCFG_DEVICE_ADD("tpi6525", TPI6525, 0) diff --git a/src/mess/drivers/amstrad.c b/src/mess/drivers/amstrad.c index 2bb009279f4..5d644e5ae7a 100644 --- a/src/mess/drivers/amstrad.c +++ b/src/mess/drivers/amstrad.c @@ -808,8 +808,7 @@ static const cassette_interface amstrad_cassette_interface = cdt_cassette_formats, NULL, (cassette_state) (CASSETTE_STOPPED | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_ENABLED), - "cpc_cass", - NULL + "cpc_cass" }; static SLOT_INTERFACE_START( amstrad_floppies ) diff --git a/src/mess/drivers/apf.c b/src/mess/drivers/apf.c index 08c1d9eb31a..f6e8458d4bc 100644 --- a/src/mess/drivers/apf.c +++ b/src/mess/drivers/apf.c @@ -483,7 +483,6 @@ static const cassette_interface apf_cassette_interface = apf_cassette_formats, NULL, (cassette_state)(CASSETTE_PLAY), - NULL, NULL }; @@ -498,14 +497,8 @@ LEGACY_FLOPPY_OPTIONS_END static const floppy_interface apfimag_floppy_interface = { - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, FLOPPY_STANDARD_5_25_SSDD_40, LEGACY_FLOPPY_OPTIONS_NAME(apfimag), - NULL, NULL }; diff --git a/src/mess/drivers/apogee.c b/src/mess/drivers/apogee.c index 4905c9c4c51..fbf599a51df 100644 --- a/src/mess/drivers/apogee.c +++ b/src/mess/drivers/apogee.c @@ -147,8 +147,7 @@ static const cassette_interface apogee_cassette_interface = rka_cassette_formats, NULL, (cassette_state)(CASSETTE_STOPPED | CASSETTE_SPEAKER_ENABLED | CASSETTE_MOTOR_ENABLED), - "apogee_cass", - NULL + "apogee_cass" }; static const INT16 speaker_levels[] = {-32767, -10922, 10922, 32767}; diff --git a/src/mess/drivers/apple2.c b/src/mess/drivers/apple2.c index 25ca070cf63..5ca2da586dc 100644 --- a/src/mess/drivers/apple2.c +++ b/src/mess/drivers/apple2.c @@ -944,7 +944,6 @@ static const cassette_interface apple2_cassette_interface = cassette_default_formats, NULL, (cassette_state)(CASSETTE_STOPPED), - NULL, NULL }; diff --git a/src/mess/drivers/apple2gs.c b/src/mess/drivers/apple2gs.c index 0209da08829..6bdf0c6fdde 100644 --- a/src/mess/drivers/apple2gs.c +++ b/src/mess/drivers/apple2gs.c @@ -163,28 +163,16 @@ READ8_MEMBER(apple2gs_state::apple2gs_adc_read) static const floppy_interface apple2gs_floppy35_floppy_interface = { - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, FLOPPY_STANDARD_5_25_DSHD, LEGACY_FLOPPY_OPTIONS_NAME(apple35_iigs), - "floppy_3_5", - NULL + "floppy_3_5" }; static const floppy_interface apple2gs_floppy525_floppy_interface = { - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, FLOPPY_STANDARD_5_25_DSHD, LEGACY_FLOPPY_OPTIONS_NAME(apple2), - "floppy_5_25", - NULL + "floppy_5_25" }; diff --git a/src/mess/drivers/apple3.c b/src/mess/drivers/apple3.c index cf1f48eb348..7abd270d7f8 100644 --- a/src/mess/drivers/apple3.c +++ b/src/mess/drivers/apple3.c @@ -31,14 +31,8 @@ ADDRESS_MAP_END static const floppy_interface apple3_floppy_interface = { - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, FLOPPY_STANDARD_5_25_DSHD, LEGACY_FLOPPY_OPTIONS_NAME(apple2), - NULL, NULL }; diff --git a/src/mess/drivers/applix.c b/src/mess/drivers/applix.c index 0af94b4d305..50cd77fec1c 100644 --- a/src/mess/drivers/applix.c +++ b/src/mess/drivers/applix.c @@ -836,7 +836,6 @@ static const cassette_interface applix_cassette_interface = cassette_default_formats, NULL, (cassette_state)(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_MUTED), - NULL, NULL }; diff --git a/src/mess/drivers/aquarius.c b/src/mess/drivers/aquarius.c index efeb107475a..e1c979290d1 100644 --- a/src/mess/drivers/aquarius.c +++ b/src/mess/drivers/aquarius.c @@ -352,7 +352,6 @@ static const cassette_interface aquarius_cassette_interface = cassette_default_formats, NULL, (cassette_state)(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_MUTED), - NULL, NULL }; diff --git a/src/mess/drivers/asst128.c b/src/mess/drivers/asst128.c index d3f343e4266..ad5eb5719e0 100644 --- a/src/mess/drivers/asst128.c +++ b/src/mess/drivers/asst128.c @@ -95,7 +95,6 @@ static const cassette_interface asst128_cassette_interface = cassette_default_formats, NULL, (cassette_state)(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED), - NULL, NULL }; diff --git a/src/mess/drivers/atom.c b/src/mess/drivers/atom.c index 5f99daaa38b..dee31105a5e 100644 --- a/src/mess/drivers/atom.c +++ b/src/mess/drivers/atom.c @@ -597,15 +597,9 @@ LEGACY_FLOPPY_OPTIONS_END static const floppy_interface atom_floppy_interface = { - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, FLOPPY_STANDARD_5_25_SSDD_40, LEGACY_FLOPPY_OPTIONS_NAME(atom), - "floppy_5_25", - NULL + "floppy_5_25" }; /*------------------------------------------------- @@ -626,7 +620,6 @@ static const cassette_interface atom_cassette_interface = atom_cassette_formats, NULL, (cassette_state) (CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_MUTED), - NULL, NULL }; diff --git a/src/mess/drivers/ax20.c b/src/mess/drivers/ax20.c index 5928552f533..b2328c9406b 100644 --- a/src/mess/drivers/ax20.c +++ b/src/mess/drivers/ax20.c @@ -96,14 +96,8 @@ GFXDECODE_END static const floppy_interface ax20_floppy_interface = { - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, FLOPPY_STANDARD_5_25_DSDD_40, // TODO LEGACY_FLOPPY_OPTIONS_NAME(default), - NULL, NULL }; diff --git a/src/mess/drivers/bbc.c b/src/mess/drivers/bbc.c index 10d83389261..3fc41547808 100644 --- a/src/mess/drivers/bbc.c +++ b/src/mess/drivers/bbc.c @@ -583,8 +583,7 @@ static const cassette_interface bbc_cassette_interface = bbc_cassette_formats, NULL, (cassette_state)(CASSETTE_PLAY), - "bbc_cass", - NULL + "bbc_cass" }; @@ -612,15 +611,9 @@ LEGACY_FLOPPY_OPTIONS_END static const floppy_interface bbc_floppy_interface = { - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, FLOPPY_STANDARD_5_25_DSDD, LEGACY_FLOPPY_OPTIONS_NAME(bbc), - "floppy_5_25", - NULL + "floppy_5_25" }; WRITE_LINE_MEMBER(bbc_state::econet_clk_w) diff --git a/src/mess/drivers/bk.c b/src/mess/drivers/bk.c index d6e4b225ab7..10c00eb0ce0 100644 --- a/src/mess/drivers/bk.c +++ b/src/mess/drivers/bk.c @@ -161,8 +161,7 @@ static const cassette_interface bk0010_cassette_interface = /*rk8_cassette_formats*/cassette_default_formats, NULL, (cassette_state)(CASSETTE_STOPPED | CASSETTE_SPEAKER_ENABLED | CASSETTE_MOTOR_ENABLED), - "bk0010_cass", - NULL + "bk0010_cass" }; diff --git a/src/mess/drivers/bob85.c b/src/mess/drivers/bob85.c index 028f4ad804d..0f2d70b7c8f 100644 --- a/src/mess/drivers/bob85.c +++ b/src/mess/drivers/bob85.c @@ -191,7 +191,6 @@ static const cassette_interface bob85_cassette_interface = cassette_default_formats, NULL, (cassette_state)(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_MUTED), - NULL, NULL }; diff --git a/src/mess/drivers/c80.c b/src/mess/drivers/c80.c index 56f231105ed..10d10b46c8d 100644 --- a/src/mess/drivers/c80.c +++ b/src/mess/drivers/c80.c @@ -251,7 +251,6 @@ static const cassette_interface c80_cassette_interface = cassette_default_formats, NULL, (cassette_state)(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED ), - NULL, NULL }; diff --git a/src/mess/drivers/cgenie.c b/src/mess/drivers/cgenie.c index e4a6149134d..e002e255c0f 100644 --- a/src/mess/drivers/cgenie.c +++ b/src/mess/drivers/cgenie.c @@ -487,7 +487,6 @@ static const cassette_interface cgenie_cassette_interface = cgenie_cassette_formats, NULL, (cassette_state)(CASSETTE_STOPPED), - NULL, NULL }; @@ -503,14 +502,8 @@ LEGACY_FLOPPY_OPTIONS_END static const floppy_interface cgenie_floppy_interface = { - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, FLOPPY_STANDARD_5_25_DSHD, LEGACY_FLOPPY_OPTIONS_NAME(cgenie), - NULL, NULL }; diff --git a/src/mess/drivers/compis.c b/src/mess/drivers/compis.c index 67bcdb479b1..1151d88dae6 100644 --- a/src/mess/drivers/compis.c +++ b/src/mess/drivers/compis.c @@ -599,7 +599,6 @@ static const cassette_interface compis_cassette_interface = cassette_default_formats, NULL, (cassette_state)(CASSETTE_STOPPED | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_MUTED), - NULL, NULL }; diff --git a/src/mess/drivers/comx35.c b/src/mess/drivers/comx35.c index 60d868955fb..f8ff546cbbe 100644 --- a/src/mess/drivers/comx35.c +++ b/src/mess/drivers/comx35.c @@ -523,7 +523,6 @@ static const cassette_interface cassette_intf = cassette_default_formats, NULL, (cassette_state)(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED), - NULL, NULL }; diff --git a/src/mess/drivers/cosmicos.c b/src/mess/drivers/cosmicos.c index 582c30b0840..88751fc09a1 100644 --- a/src/mess/drivers/cosmicos.c +++ b/src/mess/drivers/cosmicos.c @@ -505,7 +505,6 @@ static const cassette_interface cosmicos_cassette_interface = cassette_default_formats, NULL, (cassette_state)(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_MUTED), - NULL, NULL }; diff --git a/src/mess/drivers/crvision.c b/src/mess/drivers/crvision.c index ae298a41eee..365bd02ad18 100644 --- a/src/mess/drivers/crvision.c +++ b/src/mess/drivers/crvision.c @@ -695,7 +695,6 @@ static const cassette_interface crvision_cassette_interface = cassette_default_formats, NULL, (cassette_state)(CASSETTE_STOPPED | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_ENABLED), - NULL, NULL }; @@ -708,7 +707,6 @@ static const cassette_interface lasr2001_cassette_interface = cassette_default_formats, NULL, (cassette_state)(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED), - NULL, NULL }; diff --git a/src/mess/drivers/d6800.c b/src/mess/drivers/d6800.c index 97fc58b5f8c..01cd5df8ba6 100644 --- a/src/mess/drivers/d6800.c +++ b/src/mess/drivers/d6800.c @@ -342,7 +342,6 @@ static const cassette_interface d6800_cassette_interface = cassette_default_formats, NULL, (cassette_state)(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_MUTED), - NULL, NULL }; diff --git a/src/mess/drivers/dai.c b/src/mess/drivers/dai.c index 706b0adbf65..1078c9a265d 100644 --- a/src/mess/drivers/dai.c +++ b/src/mess/drivers/dai.c @@ -166,7 +166,6 @@ static const cassette_interface dai_cassette_interface = cassette_default_formats, NULL, (cassette_state)(CASSETTE_PLAY | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_ENABLED), - NULL, NULL }; diff --git a/src/mess/drivers/dgn_beta.c b/src/mess/drivers/dgn_beta.c index 7a744fe606d..4a6a10cde18 100644 --- a/src/mess/drivers/dgn_beta.c +++ b/src/mess/drivers/dgn_beta.c @@ -288,14 +288,8 @@ PALETTE_INIT_MEMBER(dgn_beta_state, dgn) static const floppy_interface dgnbeta_floppy_interface = { - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, FLOPPY_STANDARD_5_25_DSHD, LEGACY_FLOPPY_OPTIONS_NAME(coco), - NULL, NULL }; diff --git a/src/mess/drivers/dragon.c b/src/mess/drivers/dragon.c index 003118016cc..62730793b46 100644 --- a/src/mess/drivers/dragon.c +++ b/src/mess/drivers/dragon.c @@ -124,14 +124,8 @@ SLOT_INTERFACE_END static const floppy_interface coco_floppy_interface = { - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, FLOPPY_STANDARD_5_25_DSHD, LEGACY_FLOPPY_OPTIONS_NAME(coco), - NULL, NULL }; diff --git a/src/mess/drivers/electron.c b/src/mess/drivers/electron.c index b6d5916eaf1..745a26abe2d 100644 --- a/src/mess/drivers/electron.c +++ b/src/mess/drivers/electron.c @@ -175,7 +175,6 @@ static const cassette_interface electron_cassette_interface = uef_cassette_formats, NULL, (cassette_state)(CASSETTE_PLAY), - NULL, NULL }; diff --git a/src/mess/drivers/elf.c b/src/mess/drivers/elf.c index 2fc17dc1706..a149f737b36 100644 --- a/src/mess/drivers/elf.c +++ b/src/mess/drivers/elf.c @@ -220,7 +220,6 @@ static const cassette_interface elf_cassette_interface = cassette_default_formats, NULL, (cassette_state)(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_MUTED), - NULL, NULL }; diff --git a/src/mess/drivers/elwro800.c b/src/mess/drivers/elwro800.c index 9611e5f00c0..4f146b5bea0 100644 --- a/src/mess/drivers/elwro800.c +++ b/src/mess/drivers/elwro800.c @@ -514,7 +514,6 @@ static const cassette_interface elwro800jr_cassette_interface = tzx_cassette_formats, NULL, (cassette_state)(CASSETTE_STOPPED | CASSETTE_SPEAKER_ENABLED | CASSETTE_MOTOR_ENABLED), - NULL, NULL }; diff --git a/src/mess/drivers/ep64.c b/src/mess/drivers/ep64.c index 5efee2561bb..792323e53b8 100644 --- a/src/mess/drivers/ep64.c +++ b/src/mess/drivers/ep64.c @@ -475,8 +475,7 @@ static const cassette_interface cass_intf = cassette_default_formats, NULL, (cassette_state)(CASSETTE_STOPPED | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_MUTED), - "ep64_cass", - NULL + "ep64_cass" }; diff --git a/src/mess/drivers/eti660.c b/src/mess/drivers/eti660.c index 2a9733abecc..f5c08819723 100644 --- a/src/mess/drivers/eti660.c +++ b/src/mess/drivers/eti660.c @@ -203,7 +203,6 @@ static const cassette_interface eti660_cassette_interface = cassette_default_formats, NULL, (cassette_state)(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_MUTED), - NULL, NULL }; diff --git a/src/mess/drivers/exp85.c b/src/mess/drivers/exp85.c index 63523224ddc..89caf64065e 100644 --- a/src/mess/drivers/exp85.c +++ b/src/mess/drivers/exp85.c @@ -180,7 +180,6 @@ static const cassette_interface exp85_cassette_interface = cassette_default_formats, NULL, (cassette_state)(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_MUTED), - NULL, NULL }; diff --git a/src/mess/drivers/fc100.c b/src/mess/drivers/fc100.c index b6e41b0e246..163d8679bc3 100644 --- a/src/mess/drivers/fc100.c +++ b/src/mess/drivers/fc100.c @@ -480,7 +480,6 @@ static const cassette_interface fc100_cassette_interface = fc100_cassette_formats, NULL, (cassette_state) (CASSETTE_PLAY | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_ENABLED), - NULL, NULL }; diff --git a/src/mess/drivers/fm7.c b/src/mess/drivers/fm7.c index 53277cf9ddf..a79ba357c5c 100644 --- a/src/mess/drivers/fm7.c +++ b/src/mess/drivers/fm7.c @@ -1996,21 +1996,14 @@ static const cassette_interface fm7_cassette_interface = fm7_cassette_formats, NULL, (cassette_state)(CASSETTE_STOPPED | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_ENABLED), - "fm7_cass", - NULL + "fm7_cass" }; static const floppy_interface fm7_floppy_interface = { - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, FLOPPY_STANDARD_5_25_DSHD, LEGACY_FLOPPY_OPTIONS_NAME(default), - "floppy_5_25", - NULL + "floppy_5_25" }; static MACHINE_CONFIG_START( fm7, fm7_state ) diff --git a/src/mess/drivers/fmtowns.c b/src/mess/drivers/fmtowns.c index cd9c5c74f5e..744b3a68c9e 100644 --- a/src/mess/drivers/fmtowns.c +++ b/src/mess/drivers/fmtowns.c @@ -2671,12 +2671,6 @@ static GFXDECODE_START( towns ) GFXDECODE_ENTRY( "user", 0x180000, fnt_chars_16x16, 0, 16 ) GFXDECODE_END -struct cdrom_interface towns_cdrom = -{ - NULL, - NULL -}; - static MACHINE_CONFIG_FRAGMENT( towns_base ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",I386, 16000000) @@ -2734,7 +2728,7 @@ static MACHINE_CONFIG_FRAGMENT( towns_base ) MCFG_FLOPPY_DRIVE_ADD("fdc:0", towns_floppies, "35hd", towns_state::floppy_formats) MCFG_FLOPPY_DRIVE_ADD("fdc:1", towns_floppies, "35hd", towns_state::floppy_formats) - MCFG_CDROM_ADD("cdrom",towns_cdrom) + MCFG_CDROM_ADD("cdrom") MCFG_DEVICE_ADD("scsi", SCSI_PORT, 0) MCFG_SCSIDEV_ADD("scsi:" SCSI_PORT_DEVICE1, "harddisk", SCSIHD, SCSI_ID_0) diff --git a/src/mess/drivers/galaxy.c b/src/mess/drivers/galaxy.c index 65de85a2bc4..6e70f6b047b 100644 --- a/src/mess/drivers/galaxy.c +++ b/src/mess/drivers/galaxy.c @@ -159,8 +159,7 @@ static const cassette_interface galaxy_cassette_interface = gtp_cassette_formats, NULL, (cassette_state)(CASSETTE_STOPPED | CASSETTE_SPEAKER_ENABLED | CASSETTE_MOTOR_ENABLED), - "galaxy_cass", - NULL + "galaxy_cass" }; diff --git a/src/mess/drivers/h8.c b/src/mess/drivers/h8.c index 8ae98ff76d8..277fe2a5b8d 100644 --- a/src/mess/drivers/h8.c +++ b/src/mess/drivers/h8.c @@ -311,8 +311,7 @@ static const cassette_interface h8_cassette_interface = NULL, //(cassette_state) (CASSETTE_PLAY | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_ENABLED), (cassette_state) (CASSETTE_PLAY | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED), - "h8_cass", - NULL + "h8_cass" }; static MACHINE_CONFIG_START( h8, h8_state ) diff --git a/src/mess/drivers/hec2hrp.c b/src/mess/drivers/hec2hrp.c index 5226150c946..ed9d2e93096 100644 --- a/src/mess/drivers/hec2hrp.c +++ b/src/mess/drivers/hec2hrp.c @@ -385,7 +385,6 @@ static const cassette_interface hector_cassette_interface = hector_cassette_formats, NULL, (cassette_state)(CASSETTE_PLAY | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_ENABLED), - NULL, NULL }; @@ -409,14 +408,8 @@ const wd17xx_interface hector_wd17xx_interface = const floppy_interface minidisc_floppy_interface = { - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, FLOPPY_STANDARD_3_5_DSDD, LEGACY_FLOPPY_OPTIONS_NAME(hector_minidisc), - NULL, NULL }; diff --git a/src/mess/drivers/huebler.c b/src/mess/drivers/huebler.c index 9ef6b2cf4ab..9e5a1044b0f 100644 --- a/src/mess/drivers/huebler.c +++ b/src/mess/drivers/huebler.c @@ -311,7 +311,6 @@ static const cassette_interface amu880_cassette_interface = cassette_default_formats, NULL, (cassette_state)(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_MUTED), - NULL, NULL }; diff --git a/src/mess/drivers/ibmpcjr.c b/src/mess/drivers/ibmpcjr.c index 8bc4cee947f..a253595f08c 100644 --- a/src/mess/drivers/ibmpcjr.c +++ b/src/mess/drivers/ibmpcjr.c @@ -552,7 +552,6 @@ static const cassette_interface pcjr_cassette_interface = cassette_default_formats, NULL, (cassette_state)(CASSETTE_PLAY | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_ENABLED), - NULL, NULL }; diff --git a/src/mess/drivers/interact.c b/src/mess/drivers/interact.c index 3ed77b4f049..23318eff8ff 100644 --- a/src/mess/drivers/interact.c +++ b/src/mess/drivers/interact.c @@ -103,8 +103,7 @@ static const cassette_interface interact_cassette_interface = hector_cassette_formats, NULL, (cassette_state)(CASSETTE_STOPPED | CASSETTE_MASK_SPEAKER), - "interact_cass", - NULL + "interact_cass" }; /* Discrete Sound */ diff --git a/src/mess/drivers/intv.c b/src/mess/drivers/intv.c index 603c5f40ede..9266f2fc54c 100644 --- a/src/mess/drivers/intv.c +++ b/src/mess/drivers/intv.c @@ -143,7 +143,6 @@ static const cassette_interface ecs_cassette_interface = cassette_default_formats, NULL, (cassette_state)(CASSETTE_STOPPED | CASSETTE_MOTOR_DISABLED), - NULL, NULL }; */ diff --git a/src/mess/drivers/iq151.c b/src/mess/drivers/iq151.c index 62c77b75c87..712579d4c2d 100644 --- a/src/mess/drivers/iq151.c +++ b/src/mess/drivers/iq151.c @@ -366,8 +366,7 @@ static const cassette_interface iq151_cassette_interface = cassette_default_formats, NULL, (cassette_state)(CASSETTE_STOPPED), - "iq151_cass", - NULL + "iq151_cass" }; static SLOT_INTERFACE_START(iq151_cart) diff --git a/src/mess/drivers/jr100.c b/src/mess/drivers/jr100.c index dd3e82df04b..fc4960fd34c 100644 --- a/src/mess/drivers/jr100.c +++ b/src/mess/drivers/jr100.c @@ -298,7 +298,6 @@ static const cassette_interface jr100_cassette_interface = cassette_default_formats, NULL, (cassette_state)(CASSETTE_STOPPED | CASSETTE_SPEAKER_ENABLED | CASSETTE_MOTOR_ENABLED), - NULL, NULL }; diff --git a/src/mess/drivers/jtc.c b/src/mess/drivers/jtc.c index 72165607cfb..2bfabe69ead 100644 --- a/src/mess/drivers/jtc.c +++ b/src/mess/drivers/jtc.c @@ -686,7 +686,6 @@ static const cassette_interface jtc_cassette_interface = cassette_default_formats, NULL, (cassette_state)(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED), - NULL, NULL }; diff --git a/src/mess/drivers/jupiter.c b/src/mess/drivers/jupiter.c index 630ce16926b..23fcbf10cc5 100644 --- a/src/mess/drivers/jupiter.c +++ b/src/mess/drivers/jupiter.c @@ -185,14 +185,8 @@ UINT32 jupiter3_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap #if 0 static const floppy_interface jupiter_floppy_interface = { - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, FLOPPY_STANDARD_5_25_SSDD_40, LEGACY_FLOPPY_OPTIONS_NAME(default), - NULL, NULL }; #endif diff --git a/src/mess/drivers/kc.c b/src/mess/drivers/kc.c index d7f36013be2..1481b4162d2 100644 --- a/src/mess/drivers/kc.c +++ b/src/mess/drivers/kc.c @@ -92,8 +92,7 @@ static const cassette_interface kc_cassette_interface = kc_cassette_formats, NULL, CASSETTE_PLAY, - "kc_cass", - NULL + "kc_cass" }; static MACHINE_CONFIG_START( kc85_3, kc_state ) diff --git a/src/mess/drivers/kim1.c b/src/mess/drivers/kim1.c index c9c4f38417b..7b1537da12b 100644 --- a/src/mess/drivers/kim1.c +++ b/src/mess/drivers/kim1.c @@ -318,7 +318,6 @@ static const cassette_interface kim1_cassette_interface = kim1_cassette_formats, NULL, (cassette_state)(CASSETTE_STOPPED), - NULL, NULL }; diff --git a/src/mess/drivers/kyocera.c b/src/mess/drivers/kyocera.c index 7707cc15766..b3061ef4169 100644 --- a/src/mess/drivers/kyocera.c +++ b/src/mess/drivers/kyocera.c @@ -1314,7 +1314,6 @@ static const cassette_interface kc85_cassette_interface = cassette_default_formats, NULL, (cassette_state)(CASSETTE_STOPPED | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_ENABLED), - NULL, NULL }; diff --git a/src/mess/drivers/lc80.c b/src/mess/drivers/lc80.c index 83764077526..414bf632a6c 100644 --- a/src/mess/drivers/lc80.c +++ b/src/mess/drivers/lc80.c @@ -326,7 +326,6 @@ static const cassette_interface lc80_cassette_interface = cassette_default_formats, NULL, (cassette_state)(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_MUTED), - NULL, NULL }; diff --git a/src/mess/drivers/lisa.c b/src/mess/drivers/lisa.c index 072eb9774bb..3bd85209368 100644 --- a/src/mess/drivers/lisa.c +++ b/src/mess/drivers/lisa.c @@ -103,15 +103,9 @@ static const applefdc_interface lisa210_fdc_interface = static const floppy_interface lisa_floppy_interface = { - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, FLOPPY_STANDARD_5_25_DSHD, LEGACY_FLOPPY_OPTIONS_NAME(apple35_mac), - "floppy_5_25", - NULL + "floppy_5_25" }; /*************************************************************************** diff --git a/src/mess/drivers/lviv.c b/src/mess/drivers/lviv.c index 1c5584fb976..14c0194de35 100644 --- a/src/mess/drivers/lviv.c +++ b/src/mess/drivers/lviv.c @@ -420,8 +420,7 @@ static const cassette_interface lviv_cassette_interface = lviv_lvt_format, NULL, (cassette_state)(CASSETTE_STOPPED | CASSETTE_SPEAKER_ENABLED), - "lviv_cass", - NULL + "lviv_cass" }; diff --git a/src/mess/drivers/m5.c b/src/mess/drivers/m5.c index eabe2b2ec72..e846ccb5ae1 100644 --- a/src/mess/drivers/m5.c +++ b/src/mess/drivers/m5.c @@ -410,7 +410,6 @@ static const cassette_interface cassette_intf = sordm5_cassette_formats, NULL, (cassette_state)(CASSETTE_PLAY), - NULL, NULL }; diff --git a/src/mess/drivers/mac.c b/src/mess/drivers/mac.c index a7b6db9fd3c..c90ef4ae46f 100644 --- a/src/mess/drivers/mac.c +++ b/src/mess/drivers/mac.c @@ -879,15 +879,9 @@ SLOT_INTERFACE_END static const floppy_interface mac_floppy_interface = { - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, FLOPPY_STANDARD_3_5_DSHD, LEGACY_FLOPPY_OPTIONS_NAME(apple35_mac), - "floppy_3_5", - NULL + "floppy_3_5" }; static MACHINE_CONFIG_START( mac512ke, mac_state ) diff --git a/src/mess/drivers/macpci.c b/src/mess/drivers/macpci.c index ac49b6a7d6d..ab15b5ad4f3 100644 --- a/src/mess/drivers/macpci.c +++ b/src/mess/drivers/macpci.c @@ -86,12 +86,6 @@ UINT32 macpci_state::screen_update_pippin(screen_device &screen, bitmap_ind16 &b return 0; } -struct cdrom_interface pippin_cdrom = -{ - NULL, - NULL -}; - static MACHINE_CONFIG_START( pippin, macpci_state ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", PPC603, 66000000) @@ -115,7 +109,7 @@ static MACHINE_CONFIG_START( pippin, macpci_state ) MCFG_SOUND_ROUTE( 0, "lspeaker", 1.00 ) MCFG_SOUND_ROUTE( 1, "rspeaker", 1.00 ) - MCFG_CDROM_ADD("cdrom",pippin_cdrom) + MCFG_CDROM_ADD("cdrom") MCFG_RAM_ADD(RAM_TAG) MCFG_RAM_DEFAULT_SIZE("32M") diff --git a/src/mess/drivers/mbc200.c b/src/mess/drivers/mbc200.c index 2e4fc087ac9..6e3f93f04f6 100644 --- a/src/mess/drivers/mbc200.c +++ b/src/mess/drivers/mbc200.c @@ -184,15 +184,9 @@ static const wd17xx_interface mbc200_mb8876_interface = }; static const floppy_interface mbc200_floppy_interface = { - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, FLOPPY_STANDARD_5_25_SSDD_40, LEGACY_FLOPPY_OPTIONS_NAME(default), - "floppy_5_25", - NULL + "floppy_5_25" }; static const gfx_layout mbc200_chars_8x8 = diff --git a/src/mess/drivers/mbc55x.c b/src/mess/drivers/mbc55x.c index 5b2b4eae3ab..ef03005dc55 100644 --- a/src/mess/drivers/mbc55x.c +++ b/src/mess/drivers/mbc55x.c @@ -32,15 +32,9 @@ const unsigned char mbc55x_palette[SCREEN_NO_COLOURS][3] = static const floppy_interface mbc55x_floppy_interface = { - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, FLOPPY_STANDARD_5_25_DSSD_35, LEGACY_FLOPPY_OPTIONS_NAME(pc), - "floppy_5_25", - NULL + "floppy_5_25" }; static ADDRESS_MAP_START(mbc55x_mem, AS_PROGRAM, 8, mbc55x_state) diff --git a/src/mess/drivers/mbee.c b/src/mess/drivers/mbee.c index ed543170355..a9f0607047f 100644 --- a/src/mess/drivers/mbee.c +++ b/src/mess/drivers/mbee.c @@ -638,14 +638,8 @@ LEGACY_FLOPPY_OPTIONS_END static const floppy_interface mbee_floppy_interface = { - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, FLOPPY_STANDARD_5_25_DSHD, LEGACY_FLOPPY_OPTIONS_NAME(mbee), - NULL, NULL }; #endif @@ -665,7 +659,6 @@ static const cassette_interface mbee_cassette_interface = mbee_cassette_formats, NULL, (cassette_state)(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED), - NULL, NULL }; diff --git a/src/mess/drivers/mc10.c b/src/mess/drivers/mc10.c index 011a5cbc67f..bb09d505161 100644 --- a/src/mess/drivers/mc10.c +++ b/src/mess/drivers/mc10.c @@ -482,7 +482,6 @@ static const cassette_interface mc10_cassette_interface = coco_cassette_formats, NULL, (cassette_state)(CASSETTE_STOPPED | CASSETTE_SPEAKER_ENABLED | CASSETTE_MOTOR_ENABLED), - NULL, NULL }; @@ -491,8 +490,7 @@ static const cassette_interface alice32_cassette_interface = alice32_cassette_formats, NULL, (cassette_state)(CASSETTE_STOPPED | CASSETTE_SPEAKER_ENABLED | CASSETTE_MOTOR_ENABLED), - "alice32_cass", - NULL + "alice32_cass" }; static const mc6847_interface mc10_mc6847_intf = diff --git a/src/mess/drivers/mc1000.c b/src/mess/drivers/mc1000.c index 78d0997e2ae..7643549ec6e 100644 --- a/src/mess/drivers/mc1000.c +++ b/src/mess/drivers/mc1000.c @@ -429,7 +429,6 @@ static const cassette_interface mc1000_cassette_interface = cassette_default_formats, NULL, (cassette_state)(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED), - NULL, NULL }; diff --git a/src/mess/drivers/mc1502.c b/src/mess/drivers/mc1502.c index e0b01c6b3e6..3de8cb266c9 100644 --- a/src/mess/drivers/mc1502.c +++ b/src/mess/drivers/mc1502.c @@ -36,7 +36,6 @@ static const cassette_interface mc1502_cassette_interface = cassette_default_formats, NULL, (cassette_state)(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED), - NULL, NULL }; diff --git a/src/mess/drivers/megadriv.c b/src/mess/drivers/megadriv.c index a8692fe1894..4f27fc446b6 100644 --- a/src/mess/drivers/megadriv.c +++ b/src/mess/drivers/megadriv.c @@ -680,12 +680,6 @@ ROM_END /****************************************** SegaCD emulation ****************************************/ -struct cdrom_interface scd_cdrom = -{ - "scd_cdrom", - NULL -}; - static MACHINE_CONFIG_START( genesis_scd, md_cons_state ) MCFG_FRAGMENT_ADD( md_ntsc ) @@ -698,7 +692,8 @@ static MACHINE_CONFIG_START( genesis_scd, md_cons_state ) MCFG_DEVICE_ADD("segacd", SEGA_SEGACD_US, 0) MCFG_GFX_PALETTE("gen_vdp:palette") - MCFG_CDROM_ADD( "cdrom",scd_cdrom ) + MCFG_CDROM_ADD( "cdrom" ) + MCFG_CDROM_INTERFACE("scd_cdrom") MCFG_SOFTWARE_LIST_ADD("cd_list","segacd") MACHINE_CONFIG_END @@ -715,7 +710,8 @@ static MACHINE_CONFIG_START( md_scd, md_cons_state ) MCFG_DEVICE_ADD("segacd", SEGA_SEGACD_EUROPE, 0) MCFG_GFX_PALETTE("gen_vdp:palette") - MCFG_CDROM_ADD( "cdrom",scd_cdrom ) + MCFG_CDROM_ADD( "cdrom" ) + MCFG_CDROM_INTERFACE("scd_cdrom") MCFG_SOFTWARE_LIST_ADD("cd_list","megacd") MACHINE_CONFIG_END @@ -732,7 +728,8 @@ static MACHINE_CONFIG_START( mdj_scd, md_cons_state ) MCFG_DEVICE_ADD("segacd", SEGA_SEGACD_JAPAN, 0) MCFG_GFX_PALETTE("gen_vdp:palette") - MCFG_CDROM_ADD( "cdrom",scd_cdrom ) + MCFG_CDROM_ADD( "cdrom" ) + MCFG_CDROM_INTERFACE("scd_cdrom") MCFG_SOFTWARE_LIST_ADD("cd_list","megacdj") MACHINE_CONFIG_END @@ -743,7 +740,8 @@ static MACHINE_CONFIG_DERIVED( genesis_32x_scd, genesis_32x ) MCFG_DEVICE_ADD("segacd", SEGA_SEGACD_US, 0) MCFG_GFX_PALETTE("gen_vdp:palette") - MCFG_CDROM_ADD( "cdrom",scd_cdrom ) + MCFG_CDROM_ADD( "cdrom" ) + MCFG_CDROM_INTERFACE("scd_cdrom") MCFG_MACHINE_START_OVERRIDE(md_cons_state, ms_megacd) diff --git a/src/mess/drivers/mikro80.c b/src/mess/drivers/mikro80.c index ab7a60e7df9..f9f2b07dcf5 100644 --- a/src/mess/drivers/mikro80.c +++ b/src/mess/drivers/mikro80.c @@ -144,7 +144,6 @@ static const cassette_interface mikro80_cassette_interface = rk8_cassette_formats, NULL, (cassette_state)(CASSETTE_STOPPED | CASSETTE_SPEAKER_ENABLED | CASSETTE_MOTOR_ENABLED), - NULL, NULL }; diff --git a/src/mess/drivers/mikrosha.c b/src/mess/drivers/mikrosha.c index 6dcfd93e2f5..5480c6b4d57 100644 --- a/src/mess/drivers/mikrosha.c +++ b/src/mess/drivers/mikrosha.c @@ -145,8 +145,7 @@ static const cassette_interface mikrosha_cassette_interface = rkm_cassette_formats, NULL, (cassette_state)(CASSETTE_STOPPED | CASSETTE_SPEAKER_ENABLED | CASSETTE_MOTOR_ENABLED), - "mikrosha_cass", - NULL + "mikrosha_cass" }; diff --git a/src/mess/drivers/mpf1.c b/src/mess/drivers/mpf1.c index 8c5ad5d33a2..86d1c4969f1 100644 --- a/src/mess/drivers/mpf1.c +++ b/src/mess/drivers/mpf1.c @@ -280,7 +280,6 @@ static const cassette_interface mpf1_cassette_interface = cassette_default_formats, NULL, (cassette_state)(CASSETTE_STOPPED | CASSETTE_SPEAKER_ENABLED | CASSETTE_MOTOR_ENABLED), - NULL, NULL }; diff --git a/src/mess/drivers/ms0515.c b/src/mess/drivers/ms0515.c index 8d68ccf7526..70bf766ce27 100644 --- a/src/mess/drivers/ms0515.c +++ b/src/mess/drivers/ms0515.c @@ -154,14 +154,8 @@ LEGACY_FLOPPY_OPTIONS_END static const floppy_interface ms0515_floppy_interface = { - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, FLOPPY_STANDARD_5_25_DSHD, LEGACY_FLOPPY_OPTIONS_NAME(ms0515), - NULL, NULL }; diff --git a/src/mess/drivers/msx.c b/src/mess/drivers/msx.c index 3e1da09104b..307962cfcd1 100644 --- a/src/mess/drivers/msx.c +++ b/src/mess/drivers/msx.c @@ -1067,8 +1067,7 @@ static const cassette_interface msx_cassette_interface = fmsx_cassette_formats, NULL, (cassette_state)(CASSETTE_PLAY), - "msx_cass", - NULL + "msx_cass" }; diff --git a/src/mess/drivers/mtx.c b/src/mess/drivers/mtx.c index 27d776de5c4..64322b69584 100644 --- a/src/mess/drivers/mtx.c +++ b/src/mess/drivers/mtx.c @@ -272,7 +272,6 @@ static const cassette_interface mtx_cassette_interface = cassette_default_formats, NULL, (cassette_state)(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_MUTED), - NULL, NULL }; diff --git a/src/mess/drivers/myb3k.c b/src/mess/drivers/myb3k.c index f90339d3400..fdb867301e8 100644 --- a/src/mess/drivers/myb3k.c +++ b/src/mess/drivers/myb3k.c @@ -244,14 +244,8 @@ static const wd17xx_interface myb3k_wd17xx_interface = static const floppy_interface myb3k_floppy_interface = { - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, FLOPPY_STANDARD_5_25_DSDD_40, //todo LEGACY_FLOPPY_OPTIONS_NAME(default), - NULL, NULL }; diff --git a/src/mess/drivers/mz2000.c b/src/mess/drivers/mz2000.c index 24a44e9f05b..3596d51789c 100644 --- a/src/mess/drivers/mz2000.c +++ b/src/mess/drivers/mz2000.c @@ -797,14 +797,8 @@ LEGACY_FLOPPY_OPTIONS_END static const floppy_interface mz2000_floppy_interface = { - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, FLOPPY_STANDARD_3_5_DSHD, LEGACY_FLOPPY_OPTIONS_NAME(default), - NULL, NULL }; @@ -813,8 +807,7 @@ static const cassette_interface mz2000_cassette_interface = mz700_cassette_formats, NULL, (cassette_state)(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED), - "mz_cass", - NULL + "mz_cass" }; static MACHINE_CONFIG_START( mz2000, mz2000_state ) diff --git a/src/mess/drivers/mz2500.c b/src/mess/drivers/mz2500.c index e355b6fdeb6..761479f80de 100644 --- a/src/mess/drivers/mz2500.c +++ b/src/mess/drivers/mz2500.c @@ -1220,15 +1220,9 @@ LEGACY_FLOPPY_OPTIONS_END static const floppy_interface mz2500_floppy_interface = { - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, FLOPPY_STANDARD_3_5_DSHD, LEGACY_FLOPPY_OPTIONS_NAME(default), - "floppy_3_5", - NULL + "floppy_3_5" }; static ADDRESS_MAP_START(mz2500_map, AS_PROGRAM, 8, mz2500_state ) diff --git a/src/mess/drivers/mz700.c b/src/mess/drivers/mz700.c index 4e9bf52ddbe..21e25afa6f8 100644 --- a/src/mess/drivers/mz700.c +++ b/src/mess/drivers/mz700.c @@ -322,8 +322,7 @@ static const cassette_interface mz700_cassette_interface = mz700_cassette_formats, NULL, (cassette_state)(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED), - "mz_cass", - NULL + "mz_cass" }; diff --git a/src/mess/drivers/mz80.c b/src/mess/drivers/mz80.c index ccea2b63518..c535241aac7 100644 --- a/src/mess/drivers/mz80.c +++ b/src/mess/drivers/mz80.c @@ -265,7 +265,6 @@ static const cassette_interface mz80k_cassette_interface = cassette_default_formats, NULL, (cassette_state)(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED), - NULL, NULL }; diff --git a/src/mess/drivers/nascom1.c b/src/mess/drivers/nascom1.c index bca108ecd21..4feb2945fa7 100644 --- a/src/mess/drivers/nascom1.c +++ b/src/mess/drivers/nascom1.c @@ -312,14 +312,8 @@ LEGACY_FLOPPY_OPTIONS_END static const floppy_interface nascom2_floppy_interface = { - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, FLOPPY_STANDARD_5_25_DSHD, LEGACY_FLOPPY_OPTIONS_NAME(nascom2), - NULL, NULL }; diff --git a/src/mess/drivers/nes.c b/src/mess/drivers/nes.c index 04318dbfb96..5d221204e34 100644 --- a/src/mess/drivers/nes.c +++ b/src/mess/drivers/nes.c @@ -648,15 +648,9 @@ void nes_state::ppu_nmi(int *ppu_regs) static const floppy_interface nes_floppy_interface = { - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, FLOPPY_STANDARD_5_25_DSHD, LEGACY_FLOPPY_OPTIONS_NAME(nes_only), - "floppy_5_25", - NULL + "floppy_5_25" }; @@ -665,8 +659,7 @@ static const cassette_interface fc_cassette_interface = cassette_default_formats, NULL, (cassette_state)(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED), - "fc_cass", - NULL + "fc_cass" }; diff --git a/src/mess/drivers/newbrain.c b/src/mess/drivers/newbrain.c index 6fdd0a21e1a..145d1069eb1 100644 --- a/src/mess/drivers/newbrain.c +++ b/src/mess/drivers/newbrain.c @@ -1300,7 +1300,6 @@ static const cassette_interface newbrain_cassette_interface = cassette_default_formats, NULL, (cassette_state)(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_MUTED), - NULL, NULL }; diff --git a/src/mess/drivers/ng_aes.c b/src/mess/drivers/ng_aes.c index 826af07ea08..5ef97363945 100644 --- a/src/mess/drivers/ng_aes.c +++ b/src/mess/drivers/ng_aes.c @@ -1461,13 +1461,6 @@ UINT32 ng_aes_state::screen_update_neocd(screen_device &screen, bitmap_rgb32 &bi } -struct cdrom_interface neocd_cdrom = -{ - "neocd_cdrom", - NULL -}; - - static MACHINE_CONFIG_DERIVED_CLASS( neocd, neogeo_base, ng_aes_state ) MCFG_CPU_MODIFY("maincpu") @@ -1493,7 +1486,8 @@ static MACHINE_CONFIG_DERIVED_CLASS( neocd, neogeo_base, ng_aes_state ) MCFG_MACHINE_START_OVERRIDE(ng_aes_state,neocd) MCFG_MACHINE_RESET_OVERRIDE(ng_aes_state,neocd) - MCFG_CDROM_ADD( "cdrom",neocd_cdrom ) + MCFG_CDROM_ADD( "cdrom" ) + MCFG_CDROM_INTERFACE("neocd_cdrom") MCFG_SOFTWARE_LIST_ADD("cd_list","neocd") MACHINE_CONFIG_END diff --git a/src/mess/drivers/ondra.c b/src/mess/drivers/ondra.c index 15892f342cd..50cca61c3f4 100644 --- a/src/mess/drivers/ondra.c +++ b/src/mess/drivers/ondra.c @@ -115,8 +115,7 @@ static const cassette_interface ondra_cassette_interface = cassette_default_formats, NULL, (cassette_state)(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED), - "ondra_cass", - NULL + "ondra_cass" }; /* Machine driver */ diff --git a/src/mess/drivers/orao.c b/src/mess/drivers/orao.c index 7f8b8a2235d..7e37f317d7f 100644 --- a/src/mess/drivers/orao.c +++ b/src/mess/drivers/orao.c @@ -167,8 +167,7 @@ static const cassette_interface orao_cassette_interface = orao_cassette_formats, NULL, (cassette_state)(CASSETTE_STOPPED | CASSETTE_SPEAKER_ENABLED | CASSETTE_MOTOR_ENABLED), - "orao_cass", - NULL + "orao_cass" }; diff --git a/src/mess/drivers/oric.c b/src/mess/drivers/oric.c index 0692ea83602..194eef573ab 100644 --- a/src/mess/drivers/oric.c +++ b/src/mess/drivers/oric.c @@ -783,7 +783,6 @@ static const cassette_interface oric_cassette_interface = oric_cassette_formats, NULL, (cassette_state)(CASSETTE_PLAY | CASSETTE_MOTOR_DISABLED), - NULL, NULL }; diff --git a/src/mess/drivers/orion.c b/src/mess/drivers/orion.c index f86813762cc..d9df5c0d261 100644 --- a/src/mess/drivers/orion.c +++ b/src/mess/drivers/orion.c @@ -78,8 +78,7 @@ static const cassette_interface orion_cassette_interface = rko_cassette_formats, NULL, (cassette_state)(CASSETTE_STOPPED | CASSETTE_SPEAKER_ENABLED | CASSETTE_MOTOR_ENABLED), - "orion_cass", - NULL + "orion_cass" }; FLOPPY_FORMATS_MEMBER( orion_state::orion_floppy_formats ) diff --git a/src/mess/drivers/osbexec.c b/src/mess/drivers/osbexec.c index 71326d0ab63..21f5105b7a9 100644 --- a/src/mess/drivers/osbexec.c +++ b/src/mess/drivers/osbexec.c @@ -477,14 +477,8 @@ LEGACY_FLOPPY_OPTIONS_END static const floppy_interface osbexec_floppy_interface = { - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, FLOPPY_STANDARD_5_25_SSDD_40, LEGACY_FLOPPY_OPTIONS_NAME(osbexec), - NULL, NULL }; diff --git a/src/mess/drivers/osborne1.c b/src/mess/drivers/osborne1.c index c4ca6c44fe9..6e01813c09b 100644 --- a/src/mess/drivers/osborne1.c +++ b/src/mess/drivers/osborne1.c @@ -201,15 +201,9 @@ LEGACY_FLOPPY_OPTIONS_END static const floppy_interface osborne1_floppy_interface = { - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, FLOPPY_STANDARD_5_25_SSDD_40, LEGACY_FLOPPY_OPTIONS_NAME(osborne1), - "floppy_5_25", - NULL + "floppy_5_25" }; /* F4 Character Displayer */ diff --git a/src/mess/drivers/osi.c b/src/mess/drivers/osi.c index 88da4f5e0fa..563d53efc85 100644 --- a/src/mess/drivers/osi.c +++ b/src/mess/drivers/osi.c @@ -697,14 +697,8 @@ LEGACY_FLOPPY_OPTIONS_END static const floppy_interface osi_floppy_interface = { - DEVCB_DRIVER_LINE_MEMBER(sb2m600_state,osi470_index_callback), - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, FLOPPY_STANDARD_5_25_SSDD_40, LEGACY_FLOPPY_OPTIONS_NAME(osi), - NULL, NULL }; @@ -838,6 +832,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( c1pmf, c1p, c1pmf_state ) MCFG_CLOCK_SIGNAL_HANDLER(DEVWRITELINE("acia_1", acia6850_device, write_txc)) MCFG_LEGACY_FLOPPY_DRIVE_ADD(FLOPPY_0, osi_floppy_interface) + MCFG_LEGACY_FLOPPY_IDX_CB(WRITELINE(sb2m600_state, osi470_index_callback)) /* internal ram */ MCFG_RAM_MODIFY(RAM_TAG) diff --git a/src/mess/drivers/partner.c b/src/mess/drivers/partner.c index a3c099f6559..332ba876811 100644 --- a/src/mess/drivers/partner.c +++ b/src/mess/drivers/partner.c @@ -139,8 +139,7 @@ static const cassette_interface partner_cassette_interface = rkp_cassette_formats, NULL, (cassette_state)(CASSETTE_STOPPED | CASSETTE_SPEAKER_ENABLED | CASSETTE_MOTOR_ENABLED), - "partner_cass", - NULL + "partner_cass" }; FLOPPY_FORMATS_MEMBER( partner_state::floppy_formats ) diff --git a/src/mess/drivers/pc6001.c b/src/mess/drivers/pc6001.c index d946828de2b..644e9670e8b 100644 --- a/src/mess/drivers/pc6001.c +++ b/src/mess/drivers/pc6001.c @@ -2243,7 +2243,6 @@ static const cassette_interface pc6001_cassette_interface = pc6001_cassette_formats, NULL, (cassette_state)(CASSETTE_STOPPED | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_ENABLED), - NULL, NULL }; #endif diff --git a/src/mess/drivers/pc8001.c b/src/mess/drivers/pc8001.c index b77ac725b6d..c37726cc92b 100644 --- a/src/mess/drivers/pc8001.c +++ b/src/mess/drivers/pc8001.c @@ -478,7 +478,6 @@ static const cassette_interface pc8001_cassette_interface = cassette_default_formats, NULL, (cassette_state)(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_MUTED), - NULL, NULL }; diff --git a/src/mess/drivers/pc8801.c b/src/mess/drivers/pc8801.c index 248ee99cb76..fabd01e9ed1 100644 --- a/src/mess/drivers/pc8801.c +++ b/src/mess/drivers/pc8801.c @@ -2248,8 +2248,7 @@ static const cassette_interface pc88_cassette_interface = cassette_default_formats, // we need T88 format support! NULL, (cassette_state)(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_MUTED), - "pc8801_cass", - NULL + "pc8801_cass" }; #endif @@ -2597,7 +2596,6 @@ static const cassette_interface pc8801_cassette_interface = cassette_default_formats, NULL, (cassette_state)(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_MUTED), - NULL, NULL }; diff --git a/src/mess/drivers/pecom.c b/src/mess/drivers/pecom.c index ecaf80685df..5e25acc6c61 100644 --- a/src/mess/drivers/pecom.c +++ b/src/mess/drivers/pecom.c @@ -171,8 +171,7 @@ static const cassette_interface pecom_cassette_interface = cassette_default_formats, NULL, (cassette_state)(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED), - "pecom_cass", - NULL + "pecom_cass" }; /* Machine driver */ diff --git a/src/mess/drivers/pegasus.c b/src/mess/drivers/pegasus.c index 81395ad0d43..fa2bdfa4613 100644 --- a/src/mess/drivers/pegasus.c +++ b/src/mess/drivers/pegasus.c @@ -283,7 +283,6 @@ static const cassette_interface pegasus_cassette_interface = cassette_default_formats, NULL, (cassette_state)(CASSETTE_STOPPED|CASSETTE_MOTOR_ENABLED), - NULL, NULL }; diff --git a/src/mess/drivers/phc25.c b/src/mess/drivers/phc25.c index fb77b46202f..9dd9b9c4105 100644 --- a/src/mess/drivers/phc25.c +++ b/src/mess/drivers/phc25.c @@ -358,7 +358,6 @@ static const cassette_interface phc25_cassette_interface = phc25_cassette_formats, NULL, (cassette_state)(CASSETTE_PLAY | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_ENABLED), - NULL, NULL }; diff --git a/src/mess/drivers/pk8000.c b/src/mess/drivers/pk8000.c index c5f0953683d..625518dbaee 100644 --- a/src/mess/drivers/pk8000.c +++ b/src/mess/drivers/pk8000.c @@ -349,7 +349,6 @@ static const cassette_interface pk8000_cassette_interface = fmsx_cassette_formats, NULL, (cassette_state)(CASSETTE_PLAY), - NULL, NULL }; diff --git a/src/mess/drivers/pk8020.c b/src/mess/drivers/pk8020.c index dc9174a456a..3ccd9239008 100644 --- a/src/mess/drivers/pk8020.c +++ b/src/mess/drivers/pk8020.c @@ -145,7 +145,6 @@ static const cassette_interface pk8020_cassette_interface = cassette_default_formats, NULL, (cassette_state)(CASSETTE_PLAY), - NULL, NULL }; @@ -160,15 +159,9 @@ LEGACY_FLOPPY_OPTIONS_END static const floppy_interface pk8020_floppy_interface = { - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, FLOPPY_STANDARD_5_25_DSHD, LEGACY_FLOPPY_OPTIONS_NAME(pk8020), - "floppy_5_25", - NULL + "floppy_5_25" }; static const wd17xx_interface pk8020_wd17xx_interface = diff --git a/src/mess/drivers/pmd85.c b/src/mess/drivers/pmd85.c index ef630b43cc1..f3e9c06bb2c 100644 --- a/src/mess/drivers/pmd85.c +++ b/src/mess/drivers/pmd85.c @@ -538,7 +538,6 @@ static const cassette_interface pmd85_cassette_interface = pmd85_cassette_formats, &pmd85_cassette_options, (cassette_state)(CASSETTE_STOPPED | CASSETTE_SPEAKER_ENABLED), - NULL, NULL }; diff --git a/src/mess/drivers/poisk1.c b/src/mess/drivers/poisk1.c index 5cce8dbea38..43bcbe3f5f8 100644 --- a/src/mess/drivers/poisk1.c +++ b/src/mess/drivers/poisk1.c @@ -174,7 +174,6 @@ static const cassette_interface p1_cassette_interface = cassette_default_formats, NULL, (cassette_state)(CASSETTE_PLAY | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_ENABLED), - NULL, NULL }; diff --git a/src/mess/drivers/poly88.c b/src/mess/drivers/poly88.c index 76db2ee3082..b96b591934b 100644 --- a/src/mess/drivers/poly88.c +++ b/src/mess/drivers/poly88.c @@ -144,7 +144,6 @@ static const cassette_interface poly88_cassette_interface = cassette_default_formats, &poly88_cassette_options, (cassette_state)(CASSETTE_STOPPED | CASSETTE_SPEAKER_ENABLED), - NULL, NULL }; diff --git a/src/mess/drivers/poly880.c b/src/mess/drivers/poly880.c index 69f66424099..818cd5bf5c3 100644 --- a/src/mess/drivers/poly880.c +++ b/src/mess/drivers/poly880.c @@ -246,7 +246,6 @@ static const cassette_interface poly880_cassette_interface = cassette_default_formats, NULL, (cassette_state)(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_MUTED), - NULL, NULL }; diff --git a/src/mess/drivers/primo.c b/src/mess/drivers/primo.c index 7b401d06487..75612b4b2b4 100644 --- a/src/mess/drivers/primo.c +++ b/src/mess/drivers/primo.c @@ -243,7 +243,6 @@ static const cassette_interface primo_cassette_interface = primo_ptp_format, &primo_cassette_options, (cassette_state)(CASSETTE_STOPPED | CASSETTE_SPEAKER_ENABLED), - NULL, NULL }; diff --git a/src/mess/drivers/ptcsol.c b/src/mess/drivers/ptcsol.c index 54538e29bab..4fe135988e7 100644 --- a/src/mess/drivers/ptcsol.c +++ b/src/mess/drivers/ptcsol.c @@ -553,7 +553,6 @@ static const cassette_interface sol20_cassette_interface = sol20_cassette_formats,//cassette_default_formats, NULL, (cassette_state)(CASSETTE_PLAY | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED), - NULL, NULL }; diff --git a/src/mess/drivers/pv2000.c b/src/mess/drivers/pv2000.c index ed769c6f2f2..2227b6b00a1 100644 --- a/src/mess/drivers/pv2000.c +++ b/src/mess/drivers/pv2000.c @@ -388,7 +388,6 @@ static const cassette_interface pv2000_cassette_interface = cassette_default_formats, NULL, (cassette_state)(CASSETTE_STOPPED | CASSETTE_MOTOR_DISABLED), - NULL, NULL }; diff --git a/src/mess/drivers/px4.c b/src/mess/drivers/px4.c index 60ecfb711c5..e5b9f972b55 100644 --- a/src/mess/drivers/px4.c +++ b/src/mess/drivers/px4.c @@ -1364,7 +1364,6 @@ static const cassette_interface px4_cassette_interface = cassette_default_formats, NULL, (cassette_state)(CASSETTE_PLAY | CASSETTE_SPEAKER_ENABLED | CASSETTE_MOTOR_DISABLED), - NULL, NULL }; diff --git a/src/mess/drivers/px8.c b/src/mess/drivers/px8.c index bfdf1d823ff..2c5eec7310b 100644 --- a/src/mess/drivers/px8.c +++ b/src/mess/drivers/px8.c @@ -731,7 +731,6 @@ static const cassette_interface px8_cassette_interface = cassette_default_formats, NULL, (cassette_state)(CASSETTE_STOPPED | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_ENABLED), - NULL, NULL }; diff --git a/src/mess/drivers/ql.c b/src/mess/drivers/ql.c index e69b0ddd144..eff423cfd46 100644 --- a/src/mess/drivers/ql.c +++ b/src/mess/drivers/ql.c @@ -945,14 +945,8 @@ LEGACY_FLOPPY_OPTIONS_END static const floppy_interface ql_floppy_interface = { - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, FLOPPY_STANDARD_5_25_DSHD, LEGACY_FLOPPY_OPTIONS_NAME(ql), - NULL, NULL }; @@ -964,28 +958,6 @@ wd17xx_interface ql_wd17xx_interface = {FLOPPY_0, FLOPPY_1, FLOPPY_2, FLOPPY_3} }; -//------------------------------------------------- -// MICRODRIVE_CONFIG( mdv1_config ) -//------------------------------------------------- - -static MICRODRIVE_CONFIG( mdv1_config ) -{ - NULL, - NULL, -}; - - -//------------------------------------------------- -// MICRODRIVE_CONFIG( mdv2_config ) -//------------------------------------------------- - -static MICRODRIVE_CONFIG( mdv2_config ) -{ - NULL, - NULL -}; - - //************************************************************************** // MACHINE INITIALIZATION @@ -1151,9 +1123,9 @@ static MACHINE_CONFIG_START( ql, ql_state ) MCFG_LEGACY_FLOPPY_2_DRIVES_ADD(ql_floppy_interface) MCFG_WD1772_ADD(WD1772_TAG,ql_wd17xx_interface) - MCFG_MICRODRIVE_ADD(MDV_1, mdv1_config) + MCFG_MICRODRIVE_ADD(MDV_1) MCFG_MICRODRIVE_COMMS_OUT_CALLBACK(DEVWRITELINE(MDV_2, microdrive_image_device, comms_in_w)) - MCFG_MICRODRIVE_ADD(MDV_2, mdv2_config) + MCFG_MICRODRIVE_ADD(MDV_2) MCFG_RS232_PORT_ADD(RS232_A_TAG, default_rs232_devices, NULL) // wired as DCE MCFG_RS232_PORT_ADD(RS232_B_TAG, default_rs232_devices, NULL) // wired as DTE MCFG_RS232_CTS_HANDLER(DEVWRITELINE(ZX8302_TAG, zx8302_device, write_cts2)) diff --git a/src/mess/drivers/radio86.c b/src/mess/drivers/radio86.c index 8ea40caedd4..d5f5321ded8 100644 --- a/src/mess/drivers/radio86.c +++ b/src/mess/drivers/radio86.c @@ -320,8 +320,7 @@ static const cassette_interface radio86_cassette_interface = rkr_cassette_formats, NULL, (cassette_state)(CASSETTE_STOPPED | CASSETTE_SPEAKER_ENABLED | CASSETTE_MOTOR_ENABLED), - "radio86_cass", - NULL + "radio86_cass" }; diff --git a/src/mess/drivers/rainbow.c b/src/mess/drivers/rainbow.c index 052be9d847d..351631cd69f 100644 --- a/src/mess/drivers/rainbow.c +++ b/src/mess/drivers/rainbow.c @@ -1204,15 +1204,9 @@ const wd17xx_interface rainbow_wd17xx_interface = static const floppy_interface floppy_intf = { - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, FLOPPY_STANDARD_5_25_SSDD_80, LEGACY_FLOPPY_OPTIONS_NAME( dec100_floppy ), - "floppy_5_25", - NULL + "floppy_5_25" }; static MACHINE_CONFIG_START( rainbow, rainbow_state ) diff --git a/src/mess/drivers/rm380z.c b/src/mess/drivers/rm380z.c index a35fa766ac5..f96ababd0f0 100644 --- a/src/mess/drivers/rm380z.c +++ b/src/mess/drivers/rm380z.c @@ -120,14 +120,8 @@ INPUT_PORTS_END static const floppy_interface rm380z_floppy_interface = { - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, FLOPPY_STANDARD_5_25_SSSD, LEGACY_FLOPPY_OPTIONS_NAME(default), - NULL, NULL }; diff --git a/src/mess/drivers/rmnimbus.c b/src/mess/drivers/rmnimbus.c index 6fba0afbf90..499b7248051 100644 --- a/src/mess/drivers/rmnimbus.c +++ b/src/mess/drivers/rmnimbus.c @@ -46,15 +46,9 @@ const unsigned char nimbus_palette[SCREEN_NO_COLOURS][3] = static const floppy_interface nimbus_floppy_interface = { - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, FLOPPY_STANDARD_3_5_DSDD, LEGACY_FLOPPY_OPTIONS_NAME(pc), - "floppy_3_5", - NULL + "floppy_3_5" }; /* Null port handlers for now, I believe that the IO ports are used for */ diff --git a/src/mess/drivers/samcoupe.c b/src/mess/drivers/samcoupe.c index 0e45a08ceaa..629bd30ab61 100644 --- a/src/mess/drivers/samcoupe.c +++ b/src/mess/drivers/samcoupe.c @@ -521,8 +521,7 @@ static const cassette_interface samcoupe_cassette_interface = tzx_cassette_formats, NULL, (cassette_state)(CASSETTE_STOPPED | CASSETTE_SPEAKER_ENABLED | CASSETTE_MOTOR_ENABLED), - "samcoupe_cass", - NULL + "samcoupe_cass" }; FLOPPY_FORMATS_MEMBER( samcoupe_state::floppy_formats ) diff --git a/src/mess/drivers/saturn.c b/src/mess/drivers/saturn.c index f9031f64923..a09496d7f99 100644 --- a/src/mess/drivers/saturn.c +++ b/src/mess/drivers/saturn.c @@ -696,12 +696,6 @@ MACHINE_RESET_MEMBER(sat_console_state,saturn) } -struct cdrom_interface saturn_cdrom = -{ - "sat_cdrom", - NULL -}; - static MACHINE_CONFIG_START( saturn, sat_console_state ) /* basic machine hardware */ @@ -773,7 +767,8 @@ SLOT_INTERFACE_END MACHINE_CONFIG_DERIVED( saturnus, saturn ) - MCFG_CDROM_ADD( "cdrom",saturn_cdrom ) + MCFG_CDROM_ADD( "cdrom" ) + MCFG_CDROM_INTERFACE("sat_cdrom") MCFG_SOFTWARE_LIST_ADD("cd_list","saturn") MCFG_SOFTWARE_LIST_FILTER("cd_list","NTSC-U") @@ -783,7 +778,8 @@ MACHINE_CONFIG_DERIVED( saturnus, saturn ) MACHINE_CONFIG_END MACHINE_CONFIG_DERIVED( saturneu, saturn ) - MCFG_CDROM_ADD( "cdrom",saturn_cdrom ) + MCFG_CDROM_ADD( "cdrom" ) + MCFG_CDROM_INTERFACE("sat_cdrom") MCFG_SOFTWARE_LIST_ADD("cd_list","saturn") MCFG_SOFTWARE_LIST_FILTER("cd_list","PAL") @@ -793,7 +789,8 @@ MACHINE_CONFIG_DERIVED( saturneu, saturn ) MACHINE_CONFIG_END MACHINE_CONFIG_DERIVED( saturnjp, saturn ) - MCFG_CDROM_ADD( "cdrom",saturn_cdrom ) + MCFG_CDROM_ADD( "cdrom" ) + MCFG_CDROM_INTERFACE("sat_cdrom") MCFG_SOFTWARE_LIST_ADD("cd_list","saturn") MCFG_SOFTWARE_LIST_FILTER("cd_list","NTSC-J") diff --git a/src/mess/drivers/sg1000.c b/src/mess/drivers/sg1000.c index 0cd21e3677e..2467d892a00 100644 --- a/src/mess/drivers/sg1000.c +++ b/src/mess/drivers/sg1000.c @@ -548,8 +548,7 @@ const cassette_interface sc3000_cassette_interface = sc3000_cassette_formats, NULL, (cassette_state)(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED), - "sc3000_cass", - NULL + "sc3000_cass" }; /*------------------------------------------------- diff --git a/src/mess/drivers/smc777.c b/src/mess/drivers/smc777.c index b4637015beb..33a1a258778 100644 --- a/src/mess/drivers/smc777.c +++ b/src/mess/drivers/smc777.c @@ -1040,15 +1040,9 @@ LEGACY_FLOPPY_OPTIONS_END static const floppy_interface smc777_floppy_interface = { - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, FLOPPY_STANDARD_5_25_SSDD, LEGACY_FLOPPY_OPTIONS_NAME(smc777), - "floppy_5_25", - NULL + "floppy_5_25" }; INTERRUPT_GEN_MEMBER(smc777_state::smc777_vblank_irq) diff --git a/src/mess/drivers/softbox.c b/src/mess/drivers/softbox.c index 324a8e3b5f1..bc387c1cbcd 100644 --- a/src/mess/drivers/softbox.c +++ b/src/mess/drivers/softbox.c @@ -401,10 +401,14 @@ static MACHINE_CONFIG_START( softbox, softbox_state ) MCFG_CBM_IEEE488_ADD("c8050") MCFG_DEVICE_ADD(CORVUS_HDC_TAG, CORVUS_HDC, 0) - MCFG_HARDDISK_CONFIG_ADD("harddisk1", corvus_hdc_t::hd_intf) - MCFG_HARDDISK_CONFIG_ADD("harddisk2", corvus_hdc_t::hd_intf) - MCFG_HARDDISK_CONFIG_ADD("harddisk3", corvus_hdc_t::hd_intf) - MCFG_HARDDISK_CONFIG_ADD("harddisk4", corvus_hdc_t::hd_intf) + MCFG_HARDDISK_ADD("harddisk1") + MCFG_HARDDISK_INTERFACE("corvus_hdd") + MCFG_HARDDISK_ADD("harddisk2") + MCFG_HARDDISK_INTERFACE("corvus_hdd") + MCFG_HARDDISK_ADD("harddisk3") + MCFG_HARDDISK_INTERFACE("corvus_hdd") + MCFG_HARDDISK_ADD("harddisk4") + MCFG_HARDDISK_INTERFACE("corvus_hdd") MCFG_IMI7000_BUS_ADD("imi5000h", NULL, NULL, NULL) diff --git a/src/mess/drivers/sorcerer.c b/src/mess/drivers/sorcerer.c index 2f3e13e4296..1e877226e87 100644 --- a/src/mess/drivers/sorcerer.c +++ b/src/mess/drivers/sorcerer.c @@ -391,21 +391,14 @@ static const cassette_interface sorcerer_cassette_interface = sorcerer_cassette_formats, NULL, (cassette_state)(CASSETTE_PLAY | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED), - "sorcerer_cass", - NULL + "sorcerer_cass" }; static const floppy_interface sorcerer_floppy_interface = { - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, FLOPPY_STANDARD_8_SSSD, LEGACY_FLOPPY_OPTIONS_NAME(sorcerer), - "floppy_8", - NULL + "floppy_8" }; diff --git a/src/mess/drivers/spc1000.c b/src/mess/drivers/spc1000.c index 21ad4f2cb6e..03967cde7bc 100644 --- a/src/mess/drivers/spc1000.c +++ b/src/mess/drivers/spc1000.c @@ -302,7 +302,6 @@ static const cassette_interface spc1000_cassette_interface = spc1000_cassette_formats, NULL, (cassette_state)(CASSETTE_STOPPED | CASSETTE_SPEAKER_ENABLED | CASSETTE_MOTOR_ENABLED), - NULL, NULL }; diff --git a/src/mess/drivers/special.c b/src/mess/drivers/special.c index 05d0f459f55..4349c605e0d 100644 --- a/src/mess/drivers/special.c +++ b/src/mess/drivers/special.c @@ -347,8 +347,7 @@ static const cassette_interface special_cassette_interface = rks_cassette_formats, NULL, (cassette_state)(CASSETTE_STOPPED | CASSETTE_SPEAKER_ENABLED | CASSETTE_MOTOR_ENABLED), - "special_cass", - NULL + "special_cass" }; FLOPPY_FORMATS_MEMBER( special_state::specimx_floppy_formats ) diff --git a/src/mess/drivers/spectrum.c b/src/mess/drivers/spectrum.c index f5e4eabd39e..d99cdbcbe58 100644 --- a/src/mess/drivers/spectrum.c +++ b/src/mess/drivers/spectrum.c @@ -653,8 +653,7 @@ static const cassette_interface spectrum_cassette_interface = tzx_cassette_formats, NULL, (cassette_state)(CASSETTE_STOPPED | CASSETTE_SPEAKER_ENABLED | CASSETTE_MOTOR_ENABLED), - "spectrum_cass", - NULL + "spectrum_cass" }; DEVICE_IMAGE_LOAD_MEMBER( spectrum_state,spectrum_cart ) diff --git a/src/mess/drivers/super80.c b/src/mess/drivers/super80.c index 4f6bc687157..620788ea6bc 100644 --- a/src/mess/drivers/super80.c +++ b/src/mess/drivers/super80.c @@ -651,7 +651,6 @@ static const cassette_interface super80_cassette_interface = cassette_default_formats, NULL, (cassette_state)(CASSETTE_PLAY | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_ENABLED), - NULL, NULL }; diff --git a/src/mess/drivers/svi318.c b/src/mess/drivers/svi318.c index 9b2f621e195..52ecb012ea3 100644 --- a/src/mess/drivers/svi318.c +++ b/src/mess/drivers/svi318.c @@ -270,21 +270,14 @@ static const cassette_interface svi318_cassette_interface = svi_cassette_formats, NULL, (cassette_state)(CASSETTE_PLAY), - "svi318_cass", - NULL + "svi318_cass" }; static const floppy_interface svi318_floppy_interface = { - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, FLOPPY_STANDARD_5_25_DSHD, LEGACY_FLOPPY_OPTIONS_NAME(svi318), - "floppy_5_25", - NULL + "floppy_5_25" }; static MACHINE_CONFIG_FRAGMENT( svi318_cartslot ) diff --git a/src/mess/drivers/swtpc09.c b/src/mess/drivers/swtpc09.c index e5820033d48..3fb3c4e9ec1 100644 --- a/src/mess/drivers/swtpc09.c +++ b/src/mess/drivers/swtpc09.c @@ -122,14 +122,8 @@ LEGACY_FLOPPY_OPTIONS_END static const floppy_interface swtpc09_floppy_interface = { - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, FLOPPY_STANDARD_5_25_DSHD, LEGACY_FLOPPY_OPTIONS_NAME(swtpc09), - NULL, NULL }; diff --git a/src/mess/drivers/thomson.c b/src/mess/drivers/thomson.c index 8f7ed59ae30..d3bd8dbc38d 100644 --- a/src/mess/drivers/thomson.c +++ b/src/mess/drivers/thomson.c @@ -584,53 +584,10 @@ WRITE_LINE_MEMBER( thomson_state::fdc_index_3_w ) thomson_index_callback(machine().device<legacy_floppy_image_device>(FLOPPY_3), state); } -static const floppy_interface thomson_floppy_interface_0 = +static const floppy_interface thomson_floppy_interface = { - DEVCB_DRIVER_LINE_MEMBER(thomson_state, fdc_index_0_w), - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, FLOPPY_STANDARD_5_25_DSHD, LEGACY_FLOPPY_OPTIONS_NAME(thomson), - NULL, - NULL -}; - -static const floppy_interface thomson_floppy_interface_1 = -{ - DEVCB_DRIVER_LINE_MEMBER(thomson_state, fdc_index_1_w), - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - FLOPPY_STANDARD_5_25_DSHD, - LEGACY_FLOPPY_OPTIONS_NAME(thomson), - NULL, - NULL -}; -static const floppy_interface thomson_floppy_interface_2 = -{ - DEVCB_DRIVER_LINE_MEMBER(thomson_state, fdc_index_2_w), - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - FLOPPY_STANDARD_5_25_DSHD, - LEGACY_FLOPPY_OPTIONS_NAME(thomson), - NULL, - NULL -}; -static const floppy_interface thomson_floppy_interface_3 = -{ - DEVCB_DRIVER_LINE_MEMBER(thomson_state, fdc_index_3_w), - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - FLOPPY_STANDARD_5_25_DSHD, - LEGACY_FLOPPY_OPTIONS_NAME(thomson), - NULL, NULL }; @@ -641,7 +598,6 @@ const cassette_interface to7_cassette_interface = to7_cassette_formats, NULL, (cassette_state)(CASSETTE_PLAY | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_ENABLED), - NULL, NULL }; @@ -650,7 +606,6 @@ const cassette_interface mo5_cassette_interface = mo5_cassette_formats, NULL, (cassette_state)(CASSETTE_PLAY | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_ENABLED), - NULL, NULL }; @@ -708,13 +663,17 @@ static MACHINE_CONFIG_START( to7, thomson_state ) MCFG_DEVICE_ADD("mc6843", MC6843, 0) MCFG_WD2793_ADD("wd2793", default_wd17xx_interface ) MCFG_DEVICE_ADD(FLOPPY_0, LEGACY_FLOPPY, 0) - MCFG_DEVICE_CONFIG(thomson_floppy_interface_0) + MCFG_DEVICE_CONFIG(thomson_floppy_interface) + MCFG_LEGACY_FLOPPY_IDX_CB(WRITELINE(thomson_state, fdc_index_0_w)) MCFG_DEVICE_ADD(FLOPPY_1, LEGACY_FLOPPY, 0) - MCFG_DEVICE_CONFIG(thomson_floppy_interface_1) + MCFG_DEVICE_CONFIG(thomson_floppy_interface) + MCFG_LEGACY_FLOPPY_IDX_CB(WRITELINE(thomson_state, fdc_index_1_w)) MCFG_DEVICE_ADD(FLOPPY_2, LEGACY_FLOPPY, 0) - MCFG_DEVICE_CONFIG(thomson_floppy_interface_2) + MCFG_DEVICE_CONFIG(thomson_floppy_interface) + MCFG_LEGACY_FLOPPY_IDX_CB(WRITELINE(thomson_state, fdc_index_2_w)) MCFG_DEVICE_ADD(FLOPPY_3, LEGACY_FLOPPY, 0) - MCFG_DEVICE_CONFIG(thomson_floppy_interface_3) + MCFG_DEVICE_CONFIG(thomson_floppy_interface) + MCFG_LEGACY_FLOPPY_IDX_CB(WRITELINE(thomson_state, fdc_index_3_w)) /* network */ MCFG_DEVICE_ADD( "mc6854", MC6854, 0 ) diff --git a/src/mess/drivers/ti990_4.c b/src/mess/drivers/ti990_4.c index 08a718d0f78..5256dcb4dbf 100644 --- a/src/mess/drivers/ti990_4.c +++ b/src/mess/drivers/ti990_4.c @@ -264,14 +264,8 @@ ADDRESS_MAP_END static const floppy_interface ti990_4_floppy_interface = { - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, FLOPPY_STANDARD_8_DSSD, LEGACY_FLOPPY_OPTIONS_NAME(fd800), - NULL, NULL }; diff --git a/src/mess/drivers/tiki100.c b/src/mess/drivers/tiki100.c index 186f8a31c3b..5ae8d18d1d6 100644 --- a/src/mess/drivers/tiki100.c +++ b/src/mess/drivers/tiki100.c @@ -612,7 +612,6 @@ static const cassette_interface cassette_intf = cassette_default_formats, NULL, (cassette_state)(CASSETTE_STOPPED | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_MUTED), - NULL, NULL }; diff --git a/src/mess/drivers/tmc1800.c b/src/mess/drivers/tmc1800.c index 2b315ce870e..9c95988fe5e 100644 --- a/src/mess/drivers/tmc1800.c +++ b/src/mess/drivers/tmc1800.c @@ -700,7 +700,6 @@ static const cassette_interface tmc1800_cassette_interface = cassette_default_formats, NULL, (cassette_state)(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_MUTED), - NULL, NULL }; diff --git a/src/mess/drivers/tmc2000e.c b/src/mess/drivers/tmc2000e.c index 9a3cb2bfc90..03f237c7684 100644 --- a/src/mess/drivers/tmc2000e.c +++ b/src/mess/drivers/tmc2000e.c @@ -287,7 +287,6 @@ static const cassette_interface tmc2000_cassette_interface = cassette_default_formats, NULL, (cassette_state)(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_MUTED), - NULL, NULL }; diff --git a/src/mess/drivers/tmc600.c b/src/mess/drivers/tmc600.c index 65903982034..ae772dfdf8b 100644 --- a/src/mess/drivers/tmc600.c +++ b/src/mess/drivers/tmc600.c @@ -257,7 +257,6 @@ static const cassette_interface tmc600_cassette_interface = cassette_default_formats, NULL, (cassette_state)(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_MUTED), - NULL, NULL }; diff --git a/src/mess/drivers/trs80.c b/src/mess/drivers/trs80.c index 9fcfad91b15..24e1599a90d 100644 --- a/src/mess/drivers/trs80.c +++ b/src/mess/drivers/trs80.c @@ -550,20 +550,13 @@ static const cassette_interface trs80l2_cassette_interface = trs80l2_cassette_formats, NULL, (cassette_state)(CASSETTE_PLAY), - NULL, NULL }; static const floppy_interface trs80_floppy_interface = { - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, FLOPPY_STANDARD_5_25_DSHD, LEGACY_FLOPPY_OPTIONS_NAME(trs80), - NULL, NULL }; diff --git a/src/mess/drivers/tvc.c b/src/mess/drivers/tvc.c index ead91f0c9e5..89a23b2468d 100644 --- a/src/mess/drivers/tvc.c +++ b/src/mess/drivers/tvc.c @@ -637,8 +637,7 @@ static const cassette_interface tvc_cassette_interface = tvc64_cassette_formats, NULL, (cassette_state)(CASSETTE_PLAY | CASSETTE_MOTOR_DISABLED), - "tvc_cass", - NULL + "tvc_cass" }; extern SLOT_INTERFACE_START(tvc_exp) diff --git a/src/mess/drivers/unixpc.c b/src/mess/drivers/unixpc.c index 9e5e8dfb6a5..f153eb2894b 100644 --- a/src/mess/drivers/unixpc.c +++ b/src/mess/drivers/unixpc.c @@ -180,14 +180,8 @@ INPUT_PORTS_END static const floppy_interface unixpc_floppy_interface = { - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, FLOPPY_STANDARD_5_25_DSDD, LEGACY_FLOPPY_OPTIONS_NAME(default), - NULL, NULL }; diff --git a/src/mess/drivers/ut88.c b/src/mess/drivers/ut88.c index bc4d97616c4..8e5e3695fd8 100644 --- a/src/mess/drivers/ut88.c +++ b/src/mess/drivers/ut88.c @@ -180,8 +180,7 @@ static const cassette_interface ut88_cassette_interface = rku_cassette_formats, NULL, (cassette_state)(CASSETTE_STOPPED | CASSETTE_SPEAKER_ENABLED | CASSETTE_MOTOR_ENABLED), - "ut88_cass", - NULL + "ut88_cass" }; /* Machine driver */ diff --git a/src/mess/drivers/vector06.c b/src/mess/drivers/vector06.c index a588316296f..6a9dbc54971 100644 --- a/src/mess/drivers/vector06.c +++ b/src/mess/drivers/vector06.c @@ -124,7 +124,6 @@ static const cassette_interface vector_cassette_interface = cassette_default_formats, NULL, (cassette_state)(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED), - NULL, NULL }; @@ -139,14 +138,8 @@ LEGACY_FLOPPY_OPTIONS_END static const floppy_interface vector_floppy_interface = { - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, FLOPPY_STANDARD_5_25_DSHD, LEGACY_FLOPPY_OPTIONS_NAME(vector), - NULL, NULL }; diff --git a/src/mess/drivers/vg5k.c b/src/mess/drivers/vg5k.c index 51d2df6ede7..7459c486e8d 100644 --- a/src/mess/drivers/vg5k.c +++ b/src/mess/drivers/vg5k.c @@ -356,8 +356,7 @@ static const cassette_interface vg5k_cassette_interface = vg5k_cassette_formats, NULL, (cassette_state)(CASSETTE_STOPPED | CASSETTE_MASK_SPEAKER), - "vg5k_cass", - NULL + "vg5k_cass" }; diff --git a/src/mess/drivers/vip.c b/src/mess/drivers/vip.c index fbd275fd54e..3adb4eba173 100644 --- a/src/mess/drivers/vip.c +++ b/src/mess/drivers/vip.c @@ -567,8 +567,7 @@ static const cassette_interface vip_cassette_interface = cassette_default_formats, NULL, (cassette_state)(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_MUTED), - "vip_cass", - NULL + "vip_cass" }; diff --git a/src/mess/drivers/vtech1.c b/src/mess/drivers/vtech1.c index 3d11484fcb0..0246b366058 100644 --- a/src/mess/drivers/vtech1.c +++ b/src/mess/drivers/vtech1.c @@ -459,14 +459,8 @@ WRITE8_MEMBER(vtech1_state::vtech1_fdc_w) static const floppy_interface vtech1_floppy_interface = { - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, FLOPPY_STANDARD_5_25_DSHD, LEGACY_FLOPPY_OPTIONS_NAME(vtech1_only), - NULL, NULL }; @@ -898,7 +892,6 @@ static const cassette_interface laser_cassette_interface = vtech1_cassette_formats, NULL, (cassette_state)(CASSETTE_PLAY), - NULL, NULL }; diff --git a/src/mess/drivers/vtech2.c b/src/mess/drivers/vtech2.c index 27f3bd856d9..d437a5bfe9f 100644 --- a/src/mess/drivers/vtech2.c +++ b/src/mess/drivers/vtech2.c @@ -406,20 +406,13 @@ static const cassette_interface laser_cassette_interface = vtech2_cassette_formats, NULL, (cassette_state)(CASSETTE_PLAY), - NULL, NULL }; static const floppy_interface vtech2_floppy_interface = { - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, FLOPPY_STANDARD_5_25_SSDD_40, LEGACY_FLOPPY_OPTIONS_NAME(default), - NULL, NULL }; diff --git a/src/mess/drivers/x07.c b/src/mess/drivers/x07.c index 76608eae342..a39fff34248 100644 --- a/src/mess/drivers/x07.c +++ b/src/mess/drivers/x07.c @@ -1462,8 +1462,7 @@ static const cassette_interface x07_cassette_interface = x07_cassette_formats, NULL, (cassette_state)(CASSETTE_PLAY | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_ENABLED), - "x07_cass", - NULL + "x07_cass" }; static MACHINE_CONFIG_START( x07, x07_state ) diff --git a/src/mess/drivers/x1.c b/src/mess/drivers/x1.c index b2e93f6867c..fdc3e534c7d 100644 --- a/src/mess/drivers/x1.c +++ b/src/mess/drivers/x1.c @@ -2271,8 +2271,7 @@ static const cassette_interface x1_cassette_interface = x1_cassette_formats, NULL, (cassette_state)(CASSETTE_STOPPED | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_ENABLED), - "x1_cass", - NULL + "x1_cass" }; @@ -2475,15 +2474,9 @@ LEGACY_FLOPPY_OPTIONS_END static const floppy_interface x1_floppy_interface = { - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, FLOPPY_STANDARD_5_25_DSDD_40, LEGACY_FLOPPY_OPTIONS_NAME(x1), - "floppy_5_25", - NULL + "floppy_5_25" }; static MACHINE_CONFIG_START( x1, x1_state ) diff --git a/src/mess/drivers/x1twin.c b/src/mess/drivers/x1twin.c index 273307e0211..d0797e0c68e 100644 --- a/src/mess/drivers/x1twin.c +++ b/src/mess/drivers/x1twin.c @@ -417,8 +417,7 @@ static const cassette_interface x1_cassette_interface = x1_cassette_formats, NULL, (cassette_state)(CASSETTE_STOPPED | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_ENABLED), - "x1_cass", - NULL + "x1_cass" }; static LEGACY_FLOPPY_OPTIONS_START( x1 ) @@ -432,15 +431,9 @@ LEGACY_FLOPPY_OPTIONS_END static const floppy_interface x1_floppy_interface = { - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, FLOPPY_STANDARD_5_25_DSDD_40, LEGACY_FLOPPY_OPTIONS_NAME(x1), - "floppy_5_25", - NULL + "floppy_5_25" }; diff --git a/src/mess/drivers/z100.c b/src/mess/drivers/z100.c index 67649a9388d..32ee9cc7deb 100644 --- a/src/mess/drivers/z100.c +++ b/src/mess/drivers/z100.c @@ -661,15 +661,9 @@ LEGACY_FLOPPY_OPTIONS_END static const floppy_interface z100_floppy_interface = { - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, FLOPPY_STANDARD_5_25_DSDD_40, LEGACY_FLOPPY_OPTIONS_NAME(z100), - "floppy_5_25", - NULL + "floppy_5_25" }; void z100_state::machine_start() diff --git a/src/mess/drivers/z1013.c b/src/mess/drivers/z1013.c index 1e794e1aa5b..e05d7d3758b 100644 --- a/src/mess/drivers/z1013.c +++ b/src/mess/drivers/z1013.c @@ -366,7 +366,6 @@ static const cassette_interface z1013_cassette_interface = cassette_default_formats, NULL, (cassette_state)(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED), - NULL, NULL }; diff --git a/src/mess/drivers/z80ne.c b/src/mess/drivers/z80ne.c index 28ae718e384..c8ccba0da41 100644 --- a/src/mess/drivers/z80ne.c +++ b/src/mess/drivers/z80ne.c @@ -405,7 +405,6 @@ static const cassette_interface z80ne_cassettea_config = cassette_default_formats, NULL, (cassette_state)(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED), - NULL, NULL }; @@ -414,20 +413,13 @@ static const cassette_interface z80ne_cassetteb_config = cassette_default_formats, NULL, (cassette_state)(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED), - NULL, NULL }; static const floppy_interface z80netf_floppy_interface = { - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, FLOPPY_STANDARD_5_25_DSHD, LEGACY_FLOPPY_OPTIONS_NAME(z80ne), - NULL, NULL }; diff --git a/src/mess/drivers/zx.c b/src/mess/drivers/zx.c index bd58876e210..122041693c9 100644 --- a/src/mess/drivers/zx.c +++ b/src/mess/drivers/zx.c @@ -370,7 +370,6 @@ static const cassette_interface zx81_cassette_interface = zx81_p_format, NULL, (cassette_state)(CASSETTE_STOPPED | CASSETTE_SPEAKER_ENABLED), - NULL, NULL }; diff --git a/src/mess/includes/next.h b/src/mess/includes/next.h index d73778e4fe6..ecc218dcadc 100644 --- a/src/mess/includes/next.h +++ b/src/mess/includes/next.h @@ -115,7 +115,6 @@ public: DECLARE_WRITE_LINE_MEMBER(mo_drq); DECLARE_FLOPPY_FORMATS( floppy_formats ); - static const cdrom_interface cdrom_intf; void vblank_w(screen_device &screen, bool vblank_state); protected: diff --git a/src/mess/machine/atarifdc.c b/src/mess/machine/atarifdc.c index 9b07cd20e5e..8aa73fce4b8 100644 --- a/src/mess/machine/atarifdc.c +++ b/src/mess/machine/atarifdc.c @@ -730,15 +730,9 @@ WRITE_LINE_MEMBER(atari_fdc_device::pia_cb2_w) static const floppy_interface atari_floppy_interface = { - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, FLOPPY_STANDARD_5_25_DSHD, LEGACY_FLOPPY_OPTIONS_NAME(atari_only), - "floppy_5_25", - NULL + "floppy_5_25" }; static MACHINE_CONFIG_FRAGMENT( atari_fdc ) diff --git a/src/mess/machine/beta.c b/src/mess/machine/beta.c index 7f2beec1194..3ade699e28b 100644 --- a/src/mess/machine/beta.c +++ b/src/mess/machine/beta.c @@ -194,14 +194,8 @@ WRITE8_MEMBER(beta_disk_device::data_w) static const floppy_interface beta_floppy_interface = { - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, FLOPPY_STANDARD_5_25_DSDD, LEGACY_FLOPPY_OPTIONS_NAME(trd), - NULL, NULL }; diff --git a/src/mess/machine/c65.c b/src/mess/machine/c65.c index f0e8a8520d0..67f28a77806 100644 --- a/src/mess/machine/c65.c +++ b/src/mess/machine/c65.c @@ -381,7 +381,6 @@ const cassette_interface cbm_cassette_interface = cbm_cassette_formats, NULL, (cassette_state) (CASSETTE_STOPPED | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_ENABLED), - NULL, NULL }; #endif diff --git a/src/mess/machine/coco.c b/src/mess/machine/coco.c index a20827733ff..2a9ec8143b5 100644 --- a/src/mess/machine/coco.c +++ b/src/mess/machine/coco.c @@ -1208,7 +1208,6 @@ const cassette_interface coco_state::coco_cassette_interface = coco_cassette_formats, NULL, (cassette_state)(CASSETTE_PLAY | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_MUTED), - NULL, NULL }; diff --git a/src/mess/machine/concept_exp.c b/src/mess/machine/concept_exp.c index b861bc3ccd0..c9fe0088fd7 100644 --- a/src/mess/machine/concept_exp.c +++ b/src/mess/machine/concept_exp.c @@ -316,14 +316,8 @@ LEGACY_FLOPPY_OPTIONS_END static const floppy_interface concept_floppy_interface = { - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, FLOPPY_STANDARD_5_25_DSHD, LEGACY_FLOPPY_OPTIONS_NAME(concept), - NULL, NULL }; diff --git a/src/mess/machine/genpc.c b/src/mess/machine/genpc.c index 1c06ff586f2..aacc89b7686 100644 --- a/src/mess/machine/genpc.c +++ b/src/mess/machine/genpc.c @@ -605,7 +605,6 @@ static const cassette_interface ibm5150_cassette_interface = cassette_default_formats, NULL, (cassette_state)(CASSETTE_PLAY | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_ENABLED), - NULL, NULL }; diff --git a/src/mess/machine/microdrv.c b/src/mess/machine/microdrv.c index 8bd568609f9..88e70249ffc 100644 --- a/src/mess/machine/microdrv.c +++ b/src/mess/machine/microdrv.c @@ -64,18 +64,6 @@ microdrive_image_device::~microdrive_image_device() void microdrive_image_device::device_config_complete() { - // inherit a copy of the static data - const microdrive_interface *intf = reinterpret_cast<const microdrive_interface *>(static_config()); - if (intf != NULL) - *static_cast<microdrive_interface *>(this) = *intf; - - // or initialize to defaults if none provided - else - { - memset(&m_interface, 0, sizeof(m_interface)); - memset(&m_device_displayinfo, 0, sizeof(m_device_displayinfo)); - } - // set brief and instance name update_names(); } diff --git a/src/mess/machine/microdrv.h b/src/mess/machine/microdrv.h index 7696f57c5ad..f42179e9dbd 100644 --- a/src/mess/machine/microdrv.h +++ b/src/mess/machine/microdrv.h @@ -21,13 +21,8 @@ #define MDV_2 "mdv2" -#define MCFG_MICRODRIVE_ADD(_tag, _config) \ - MCFG_DEVICE_ADD(_tag, MICRODRIVE, 0) \ - MCFG_DEVICE_CONFIG(_config) - -#define MICRODRIVE_CONFIG(_name) \ - const microdrive_interface (_name) = - +#define MCFG_MICRODRIVE_ADD(_tag) \ + MCFG_DEVICE_ADD(_tag, MICRODRIVE, 0) #define MCFG_MICRODRIVE_COMMS_OUT_CALLBACK(_write) \ devcb = µdrive_image_device::set_comms_out_wr_callback(*device, DEVCB2_##_write); @@ -38,18 +33,9 @@ TYPE DEFINITIONS ***************************************************************************/ -// ======================> microdrive_interface - -struct microdrive_interface -{ - const char * m_interface; - device_image_display_info_func m_device_displayinfo; -}; - // ======================> microdrive_image_device class microdrive_image_device : public device_t, - public microdrive_interface, public device_image_interface { public: @@ -62,7 +48,6 @@ public: // image-level overrides virtual bool call_load(); virtual void call_unload(); - virtual void call_display_info() { if (m_device_displayinfo) m_device_displayinfo(*this); } virtual bool call_softlist_load(software_list_device &swlist, const char *swname, const rom_entry *start_entry) { return load_software(swlist, swname, start_entry); } virtual iodevice_t image_type() const { return IO_CASSETTE; } diff --git a/src/mess/machine/pce_cd.c b/src/mess/machine/pce_cd.c index f9bd8bf5d28..301d2bfaeee 100644 --- a/src/mess/machine/pce_cd.c +++ b/src/mess/machine/pce_cd.c @@ -229,17 +229,12 @@ void pce_cd_device::late_setup() m_msm->change_clock_w((PCE_CD_CLOCK / 6) / m_adpcm_clock_divider); } -struct cdrom_interface pce_cdrom = -{ - "pce_cdrom", - NULL -}; - // TODO: left and right speaker tags should be passed from the parent config, instead of using the hard-coded ones below!?! static MACHINE_CONFIG_FRAGMENT( pce_cd ) MCFG_NVRAM_ADD_0FILL("bram") - MCFG_CDROM_ADD("cdrom", pce_cdrom) + MCFG_CDROM_ADD("cdrom") + MCFG_CDROM_INTERFACE("pce_cdrom") MCFG_SOUND_ADD( "msm5205", MSM5205, PCE_CD_CLOCK / 6 ) MCFG_MSM5205_VCLK_CB(WRITELINE(pce_cd_device, msm5205_int)) /* interrupt function */ diff --git a/src/mess/machine/psxcd.c b/src/mess/machine/psxcd.c index 25ab627cc37..d29e9dc309f 100644 --- a/src/mess/machine/psxcd.c +++ b/src/mess/machine/psxcd.c @@ -83,17 +83,11 @@ enum submode_flags const device_type PSXCD = &device_creator<psxcd_device>; -static struct cdrom_interface psx_cdrom = -{ - "psx_cdrom", - NULL -}; - psxcd_device::psxcd_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : cdrom_image_device(mconfig, PSXCD, "PSX Cdrom", tag, owner, clock, "psx_cd", __FILE__), m_irq_handler(*this) { - static_set_static_config(*this, &psx_cdrom); + static_set_interface(*this, "psx_cdrom"); } diff --git a/src/mess/machine/rx01.c b/src/mess/machine/rx01.c index da72c8f09cb..91d01694d27 100644 --- a/src/mess/machine/rx01.c +++ b/src/mess/machine/rx01.c @@ -26,15 +26,9 @@ LEGACY_FLOPPY_OPTIONS_END static const floppy_interface rx01_floppy_interface = { - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, FLOPPY_STANDARD_8_SSSD, LEGACY_FLOPPY_OPTIONS_NAME(rx01), - "floppy_8", - NULL + "floppy_8" }; diff --git a/src/mess/machine/ti99/990_hd.c b/src/mess/machine/ti99/990_hd.c index 86e319bf66d..b8dcf64e3d0 100644 --- a/src/mess/machine/ti99/990_hd.c +++ b/src/mess/machine/ti99/990_hd.c @@ -957,23 +957,17 @@ WRITE16_MEMBER(ti990_hdc_device::write) } -static const struct harddisk_interface ti990_harddisk_config = -{ - NULL, - NULL -}; - static MACHINE_CONFIG_FRAGMENT( ti990_hdc ) - MCFG_HARDDISK_CONFIG_ADD( "harddisk1", ti990_harddisk_config ) + MCFG_HARDDISK_ADD( "harddisk1" ) MCFG_HARDDISK_LOAD(ti990_hdc_device, ti990_hd) MCFG_HARDDISK_UNLOAD(ti990_hdc_device, ti990_hd) - MCFG_HARDDISK_CONFIG_ADD( "harddisk2", ti990_harddisk_config ) + MCFG_HARDDISK_ADD( "harddisk2" ) MCFG_HARDDISK_LOAD(ti990_hdc_device, ti990_hd) MCFG_HARDDISK_UNLOAD(ti990_hdc_device, ti990_hd) - MCFG_HARDDISK_CONFIG_ADD( "harddisk3", ti990_harddisk_config ) + MCFG_HARDDISK_ADD( "harddisk3" ) MCFG_HARDDISK_LOAD(ti990_hdc_device, ti990_hd) MCFG_HARDDISK_UNLOAD(ti990_hdc_device, ti990_hd) - MCFG_HARDDISK_CONFIG_ADD( "harddisk4", ti990_harddisk_config ) + MCFG_HARDDISK_ADD( "harddisk4" ) MCFG_HARDDISK_LOAD(ti990_hdc_device, ti990_hd) MCFG_HARDDISK_UNLOAD(ti990_hdc_device, ti990_hd) MACHINE_CONFIG_END |