summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus
diff options
context:
space:
mode:
author Olivier Galibert <galibert@pobox.com>2021-03-02 15:29:33 +0100
committer Olivier Galibert <galibert@pobox.com>2021-03-02 15:30:45 +0100
commit3c9e3749541b1da8a0c5409c582070aae66dd3d6 (patch)
tree7fafe993b6679ef13fb48ed7d5e18f47a8226928 /src/devices/bus
parentdd75841b96ec3a16e937ae970a986b87cc9c9ee2 (diff)
floppies: Turn the format arrays into function calls. Create a default "mfm", "fm" and "pc" list of formats. Their contents, and which driver uses what, may need some tuning.
Diffstat (limited to 'src/devices/bus')
-rw-r--r--src/devices/bus/a2bus/a2diskiing.cpp20
-rw-r--r--src/devices/bus/a2bus/a2diskiing.h4
-rw-r--r--src/devices/bus/a2bus/agat_fdc.cpp9
-rw-r--r--src/devices/bus/a2bus/agat_fdc.h2
-rw-r--r--src/devices/bus/a2bus/corvfdc01.cpp12
-rw-r--r--src/devices/bus/a2bus/corvfdc01.h2
-rw-r--r--src/devices/bus/a2bus/corvfdc02.cpp9
-rw-r--r--src/devices/bus/a2bus/corvfdc02.h2
-rw-r--r--src/devices/bus/abcbus/fd2.cpp8
-rw-r--r--src/devices/bus/abcbus/fd2.h2
-rw-r--r--src/devices/bus/abcbus/lux10828.cpp8
-rw-r--r--src/devices/bus/abcbus/lux10828.h2
-rw-r--r--src/devices/bus/abcbus/lux21046.cpp8
-rw-r--r--src/devices/bus/abcbus/lux21046.h2
-rw-r--r--src/devices/bus/acorn/atom/discpack.cpp8
-rw-r--r--src/devices/bus/acorn/atom/discpack.h2
-rw-r--r--src/devices/bus/acorn/cms/fdc.cpp10
-rw-r--r--src/devices/bus/acorn/cms/fdc.h2
-rw-r--r--src/devices/bus/acorn/system/fdc.cpp8
-rw-r--r--src/devices/bus/acorn/system/fdc.h2
-rw-r--r--src/devices/bus/adamnet/fdc.cpp8
-rw-r--r--src/devices/bus/adamnet/fdc.h2
-rw-r--r--src/devices/bus/bbc/1mhzbus/opus3.cpp20
-rw-r--r--src/devices/bus/bbc/1mhzbus/opus3.h2
-rw-r--r--src/devices/bus/bbc/fdc/acorn.cpp17
-rw-r--r--src/devices/bus/bbc/fdc/acorn.h2
-rw-r--r--src/devices/bus/bbc/fdc/ams.cpp8
-rw-r--r--src/devices/bus/bbc/fdc/ams.h2
-rw-r--r--src/devices/bus/bbc/fdc/cumana.cpp12
-rw-r--r--src/devices/bus/bbc/fdc/cumana.h2
-rw-r--r--src/devices/bus/bbc/fdc/cv1797.cpp12
-rw-r--r--src/devices/bus/bbc/fdc/cv1797.h2
-rw-r--r--src/devices/bus/bbc/fdc/kenda.cpp10
-rw-r--r--src/devices/bus/bbc/fdc/kenda.h2
-rw-r--r--src/devices/bus/bbc/fdc/opus.cpp16
-rw-r--r--src/devices/bus/bbc/fdc/opus.h2
-rw-r--r--src/devices/bus/bbc/fdc/solidisk.cpp14
-rw-r--r--src/devices/bus/bbc/fdc/solidisk.h2
-rw-r--r--src/devices/bus/bbc/fdc/udm.cpp12
-rw-r--r--src/devices/bus/bbc/fdc/udm.h2
-rw-r--r--src/devices/bus/bbc/fdc/watford.cpp12
-rw-r--r--src/devices/bus/bbc/fdc/watford.h2
-rw-r--r--src/devices/bus/bbc/internal/cumana68k.cpp7
-rw-r--r--src/devices/bus/bbc/internal/cumana68k.h2
-rw-r--r--src/devices/bus/bml3/bml3mp1802.cpp8
-rw-r--r--src/devices/bus/cbmiec/c1541.cpp9
-rw-r--r--src/devices/bus/cbmiec/c1541.h2
-rw-r--r--src/devices/bus/cbmiec/c1571.cpp11
-rw-r--r--src/devices/bus/cbmiec/c1571.h2
-rw-r--r--src/devices/bus/cbmiec/c1581.cpp7
-rw-r--r--src/devices/bus/cbmiec/c1581.h2
-rw-r--r--src/devices/bus/cbmiec/fd2000.cpp8
-rw-r--r--src/devices/bus/cbmiec/fd2000.h2
-rw-r--r--src/devices/bus/cgenie/expansion/floppy.cpp8
-rw-r--r--src/devices/bus/cgenie/expansion/floppy.h2
-rw-r--r--src/devices/bus/coco/coco_fdc.cpp16
-rw-r--r--src/devices/bus/coco/coco_fdc.h2
-rw-r--r--src/devices/bus/compucolor/floppy.cpp8
-rw-r--r--src/devices/bus/compucolor/floppy.h2
-rw-r--r--src/devices/bus/comx35/fdc.cpp8
-rw-r--r--src/devices/bus/comx35/fdc.h2
-rw-r--r--src/devices/bus/cpc/ddi1.cpp2
-rw-r--r--src/devices/bus/econet/e01.cpp7
-rw-r--r--src/devices/bus/econet/e01.h2
-rw-r--r--src/devices/bus/electron/cart/ap34.cpp12
-rw-r--r--src/devices/bus/electron/cart/ap34.h2
-rw-r--r--src/devices/bus/electron/cart/cumana.cpp12
-rw-r--r--src/devices/bus/electron/cart/cumana.h2
-rw-r--r--src/devices/bus/electron/cart/peg400.cpp12
-rw-r--r--src/devices/bus/electron/cart/peg400.h2
-rw-r--r--src/devices/bus/electron/cart/stlefs.cpp12
-rw-r--r--src/devices/bus/electron/cart/stlefs.h2
-rw-r--r--src/devices/bus/electron/plus3.cpp12
-rw-r--r--src/devices/bus/electron/plus3.h2
-rw-r--r--src/devices/bus/ep64/exdos.cpp8
-rw-r--r--src/devices/bus/ep64/exdos.h2
-rw-r--r--src/devices/bus/epson_sio/pf10.cpp2
-rw-r--r--src/devices/bus/epson_sio/tf20.cpp2
-rw-r--r--src/devices/bus/hexbus/hx5102.cpp10
-rw-r--r--src/devices/bus/hexbus/hx5102.h2
-rw-r--r--src/devices/bus/hp9845_io/hp9885.cpp7
-rw-r--r--src/devices/bus/ieee488/c2031.cpp9
-rw-r--r--src/devices/bus/ieee488/c2031.h2
-rw-r--r--src/devices/bus/ieee488/c2040.cpp27
-rw-r--r--src/devices/bus/ieee488/c2040.h6
-rw-r--r--src/devices/bus/ieee488/c8050.cpp34
-rw-r--r--src/devices/bus/ieee488/c8050.h8
-rw-r--r--src/devices/bus/ieee488/c8280.cpp8
-rw-r--r--src/devices/bus/ieee488/c8280.h2
-rw-r--r--src/devices/bus/ieee488/hp9122c.cpp10
-rw-r--r--src/devices/bus/ieee488/hp9895.cpp7
-rw-r--r--src/devices/bus/iq151/disc2.cpp8
-rw-r--r--src/devices/bus/iq151/disc2.h2
-rw-r--r--src/devices/bus/isa/fdc.cpp11
-rw-r--r--src/devices/bus/isa/fdc.h2
-rw-r--r--src/devices/bus/isa/mc1502_fdc.cpp8
-rw-r--r--src/devices/bus/isa/mc1502_fdc.h2
-rw-r--r--src/devices/bus/isa/mufdc.cpp9
-rw-r--r--src/devices/bus/isa/mufdc.h2
-rw-r--r--src/devices/bus/isa/myb3k_fdc.cpp33
-rw-r--r--src/devices/bus/isa/myb3k_fdc.h9
-rw-r--r--src/devices/bus/isa/omti8621.cpp11
-rw-r--r--src/devices/bus/isa/omti8621.h2
-rw-r--r--src/devices/bus/isa/p1_fdc.cpp8
-rw-r--r--src/devices/bus/isa/p1_fdc.h2
-rw-r--r--src/devices/bus/isbx/compis_fdc.cpp8
-rw-r--r--src/devices/bus/isbx/compis_fdc.h2
-rw-r--r--src/devices/bus/isbx/isbc_218a.cpp11
-rw-r--r--src/devices/bus/isbx/isbc_218a.h2
-rw-r--r--src/devices/bus/kc/d004.cpp8
-rw-r--r--src/devices/bus/kc/d004.h2
-rw-r--r--src/devices/bus/msx_cart/disk.cpp8
-rw-r--r--src/devices/bus/msx_cart/disk.h2
-rw-r--r--src/devices/bus/mtx/sdx.cpp8
-rw-r--r--src/devices/bus/mtx/sdx.h2
-rw-r--r--src/devices/bus/multibus/isbc202.cpp7
-rw-r--r--src/devices/bus/nasbus/floppy.cpp8
-rw-r--r--src/devices/bus/nasbus/floppy.h2
-rw-r--r--src/devices/bus/newbrain/fdc.cpp8
-rw-r--r--src/devices/bus/oricext/jasmin.cpp8
-rw-r--r--src/devices/bus/oricext/jasmin.h2
-rw-r--r--src/devices/bus/oricext/microdisc.cpp8
-rw-r--r--src/devices/bus/oricext/microdisc.h2
-rw-r--r--src/devices/bus/plus4/c1551.cpp9
-rw-r--r--src/devices/bus/plus4/c1551.h2
-rw-r--r--src/devices/bus/ql/sandy_superdisk.cpp8
-rw-r--r--src/devices/bus/ql/sandy_superdisk.h2
-rw-r--r--src/devices/bus/ql/sandy_superqboard.cpp8
-rw-r--r--src/devices/bus/ql/sandy_superqboard.h2
-rw-r--r--src/devices/bus/ql/trumpcard.cpp8
-rw-r--r--src/devices/bus/ql/trumpcard.h2
-rw-r--r--src/devices/bus/s100/dj2db.cpp8
-rw-r--r--src/devices/bus/s100/nsmdsa.cpp2
-rw-r--r--src/devices/bus/s100/nsmdsad.cpp2
-rw-r--r--src/devices/bus/samcoupe/drive/floppy.cpp8
-rw-r--r--src/devices/bus/samcoupe/drive/floppy.h2
-rw-r--r--src/devices/bus/spc1000/fdd.cpp4
-rw-r--r--src/devices/bus/spectrum/beta.cpp8
-rw-r--r--src/devices/bus/spectrum/beta.h2
-rw-r--r--src/devices/bus/spectrum/beta128.cpp8
-rw-r--r--src/devices/bus/spectrum/beta128.h2
-rw-r--r--src/devices/bus/spectrum/d40.cpp20
-rw-r--r--src/devices/bus/spectrum/d40.h1
-rw-r--r--src/devices/bus/spectrum/floppyone.cpp8
-rw-r--r--src/devices/bus/spectrum/floppyone.h2
-rw-r--r--src/devices/bus/spectrum/kempdisc.cpp16
-rw-r--r--src/devices/bus/spectrum/kempdisc.h2
-rw-r--r--src/devices/bus/spectrum/mgt.cpp8
-rw-r--r--src/devices/bus/spectrum/mgt.h2
-rw-r--r--src/devices/bus/spectrum/opus.cpp8
-rw-r--r--src/devices/bus/spectrum/opus.h2
-rw-r--r--src/devices/bus/spectrum/sixword.cpp8
-rw-r--r--src/devices/bus/spectrum/sixword.h2
-rw-r--r--src/devices/bus/spectrum/speccydos.cpp8
-rw-r--r--src/devices/bus/spectrum/speccydos.h2
-rw-r--r--src/devices/bus/ss50/dc5.cpp15
-rw-r--r--src/devices/bus/svi3x8/slot/sv801.cpp8
-rw-r--r--src/devices/bus/svi3x8/slot/sv801.h2
-rw-r--r--src/devices/bus/tanbus/radisc.cpp8
-rw-r--r--src/devices/bus/tanbus/radisc.h2
-rw-r--r--src/devices/bus/tanbus/tandos.cpp8
-rw-r--r--src/devices/bus/tanbus/tandos.h2
-rw-r--r--src/devices/bus/ti99/peb/bwg.cpp10
-rw-r--r--src/devices/bus/ti99/peb/bwg.h2
-rw-r--r--src/devices/bus/ti99/peb/cc_fdc.cpp10
-rw-r--r--src/devices/bus/ti99/peb/cc_fdc.h2
-rw-r--r--src/devices/bus/ti99/peb/hfdc.cpp10
-rw-r--r--src/devices/bus/ti99/peb/hfdc.h2
-rw-r--r--src/devices/bus/ti99/peb/myarcfdc.cpp10
-rw-r--r--src/devices/bus/ti99/peb/myarcfdc.h2
-rw-r--r--src/devices/bus/ti99/peb/ti_fdc.cpp10
-rw-r--r--src/devices/bus/ti99/peb/ti_fdc.h2
-rw-r--r--src/devices/bus/tvc/hbf.cpp8
-rw-r--r--src/devices/bus/tvc/hbf.h2
-rw-r--r--src/devices/bus/vme/vme_fcscsi.cpp12
-rw-r--r--src/devices/bus/vme/vme_fcscsi.h1
-rw-r--r--src/devices/bus/vtech/memexp/floppy.cpp4
177 files changed, 596 insertions, 539 deletions
diff --git a/src/devices/bus/a2bus/a2diskiing.cpp b/src/devices/bus/a2bus/a2diskiing.cpp
index 3a41fe04890..1ff619bd6e0 100644
--- a/src/devices/bus/a2bus/a2diskiing.cpp
+++ b/src/devices/bus/a2bus/a2diskiing.cpp
@@ -48,13 +48,21 @@ ROM_START( applesurance )
ROM_LOAD( "applesurance 3.0 - 2732.bin", 0x000000, 0x001000, CRC(64eafec7) SHA1(723dc6cd32de5a0f27af7503764185ac58904c05) )
ROM_END
-FLOPPY_FORMATS_MEMBER( diskiing_device::floppy_formats )
- FLOPPY_A216S_FORMAT, FLOPPY_RWTS18_FORMAT, FLOPPY_EDD_FORMAT, FLOPPY_WOZ_FORMAT, FLOPPY_NIB_FORMAT
-FLOPPY_FORMATS_END
+void diskiing_device::floppy_formats(format_registration &fr)
+{
+ fr.add(FLOPPY_A216S_FORMAT);
+ fr.add(FLOPPY_RWTS18_FORMAT);
+ fr.add(FLOPPY_EDD_FORMAT);
+ fr.add(FLOPPY_WOZ_FORMAT);
+ fr.add(FLOPPY_NIB_FORMAT);
+}
-FLOPPY_FORMATS_MEMBER( a2bus_diskiing13_device::floppy_formats )
- FLOPPY_EDD_FORMAT, FLOPPY_WOZ_FORMAT, FLOPPY_NIB_FORMAT
-FLOPPY_FORMATS_END
+void a2bus_diskiing13_device::floppy_formats(format_registration &fr)
+{
+ fr.add(FLOPPY_EDD_FORMAT);
+ fr.add(FLOPPY_WOZ_FORMAT);
+ fr.add(FLOPPY_NIB_FORMAT);
+}
//-------------------------------------------------
// device_add_mconfig - add device configuration
diff --git a/src/devices/bus/a2bus/a2diskiing.h b/src/devices/bus/a2bus/a2diskiing.h
index 3d24babe0a3..94025b0854f 100644
--- a/src/devices/bus/a2bus/a2diskiing.h
+++ b/src/devices/bus/a2bus/a2diskiing.h
@@ -47,7 +47,7 @@ protected:
const uint8_t *m_rom;
private:
- DECLARE_FLOPPY_FORMATS( floppy_formats );
+ static void floppy_formats(format_registration &fr);
};
class a2bus_diskiing_device: public diskiing_device
@@ -66,7 +66,7 @@ protected:
virtual const tiny_rom_entry *device_rom_region() const override;
private:
- DECLARE_FLOPPY_FORMATS( floppy_formats );
+ static void floppy_formats(format_registration &fr);
};
class a2bus_applesurance_device: public diskiing_device
diff --git a/src/devices/bus/a2bus/agat_fdc.cpp b/src/devices/bus/a2bus/agat_fdc.cpp
index 33b4ff87339..6867b4ef6d5 100644
--- a/src/devices/bus/a2bus/agat_fdc.cpp
+++ b/src/devices/bus/a2bus/agat_fdc.cpp
@@ -63,10 +63,11 @@ ROM_END
// device_add_mconfig - add device configuration
//-------------------------------------------------
-FLOPPY_FORMATS_MEMBER( a2bus_agat_fdc_device::floppy_formats )
- FLOPPY_DS9_FORMAT,
- FLOPPY_AIM_FORMAT
-FLOPPY_FORMATS_END
+void a2bus_agat_fdc_device::floppy_formats(format_registration &fr)
+{
+ fr.add(FLOPPY_DS9_FORMAT);
+ fr.add(FLOPPY_AIM_FORMAT);
+}
static void agat_floppies(device_slot_interface &device)
{
diff --git a/src/devices/bus/a2bus/agat_fdc.h b/src/devices/bus/a2bus/agat_fdc.h
index fe2b787655b..b2f0e72adff 100644
--- a/src/devices/bus/a2bus/agat_fdc.h
+++ b/src/devices/bus/a2bus/agat_fdc.h
@@ -41,7 +41,7 @@ public:
void d15_o_b(uint8_t data);
void d15_o_c(uint8_t data);
- DECLARE_FLOPPY_FORMATS(floppy_formats);
+ static void floppy_formats(format_registration &fr);
protected:
// construction/destruction
diff --git a/src/devices/bus/a2bus/corvfdc01.cpp b/src/devices/bus/a2bus/corvfdc01.cpp
index 2f1684c1da7..212f49ed20b 100644
--- a/src/devices/bus/a2bus/corvfdc01.cpp
+++ b/src/devices/bus/a2bus/corvfdc01.cpp
@@ -27,10 +27,6 @@ DEFINE_DEVICE_TYPE(A2BUS_CORVFDC01, a2bus_corvfdc01_device, "crvfdc01", "Corvus
#define FDC01_ROM_REGION "fdc01_rom"
#define FDC01_FDC_TAG "fdc01_fdc"
-FLOPPY_FORMATS_MEMBER( a2bus_corvfdc01_device::corv_floppy_formats )
- FLOPPY_IMD_FORMAT
-FLOPPY_FORMATS_END
-
static void corv_floppies(device_slot_interface &device)
{
device.option_add("8sssd", FLOPPY_8_SSSD);
@@ -88,10 +84,10 @@ void a2bus_corvfdc01_device::device_add_mconfig(machine_config &config)
FD1793(config, m_wdfdc, 16_MHz_XTAL / 8);
m_wdfdc->intrq_wr_callback().set(FUNC(a2bus_corvfdc01_device::intrq_w));
m_wdfdc->drq_wr_callback().set(FUNC(a2bus_corvfdc01_device::drq_w));
- FLOPPY_CONNECTOR(config, m_con1, corv_floppies, "8sssd", a2bus_corvfdc01_device::corv_floppy_formats);
- FLOPPY_CONNECTOR(config, m_con2, corv_floppies, "8sssd", a2bus_corvfdc01_device::corv_floppy_formats);
- FLOPPY_CONNECTOR(config, m_con3, corv_floppies, "8sssd", a2bus_corvfdc01_device::corv_floppy_formats);
- FLOPPY_CONNECTOR(config, m_con4, corv_floppies, "8sssd", a2bus_corvfdc01_device::corv_floppy_formats);
+ FLOPPY_CONNECTOR(config, m_con1, corv_floppies, "8sssd", floppy_image_device::default_fm_floppy_formats);
+ FLOPPY_CONNECTOR(config, m_con2, corv_floppies, "8sssd", floppy_image_device::default_fm_floppy_formats);
+ FLOPPY_CONNECTOR(config, m_con3, corv_floppies, "8sssd", floppy_image_device::default_fm_floppy_formats);
+ FLOPPY_CONNECTOR(config, m_con4, corv_floppies, "8sssd", floppy_image_device::default_fm_floppy_formats);
}
//-------------------------------------------------
diff --git a/src/devices/bus/a2bus/corvfdc01.h b/src/devices/bus/a2bus/corvfdc01.h
index b08574ad19f..5c92107fcbe 100644
--- a/src/devices/bus/a2bus/corvfdc01.h
+++ b/src/devices/bus/a2bus/corvfdc01.h
@@ -53,8 +53,6 @@ private:
DECLARE_WRITE_LINE_MEMBER(intrq_w);
DECLARE_WRITE_LINE_MEMBER(drq_w);
- DECLARE_FLOPPY_FORMATS(corv_floppy_formats);
-
uint8_t *m_rom;
uint8_t m_fdc_local_status, m_fdc_local_command;
floppy_image_device *m_curfloppy;
diff --git a/src/devices/bus/a2bus/corvfdc02.cpp b/src/devices/bus/a2bus/corvfdc02.cpp
index e1c30bae9d0..0afb2de8aed 100644
--- a/src/devices/bus/a2bus/corvfdc02.cpp
+++ b/src/devices/bus/a2bus/corvfdc02.cpp
@@ -29,10 +29,11 @@ DEFINE_DEVICE_TYPE(A2BUS_CORVFDC02, a2bus_corvfdc02_device, "crvfdc02", "Corvus
#define FDC02_ROM_REGION "fdc02_rom"
#define FDC02_FDC_TAG "fdc02_fdc"
-FLOPPY_FORMATS_MEMBER( a2bus_corvfdc02_device::corv_floppy_formats )
- FLOPPY_CONCEPT_525DSDD_FORMAT,
- FLOPPY_IMD_FORMAT
-FLOPPY_FORMATS_END
+void a2bus_corvfdc02_device::corv_floppy_formats(format_registration &fr)
+{
+ fr.add_mfm_containers();
+ fr.add(FLOPPY_CONCEPT_525DSDD_FORMAT);
+}
static void corv_floppies(device_slot_interface &device)
{
diff --git a/src/devices/bus/a2bus/corvfdc02.h b/src/devices/bus/a2bus/corvfdc02.h
index 1a54fe9caba..6f196bda67b 100644
--- a/src/devices/bus/a2bus/corvfdc02.h
+++ b/src/devices/bus/a2bus/corvfdc02.h
@@ -54,7 +54,7 @@ private:
DECLARE_WRITE_LINE_MEMBER(intrq_w);
DECLARE_WRITE_LINE_MEMBER(drq_w);
- DECLARE_FLOPPY_FORMATS(corv_floppy_formats);
+ static void corv_floppy_formats(format_registration &fr);
uint8_t *m_rom;
uint8_t m_fdc_local_status, m_fdc_local_command;
diff --git a/src/devices/bus/abcbus/fd2.cpp b/src/devices/bus/abcbus/fd2.cpp
index 59734f69fff..1aeafc898cd 100644
--- a/src/devices/bus/abcbus/fd2.cpp
+++ b/src/devices/bus/abcbus/fd2.cpp
@@ -228,9 +228,11 @@ static void abc_fd2_floppies(device_slot_interface &device)
device.option_add("525sssd", FLOPPY_525_SSSD);
}
-FLOPPY_FORMATS_MEMBER( abc_fd2_device::floppy_formats )
- FLOPPY_ABC_FD2_FORMAT
-FLOPPY_FORMATS_END
+void abc_fd2_device::floppy_formats(format_registration &fr)
+{
+ fr.add_fm_containers();
+ fr.add(FLOPPY_ABC_FD2_FORMAT);
+}
//-------------------------------------------------
diff --git a/src/devices/bus/abcbus/fd2.h b/src/devices/bus/abcbus/fd2.h
index 0c587f0c776..a476b66c821 100644
--- a/src/devices/bus/abcbus/fd2.h
+++ b/src/devices/bus/abcbus/fd2.h
@@ -60,7 +60,7 @@ private:
void status_w(uint8_t data);
- DECLARE_FLOPPY_FORMATS( floppy_formats );
+ static void floppy_formats(format_registration &fr);
void abc_fd2_io(address_map &map);
void abc_fd2_mem(address_map &map);
diff --git a/src/devices/bus/abcbus/lux10828.cpp b/src/devices/bus/abcbus/lux10828.cpp
index e746527568b..298aac4eb77 100644
--- a/src/devices/bus/abcbus/lux10828.cpp
+++ b/src/devices/bus/abcbus/lux10828.cpp
@@ -299,9 +299,11 @@ static void abc_floppies(device_slot_interface &device)
device.option_add("8dsdd", FLOPPY_8_DSDD);
}
-FLOPPY_FORMATS_MEMBER( luxor_55_10828_device::floppy_formats )
- FLOPPY_ABC800_FORMAT
-FLOPPY_FORMATS_END
+void luxor_55_10828_device::floppy_formats(format_registration &fr)
+{
+ fr.add_mfm_containers();
+ fr.add(FLOPPY_ABC800_FORMAT);
+}
WRITE_LINE_MEMBER( luxor_55_10828_device::fdc_intrq_w )
{
diff --git a/src/devices/bus/abcbus/lux10828.h b/src/devices/bus/abcbus/lux10828.h
index 3e8499a2e64..c5bf46a8c89 100644
--- a/src/devices/bus/abcbus/lux10828.h
+++ b/src/devices/bus/abcbus/lux10828.h
@@ -88,7 +88,7 @@ private:
uint8_t fdc_r(offs_t offset);
void fdc_w(offs_t offset, uint8_t data);
- DECLARE_FLOPPY_FORMATS( floppy_formats );
+ static void floppy_formats(format_registration &fr);
void luxor_55_10828_io(address_map &map);
void luxor_55_10828_mem(address_map &map);
diff --git a/src/devices/bus/abcbus/lux21046.cpp b/src/devices/bus/abcbus/lux21046.cpp
index c6101d5d403..27a6cbf0bcb 100644
--- a/src/devices/bus/abcbus/lux21046.cpp
+++ b/src/devices/bus/abcbus/lux21046.cpp
@@ -254,9 +254,11 @@ void luxor_55_21046_device::io_write_byte(offs_t offset, uint8_t data)
return m_maincpu->space(AS_IO).write_byte(offset, data);
}
-FLOPPY_FORMATS_MEMBER( luxor_55_21046_device::floppy_formats )
- FLOPPY_ABC800_FORMAT
-FLOPPY_FORMATS_END
+void luxor_55_21046_device::floppy_formats(format_registration &fr)
+{
+ fr.add_mfm_containers();
+ fr.add(FLOPPY_ABC800_FORMAT);
+}
static void abc_floppies(device_slot_interface &device)
{
diff --git a/src/devices/bus/abcbus/lux21046.h b/src/devices/bus/abcbus/lux21046.h
index c7e13962b0b..735de99641c 100644
--- a/src/devices/bus/abcbus/lux21046.h
+++ b/src/devices/bus/abcbus/lux21046.h
@@ -77,7 +77,7 @@ protected:
virtual void abcbus_c3(uint8_t data) override;
virtual void abcbus_c4(uint8_t data) override;
- DECLARE_FLOPPY_FORMATS( floppy_formats );
+ static void floppy_formats(format_registration &fr);
required_device<floppy_connector> m_floppy0;
required_device<floppy_connector> m_floppy1;
diff --git a/src/devices/bus/acorn/atom/discpack.cpp b/src/devices/bus/acorn/atom/discpack.cpp
index c7010454e78..2f2024b86b0 100644
--- a/src/devices/bus/acorn/atom/discpack.cpp
+++ b/src/devices/bus/acorn/atom/discpack.cpp
@@ -21,9 +21,11 @@ DEFINE_DEVICE_TYPE(ATOM_DISCPACK, atom_discpack_device, "atom_discpack", "Acorn
// MACHINE_DRIVER( discpack )
//-------------------------------------------------
-FLOPPY_FORMATS_MEMBER(atom_discpack_device::floppy_formats )
- FLOPPY_ACORN_SSD_FORMAT
-FLOPPY_FORMATS_END
+void atom_discpack_device::floppy_formats(format_registration &fr)
+{
+ fr.add_mfm_containers();
+ fr.add(FLOPPY_ACORN_SSD_FORMAT);
+}
static void atom_floppies(device_slot_interface &device)
{
diff --git a/src/devices/bus/acorn/atom/discpack.h b/src/devices/bus/acorn/atom/discpack.h
index a55abce3278..cff8a09005d 100644
--- a/src/devices/bus/acorn/atom/discpack.h
+++ b/src/devices/bus/acorn/atom/discpack.h
@@ -29,7 +29,7 @@ public:
// construction/destruction
atom_discpack_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- DECLARE_FLOPPY_FORMATS(floppy_formats);
+ static void floppy_formats(format_registration &fr);
protected:
// device-level overrides
diff --git a/src/devices/bus/acorn/cms/fdc.cpp b/src/devices/bus/acorn/cms/fdc.cpp
index a7fe141bc31..f918309bb76 100644
--- a/src/devices/bus/acorn/cms/fdc.cpp
+++ b/src/devices/bus/acorn/cms/fdc.cpp
@@ -23,10 +23,12 @@ DEFINE_DEVICE_TYPE(CMS_FDC, cms_fdc_device, "cms_fdc", "CMS Floppy Disc Controll
// MACHINE_DRIVER( cms_fdc )
//-------------------------------------------------
-FLOPPY_FORMATS_MEMBER(cms_fdc_device::floppy_formats )
- FLOPPY_ACORN_SSD_FORMAT,
- FLOPPY_ACORN_DSD_FORMAT
-FLOPPY_FORMATS_END
+void cms_fdc_device::floppy_formats(format_registration &fr)
+{
+ fr.add_mfm_containers();
+ fr.add(FLOPPY_ACORN_SSD_FORMAT);
+ fr.add(FLOPPY_ACORN_DSD_FORMAT);
+}
static void cms_floppies(device_slot_interface &device)
{
diff --git a/src/devices/bus/acorn/cms/fdc.h b/src/devices/bus/acorn/cms/fdc.h
index 89609387f0e..99a92c34dc7 100644
--- a/src/devices/bus/acorn/cms/fdc.h
+++ b/src/devices/bus/acorn/cms/fdc.h
@@ -29,7 +29,7 @@ public:
// construction/destruction
cms_fdc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- DECLARE_FLOPPY_FORMATS(floppy_formats);
+ static void floppy_formats(format_registration &fr);
protected:
// device-level overrides
diff --git a/src/devices/bus/acorn/system/fdc.cpp b/src/devices/bus/acorn/system/fdc.cpp
index 185a10da7d7..397fbb9ac50 100644
--- a/src/devices/bus/acorn/system/fdc.cpp
+++ b/src/devices/bus/acorn/system/fdc.cpp
@@ -25,9 +25,11 @@ DEFINE_DEVICE_TYPE(ACORN_FDC, acorn_fdc_device, "acorn_fdc", "Acorn Floppy Disc
// MACHINE_DRIVER( fdc )
//-------------------------------------------------
-FLOPPY_FORMATS_MEMBER(acorn_fdc_device::floppy_formats )
- FLOPPY_ACORN_SSD_FORMAT
-FLOPPY_FORMATS_END
+void acorn_fdc_device::floppy_formats(format_registration &fr)
+{
+ fr.add_mfm_containers();
+ fr.add(FLOPPY_ACORN_SSD_FORMAT);
+}
static void acorn_floppies(device_slot_interface &device)
{
diff --git a/src/devices/bus/acorn/system/fdc.h b/src/devices/bus/acorn/system/fdc.h
index d2c0286ad27..f943b1f6767 100644
--- a/src/devices/bus/acorn/system/fdc.h
+++ b/src/devices/bus/acorn/system/fdc.h
@@ -31,7 +31,7 @@ public:
// construction/destruction
acorn_fdc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- DECLARE_FLOPPY_FORMATS(floppy_formats);
+ static void floppy_formats(format_registration &fr);
protected:
// device-level overrides
diff --git a/src/devices/bus/adamnet/fdc.cpp b/src/devices/bus/adamnet/fdc.cpp
index f46ac09b946..6fb80482760 100644
--- a/src/devices/bus/adamnet/fdc.cpp
+++ b/src/devices/bus/adamnet/fdc.cpp
@@ -100,9 +100,11 @@ void adam_fdc_device::adam_fdc_mem(address_map &map)
// floppy_format_type floppy_formats
//-------------------------------------------------
-FLOPPY_FORMATS_MEMBER( adam_fdc_device::floppy_formats )
- FLOPPY_ADAM_FORMAT
-FLOPPY_FORMATS_END
+void adam_fdc_device::floppy_formats(format_registration &fr)
+{
+ fr.add_mfm_containers();
+ fr.add(FLOPPY_ADAM_FORMAT);
+}
static void adam_fdc_floppies(device_slot_interface &device)
{
diff --git a/src/devices/bus/adamnet/fdc.h b/src/devices/bus/adamnet/fdc.h
index 515466927bb..d4d1cc33a01 100644
--- a/src/devices/bus/adamnet/fdc.h
+++ b/src/devices/bus/adamnet/fdc.h
@@ -52,7 +52,7 @@ private:
required_shared_ptr<uint8_t> m_ram;
required_ioport m_sw3;
- DECLARE_FLOPPY_FORMATS( floppy_formats );
+ static void floppy_formats(format_registration &fr);
uint8_t data_r(offs_t offset);
uint8_t p1_r();
diff --git a/src/devices/bus/bbc/1mhzbus/opus3.cpp b/src/devices/bus/bbc/1mhzbus/opus3.cpp
index ac92662dd80..f537eb88b54 100644
--- a/src/devices/bus/bbc/1mhzbus/opus3.cpp
+++ b/src/devices/bus/bbc/1mhzbus/opus3.cpp
@@ -53,15 +53,17 @@ DEFINE_DEVICE_TYPE(BBC_OPUSA, bbc_opusa_device, "bbc_opusa", "Opus Challenger AD
// FLOPPY_FORMATS( floppy_formats )
//-------------------------------------------------
-FLOPPY_FORMATS_MEMBER(bbc_opus3_device::floppy_formats)
- FLOPPY_ACORN_SSD_FORMAT,
- FLOPPY_ACORN_DSD_FORMAT,
- FLOPPY_ACORN_ADFS_OLD_FORMAT,
- FLOPPY_ACORN_DOS_FORMAT,
- FLOPPY_FSD_FORMAT,
- FLOPPY_OPUS_DDOS_FORMAT,
- FLOPPY_OPUS_DDCPM_FORMAT
-FLOPPY_FORMATS_END
+void bbc_opus3_device::floppy_formats(format_registration &fr)
+{
+ fr.add_mfm_containers();
+ fr.add(FLOPPY_ACORN_SSD_FORMAT);
+ fr.add(FLOPPY_ACORN_DSD_FORMAT);
+ fr.add(FLOPPY_ACORN_ADFS_OLD_FORMAT);
+ fr.add(FLOPPY_ACORN_DOS_FORMAT);
+ fr.add(FLOPPY_FSD_FORMAT);
+ fr.add(FLOPPY_OPUS_DDOS_FORMAT);
+ fr.add(FLOPPY_OPUS_DDCPM_FORMAT);
+}
void bbc_floppies(device_slot_interface &device)
{
diff --git a/src/devices/bus/bbc/1mhzbus/opus3.h b/src/devices/bus/bbc/1mhzbus/opus3.h
index 895307c3bbf..2fd06b4015f 100644
--- a/src/devices/bus/bbc/1mhzbus/opus3.h
+++ b/src/devices/bus/bbc/1mhzbus/opus3.h
@@ -45,7 +45,7 @@ protected:
virtual void jim_w(offs_t offset, uint8_t data) override;
private:
- DECLARE_FLOPPY_FORMATS(floppy_formats);
+ static void floppy_formats(format_registration &fr);
required_device<ram_device> m_ramdisk;
required_device<wd1770_device> m_fdc;
diff --git a/src/devices/bus/bbc/fdc/acorn.cpp b/src/devices/bus/bbc/fdc/acorn.cpp
index 1c2063c230d..0734a318372 100644
--- a/src/devices/bus/bbc/fdc/acorn.cpp
+++ b/src/devices/bus/bbc/fdc/acorn.cpp
@@ -23,14 +23,15 @@ DEFINE_DEVICE_TYPE(BBC_ACORN1770, bbc_acorn1770_device, "bbc_acorn1770", "Acorn
// FLOPPY_FORMATS( floppy_formats )
//-------------------------------------------------
-FLOPPY_FORMATS_MEMBER( bbc_acorn8271_device::floppy_formats )
- FLOPPY_ACORN_SSD_FORMAT,
- FLOPPY_ACORN_DSD_FORMAT,
- FLOPPY_ACORN_ADFS_OLD_FORMAT,
- FLOPPY_ACORN_DOS_FORMAT,
- FLOPPY_FSD_FORMAT,
- FLOPPY_PC_FORMAT
-FLOPPY_FORMATS_END
+void bbc_acorn8271_device::floppy_formats(format_registration &fr)
+{
+ fr.add_pc_formats();
+ fr.add(FLOPPY_ACORN_SSD_FORMAT);
+ fr.add(FLOPPY_ACORN_DSD_FORMAT);
+ fr.add(FLOPPY_ACORN_ADFS_OLD_FORMAT);
+ fr.add(FLOPPY_ACORN_DOS_FORMAT);
+ fr.add(FLOPPY_FSD_FORMAT);
+}
static void bbc_floppies_525(device_slot_interface &device)
{
diff --git a/src/devices/bus/bbc/fdc/acorn.h b/src/devices/bus/bbc/fdc/acorn.h
index 13b434b156b..4efff61939d 100644
--- a/src/devices/bus/bbc/fdc/acorn.h
+++ b/src/devices/bus/bbc/fdc/acorn.h
@@ -32,7 +32,7 @@ public:
// construction/destruction
bbc_acorn8271_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- DECLARE_FLOPPY_FORMATS(floppy_formats);
+ static void floppy_formats(format_registration &fr);
protected:
// device-level overrides
diff --git a/src/devices/bus/bbc/fdc/ams.cpp b/src/devices/bus/bbc/fdc/ams.cpp
index 42c4a5cbd26..45df1222ac0 100644
--- a/src/devices/bus/bbc/fdc/ams.cpp
+++ b/src/devices/bus/bbc/fdc/ams.cpp
@@ -22,9 +22,11 @@ DEFINE_DEVICE_TYPE(BBC_AMS3, bbc_ams3_device, "bbc_ams3", "AMS 3\" Microdrive Di
// FLOPPY_FORMATS( ams3 )
//-------------------------------------------------
-FLOPPY_FORMATS_MEMBER( bbc_ams3_device::floppy_formats )
- FLOPPY_ACORN_SSD_FORMAT
-FLOPPY_FORMATS_END
+void bbc_ams3_device::floppy_formats(format_registration &fr)
+{
+ fr.add_mfm_containers();
+ fr.add(FLOPPY_ACORN_SSD_FORMAT);
+}
//-------------------------------------------------
diff --git a/src/devices/bus/bbc/fdc/ams.h b/src/devices/bus/bbc/fdc/ams.h
index 304666b5392..63ec45cf5df 100644
--- a/src/devices/bus/bbc/fdc/ams.h
+++ b/src/devices/bus/bbc/fdc/ams.h
@@ -29,7 +29,7 @@ public:
// construction/destruction
bbc_ams3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- DECLARE_FLOPPY_FORMATS(floppy_formats);
+ static void floppy_formats(format_registration &fr);
protected:
// device-level overrides
diff --git a/src/devices/bus/bbc/fdc/cumana.cpp b/src/devices/bus/bbc/fdc/cumana.cpp
index 0194e797c4b..bda106621e4 100644
--- a/src/devices/bus/bbc/fdc/cumana.cpp
+++ b/src/devices/bus/bbc/fdc/cumana.cpp
@@ -25,11 +25,13 @@ DEFINE_DEVICE_TYPE(BBC_CUMANA2, bbc_cumana2_device, "bbc_cumana2", "Cumana QFS I
// FLOPPY_FORMATS( floppy_formats )
//-------------------------------------------------
-FLOPPY_FORMATS_MEMBER( bbc_cumanafdc_device::floppy_formats )
- FLOPPY_ACORN_SSD_FORMAT,
- FLOPPY_ACORN_DSD_FORMAT,
- FLOPPY_FSD_FORMAT
-FLOPPY_FORMATS_END
+void bbc_cumanafdc_device::floppy_formats(format_registration &fr)
+{
+ fr.add_mfm_containers();
+ fr.add(FLOPPY_ACORN_SSD_FORMAT);
+ fr.add(FLOPPY_ACORN_DSD_FORMAT);
+ fr.add(FLOPPY_FSD_FORMAT);
+}
static void bbc_floppies_525(device_slot_interface &device)
{
diff --git a/src/devices/bus/bbc/fdc/cumana.h b/src/devices/bus/bbc/fdc/cumana.h
index 6e1a4f25011..0db76d83182 100644
--- a/src/devices/bus/bbc/fdc/cumana.h
+++ b/src/devices/bus/bbc/fdc/cumana.h
@@ -26,7 +26,7 @@ class bbc_cumanafdc_device :
public device_bbc_fdc_interface
{
public:
- DECLARE_FLOPPY_FORMATS(floppy_formats);
+ static void floppy_formats(format_registration &fr);
DECLARE_WRITE_LINE_MEMBER(fdc_intrq_w);
DECLARE_WRITE_LINE_MEMBER(fdc_drq_w);
diff --git a/src/devices/bus/bbc/fdc/cv1797.cpp b/src/devices/bus/bbc/fdc/cv1797.cpp
index 752b8d80128..32d517f35cb 100644
--- a/src/devices/bus/bbc/fdc/cv1797.cpp
+++ b/src/devices/bus/bbc/fdc/cv1797.cpp
@@ -28,11 +28,13 @@ DEFINE_DEVICE_TYPE(BBC_CV1797, bbc_cv1797_device, "bbc_cv1797", "Computer Villa
// FLOPPY_FORMATS( floppy_formats )
//-------------------------------------------------
-FLOPPY_FORMATS_MEMBER( bbc_cv1797_device::floppy_formats )
- FLOPPY_ACORN_SSD_FORMAT,
- FLOPPY_ACORN_DSD_FORMAT,
- FLOPPY_FSD_FORMAT
-FLOPPY_FORMATS_END
+void bbc_cv1797_device::floppy_formats(format_registration &fr)
+{
+ fr.add_mfm_containers();
+ fr.add(FLOPPY_ACORN_SSD_FORMAT);
+ fr.add(FLOPPY_ACORN_DSD_FORMAT);
+ fr.add(FLOPPY_FSD_FORMAT);
+}
static void bbc_floppies_525(device_slot_interface &device)
{
diff --git a/src/devices/bus/bbc/fdc/cv1797.h b/src/devices/bus/bbc/fdc/cv1797.h
index 8f0b272be86..16b870f963c 100644
--- a/src/devices/bus/bbc/fdc/cv1797.h
+++ b/src/devices/bus/bbc/fdc/cv1797.h
@@ -42,7 +42,7 @@ protected:
virtual void write(offs_t offset, uint8_t data) override;
private:
- DECLARE_FLOPPY_FORMATS(floppy_formats);
+ static void floppy_formats(format_registration &fr);
DECLARE_WRITE_LINE_MEMBER(fdc_sso_w);
DECLARE_WRITE_LINE_MEMBER(fdc_hld_w);
diff --git a/src/devices/bus/bbc/fdc/kenda.cpp b/src/devices/bus/bbc/fdc/kenda.cpp
index cd27b061f0c..801dd731200 100644
--- a/src/devices/bus/bbc/fdc/kenda.cpp
+++ b/src/devices/bus/bbc/fdc/kenda.cpp
@@ -36,10 +36,12 @@ DEFINE_DEVICE_TYPE(BBC_KENDA, bbc_kenda_device, "bbc_kenda", "Kenda Professiona
// FLOPPY_FORMATS( floppy_formats )
//-------------------------------------------------
-FLOPPY_FORMATS_MEMBER( bbc_kenda_device::floppy_formats )
- FLOPPY_ACORN_SSD_FORMAT,
- FLOPPY_ACORN_DSD_FORMAT
-FLOPPY_FORMATS_END
+void bbc_kenda_device::floppy_formats(format_registration &fr)
+{
+ fr.add_mfm_containers();
+ fr.add(FLOPPY_ACORN_SSD_FORMAT);
+ fr.add(FLOPPY_ACORN_DSD_FORMAT);
+}
//-------------------------------------------------
// SLOT_INTERFACE( bbc_floppies_525 )
diff --git a/src/devices/bus/bbc/fdc/kenda.h b/src/devices/bus/bbc/fdc/kenda.h
index 762b4241deb..99868f062fb 100644
--- a/src/devices/bus/bbc/fdc/kenda.h
+++ b/src/devices/bus/bbc/fdc/kenda.h
@@ -39,7 +39,7 @@ protected:
virtual void write(offs_t offset, uint8_t data) override;
private:
- DECLARE_FLOPPY_FORMATS(floppy_formats);
+ static void floppy_formats(format_registration &fr);
DECLARE_WRITE_LINE_MEMBER(motor_w);
diff --git a/src/devices/bus/bbc/fdc/opus.cpp b/src/devices/bus/bbc/fdc/opus.cpp
index 5f1727f8251..5aa339e09f1 100644
--- a/src/devices/bus/bbc/fdc/opus.cpp
+++ b/src/devices/bus/bbc/fdc/opus.cpp
@@ -31,13 +31,15 @@ DEFINE_DEVICE_TYPE(BBC_OPUS1770, bbc_opus1770_device, "bbc_opus1770", "Opus D-DO
// FLOPPY_FORMATS( floppy_formats )
//-------------------------------------------------
-FLOPPY_FORMATS_MEMBER( bbc_opusfdc_device::floppy_formats )
- FLOPPY_ACORN_SSD_FORMAT,
- FLOPPY_ACORN_DSD_FORMAT,
- FLOPPY_FSD_FORMAT,
- FLOPPY_OPUS_DDOS_FORMAT,
- FLOPPY_OPUS_DDCPM_FORMAT
-FLOPPY_FORMATS_END
+void bbc_opusfdc_device::floppy_formats(format_registration &fr)
+{
+ fr.add_mfm_containers();
+ fr.add(FLOPPY_ACORN_SSD_FORMAT);
+ fr.add(FLOPPY_ACORN_DSD_FORMAT);
+ fr.add(FLOPPY_FSD_FORMAT);
+ fr.add(FLOPPY_OPUS_DDOS_FORMAT);
+ fr.add(FLOPPY_OPUS_DDCPM_FORMAT);
+}
static void bbc_floppies_525(device_slot_interface &device)
{
diff --git a/src/devices/bus/bbc/fdc/opus.h b/src/devices/bus/bbc/fdc/opus.h
index 033fccc02c4..d3b0291abfc 100644
--- a/src/devices/bus/bbc/fdc/opus.h
+++ b/src/devices/bus/bbc/fdc/opus.h
@@ -51,7 +51,7 @@ class bbc_opusfdc_device :
public device_bbc_fdc_interface
{
public:
- DECLARE_FLOPPY_FORMATS(floppy_formats);
+ static void floppy_formats(format_registration &fr);
DECLARE_WRITE_LINE_MEMBER(motor_w);
diff --git a/src/devices/bus/bbc/fdc/solidisk.cpp b/src/devices/bus/bbc/fdc/solidisk.cpp
index 94921bf4b97..c342fc64355 100644
--- a/src/devices/bus/bbc/fdc/solidisk.cpp
+++ b/src/devices/bus/bbc/fdc/solidisk.cpp
@@ -29,12 +29,14 @@ DEFINE_DEVICE_TYPE(BBC_STLDFDC_1, bbc_stldfdc_1_device, "bbc_stldfdc_1", "Solidi
// FLOPPY_FORMATS( floppy_formats )
//-------------------------------------------------
-FLOPPY_FORMATS_MEMBER( bbc_stlfdc_device::floppy_formats )
- FLOPPY_ACORN_SSD_FORMAT,
- FLOPPY_ACORN_DSD_FORMAT,
- FLOPPY_ACORN_ADFS_OLD_FORMAT,
- FLOPPY_FSD_FORMAT
-FLOPPY_FORMATS_END
+void bbc_stlfdc_device::floppy_formats(format_registration &fr)
+{
+ fr.add_mfm_containers();
+ fr.add(FLOPPY_ACORN_SSD_FORMAT);
+ fr.add(FLOPPY_ACORN_DSD_FORMAT);
+ fr.add(FLOPPY_ACORN_ADFS_OLD_FORMAT);
+ fr.add(FLOPPY_FSD_FORMAT);
+}
static void bbc_floppies_525(device_slot_interface &device)
{
diff --git a/src/devices/bus/bbc/fdc/solidisk.h b/src/devices/bus/bbc/fdc/solidisk.h
index 1676d6fa54c..025db9ca332 100644
--- a/src/devices/bus/bbc/fdc/solidisk.h
+++ b/src/devices/bus/bbc/fdc/solidisk.h
@@ -28,7 +28,7 @@ class bbc_stlfdc_device :
public device_bbc_fdc_interface
{
public:
- DECLARE_FLOPPY_FORMATS(floppy_formats);
+ static void floppy_formats(format_registration &fr);
DECLARE_INPUT_CHANGED_MEMBER(fdc_changed);
protected:
diff --git a/src/devices/bus/bbc/fdc/udm.cpp b/src/devices/bus/bbc/fdc/udm.cpp
index bf4bb103395..dc078aa8dfa 100644
--- a/src/devices/bus/bbc/fdc/udm.cpp
+++ b/src/devices/bus/bbc/fdc/udm.cpp
@@ -22,11 +22,13 @@ DEFINE_DEVICE_TYPE(BBC_UDM, bbc_udm_device, "bbc_udm", "United Disk Memories DDF
// FLOPPY_FORMATS( udm )
//-------------------------------------------------
-FLOPPY_FORMATS_MEMBER( bbc_udm_device::floppy_formats )
- FLOPPY_ACORN_SSD_FORMAT,
- FLOPPY_ACORN_DSD_FORMAT,
- FLOPPY_FSD_FORMAT
-FLOPPY_FORMATS_END
+void bbc_udm_device::floppy_formats(format_registration &fr)
+{
+ fr.add_mfm_containers();
+ fr.add(FLOPPY_ACORN_SSD_FORMAT);
+ fr.add(FLOPPY_ACORN_DSD_FORMAT);
+ fr.add(FLOPPY_FSD_FORMAT);
+}
static void bbc_floppies_525(device_slot_interface &device)
{
diff --git a/src/devices/bus/bbc/fdc/udm.h b/src/devices/bus/bbc/fdc/udm.h
index 0cd6324f0ae..8e21917efb8 100644
--- a/src/devices/bus/bbc/fdc/udm.h
+++ b/src/devices/bus/bbc/fdc/udm.h
@@ -42,7 +42,7 @@ protected:
virtual void write(offs_t offset, uint8_t data) override;
private:
- DECLARE_FLOPPY_FORMATS(floppy_formats);
+ static void floppy_formats(format_registration &fr);
DECLARE_WRITE_LINE_MEMBER(intrq_w);
DECLARE_WRITE_LINE_MEMBER(drq_w);
diff --git a/src/devices/bus/bbc/fdc/watford.cpp b/src/devices/bus/bbc/fdc/watford.cpp
index 9a0764e604b..77953da1d6f 100644
--- a/src/devices/bus/bbc/fdc/watford.cpp
+++ b/src/devices/bus/bbc/fdc/watford.cpp
@@ -27,11 +27,13 @@ DEFINE_DEVICE_TYPE(BBC_WEDDB3, bbc_weddb3_device, "bbc_weddb3", "Watford Electro
// FLOPPY_FORMATS( floppy_formats )
//-------------------------------------------------
-FLOPPY_FORMATS_MEMBER( bbc_watfordfdc_device::floppy_formats )
- FLOPPY_ACORN_SSD_FORMAT,
- FLOPPY_ACORN_DSD_FORMAT,
- FLOPPY_FSD_FORMAT
-FLOPPY_FORMATS_END
+void bbc_watfordfdc_device::floppy_formats(format_registration &fr)
+{
+ fr.add_mfm_containers();
+ fr.add(FLOPPY_ACORN_SSD_FORMAT);
+ fr.add(FLOPPY_ACORN_DSD_FORMAT);
+ fr.add(FLOPPY_FSD_FORMAT);
+}
static void bbc_floppies_525(device_slot_interface &device)
{
diff --git a/src/devices/bus/bbc/fdc/watford.h b/src/devices/bus/bbc/fdc/watford.h
index 2f1cfa65c64..ac4c6e062f7 100644
--- a/src/devices/bus/bbc/fdc/watford.h
+++ b/src/devices/bus/bbc/fdc/watford.h
@@ -26,7 +26,7 @@ class bbc_watfordfdc_device :
public device_bbc_fdc_interface
{
public:
- DECLARE_FLOPPY_FORMATS(floppy_formats);
+ static void floppy_formats(format_registration &fr);
protected:
// construction/destruction
diff --git a/src/devices/bus/bbc/internal/cumana68k.cpp b/src/devices/bus/bbc/internal/cumana68k.cpp
index e89c3c22f71..672deaf91c0 100644
--- a/src/devices/bus/bbc/internal/cumana68k.cpp
+++ b/src/devices/bus/bbc/internal/cumana68k.cpp
@@ -44,9 +44,10 @@ void bbc_cumana68k_device::cumana68k_mem(address_map &map)
// FLOPPY_FORMATS( floppy_formats )
//-------------------------------------------------
-FLOPPY_FORMATS_MEMBER(bbc_cumana68k_device::floppy_formats)
- FLOPPY_OS9_FORMAT
-FLOPPY_FORMATS_END
+void bbc_cumana68k_device::floppy_formats(format_registration &fr)
+{
+ fr.add(FLOPPY_OS9_FORMAT);
+}
//-------------------------------------------------
// ROM( cumana68k )
diff --git a/src/devices/bus/bbc/internal/cumana68k.h b/src/devices/bus/bbc/internal/cumana68k.h
index 6c62cbf55af..ce0c31b16b6 100644
--- a/src/devices/bus/bbc/internal/cumana68k.h
+++ b/src/devices/bus/bbc/internal/cumana68k.h
@@ -40,7 +40,7 @@ public:
uint8_t mem6502_r(offs_t offset);
void mem6502_w(offs_t offset, uint8_t data);
- DECLARE_FLOPPY_FORMATS(floppy_formats);
+ static void floppy_formats(format_registration &fr);
protected:
// device-level overrides
diff --git a/src/devices/bus/bml3/bml3mp1802.cpp b/src/devices/bus/bml3/bml3mp1802.cpp
index bd6da666c3a..d00e364a093 100644
--- a/src/devices/bus/bml3/bml3mp1802.cpp
+++ b/src/devices/bus/bml3/bml3mp1802.cpp
@@ -61,10 +61,10 @@ void bml3bus_mp1802_device::device_add_mconfig(machine_config &config)
MB8866(config, m_fdc, CLK16M / 16); // 16MCLK divided by IC628 (HD74LS93P)
m_fdc->intrq_wr_callback().set(FUNC(bml3bus_mp1802_device::bml3_wd17xx_intrq_w));
- FLOPPY_CONNECTOR(config, m_floppy0, mp1802_floppies, "dd", floppy_image_device::default_floppy_formats);
- FLOPPY_CONNECTOR(config, m_floppy1, mp1802_floppies, "dd", floppy_image_device::default_floppy_formats);
- FLOPPY_CONNECTOR(config, m_floppy2, mp1802_floppies, nullptr, floppy_image_device::default_floppy_formats);
- FLOPPY_CONNECTOR(config, m_floppy3, mp1802_floppies, nullptr, floppy_image_device::default_floppy_formats);
+ FLOPPY_CONNECTOR(config, m_floppy0, mp1802_floppies, "dd", floppy_image_device::default_mfm_floppy_formats);
+ FLOPPY_CONNECTOR(config, m_floppy1, mp1802_floppies, "dd", floppy_image_device::default_mfm_floppy_formats);
+ FLOPPY_CONNECTOR(config, m_floppy2, mp1802_floppies, nullptr, floppy_image_device::default_mfm_floppy_formats);
+ FLOPPY_CONNECTOR(config, m_floppy3, mp1802_floppies, nullptr, floppy_image_device::default_mfm_floppy_formats);
}
//-------------------------------------------------
diff --git a/src/devices/bus/cbmiec/c1541.cpp b/src/devices/bus/cbmiec/c1541.cpp
index 62d29d71115..b8872947322 100644
--- a/src/devices/bus/cbmiec/c1541.cpp
+++ b/src/devices/bus/cbmiec/c1541.cpp
@@ -907,10 +907,11 @@ WRITE_LINE_MEMBER( c1541_device_base::byte_w )
// FLOPPY_FORMATS( floppy_formats )
//-------------------------------------------------
-FLOPPY_FORMATS_MEMBER( c1541_device_base::floppy_formats )
- FLOPPY_D64_FORMAT,
- FLOPPY_G64_FORMAT
-FLOPPY_FORMATS_END
+void c1541_device_base::floppy_formats(format_registration &fr)
+{
+ fr.add(FLOPPY_D64_FORMAT);
+ fr.add(FLOPPY_G64_FORMAT);
+}
uint8_t c1541_prologic_dos_classic_device::pia_r(offs_t offset)
diff --git a/src/devices/bus/cbmiec/c1541.h b/src/devices/bus/cbmiec/c1541.h
index d73974c3e63..de79cc95f90 100644
--- a/src/devices/bus/cbmiec/c1541.h
+++ b/src/devices/bus/cbmiec/c1541.h
@@ -80,7 +80,7 @@ private:
DECLARE_WRITE_LINE_MEMBER( atn_w );
DECLARE_WRITE_LINE_MEMBER( byte_w );
- DECLARE_FLOPPY_FORMATS( floppy_formats );
+ static void floppy_formats(format_registration &fr);
required_device<via6522_device> m_via0;
required_device<via6522_device> m_via1;
diff --git a/src/devices/bus/cbmiec/c1571.cpp b/src/devices/bus/cbmiec/c1571.cpp
index e711ce062ce..76a7160eb1a 100644
--- a/src/devices/bus/cbmiec/c1571.cpp
+++ b/src/devices/bus/cbmiec/c1571.cpp
@@ -574,11 +574,12 @@ void c1571_device::wpt_callback(floppy_image_device *floppy, int state)
// FLOPPY_FORMATS( floppy_formats )
//-------------------------------------------------
-FLOPPY_FORMATS_MEMBER( c1571_device::floppy_formats )
- FLOPPY_D64_FORMAT,
- FLOPPY_G64_FORMAT,
- FLOPPY_D71_FORMAT
-FLOPPY_FORMATS_END
+void c1571_device::floppy_formats(format_registration &fr)
+{
+ fr.add(FLOPPY_D64_FORMAT);
+ fr.add(FLOPPY_G64_FORMAT);
+ fr.add(FLOPPY_D71_FORMAT);
+}
//-------------------------------------------------
diff --git a/src/devices/bus/cbmiec/c1571.h b/src/devices/bus/cbmiec/c1571.h
index db4ba3e9e63..103da690a2c 100644
--- a/src/devices/bus/cbmiec/c1571.h
+++ b/src/devices/bus/cbmiec/c1571.h
@@ -64,7 +64,7 @@ public:
DECLARE_WRITE_LINE_MEMBER( byte_w );
- DECLARE_FLOPPY_FORMATS( floppy_formats );
+ static void floppy_formats(format_registration &fr);
void wpt_callback(floppy_image_device *floppy, int state);
diff --git a/src/devices/bus/cbmiec/c1581.cpp b/src/devices/bus/cbmiec/c1581.cpp
index ad2b4e054e2..3b57fcf9e03 100644
--- a/src/devices/bus/cbmiec/c1581.cpp
+++ b/src/devices/bus/cbmiec/c1581.cpp
@@ -258,9 +258,10 @@ static void c1581_floppies(device_slot_interface &device)
// FLOPPY_FORMATS( c1581_device::floppy_formats )
//-------------------------------------------------
-FLOPPY_FORMATS_MEMBER( c1581_device::floppy_formats )
- FLOPPY_D81_FORMAT
-FLOPPY_FORMATS_END
+void c1581_device::floppy_formats(format_registration &fr)
+{
+ fr.add(FLOPPY_D81_FORMAT);
+}
//-------------------------------------------------
diff --git a/src/devices/bus/cbmiec/c1581.h b/src/devices/bus/cbmiec/c1581.h
index b9aef830039..1fef8579460 100644
--- a/src/devices/bus/cbmiec/c1581.h
+++ b/src/devices/bus/cbmiec/c1581.h
@@ -76,7 +76,7 @@ private:
void c1581_mem(address_map &map);
- DECLARE_FLOPPY_FORMATS( floppy_formats );
+ static void floppy_formats(format_registration &fr);
required_device<cpu_device> m_maincpu;
required_device<mos6526_device> m_cia;
diff --git a/src/devices/bus/cbmiec/fd2000.cpp b/src/devices/bus/cbmiec/fd2000.cpp
index 057c77c7db9..34e06d70dbf 100644
--- a/src/devices/bus/cbmiec/fd2000.cpp
+++ b/src/devices/bus/cbmiec/fd2000.cpp
@@ -204,10 +204,10 @@ static void fd4000_floppies(device_slot_interface &device)
device.option_add("35ed", FLOPPY_35_ED); // TEAC FD-235J
}
/*
-FLOPPY_FORMATS_MEMBER( fd2000_device::floppy_formats )
+void fd2000_device::floppy_formats(format_registration &fr)
FLOPPY_D81_FORMAT
FLOPPY_D2M_FORMAT
-FLOPPY_FORMATS_END
+}
*/
@@ -231,7 +231,7 @@ void fd2000_device::device_add_mconfig(machine_config &config)
add_common_devices(config);
m_maincpu->set_addrmap(AS_PROGRAM, &fd2000_device::fd2000_mem);
DP8473(config, m_fdc, 24_MHz_XTAL);
- FLOPPY_CONNECTOR(config, DP8473V_TAG":0", fd2000_floppies, "35hd", floppy_image_device::default_floppy_formats, true);//fd2000_device::floppy_formats);
+ FLOPPY_CONNECTOR(config, DP8473V_TAG":0", fd2000_floppies, "35hd", floppy_image_device::default_mfm_floppy_formats, true);//fd2000_device::floppy_formats);
}
void fd4000_device::device_add_mconfig(machine_config &config)
@@ -239,7 +239,7 @@ void fd4000_device::device_add_mconfig(machine_config &config)
add_common_devices(config);
m_maincpu->set_addrmap(AS_PROGRAM, &fd4000_device::fd4000_mem);
PC8477A(config, m_fdc, 24_MHz_XTAL);
- FLOPPY_CONNECTOR(config, PC8477AV1_TAG":0", fd4000_floppies, "35ed", floppy_image_device::default_floppy_formats, true);//fd2000_device::floppy_formats);
+ FLOPPY_CONNECTOR(config, PC8477AV1_TAG":0", fd4000_floppies, "35ed", floppy_image_device::default_mfm_floppy_formats, true);//fd2000_device::floppy_formats);
}
diff --git a/src/devices/bus/cbmiec/fd2000.h b/src/devices/bus/cbmiec/fd2000.h
index 0f0ecdd2485..0b247405e7e 100644
--- a/src/devices/bus/cbmiec/fd2000.h
+++ b/src/devices/bus/cbmiec/fd2000.h
@@ -38,7 +38,7 @@ public:
uint8_t via_pb_r();
void via_pb_w(uint8_t data);
- //DECLARE_FLOPPY_FORMATS( floppy_formats );
+ //static void floppy_formats(format_registration &fr);
protected:
fd2000_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
diff --git a/src/devices/bus/cgenie/expansion/floppy.cpp b/src/devices/bus/cgenie/expansion/floppy.cpp
index ef1dd23128f..b6f0a9c30ac 100644
--- a/src/devices/bus/cgenie/expansion/floppy.cpp
+++ b/src/devices/bus/cgenie/expansion/floppy.cpp
@@ -38,9 +38,11 @@ void cgenie_fdc_device::mmio(address_map &map)
map(0xef, 0xef).mirror(0x10).rw("wd2793", FUNC(wd2793_device::data_r), FUNC(wd2793_device::data_w));
}
-FLOPPY_FORMATS_MEMBER( cgenie_fdc_device::floppy_formats )
- FLOPPY_CGENIE_FORMAT
-FLOPPY_FORMATS_END
+void cgenie_fdc_device::floppy_formats(format_registration &fr)
+{
+ fr.add_mfm_containers();
+ fr.add(FLOPPY_CGENIE_FORMAT);
+}
static void cgenie_floppies(device_slot_interface &device)
{
diff --git a/src/devices/bus/cgenie/expansion/floppy.h b/src/devices/bus/cgenie/expansion/floppy.h
index 80f1f47aa65..ca64b39f0d7 100644
--- a/src/devices/bus/cgenie/expansion/floppy.h
+++ b/src/devices/bus/cgenie/expansion/floppy.h
@@ -49,7 +49,7 @@ private:
void mmio(address_map &map);
- DECLARE_FLOPPY_FORMATS(floppy_formats);
+ static void floppy_formats(format_registration &fr);
required_device<wd2793_device> m_fdc;
required_device<floppy_connector> m_floppy0;
diff --git a/src/devices/bus/coco/coco_fdc.cpp b/src/devices/bus/coco/coco_fdc.cpp
index 9cbb6fe549f..d6c5e455e64 100644
--- a/src/devices/bus/coco/coco_fdc.cpp
+++ b/src/devices/bus/coco/coco_fdc.cpp
@@ -163,13 +163,15 @@ private:
LOCAL VARIABLES
***************************************************************************/
-FLOPPY_FORMATS_MEMBER( coco_family_fdc_device_base::floppy_formats )
- FLOPPY_DMK_FORMAT,
- FLOPPY_JVC_FORMAT,
- FLOPPY_VDK_FORMAT,
- FLOPPY_SDF_FORMAT,
- FLOPPY_OS9_FORMAT
-FLOPPY_FORMATS_END
+void coco_family_fdc_device_base::floppy_formats(format_registration &fr)
+{
+ fr.add_mfm_containers();
+ fr.add(FLOPPY_DMK_FORMAT);
+ fr.add(FLOPPY_JVC_FORMAT);
+ fr.add(FLOPPY_VDK_FORMAT);
+ fr.add(FLOPPY_SDF_FORMAT);
+ fr.add(FLOPPY_OS9_FORMAT);
+}
static void coco_fdc_floppies(device_slot_interface &device)
{
diff --git a/src/devices/bus/coco/coco_fdc.h b/src/devices/bus/coco/coco_fdc.h
index 2267b25674e..786d30c2f68 100644
--- a/src/devices/bus/coco/coco_fdc.h
+++ b/src/devices/bus/coco/coco_fdc.h
@@ -29,7 +29,7 @@ public:
DECLARE_WRITE_LINE_MEMBER(fdc_intrq_w) { m_intrq = state; update_lines(); }
DECLARE_WRITE_LINE_MEMBER(fdc_drq_w) { m_drq = state; update_lines(); }
- DECLARE_FLOPPY_FORMATS(floppy_formats);
+ static void floppy_formats(format_registration &fr);
protected:
// construction/destruction
diff --git a/src/devices/bus/compucolor/floppy.cpp b/src/devices/bus/compucolor/floppy.cpp
index fbe7912f6b6..166cc2d5bbb 100644
--- a/src/devices/bus/compucolor/floppy.cpp
+++ b/src/devices/bus/compucolor/floppy.cpp
@@ -33,9 +33,11 @@ void compucolor_floppy_port_devices(device_slot_interface &device)
// FLOPPY_FORMATS( floppy_formats )
//-------------------------------------------------
-FLOPPY_FORMATS_MEMBER( compucolor_floppy_device::floppy_formats )
- FLOPPY_CCVF_FORMAT
-FLOPPY_FORMATS_END
+void compucolor_floppy_device::floppy_formats(format_registration &fr)
+{
+ fr.add_fm_containers();
+ fr.add(FLOPPY_CCVF_FORMAT);
+}
//-------------------------------------------------
diff --git a/src/devices/bus/compucolor/floppy.h b/src/devices/bus/compucolor/floppy.h
index a4e476eb152..d2efe54ef80 100644
--- a/src/devices/bus/compucolor/floppy.h
+++ b/src/devices/bus/compucolor/floppy.h
@@ -89,7 +89,7 @@ protected:
virtual void select_w(int state) override;
private:
- DECLARE_FLOPPY_FORMATS( floppy_formats );
+ static void floppy_formats(format_registration &fr);
required_device<floppy_connector> m_floppy;
diff --git a/src/devices/bus/comx35/fdc.cpp b/src/devices/bus/comx35/fdc.cpp
index da1b6dcc028..077de3e2c4d 100644
--- a/src/devices/bus/comx35/fdc.cpp
+++ b/src/devices/bus/comx35/fdc.cpp
@@ -81,9 +81,11 @@ const tiny_rom_entry *comx_fd_device::device_rom_region() const
}
-FLOPPY_FORMATS_MEMBER( comx_fd_device::floppy_formats )
- FLOPPY_COMX35_FORMAT
-FLOPPY_FORMATS_END
+void comx_fd_device::floppy_formats(format_registration &fr)
+{
+ fr.add_mfm_containers();
+ fr.add(FLOPPY_COMX35_FORMAT);
+}
static void comx_fd_floppies(device_slot_interface &device)
{
diff --git a/src/devices/bus/comx35/fdc.h b/src/devices/bus/comx35/fdc.h
index 45617bb8580..6f2b5ea60bd 100644
--- a/src/devices/bus/comx35/fdc.h
+++ b/src/devices/bus/comx35/fdc.h
@@ -48,7 +48,7 @@ protected:
virtual void comx_io_w(offs_t offset, uint8_t data) override;
private:
- DECLARE_FLOPPY_FORMATS( floppy_formats );
+ static void floppy_formats(format_registration &fr);
// internal state
required_device<wd1770_device> m_fdc;
diff --git a/src/devices/bus/cpc/ddi1.cpp b/src/devices/bus/cpc/ddi1.cpp
index a5dbb596902..c80299c8f88 100644
--- a/src/devices/bus/cpc/ddi1.cpp
+++ b/src/devices/bus/cpc/ddi1.cpp
@@ -43,7 +43,7 @@ const tiny_rom_entry *cpc_ddi1_device::device_rom_region() const
void cpc_ddi1_device::device_add_mconfig(machine_config &config)
{
UPD765A(config, m_fdc, DERIVED_CLOCK(1, 1), true, true); // pin 50 clock multiplied to 8 MHz, then divided back down through SMC FDC9229BT
- FLOPPY_CONNECTOR(config, m_connector, ddi1_floppies, "3ssdd", floppy_image_device::default_floppy_formats);
+ FLOPPY_CONNECTOR(config, m_connector, ddi1_floppies, "3ssdd", floppy_image_device::default_mfm_floppy_formats);
SOFTWARE_LIST(config, "flop_list").set_original("cpc_flop");
// pass-through
diff --git a/src/devices/bus/econet/e01.cpp b/src/devices/bus/econet/e01.cpp
index 3326607b60c..d5b53c31440 100644
--- a/src/devices/bus/econet/e01.cpp
+++ b/src/devices/bus/econet/e01.cpp
@@ -169,9 +169,10 @@ WRITE_LINE_MEMBER( econet_e01_device::clk_en_w )
m_clk_en = state;
}
-FLOPPY_FORMATS_MEMBER( econet_e01_device::floppy_formats_afs )
- FLOPPY_AFS_FORMAT
-FLOPPY_FORMATS_END0
+void econet_e01_device::floppy_formats_afs(format_registration &fr)
+{
+ fr.add(FLOPPY_AFS_FORMAT);
+}
WRITE_LINE_MEMBER( econet_e01_device::fdc_irq_w )
{
diff --git a/src/devices/bus/econet/e01.h b/src/devices/bus/econet/e01.h
index 9c434b58768..efb4b548177 100644
--- a/src/devices/bus/econet/e01.h
+++ b/src/devices/bus/econet/e01.h
@@ -82,7 +82,7 @@ private:
uint8_t rtc_data_r();
void rtc_data_w(uint8_t data);
- DECLARE_FLOPPY_FORMATS(floppy_formats_afs);
+ static void floppy_formats_afs(format_registration &fr);
required_device<m65c02_device> m_maincpu;
required_device<wd2793_device> m_fdc;
diff --git a/src/devices/bus/electron/cart/ap34.cpp b/src/devices/bus/electron/cart/ap34.cpp
index 6d1b0188674..ecb3b9da30c 100644
--- a/src/devices/bus/electron/cart/ap34.cpp
+++ b/src/devices/bus/electron/cart/ap34.cpp
@@ -27,11 +27,13 @@ DEFINE_DEVICE_TYPE(ELECTRON_AP34, electron_ap34_device, "electron_ap34", "P.R.E.
// FLOPPY_FORMATS( ap34 )
//-------------------------------------------------
-FLOPPY_FORMATS_MEMBER(electron_ap34_device::floppy_formats)
- FLOPPY_ACORN_SSD_FORMAT,
- FLOPPY_ACORN_DSD_FORMAT,
- FLOPPY_ACORN_ADFS_OLD_FORMAT
-FLOPPY_FORMATS_END
+void electron_ap34_device::floppy_formats(format_registration &fr)
+{
+ fr.add_mfm_containers();
+ fr.add(FLOPPY_ACORN_SSD_FORMAT);
+ fr.add(FLOPPY_ACORN_DSD_FORMAT);
+ fr.add(FLOPPY_ACORN_ADFS_OLD_FORMAT);
+}
void ap34_floppies(device_slot_interface &device)
{
diff --git a/src/devices/bus/electron/cart/ap34.h b/src/devices/bus/electron/cart/ap34.h
index d58f0eab37e..ac84e7cd58f 100644
--- a/src/devices/bus/electron/cart/ap34.h
+++ b/src/devices/bus/electron/cart/ap34.h
@@ -41,7 +41,7 @@ protected:
private:
void wd1770_control_w(uint8_t data);
- DECLARE_FLOPPY_FORMATS(floppy_formats);
+ static void floppy_formats(format_registration &fr);
required_device<wd1770_device> m_fdc;
required_device_array<floppy_connector, 2> m_floppy;
diff --git a/src/devices/bus/electron/cart/cumana.cpp b/src/devices/bus/electron/cart/cumana.cpp
index e849748ed2a..9b854871e59 100644
--- a/src/devices/bus/electron/cart/cumana.cpp
+++ b/src/devices/bus/electron/cart/cumana.cpp
@@ -29,11 +29,13 @@ DEFINE_DEVICE_TYPE(ELECTRON_CUMANA, electron_cumana_device, "electron_cumana", "
// FLOPPY_FORMATS( cumana )
//-------------------------------------------------
-FLOPPY_FORMATS_MEMBER(electron_cumana_device::floppy_formats)
- FLOPPY_ACORN_SSD_FORMAT,
- FLOPPY_ACORN_DSD_FORMAT,
- FLOPPY_ACORN_ADFS_OLD_FORMAT
-FLOPPY_FORMATS_END
+void electron_cumana_device::floppy_formats(format_registration &fr)
+{
+ fr.add_mfm_containers();
+ fr.add(FLOPPY_ACORN_SSD_FORMAT);
+ fr.add(FLOPPY_ACORN_DSD_FORMAT);
+ fr.add(FLOPPY_ACORN_ADFS_OLD_FORMAT);
+}
void cumana_floppies(device_slot_interface &device)
{
diff --git a/src/devices/bus/electron/cart/cumana.h b/src/devices/bus/electron/cart/cumana.h
index 9a3bc2ab834..2dce4bbc78c 100644
--- a/src/devices/bus/electron/cart/cumana.h
+++ b/src/devices/bus/electron/cart/cumana.h
@@ -42,7 +42,7 @@ protected:
private:
void wd1793_control_w(uint8_t data);
- DECLARE_FLOPPY_FORMATS(floppy_formats);
+ static void floppy_formats(format_registration &fr);
required_device<fd1793_device> m_fdc;
required_device<floppy_connector> m_floppy0;
diff --git a/src/devices/bus/electron/cart/peg400.cpp b/src/devices/bus/electron/cart/peg400.cpp
index a832b25cfc6..cba69099613 100644
--- a/src/devices/bus/electron/cart/peg400.cpp
+++ b/src/devices/bus/electron/cart/peg400.cpp
@@ -25,11 +25,13 @@ DEFINE_DEVICE_TYPE(ELECTRON_PEG400, electron_peg400_device, "electron_peg400", "
// FLOPPY_FORMATS( peg400 )
//-------------------------------------------------
-FLOPPY_FORMATS_MEMBER(electron_peg400_device::floppy_formats)
- FLOPPY_ACORN_SSD_FORMAT,
- FLOPPY_ACORN_DSD_FORMAT,
- FLOPPY_ACORN_ADFS_OLD_FORMAT
-FLOPPY_FORMATS_END
+void electron_peg400_device::floppy_formats(format_registration &fr)
+{
+ fr.add_mfm_containers();
+ fr.add(FLOPPY_ACORN_SSD_FORMAT);
+ fr.add(FLOPPY_ACORN_DSD_FORMAT);
+ fr.add(FLOPPY_ACORN_ADFS_OLD_FORMAT);
+}
void peg400_floppies(device_slot_interface &device)
{
diff --git a/src/devices/bus/electron/cart/peg400.h b/src/devices/bus/electron/cart/peg400.h
index 035947a1e59..141cc1fe02f 100644
--- a/src/devices/bus/electron/cart/peg400.h
+++ b/src/devices/bus/electron/cart/peg400.h
@@ -39,7 +39,7 @@ protected:
private:
void wd1770_control_w(uint8_t data);
- DECLARE_FLOPPY_FORMATS(floppy_formats);
+ static void floppy_formats(format_registration &fr);
DECLARE_WRITE_LINE_MEMBER(fdc_drq_w);
required_device<wd1770_device> m_fdc;
diff --git a/src/devices/bus/electron/cart/stlefs.cpp b/src/devices/bus/electron/cart/stlefs.cpp
index 1b46c5d94eb..462ead401d1 100644
--- a/src/devices/bus/electron/cart/stlefs.cpp
+++ b/src/devices/bus/electron/cart/stlefs.cpp
@@ -27,11 +27,13 @@ DEFINE_DEVICE_TYPE(ELECTRON_STLEFS, electron_stlefs_device, "electron_stlefs", "
// FLOPPY_FORMATS( stlefs )
//-------------------------------------------------
-FLOPPY_FORMATS_MEMBER(electron_stlefs_device::floppy_formats)
- FLOPPY_ACORN_SSD_FORMAT,
- FLOPPY_ACORN_DSD_FORMAT,
- FLOPPY_ACORN_ADFS_OLD_FORMAT
-FLOPPY_FORMATS_END
+void electron_stlefs_device::floppy_formats(format_registration &fr)
+{
+ fr.add_mfm_containers();
+ fr.add(FLOPPY_ACORN_SSD_FORMAT);
+ fr.add(FLOPPY_ACORN_DSD_FORMAT);
+ fr.add(FLOPPY_ACORN_ADFS_OLD_FORMAT);
+}
void stlefs_floppies(device_slot_interface &device)
{
diff --git a/src/devices/bus/electron/cart/stlefs.h b/src/devices/bus/electron/cart/stlefs.h
index f34c680bf02..2ff8e53ea87 100644
--- a/src/devices/bus/electron/cart/stlefs.h
+++ b/src/devices/bus/electron/cart/stlefs.h
@@ -43,7 +43,7 @@ protected:
private:
void wd1770_control_w(uint8_t data);
- DECLARE_FLOPPY_FORMATS(floppy_formats);
+ static void floppy_formats(format_registration &fr);
required_device<input_merger_device> m_irqs;
required_device<bbc_1mhzbus_slot_device> m_1mhzbus;
diff --git a/src/devices/bus/electron/plus3.cpp b/src/devices/bus/electron/plus3.cpp
index 960d7384f33..1589bc722b9 100644
--- a/src/devices/bus/electron/plus3.cpp
+++ b/src/devices/bus/electron/plus3.cpp
@@ -30,11 +30,13 @@ DEFINE_DEVICE_TYPE(ELECTRON_PLUS3, electron_plus3_device, "electron_plus3", "Aco
// FLOPPY_FORMATS( plus3 )
//-------------------------------------------------
-FLOPPY_FORMATS_MEMBER(electron_plus3_device::floppy_formats)
- FLOPPY_ACORN_SSD_FORMAT,
- FLOPPY_ACORN_DSD_FORMAT,
- FLOPPY_ACORN_ADFS_OLD_FORMAT
-FLOPPY_FORMATS_END
+void electron_plus3_device::floppy_formats(format_registration &fr)
+{
+ fr.add_mfm_containers();
+ fr.add(FLOPPY_ACORN_SSD_FORMAT);
+ fr.add(FLOPPY_ACORN_DSD_FORMAT);
+ fr.add(FLOPPY_ACORN_ADFS_OLD_FORMAT);
+}
void electron_floppies(device_slot_interface &device)
{
diff --git a/src/devices/bus/electron/plus3.h b/src/devices/bus/electron/plus3.h
index 44de595a3db..2854557675b 100644
--- a/src/devices/bus/electron/plus3.h
+++ b/src/devices/bus/electron/plus3.h
@@ -39,7 +39,7 @@ protected:
private:
void wd1770_status_w(uint8_t data);
- DECLARE_FLOPPY_FORMATS(floppy_formats);
+ static void floppy_formats(format_registration &fr);
required_device<electron_expansion_slot_device> m_exp;
required_memory_region m_exp_rom;
diff --git a/src/devices/bus/ep64/exdos.cpp b/src/devices/bus/ep64/exdos.cpp
index 806f6411058..37f382955eb 100644
--- a/src/devices/bus/ep64/exdos.cpp
+++ b/src/devices/bus/ep64/exdos.cpp
@@ -89,9 +89,11 @@ const tiny_rom_entry *ep64_exdos_device::device_rom_region() const
// SLOT_INTERFACE( ep64_exdos_floppies )
//-------------------------------------------------
-FLOPPY_FORMATS_MEMBER( ep64_exdos_device::floppy_formats )
- FLOPPY_EP64_FORMAT
-FLOPPY_FORMATS_END
+void ep64_exdos_device::floppy_formats(format_registration &fr)
+{
+ fr.add_mfm_containers();
+ fr.add(FLOPPY_EP64_FORMAT);
+}
static void ep64_exdos_floppies(device_slot_interface &device)
{
diff --git a/src/devices/bus/ep64/exdos.h b/src/devices/bus/ep64/exdos.h
index fc8600f3aaa..cb5f9d47cc7 100644
--- a/src/devices/bus/ep64/exdos.h
+++ b/src/devices/bus/ep64/exdos.h
@@ -44,7 +44,7 @@ protected:
virtual void device_add_mconfig(machine_config &config) override;
private:
- DECLARE_FLOPPY_FORMATS( floppy_formats );
+ static void floppy_formats(format_registration &fr);
required_device<wd1770_device> m_fdc;
required_device<floppy_connector> m_floppy0;
diff --git a/src/devices/bus/epson_sio/pf10.cpp b/src/devices/bus/epson_sio/pf10.cpp
index e4119498fba..d41b247ba53 100644
--- a/src/devices/bus/epson_sio/pf10.cpp
+++ b/src/devices/bus/epson_sio/pf10.cpp
@@ -71,7 +71,7 @@ void epson_pf10_device::device_add_mconfig(machine_config &config)
m_cpu->out_ser_tx_cb().set(FUNC(epson_pf10_device::hd6303_tx_w));
UPD765A(config, m_fdc, 4'000'000, false, true);
- FLOPPY_CONNECTOR(config, m_floppy, pf10_floppies, "smd165", floppy_image_device::default_floppy_formats);
+ FLOPPY_CONNECTOR(config, m_floppy, pf10_floppies, "smd165", floppy_image_device::default_mfm_floppy_formats);
EPSON_SIO(config, m_sio_output, nullptr);
m_sio_output->rx_callback().set(DEVICE_SELF, FUNC(epson_pf10_device::rxc_w));
diff --git a/src/devices/bus/epson_sio/tf20.cpp b/src/devices/bus/epson_sio/tf20.cpp
index bcdce81a34b..955763555ff 100644
--- a/src/devices/bus/epson_sio/tf20.cpp
+++ b/src/devices/bus/epson_sio/tf20.cpp
@@ -107,7 +107,7 @@ void epson_tf20_device::device_add_mconfig(machine_config &config)
// floppy drives
for (auto &fd : m_fd)
- FLOPPY_CONNECTOR(config, fd, tf20_floppies, "sd320", floppy_image_device::default_floppy_formats);
+ FLOPPY_CONNECTOR(config, fd, tf20_floppies, "sd320", floppy_image_device::default_mfm_floppy_formats);
// serial interface to another device
EPSON_SIO(config, m_sio_output, nullptr);
diff --git a/src/devices/bus/hexbus/hx5102.cpp b/src/devices/bus/hexbus/hx5102.cpp
index 64fb31d57b0..69bfaf3dfaf 100644
--- a/src/devices/bus/hexbus/hx5102.cpp
+++ b/src/devices/bus/hexbus/hx5102.cpp
@@ -625,10 +625,12 @@ WRITE_LINE_MEMBER( hx5102_device::fdc_drq_w )
/*
Define the floppy formats.
*/
-FLOPPY_FORMATS_MEMBER(hx5102_device::floppy_formats)
- FLOPPY_TI99_SDF_FORMAT,
- FLOPPY_TI99_TDF_FORMAT
-FLOPPY_FORMATS_END
+void hx5102_device::floppy_formats(format_registration &fr)
+{
+ fr.add_mfm_containers();
+ fr.add(FLOPPY_TI99_SDF_FORMAT);
+ fr.add(FLOPPY_TI99_TDF_FORMAT);
+}
/*
Only one fixed floppy drive in the device.
diff --git a/src/devices/bus/hexbus/hx5102.h b/src/devices/bus/hexbus/hx5102.h
index ac7b9e6a88b..15d717bd028 100644
--- a/src/devices/bus/hexbus/hx5102.h
+++ b/src/devices/bus/hexbus/hx5102.h
@@ -46,7 +46,7 @@ protected:
DECLARE_WRITE_LINE_MEMBER( clock_out );
DECLARE_WRITE_LINE_MEMBER( board_ready );
DECLARE_WRITE_LINE_MEMBER( board_reset );
- DECLARE_FLOPPY_FORMATS( floppy_formats );
+ static void floppy_formats(format_registration &fr);
void device_start() override;
void device_reset() override;
diff --git a/src/devices/bus/hp9845_io/hp9885.cpp b/src/devices/bus/hp9845_io/hp9885.cpp
index f54b4973c44..ed782054504 100644
--- a/src/devices/bus/hp9845_io/hp9885.cpp
+++ b/src/devices/bus/hp9845_io/hp9885.cpp
@@ -303,10 +303,9 @@ WRITE_LINE_MEMBER(hp9885_device::preset_w)
LOG("PRESET = %d\n" , state);
}
-static const floppy_format_type hp9885_floppy_formats[] = {
- FLOPPY_MFI_FORMAT,
- FLOPPY_HPI_FORMAT,
- nullptr
+static void hp9885_floppy_formats(format_registration &fr)
+{
+ fr.add(FLOPPY_HPI_FORMAT);
};
void hp9885_device::device_add_mconfig(machine_config &config)
diff --git a/src/devices/bus/ieee488/c2031.cpp b/src/devices/bus/ieee488/c2031.cpp
index a01e42ec113..4efdd03e7b5 100644
--- a/src/devices/bus/ieee488/c2031.cpp
+++ b/src/devices/bus/ieee488/c2031.cpp
@@ -284,10 +284,11 @@ WRITE_LINE_MEMBER( c2031_device::byte_w )
// FLOPPY_FORMATS( floppy_formats )
//-------------------------------------------------
-FLOPPY_FORMATS_MEMBER( c2031_device::floppy_formats )
- FLOPPY_D64_FORMAT,
- FLOPPY_G64_FORMAT
-FLOPPY_FORMATS_END
+void c2031_device::floppy_formats(format_registration &fr)
+{
+ fr.add(FLOPPY_D64_FORMAT);
+ fr.add(FLOPPY_G64_FORMAT);
+}
//-------------------------------------------------
diff --git a/src/devices/bus/ieee488/c2031.h b/src/devices/bus/ieee488/c2031.h
index 7279af034dd..f3a0dc02074 100644
--- a/src/devices/bus/ieee488/c2031.h
+++ b/src/devices/bus/ieee488/c2031.h
@@ -61,7 +61,7 @@ private:
void c2031_mem(address_map &map);
- DECLARE_FLOPPY_FORMATS( floppy_formats );
+ static void floppy_formats(format_registration &fr);
required_device<m6502_device> m_maincpu;
required_device<via6522_device> m_via0;
diff --git a/src/devices/bus/ieee488/c2040.cpp b/src/devices/bus/ieee488/c2040.cpp
index cc8ff042235..886dd01bbf2 100644
--- a/src/devices/bus/ieee488/c2040.cpp
+++ b/src/devices/bus/ieee488/c2040.cpp
@@ -420,30 +420,33 @@ static void c2040_floppies(device_slot_interface &device)
// FLOPPY_FORMATS( floppy_formats )
//-------------------------------------------------
-FLOPPY_FORMATS_MEMBER( c2040_device::floppy_formats )
- FLOPPY_C3040_FORMAT,
- FLOPPY_G64_FORMAT
-FLOPPY_FORMATS_END
+void c2040_device::floppy_formats(format_registration &fr)
+{
+ fr.add(FLOPPY_C3040_FORMAT);
+ fr.add(FLOPPY_G64_FORMAT);
+}
//-------------------------------------------------
// FLOPPY_FORMATS( floppy_formats )
//-------------------------------------------------
-FLOPPY_FORMATS_MEMBER( c3040_device::floppy_formats )
- FLOPPY_C3040_FORMAT,
- FLOPPY_G64_FORMAT
-FLOPPY_FORMATS_END
+void c3040_device::floppy_formats(format_registration &fr)
+{
+ fr.add(FLOPPY_C3040_FORMAT);
+ fr.add(FLOPPY_G64_FORMAT);
+}
//-------------------------------------------------
// FLOPPY_FORMATS( floppy_formats )
//-------------------------------------------------
-FLOPPY_FORMATS_MEMBER( c4040_device::floppy_formats )
- FLOPPY_C4040_FORMAT,
- FLOPPY_G64_FORMAT
-FLOPPY_FORMATS_END
+void c4040_device::floppy_formats(format_registration &fr)
+{
+ fr.add(FLOPPY_C4040_FORMAT);
+ fr.add(FLOPPY_G64_FORMAT);
+}
//-------------------------------------------------
diff --git a/src/devices/bus/ieee488/c2040.h b/src/devices/bus/ieee488/c2040.h
index 3984b93130b..41f4f4f967e 100644
--- a/src/devices/bus/ieee488/c2040.h
+++ b/src/devices/bus/ieee488/c2040.h
@@ -69,7 +69,7 @@ protected:
void add_common_devices(machine_config &config);
inline void update_ieee_signals();
- DECLARE_FLOPPY_FORMATS( floppy_formats );
+ static void floppy_formats(format_registration &fr);
required_device<m6502_device> m_maincpu;
required_device<m6504_device> m_fdccpu;
@@ -106,7 +106,7 @@ protected:
virtual void device_add_mconfig(machine_config &config) override;
private:
- DECLARE_FLOPPY_FORMATS( floppy_formats );
+ static void floppy_formats(format_registration &fr);
};
@@ -124,7 +124,7 @@ protected:
virtual void device_add_mconfig(machine_config &config) override;
private:
- DECLARE_FLOPPY_FORMATS( floppy_formats );
+ static void floppy_formats(format_registration &fr);
};
diff --git a/src/devices/bus/ieee488/c8050.cpp b/src/devices/bus/ieee488/c8050.cpp
index 7c25022051f..60358de4944 100644
--- a/src/devices/bus/ieee488/c8050.cpp
+++ b/src/devices/bus/ieee488/c8050.cpp
@@ -473,9 +473,10 @@ static void c8050_floppies(device_slot_interface &device)
// FLOPPY_FORMATS( floppy_formats )
//-------------------------------------------------
-FLOPPY_FORMATS_MEMBER( c8050_device::floppy_formats )
- FLOPPY_D80_FORMAT
-FLOPPY_FORMATS_END
+void c8050_device::floppy_formats(format_registration &fr)
+{
+ fr.add(FLOPPY_D80_FORMAT);
+}
//-------------------------------------------------
@@ -502,30 +503,33 @@ static void sfd1001_floppies(device_slot_interface &device)
// FLOPPY_FORMATS( floppy_formats )
//-------------------------------------------------
-FLOPPY_FORMATS_MEMBER( c8250_device::floppy_formats )
- FLOPPY_D80_FORMAT,
- FLOPPY_D82_FORMAT
-FLOPPY_FORMATS_END
+void c8250_device::floppy_formats(format_registration &fr)
+{
+ fr.add(FLOPPY_D80_FORMAT);
+ fr.add(FLOPPY_D82_FORMAT);
+}
//-------------------------------------------------
// FLOPPY_FORMATS( floppy_formats )
//-------------------------------------------------
-FLOPPY_FORMATS_MEMBER( c8250lp_device::floppy_formats )
- FLOPPY_D80_FORMAT,
- FLOPPY_D82_FORMAT
-FLOPPY_FORMATS_END
+void c8250lp_device::floppy_formats(format_registration &fr)
+{
+ fr.add(FLOPPY_D80_FORMAT);
+ fr.add(FLOPPY_D82_FORMAT);
+}
//-------------------------------------------------
// FLOPPY_FORMATS( floppy_formats )
//-------------------------------------------------
-FLOPPY_FORMATS_MEMBER( sfd1001_device::floppy_formats )
- FLOPPY_D80_FORMAT,
- FLOPPY_D82_FORMAT
-FLOPPY_FORMATS_END
+void sfd1001_device::floppy_formats(format_registration &fr)
+{
+ fr.add(FLOPPY_D80_FORMAT);
+ fr.add(FLOPPY_D82_FORMAT);
+}
void c8050_device::add_common_devices(machine_config &config)
diff --git a/src/devices/bus/ieee488/c8050.h b/src/devices/bus/ieee488/c8050.h
index bc317097d9b..a8047617408 100644
--- a/src/devices/bus/ieee488/c8050.h
+++ b/src/devices/bus/ieee488/c8050.h
@@ -82,7 +82,7 @@ protected:
int m_ifc;
private:
- DECLARE_FLOPPY_FORMATS( floppy_formats );
+ static void floppy_formats(format_registration &fr);
};
@@ -99,7 +99,7 @@ protected:
virtual void device_add_mconfig(machine_config &config) override;
private:
- DECLARE_FLOPPY_FORMATS( floppy_formats );
+ static void floppy_formats(format_registration &fr);
};
@@ -117,7 +117,7 @@ protected:
virtual void device_add_mconfig(machine_config &config) override;
private:
- DECLARE_FLOPPY_FORMATS( floppy_formats );
+ static void floppy_formats(format_registration &fr);
};
@@ -135,7 +135,7 @@ protected:
virtual void device_add_mconfig(machine_config &config) override;
private:
- DECLARE_FLOPPY_FORMATS( floppy_formats );
+ static void floppy_formats(format_registration &fr);
};
diff --git a/src/devices/bus/ieee488/c8280.cpp b/src/devices/bus/ieee488/c8280.cpp
index be6f8fde4ff..1d9eb476110 100644
--- a/src/devices/bus/ieee488/c8280.cpp
+++ b/src/devices/bus/ieee488/c8280.cpp
@@ -284,9 +284,11 @@ static void c8280_floppies(device_slot_interface &device)
device.option_add("8dsdd", FLOPPY_8_DSDD);
}
-FLOPPY_FORMATS_MEMBER( c8280_device::floppy_formats )
- FLOPPY_C8280_FORMAT
-FLOPPY_FORMATS_END
+void c8280_device::floppy_formats(format_registration &fr)
+{
+ fr.add_mfm_containers();
+ fr.add(FLOPPY_C8280_FORMAT);
+}
//-------------------------------------------------
diff --git a/src/devices/bus/ieee488/c8280.h b/src/devices/bus/ieee488/c8280.h
index aefa8060bb5..1317a6c13f7 100644
--- a/src/devices/bus/ieee488/c8280.h
+++ b/src/devices/bus/ieee488/c8280.h
@@ -61,7 +61,7 @@ private:
void c8280_fdc_mem(address_map &map);
void c8280_main_mem(address_map &map);
- DECLARE_FLOPPY_FORMATS( floppy_formats );
+ static void floppy_formats(format_registration &fr);
required_device<cpu_device> m_maincpu;
required_device<cpu_device> m_fdccpu;
diff --git a/src/devices/bus/ieee488/hp9122c.cpp b/src/devices/bus/ieee488/hp9122c.cpp
index 4f9cb76bff1..0c6788c213d 100644
--- a/src/devices/bus/ieee488/hp9122c.cpp
+++ b/src/devices/bus/ieee488/hp9122c.cpp
@@ -355,12 +355,6 @@ static void hp9122c_floppies(device_slot_interface &device)
device.option_add("35hd" , FLOPPY_35_HD);
}
-static const floppy_format_type hp9122c_floppy_formats[] = {
- FLOPPY_MFI_FORMAT,
- FLOPPY_TD0_FORMAT,
- nullptr
-};
-
const tiny_rom_entry *hp9122c_device::device_rom_region() const
{
return ROM_NAME(hp9122c);
@@ -399,7 +393,7 @@ void hp9122c_device::device_add_mconfig(machine_config &config)
m_i8291a->int_write().set(FUNC(hp9122c_device::i8291a_int_w));
m_i8291a->dreq_write().set(FUNC(hp9122c_device::i8291a_dreq_w));
- FLOPPY_CONNECTOR(config, "floppy0" , hp9122c_floppies , "35hd" , hp9122c_floppy_formats, true).enable_sound(true);
- FLOPPY_CONNECTOR(config, "floppy1" , hp9122c_floppies , "35hd" , hp9122c_floppy_formats, true).enable_sound(true);
+ FLOPPY_CONNECTOR(config, "floppy0" , hp9122c_floppies , "35hd" , nullptr, true).enable_sound(true);
+ FLOPPY_CONNECTOR(config, "floppy1" , hp9122c_floppies , "35hd" , nullptr, true).enable_sound(true);
config.set_default_layout(layout_hp9122c);
}
diff --git a/src/devices/bus/ieee488/hp9895.cpp b/src/devices/bus/ieee488/hp9895.cpp
index e7338e211b7..ee23db8c6cb 100644
--- a/src/devices/bus/ieee488/hp9895.cpp
+++ b/src/devices/bus/ieee488/hp9895.cpp
@@ -874,10 +874,9 @@ static void hp9895_floppies(device_slot_interface &device)
device.option_add("8dsdd" , FLOPPY_8_DSDD);
}
-static const floppy_format_type hp9895_floppy_formats[] = {
- FLOPPY_MFI_FORMAT,
- FLOPPY_HPI_FORMAT,
- nullptr
+static void hp9895_floppy_formats(format_registration &fr)
+{
+ fr.add(FLOPPY_HPI_FORMAT);
};
const tiny_rom_entry *hp9895_device::device_rom_region() const
diff --git a/src/devices/bus/iq151/disc2.cpp b/src/devices/bus/iq151/disc2.cpp
index 0fde6792d40..76dfcf2ce13 100644
--- a/src/devices/bus/iq151/disc2.cpp
+++ b/src/devices/bus/iq151/disc2.cpp
@@ -15,9 +15,11 @@
IMPLEMENTATION
***************************************************************************/
-FLOPPY_FORMATS_MEMBER( iq151_disc2_device::floppy_formats )
- FLOPPY_IQ151_FORMAT
-FLOPPY_FORMATS_END
+void iq151_disc2_device::floppy_formats(format_registration &fr)
+{
+ fr.add_fm_containers();
+ fr.add(FLOPPY_IQ151_FORMAT);
+}
static void iq151_disc2_floppies(device_slot_interface &device)
{
diff --git a/src/devices/bus/iq151/disc2.h b/src/devices/bus/iq151/disc2.h
index b0421418363..776bb9363fd 100644
--- a/src/devices/bus/iq151/disc2.h
+++ b/src/devices/bus/iq151/disc2.h
@@ -38,7 +38,7 @@ protected:
virtual void io_write(offs_t offset, uint8_t data) override;
private:
- DECLARE_FLOPPY_FORMATS( floppy_formats );
+ static void floppy_formats(format_registration &fr);
required_device<upd765a_device> m_fdc;
uint8_t * m_rom;
diff --git a/src/devices/bus/isa/fdc.cpp b/src/devices/bus/isa/fdc.cpp
index aab99b12ed5..3cd3f093ac7 100644
--- a/src/devices/bus/isa/fdc.cpp
+++ b/src/devices/bus/isa/fdc.cpp
@@ -17,11 +17,12 @@
#include "logmacro.h"
-FLOPPY_FORMATS_MEMBER( isa8_fdc_device::floppy_formats )
- FLOPPY_PC_FORMAT,
- FLOPPY_NASLITE_FORMAT,
- FLOPPY_IBMXDF_FORMAT
-FLOPPY_FORMATS_END
+void isa8_fdc_device::floppy_formats(format_registration &fr)
+{
+ fr.add_pc_formats();
+ fr.add(FLOPPY_NASLITE_FORMAT);
+ fr.add(FLOPPY_IBMXDF_FORMAT);
+}
static void pc_dd_floppies(device_slot_interface &device)
{
diff --git a/src/devices/bus/isa/fdc.h b/src/devices/bus/isa/fdc.h
index d4321ca4210..00431ef3e5c 100644
--- a/src/devices/bus/isa/fdc.h
+++ b/src/devices/bus/isa/fdc.h
@@ -28,7 +28,7 @@ class isa8_fdc_device :
public:
DECLARE_WRITE_LINE_MEMBER( irq_w );
DECLARE_WRITE_LINE_MEMBER( drq_w );
- DECLARE_FLOPPY_FORMATS( floppy_formats );
+ static void floppy_formats(format_registration &fr);
protected:
// construction/destruction
diff --git a/src/devices/bus/isa/mc1502_fdc.cpp b/src/devices/bus/isa/mc1502_fdc.cpp
index e7cfd7c3f28..85c8eda25aa 100644
--- a/src/devices/bus/isa/mc1502_fdc.cpp
+++ b/src/devices/bus/isa/mc1502_fdc.cpp
@@ -19,10 +19,6 @@
DEFINE_DEVICE_TYPE(MC1502_FDC, mc1502_fdc_device, "mc1502_fdc", "MC-1502 floppy")
-FLOPPY_FORMATS_MEMBER( mc1502_fdc_device::floppy_formats )
- FLOPPY_PC_FORMAT
-FLOPPY_FORMATS_END
-
static void mc1502_floppies(device_slot_interface &device)
{
device.option_add("525qd", FLOPPY_525_QD);
@@ -45,8 +41,8 @@ void mc1502_fdc_device::device_add_mconfig(machine_config &config)
FD1793(config, m_fdc, 16_MHz_XTAL / 16);
m_fdc->intrq_wr_callback().set(FUNC(mc1502_fdc_device::mc1502_fdc_irq_drq));
m_fdc->drq_wr_callback().set(FUNC(mc1502_fdc_device::mc1502_fdc_irq_drq));
- FLOPPY_CONNECTOR(config, "fdc:0", mc1502_floppies, "525qd", mc1502_fdc_device::floppy_formats);
- FLOPPY_CONNECTOR(config, "fdc:1", mc1502_floppies, "525qd", mc1502_fdc_device::floppy_formats);
+ FLOPPY_CONNECTOR(config, "fdc:0", mc1502_floppies, "525qd", floppy_image_device::default_pc_floppy_formats);
+ FLOPPY_CONNECTOR(config, "fdc:1", mc1502_floppies, "525qd", floppy_image_device::default_pc_floppy_formats);
}
//-------------------------------------------------
diff --git a/src/devices/bus/isa/mc1502_fdc.h b/src/devices/bus/isa/mc1502_fdc.h
index 50981e606d0..45fde02945d 100644
--- a/src/devices/bus/isa/mc1502_fdc.h
+++ b/src/devices/bus/isa/mc1502_fdc.h
@@ -45,8 +45,6 @@ protected:
virtual const tiny_rom_entry *device_rom_region() const override;
private:
- DECLARE_FLOPPY_FORMATS(floppy_formats);
-
DECLARE_WRITE_LINE_MEMBER(mc1502_fdc_irq_drq);
required_device<fd1793_device> m_fdc;
diff --git a/src/devices/bus/isa/mufdc.cpp b/src/devices/bus/isa/mufdc.cpp
index 652090d7c1d..2a078f812f9 100644
--- a/src/devices/bus/isa/mufdc.cpp
+++ b/src/devices/bus/isa/mufdc.cpp
@@ -28,10 +28,11 @@
DEFINE_DEVICE_TYPE(ISA8_FDC344, fdc344_device, "fdc344", "Ably-Tech FDC-344")
DEFINE_DEVICE_TYPE(ISA8_FDCMAG, fdcmag_device, "fdcmag", "Magitronic Multi Floppy Controller Card")
-FLOPPY_FORMATS_MEMBER( mufdc_device::floppy_formats )
- FLOPPY_PC_FORMAT,
- FLOPPY_NASLITE_FORMAT
-FLOPPY_FORMATS_END
+void mufdc_device::floppy_formats(format_registration &fr)
+{
+ fr.add_pc_formats();
+ fr.add(FLOPPY_NASLITE_FORMAT);
+}
static void drives(device_slot_interface &device)
{
diff --git a/src/devices/bus/isa/mufdc.h b/src/devices/bus/isa/mufdc.h
index 1b7b949dc0d..b746d135003 100644
--- a/src/devices/bus/isa/mufdc.h
+++ b/src/devices/bus/isa/mufdc.h
@@ -51,7 +51,7 @@ protected:
virtual void eop_w(int state) override;
private:
- DECLARE_FLOPPY_FORMATS( floppy_formats );
+ static void floppy_formats(format_registration &fr);
uint8_t fdc_input_r();
DECLARE_WRITE_LINE_MEMBER( fdc_irq_w );
diff --git a/src/devices/bus/isa/myb3k_fdc.cpp b/src/devices/bus/isa/myb3k_fdc.cpp
index 6aab8787c6b..1ca69a19be5 100644
--- a/src/devices/bus/isa/myb3k_fdc.cpp
+++ b/src/devices/bus/isa/myb3k_fdc.cpp
@@ -56,19 +56,6 @@ void isa8_myb3k_fdc471x_device_base::map(address_map &map)
map(0x05, 0x05).r(FUNC(isa8_myb3k_fdc471x_device_base::myb3k_fdc_status));
}
-FLOPPY_FORMATS_MEMBER( isa8_myb3k_fdc4710_device::myb3k_floppy_formats )
- FLOPPY_IMD_FORMAT
-FLOPPY_FORMATS_END
-
-FLOPPY_FORMATS_MEMBER( isa8_myb3k_fdc4711_device::myb3k_floppy_formats )
- FLOPPY_PC_FORMAT,
- FLOPPY_IMD_FORMAT
-FLOPPY_FORMATS_END
-
-FLOPPY_FORMATS_MEMBER( isa8_myb3k_fdc4712_device::myb3k_floppy_formats )
- FLOPPY_IMD_FORMAT
-FLOPPY_FORMATS_END
-
static void myb3k_sd_floppies(device_slot_interface &device)
{
device.option_add("525sd", FLOPPY_525_SD);
@@ -97,8 +84,8 @@ void isa8_myb3k_fdc471x_device_base::device_add_mconfig(machine_config &config)
void isa8_myb3k_fdc4710_device::device_add_mconfig(machine_config &config)
{
MB8876(config, m_fdc, XTAL(15'974'400) / 8); /* From StepOne schematics */
- FLOPPY_CONNECTOR(config, m_floppy_connectors[0], myb3k_sd_floppies, "525sd", isa8_myb3k_fdc4710_device::myb3k_floppy_formats);
- FLOPPY_CONNECTOR(config, m_floppy_connectors[1], myb3k_sd_floppies, "525sd", isa8_myb3k_fdc4710_device::myb3k_floppy_formats);
+ FLOPPY_CONNECTOR(config, m_floppy_connectors[0], myb3k_sd_floppies, "525sd", floppy_image_device::default_mfm_floppy_formats);
+ FLOPPY_CONNECTOR(config, m_floppy_connectors[1], myb3k_sd_floppies, "525sd", floppy_image_device::default_mfm_floppy_formats);
isa8_myb3k_fdc471x_device_base::device_add_mconfig(config);
}
@@ -107,10 +94,10 @@ void isa8_myb3k_fdc4710_device::device_add_mconfig(machine_config &config)
void isa8_myb3k_fdc4711_device::device_add_mconfig(machine_config &config)
{
FD1791(config, m_fdc, XTAL(15'974'400) / 16);
- FLOPPY_CONNECTOR(config, m_floppy_connectors[0], myb3k_qd_floppies, "525qd", isa8_myb3k_fdc4711_device::myb3k_floppy_formats);
- FLOPPY_CONNECTOR(config, m_floppy_connectors[1], myb3k_qd_floppies, "525qd", isa8_myb3k_fdc4711_device::myb3k_floppy_formats);
- FLOPPY_CONNECTOR(config, m_floppy_connectors[2], myb3k_qd_floppies, "525qd", isa8_myb3k_fdc4711_device::myb3k_floppy_formats);
- FLOPPY_CONNECTOR(config, m_floppy_connectors[3], myb3k_qd_floppies, "525qd", isa8_myb3k_fdc4711_device::myb3k_floppy_formats);
+ FLOPPY_CONNECTOR(config, m_floppy_connectors[0], myb3k_qd_floppies, "525qd", floppy_image_device::default_pc_floppy_formats);
+ FLOPPY_CONNECTOR(config, m_floppy_connectors[1], myb3k_qd_floppies, "525qd", floppy_image_device::default_pc_floppy_formats);
+ FLOPPY_CONNECTOR(config, m_floppy_connectors[2], myb3k_qd_floppies, "525qd", floppy_image_device::default_pc_floppy_formats);
+ FLOPPY_CONNECTOR(config, m_floppy_connectors[3], myb3k_qd_floppies, "525qd", floppy_image_device::default_pc_floppy_formats);
isa8_myb3k_fdc471x_device_base::device_add_mconfig(config);
}
@@ -118,10 +105,10 @@ void isa8_myb3k_fdc4711_device::device_add_mconfig(machine_config &config)
void isa8_myb3k_fdc4712_device::device_add_mconfig(machine_config &config)
{
MB8876(config, m_fdc, XTAL(15'974'400) / 8);
- FLOPPY_CONNECTOR(config, m_floppy_connectors[0], myb3k_8inch_floppies, "8dsdd", isa8_myb3k_fdc4712_device::myb3k_floppy_formats);
- FLOPPY_CONNECTOR(config, m_floppy_connectors[1], myb3k_8inch_floppies, "8dsdd", isa8_myb3k_fdc4712_device::myb3k_floppy_formats);
- FLOPPY_CONNECTOR(config, m_floppy_connectors[2], myb3k_8inch_floppies, "8dsdd", isa8_myb3k_fdc4712_device::myb3k_floppy_formats);
- FLOPPY_CONNECTOR(config, m_floppy_connectors[3], myb3k_8inch_floppies, "8dsdd", isa8_myb3k_fdc4712_device::myb3k_floppy_formats);
+ FLOPPY_CONNECTOR(config, m_floppy_connectors[0], myb3k_8inch_floppies, "8dsdd", floppy_image_device::default_mfm_floppy_formats);
+ FLOPPY_CONNECTOR(config, m_floppy_connectors[1], myb3k_8inch_floppies, "8dsdd", floppy_image_device::default_mfm_floppy_formats);
+ FLOPPY_CONNECTOR(config, m_floppy_connectors[2], myb3k_8inch_floppies, "8dsdd", floppy_image_device::default_mfm_floppy_formats);
+ FLOPPY_CONNECTOR(config, m_floppy_connectors[3], myb3k_8inch_floppies, "8dsdd", floppy_image_device::default_mfm_floppy_formats);
isa8_myb3k_fdc471x_device_base::device_add_mconfig(config);
}
diff --git a/src/devices/bus/isa/myb3k_fdc.h b/src/devices/bus/isa/myb3k_fdc.h
index cb194f387eb..2da81d33d43 100644
--- a/src/devices/bus/isa/myb3k_fdc.h
+++ b/src/devices/bus/isa/myb3k_fdc.h
@@ -75,9 +75,6 @@ protected:
// device-level overrides
virtual void device_add_mconfig(machine_config &config) override;
-
-private:
- DECLARE_FLOPPY_FORMATS( myb3k_floppy_formats );
};
class isa8_myb3k_fdc4711_device : public isa8_myb3k_fdc471x_device_base
@@ -92,9 +89,6 @@ protected:
// device-level overrides
virtual void device_add_mconfig(machine_config &config) override;
-
-private:
- DECLARE_FLOPPY_FORMATS( myb3k_floppy_formats );
};
class isa8_myb3k_fdc4712_device : public isa8_myb3k_fdc471x_device_base
@@ -114,9 +108,6 @@ protected:
virtual uint8_t myb3k_fdc_status() override;
uint8_t selected_drive;
-
-private:
- DECLARE_FLOPPY_FORMATS( myb3k_floppy_formats );
};
// device type definition
diff --git a/src/devices/bus/isa/omti8621.cpp b/src/devices/bus/isa/omti8621.cpp
index e9c80e126d3..f14d6808291 100644
--- a/src/devices/bus/isa/omti8621.cpp
+++ b/src/devices/bus/isa/omti8621.cpp
@@ -204,11 +204,12 @@ static void pc_hd_floppies(device_slot_interface &device)
device.option_add("35dd", FLOPPY_35_DD);
}
-FLOPPY_FORMATS_MEMBER( omti8621_device::floppy_formats )
- FLOPPY_APOLLO_FORMAT,
- FLOPPY_PC_FORMAT,
- FLOPPY_NASLITE_FORMAT
-FLOPPY_FORMATS_END
+void omti8621_device::floppy_formats(format_registration &fr)
+{
+ fr.add_pc_formats();
+ fr.add(FLOPPY_APOLLO_FORMAT);
+ fr.add(FLOPPY_NASLITE_FORMAT);
+}
// this card has two EPROMs: a program for the on-board Z8 CPU,
// and a PC BIOS to make the card bootable on a PC.
diff --git a/src/devices/bus/isa/omti8621.h b/src/devices/bus/isa/omti8621.h
index 0308b61eee6..6aabeb85780 100644
--- a/src/devices/bus/isa/omti8621.h
+++ b/src/devices/bus/isa/omti8621.h
@@ -73,7 +73,7 @@ protected:
private:
DECLARE_WRITE_LINE_MEMBER( fdc_irq_w );
DECLARE_WRITE_LINE_MEMBER( fdc_drq_w );
- DECLARE_FLOPPY_FORMATS( floppy_formats );
+ static void floppy_formats(format_registration &fr);
void fd_moten_w(uint8_t data);
void fd_rate_w(uint8_t data);
diff --git a/src/devices/bus/isa/p1_fdc.cpp b/src/devices/bus/isa/p1_fdc.cpp
index 92915dc3d9b..390f98727b0 100644
--- a/src/devices/bus/isa/p1_fdc.cpp
+++ b/src/devices/bus/isa/p1_fdc.cpp
@@ -19,10 +19,6 @@
DEFINE_DEVICE_TYPE(P1_FDC, p1_fdc_device, "p1_fdc", "Poisk-1 floppy B504")
-FLOPPY_FORMATS_MEMBER( p1_fdc_device::floppy_formats )
- FLOPPY_PC_FORMAT
-FLOPPY_FORMATS_END
-
static void poisk1_floppies(device_slot_interface &device)
{
device.option_add("525qd", FLOPPY_525_QD);
@@ -55,8 +51,8 @@ void p1_fdc_device::device_add_mconfig(machine_config &config)
FD1793(config, m_fdc, 16_MHz_XTAL / 16);
m_fdc->intrq_wr_callback().set(FUNC(p1_fdc_device::p1_fdc_irq_drq));
m_fdc->drq_wr_callback().set(FUNC(p1_fdc_device::p1_fdc_irq_drq));
- FLOPPY_CONNECTOR(config, "fdc:0", poisk1_floppies, "525qd", p1_fdc_device::floppy_formats);
- FLOPPY_CONNECTOR(config, "fdc:1", poisk1_floppies, "525qd", p1_fdc_device::floppy_formats);
+ FLOPPY_CONNECTOR(config, "fdc:0", poisk1_floppies, "525qd", floppy_image_device::default_pc_floppy_formats);
+ FLOPPY_CONNECTOR(config, "fdc:1", poisk1_floppies, "525qd", floppy_image_device::default_pc_floppy_formats);
}
//-------------------------------------------------
diff --git a/src/devices/bus/isa/p1_fdc.h b/src/devices/bus/isa/p1_fdc.h
index c78bfce7bf7..ceeb278f5c7 100644
--- a/src/devices/bus/isa/p1_fdc.h
+++ b/src/devices/bus/isa/p1_fdc.h
@@ -43,8 +43,6 @@ protected:
virtual const tiny_rom_entry *device_rom_region() const override;
private:
- DECLARE_FLOPPY_FORMATS(floppy_formats);
-
DECLARE_WRITE_LINE_MEMBER(p1_fdc_irq_drq);
required_device<fd1793_device> m_fdc;
diff --git a/src/devices/bus/isbx/compis_fdc.cpp b/src/devices/bus/isbx/compis_fdc.cpp
index fea0e7f59b5..3cfed059e70 100644
--- a/src/devices/bus/isbx/compis_fdc.cpp
+++ b/src/devices/bus/isbx/compis_fdc.cpp
@@ -39,9 +39,11 @@ WRITE_LINE_MEMBER( compis_fdc_device::fdc_drq )
m_slot->mdrqt_w(state);
}
-FLOPPY_FORMATS_MEMBER( compis_fdc_device::floppy_formats )
- FLOPPY_CPIS_FORMAT
-FLOPPY_FORMATS_END
+void compis_fdc_device::floppy_formats(format_registration &fr)
+{
+ fr.add_mfm_containers();
+ fr.add(FLOPPY_CPIS_FORMAT);
+}
static void compis_floppies(device_slot_interface &device)
{
diff --git a/src/devices/bus/isbx/compis_fdc.h b/src/devices/bus/isbx/compis_fdc.h
index af1d71a3af2..5e50b3a3696 100644
--- a/src/devices/bus/isbx/compis_fdc.h
+++ b/src/devices/bus/isbx/compis_fdc.h
@@ -50,7 +50,7 @@ protected:
private:
DECLARE_WRITE_LINE_MEMBER( fdc_irq );
DECLARE_WRITE_LINE_MEMBER( fdc_drq );
- DECLARE_FLOPPY_FORMATS( floppy_formats );
+ static void floppy_formats(format_registration &fr);
required_device<i8272a_device> m_fdc;
required_device<floppy_connector> m_floppy0;
diff --git a/src/devices/bus/isbx/isbc_218a.cpp b/src/devices/bus/isbx/isbc_218a.cpp
index 8e57a13877b..3c1dd92b4fa 100644
--- a/src/devices/bus/isbx/isbc_218a.cpp
+++ b/src/devices/bus/isbx/isbc_218a.cpp
@@ -24,11 +24,6 @@
DEFINE_DEVICE_TYPE(ISBC_218A, isbc_218a_device, "isbc_218a", "ISBX 218a for ISBC")
-
-//-------------------------------------------------
-// floppy_format_type floppy_formats
-//-------------------------------------------------
-
WRITE_LINE_MEMBER( isbc_218a_device::fdc_irq )
{
m_slot->mintr1_w(state);
@@ -39,10 +34,6 @@ WRITE_LINE_MEMBER( isbc_218a_device::fdc_drq )
m_slot->mdrqt_w(state);
}
-FLOPPY_FORMATS_MEMBER( isbc_218a_device::floppy_formats )
- FLOPPY_PC_FORMAT
-FLOPPY_FORMATS_END
-
static void isbc_218a_floppies(device_slot_interface &device)
{
device.option_add("8dd", FLOPPY_8_DSDD);
@@ -60,7 +51,7 @@ void isbc_218a_device::device_add_mconfig(machine_config &config)
I8272A(config, m_fdc, 8_MHz_XTAL, true);
m_fdc->intrq_wr_callback().set(FUNC(isbc_218a_device::fdc_irq));
m_fdc->drq_wr_callback().set(FUNC(isbc_218a_device::fdc_drq));
- FLOPPY_CONNECTOR(config, m_floppy0, isbc_218a_floppies, "525dd", isbc_218a_device::floppy_formats);
+ FLOPPY_CONNECTOR(config, m_floppy0, isbc_218a_floppies, "525dd", floppy_image_device::default_pc_floppy_formats);
}
diff --git a/src/devices/bus/isbx/isbc_218a.h b/src/devices/bus/isbx/isbc_218a.h
index bdf37c52806..c654c74aae8 100644
--- a/src/devices/bus/isbx/isbc_218a.h
+++ b/src/devices/bus/isbx/isbc_218a.h
@@ -51,7 +51,7 @@ protected:
private:
DECLARE_WRITE_LINE_MEMBER( fdc_irq );
DECLARE_WRITE_LINE_MEMBER( fdc_drq );
- DECLARE_FLOPPY_FORMATS( floppy_formats );
+ static void floppy_formats(format_registration &fr);
required_device<i8272a_device> m_fdc;
required_device<floppy_connector> m_floppy0;
diff --git a/src/devices/bus/kc/d004.cpp b/src/devices/bus/kc/d004.cpp
index 8ca2f7b547b..183130b78c6 100644
--- a/src/devices/bus/kc/d004.cpp
+++ b/src/devices/bus/kc/d004.cpp
@@ -52,9 +52,11 @@ void kc_d004_gide_device::kc_d004_gide_io(address_map &map)
map(0x00fc, 0x00ff).mirror(0xff00).rw(Z80CTC_TAG, FUNC(z80ctc_device::read), FUNC(z80ctc_device::write));
}
-FLOPPY_FORMATS_MEMBER( kc_d004_device::floppy_formats )
- FLOPPY_KC85_FORMAT
-FLOPPY_FORMATS_END
+void kc_d004_device::floppy_formats(format_registration &fr)
+{
+ fr.add_mfm_containers();
+ fr.add(FLOPPY_KC85_FORMAT);
+}
static void kc_d004_floppies(device_slot_interface &device)
{
diff --git a/src/devices/bus/kc/d004.h b/src/devices/bus/kc/d004.h
index 948e3066882..83829250e99 100644
--- a/src/devices/bus/kc/d004.h
+++ b/src/devices/bus/kc/d004.h
@@ -54,7 +54,7 @@ protected:
required_device<z80_device> m_cpu;
private:
- DECLARE_FLOPPY_FORMATS( floppy_formats );
+ static void floppy_formats(format_registration &fr);
DECLARE_WRITE_LINE_MEMBER( fdc_irq );
diff --git a/src/devices/bus/msx_cart/disk.cpp b/src/devices/bus/msx_cart/disk.cpp
index 7bbbdd292c0..9898f0747f1 100644
--- a/src/devices/bus/msx_cart/disk.cpp
+++ b/src/devices/bus/msx_cart/disk.cpp
@@ -111,9 +111,11 @@ DEFINE_DEVICE_TYPE(MSX_CART_FSFD1A, msx_cart_fsfd1a_device, "msx_cart_fsfd1a",
DEFINE_DEVICE_TYPE(MSX_CART_FSCF351, msx_cart_fscf351_device, "msx_cart_fscf351", "MSX Cartridge - FS-CF351")
-FLOPPY_FORMATS_MEMBER( msx_cart_disk_device::floppy_formats )
- FLOPPY_MSX_FORMAT
-FLOPPY_FORMATS_END
+void msx_cart_disk_device::floppy_formats(format_registration &fr)
+{
+ fr.add_mfm_containers();
+ fr.add(FLOPPY_MSX_FORMAT);
+}
static void msx_floppies(device_slot_interface &device)
diff --git a/src/devices/bus/msx_cart/disk.h b/src/devices/bus/msx_cart/disk.h
index ce238992349..fd8d640157f 100644
--- a/src/devices/bus/msx_cart/disk.h
+++ b/src/devices/bus/msx_cart/disk.h
@@ -29,7 +29,7 @@ protected:
optional_device<floppy_connector> m_floppy1;
floppy_image_device *m_floppy;
- DECLARE_FLOPPY_FORMATS(floppy_formats);
+ static void floppy_formats(format_registration &fr);
};
diff --git a/src/devices/bus/mtx/sdx.cpp b/src/devices/bus/mtx/sdx.cpp
index 150ff7b6d1a..61d19a11fa6 100644
--- a/src/devices/bus/mtx/sdx.cpp
+++ b/src/devices/bus/mtx/sdx.cpp
@@ -29,9 +29,11 @@ static void sdx_floppies(device_slot_interface &device)
device.option_add("525qd", FLOPPY_525_QD);
}
-FLOPPY_FORMATS_MEMBER(mtx_sdx_device::floppy_formats)
- FLOPPY_MTX_FORMAT
-FLOPPY_FORMATS_END
+void mtx_sdx_device::floppy_formats(format_registration &fr)
+{
+ fr.add_mfm_containers();
+ fr.add(FLOPPY_MTX_FORMAT);
+}
//-------------------------------------------------
// ROM( sdx )
diff --git a/src/devices/bus/mtx/sdx.h b/src/devices/bus/mtx/sdx.h
index 1554c671245..d701a4d3c64 100644
--- a/src/devices/bus/mtx/sdx.h
+++ b/src/devices/bus/mtx/sdx.h
@@ -27,7 +27,7 @@ class mtx_sdx_device :
public device_mtx_exp_interface
{
public:
- DECLARE_FLOPPY_FORMATS(floppy_formats);
+ static void floppy_formats(format_registration &fr);
// optional information overrides
virtual ioport_constructor device_input_ports() const override;
diff --git a/src/devices/bus/multibus/isbc202.cpp b/src/devices/bus/multibus/isbc202.cpp
index 77efce95e82..56c3871191d 100644
--- a/src/devices/bus/multibus/isbc202.cpp
+++ b/src/devices/bus/multibus/isbc202.cpp
@@ -497,10 +497,9 @@ static void isbc202_floppies(device_slot_interface &device)
device.option_add("8ssdd" , FLOPPY_8_SSDD);
}
-static const floppy_format_type isbc202_floppy_formats[] = {
- FLOPPY_MFI_FORMAT,
- FLOPPY_IMG_FORMAT,
- nullptr
+static void isbc202_floppy_formats(format_registration &fr)
+{
+ fr.add(FLOPPY_IMG_FORMAT);
};
void isbc202_device::device_add_mconfig(machine_config &config)
diff --git a/src/devices/bus/nasbus/floppy.cpp b/src/devices/bus/nasbus/floppy.cpp
index a2a1c2df5f2..3ada48aa19a 100644
--- a/src/devices/bus/nasbus/floppy.cpp
+++ b/src/devices/bus/nasbus/floppy.cpp
@@ -24,9 +24,11 @@
DEFINE_DEVICE_TYPE(NASCOM_FDC, nascom_fdc_device, "nascom_fdc", "Nascom Floppy Disc Controller")
-FLOPPY_FORMATS_MEMBER( nascom_fdc_device::floppy_formats )
- FLOPPY_NASCOM_FORMAT
-FLOPPY_FORMATS_END
+void nascom_fdc_device::floppy_formats(format_registration &fr)
+{
+ fr.add_mfm_containers();
+ fr.add(FLOPPY_NASCOM_FORMAT);
+}
static void nascom_floppies(device_slot_interface &device)
{
diff --git a/src/devices/bus/nasbus/floppy.h b/src/devices/bus/nasbus/floppy.h
index 2ce536fa176..abf623e5e10 100644
--- a/src/devices/bus/nasbus/floppy.h
+++ b/src/devices/bus/nasbus/floppy.h
@@ -41,7 +41,7 @@ protected:
private:
TIMER_CALLBACK_MEMBER(motor_off);
- DECLARE_FLOPPY_FORMATS(floppy_formats);
+ static void floppy_formats(format_registration &fr);
required_device<fd1793_device> m_fdc;
required_device<floppy_connector> m_floppy0;
diff --git a/src/devices/bus/newbrain/fdc.cpp b/src/devices/bus/newbrain/fdc.cpp
index 7cadbd0bddd..a356d034a39 100644
--- a/src/devices/bus/newbrain/fdc.cpp
+++ b/src/devices/bus/newbrain/fdc.cpp
@@ -113,10 +113,10 @@ void newbrain_fdc_device::device_add_mconfig(machine_config &config)
UPD765A(config, m_fdc, 8'000'000, false, true);
m_fdc->intrq_wr_callback().set(FUNC(newbrain_fdc_device::fdc_int_w));
- FLOPPY_CONNECTOR(config, UPD765_TAG ":0", newbrain_floppies, "525dd", floppy_image_device::default_floppy_formats);
- FLOPPY_CONNECTOR(config, UPD765_TAG ":1", newbrain_floppies, "525dd", floppy_image_device::default_floppy_formats);
- FLOPPY_CONNECTOR(config, UPD765_TAG ":2", newbrain_floppies, nullptr, floppy_image_device::default_floppy_formats);
- FLOPPY_CONNECTOR(config, UPD765_TAG ":3", newbrain_floppies, nullptr, floppy_image_device::default_floppy_formats);
+ FLOPPY_CONNECTOR(config, UPD765_TAG ":0", newbrain_floppies, "525dd", floppy_image_device::default_mfm_floppy_formats);
+ FLOPPY_CONNECTOR(config, UPD765_TAG ":1", newbrain_floppies, "525dd", floppy_image_device::default_mfm_floppy_formats);
+ FLOPPY_CONNECTOR(config, UPD765_TAG ":2", newbrain_floppies, nullptr, floppy_image_device::default_mfm_floppy_formats);
+ FLOPPY_CONNECTOR(config, UPD765_TAG ":3", newbrain_floppies, nullptr, floppy_image_device::default_mfm_floppy_formats);
NEWBRAIN_EXPANSION_SLOT(config, m_exp, XTAL(16'000'000)/8, newbrain_expansion_cards, nullptr);
}
diff --git a/src/devices/bus/oricext/jasmin.cpp b/src/devices/bus/oricext/jasmin.cpp
index 1ba77f6579f..dabae07c7c9 100644
--- a/src/devices/bus/oricext/jasmin.cpp
+++ b/src/devices/bus/oricext/jasmin.cpp
@@ -11,9 +11,11 @@ ROM_START( jasmin )
ROM_LOAD("jasmin.rom", 0, 0x800, CRC(37220e89) SHA1(70e59b8abd67092f050462abc6cb5271e4c15f01) )
ROM_END
-FLOPPY_FORMATS_MEMBER( oric_jasmin_device::floppy_formats )
- FLOPPY_ORIC_DSK_FORMAT
-FLOPPY_FORMATS_END
+void oric_jasmin_device::floppy_formats(format_registration &fr)
+{
+ fr.add_mfm_containers();
+ fr.add(FLOPPY_ORIC_DSK_FORMAT);
+}
static void jasmin_floppies(device_slot_interface &device)
{
diff --git a/src/devices/bus/oricext/jasmin.h b/src/devices/bus/oricext/jasmin.h
index 43823b788f1..17baba8aaad 100644
--- a/src/devices/bus/oricext/jasmin.h
+++ b/src/devices/bus/oricext/jasmin.h
@@ -36,7 +36,7 @@ private:
void map(address_map &map);
- DECLARE_FLOPPY_FORMATS(floppy_formats);
+ static void floppy_formats(format_registration &fr);
required_device<wd1770_device> m_fdc;
required_device<ls259_device> m_fdlatch;
diff --git a/src/devices/bus/oricext/microdisc.cpp b/src/devices/bus/oricext/microdisc.cpp
index d705237b19f..31ef1a7941d 100644
--- a/src/devices/bus/oricext/microdisc.cpp
+++ b/src/devices/bus/oricext/microdisc.cpp
@@ -11,9 +11,11 @@ ROM_START( microdisc )
ROM_LOAD ("microdis.rom", 0, 0x02000, CRC(a9664a9c) SHA1(0d2ef6e67322f48f4b7e08d8bbe68827e2074561) )
ROM_END
-FLOPPY_FORMATS_MEMBER( oric_microdisc_device::floppy_formats )
- FLOPPY_ORIC_DSK_FORMAT
-FLOPPY_FORMATS_END
+void oric_microdisc_device::floppy_formats(format_registration &fr)
+{
+ fr.add_mfm_containers();
+ fr.add(FLOPPY_ORIC_DSK_FORMAT);
+}
static void microdisc_floppies(device_slot_interface &device)
{
diff --git a/src/devices/bus/oricext/microdisc.h b/src/devices/bus/oricext/microdisc.h
index ba3ac19aa49..312a9b69954 100644
--- a/src/devices/bus/oricext/microdisc.h
+++ b/src/devices/bus/oricext/microdisc.h
@@ -51,7 +51,7 @@ private:
void map(address_map &map);
- DECLARE_FLOPPY_FORMATS(floppy_formats);
+ static void floppy_formats(format_registration &fr);
};
#endif // MAME_BUS_ORICEXT_MICRODISC_H
diff --git a/src/devices/bus/plus4/c1551.cpp b/src/devices/bus/plus4/c1551.cpp
index 4f9b60cc163..5811f7b42f7 100644
--- a/src/devices/bus/plus4/c1551.cpp
+++ b/src/devices/bus/plus4/c1551.cpp
@@ -323,10 +323,11 @@ void c1551_device::c1551_mem(address_map &map)
// FLOPPY_FORMATS( floppy_formats )
//-------------------------------------------------
-FLOPPY_FORMATS_MEMBER( c1551_device::floppy_formats )
- FLOPPY_D64_FORMAT,
- FLOPPY_G64_FORMAT
-FLOPPY_FORMATS_END
+void c1551_device::floppy_formats(format_registration &fr)
+{
+ fr.add(FLOPPY_D64_FORMAT);
+ fr.add(FLOPPY_G64_FORMAT);
+}
//-------------------------------------------------
diff --git a/src/devices/bus/plus4/c1551.h b/src/devices/bus/plus4/c1551.h
index 3fce289461c..acf933a4b5a 100644
--- a/src/devices/bus/plus4/c1551.h
+++ b/src/devices/bus/plus4/c1551.h
@@ -65,7 +65,7 @@ private:
void c1551_mem(address_map &map);
- DECLARE_FLOPPY_FORMATS( floppy_formats );
+ static void floppy_formats(format_registration &fr);
enum
{
diff --git a/src/devices/bus/ql/sandy_superdisk.cpp b/src/devices/bus/ql/sandy_superdisk.cpp
index 1af96f2de81..45b0f3035a4 100644
--- a/src/devices/bus/ql/sandy_superdisk.cpp
+++ b/src/devices/bus/ql/sandy_superdisk.cpp
@@ -62,9 +62,11 @@ static void sandy_super_disk_floppies(device_slot_interface &device)
// FLOPPY_FORMATS( floppy_formats )
//-------------------------------------------------
-FLOPPY_FORMATS_MEMBER( sandy_super_disk_device::floppy_formats )
- FLOPPY_QL_FORMAT
-FLOPPY_FORMATS_END
+void sandy_super_disk_device::floppy_formats(format_registration &fr)
+{
+ fr.add_mfm_containers();
+ fr.add(FLOPPY_QL_FORMAT);
+}
//-------------------------------------------------
diff --git a/src/devices/bus/ql/sandy_superdisk.h b/src/devices/bus/ql/sandy_superdisk.h
index 5a264272e12..8f821e953ad 100644
--- a/src/devices/bus/ql/sandy_superdisk.h
+++ b/src/devices/bus/ql/sandy_superdisk.h
@@ -47,7 +47,7 @@ protected:
private:
WRITE_LINE_MEMBER( busy_w );
- DECLARE_FLOPPY_FORMATS( floppy_formats );
+ static void floppy_formats(format_registration &fr);
void check_interrupt();
diff --git a/src/devices/bus/ql/sandy_superqboard.cpp b/src/devices/bus/ql/sandy_superqboard.cpp
index 4d4a712b010..ad1ce340524 100644
--- a/src/devices/bus/ql/sandy_superqboard.cpp
+++ b/src/devices/bus/ql/sandy_superqboard.cpp
@@ -75,9 +75,11 @@ static void sandy_superqboard_floppies(device_slot_interface &device)
// FLOPPY_FORMATS( floppy_formats )
//-------------------------------------------------
-FLOPPY_FORMATS_MEMBER( sandy_superqboard_device::floppy_formats )
- FLOPPY_QL_FORMAT
-FLOPPY_FORMATS_END
+void sandy_superqboard_device::floppy_formats(format_registration &fr)
+{
+ fr.add_mfm_containers();
+ fr.add(FLOPPY_QL_FORMAT);
+}
//-------------------------------------------------
diff --git a/src/devices/bus/ql/sandy_superqboard.h b/src/devices/bus/ql/sandy_superqboard.h
index 347703673de..244d0e8a54f 100644
--- a/src/devices/bus/ql/sandy_superqboard.h
+++ b/src/devices/bus/ql/sandy_superqboard.h
@@ -52,7 +52,7 @@ protected:
private:
WRITE_LINE_MEMBER( busy_w );
- DECLARE_FLOPPY_FORMATS( floppy_formats );
+ static void floppy_formats(format_registration &fr);
enum
{
diff --git a/src/devices/bus/ql/trumpcard.cpp b/src/devices/bus/ql/trumpcard.cpp
index da5fece8726..7c51ad3c220 100644
--- a/src/devices/bus/ql/trumpcard.cpp
+++ b/src/devices/bus/ql/trumpcard.cpp
@@ -77,9 +77,11 @@ static void ql_trump_card_floppies(device_slot_interface &device)
// FLOPPY_FORMATS( floppy_formats )
//-------------------------------------------------
-FLOPPY_FORMATS_MEMBER( ql_trump_card_device::floppy_formats )
- FLOPPY_QL_FORMAT
-FLOPPY_FORMATS_END
+void ql_trump_card_device::floppy_formats(format_registration &fr)
+{
+ fr.add_mfm_containers();
+ fr.add(FLOPPY_QL_FORMAT);
+}
//-------------------------------------------------
diff --git a/src/devices/bus/ql/trumpcard.h b/src/devices/bus/ql/trumpcard.h
index ee27efc4792..42fad0633e1 100644
--- a/src/devices/bus/ql/trumpcard.h
+++ b/src/devices/bus/ql/trumpcard.h
@@ -47,7 +47,7 @@ protected:
private:
- DECLARE_FLOPPY_FORMATS( floppy_formats );
+ static void floppy_formats(format_registration &fr);
required_device<wd1772_device> m_fdc;
required_device<floppy_connector> m_floppy0;
diff --git a/src/devices/bus/s100/dj2db.cpp b/src/devices/bus/s100/dj2db.cpp
index 03acd63437c..6ee50a89840 100644
--- a/src/devices/bus/s100/dj2db.cpp
+++ b/src/devices/bus/s100/dj2db.cpp
@@ -111,10 +111,10 @@ void s100_dj2db_device::device_add_mconfig(machine_config &config)
m_fdc->intrq_wr_callback().set(FUNC(s100_dj2db_device::fdc_intrq_w));
m_fdc->drq_wr_callback().set(FUNC(s100_dj2db_device::fdc_drq_w));
- FLOPPY_CONNECTOR(config, m_floppy0, s100_dj2db_floppies, "8dsdd", floppy_image_device::default_floppy_formats);
- FLOPPY_CONNECTOR(config, m_floppy1, s100_dj2db_floppies, nullptr, floppy_image_device::default_floppy_formats);
- FLOPPY_CONNECTOR(config, m_floppy2, s100_dj2db_floppies, nullptr, floppy_image_device::default_floppy_formats);
- FLOPPY_CONNECTOR(config, m_floppy3, s100_dj2db_floppies, nullptr, floppy_image_device::default_floppy_formats);
+ FLOPPY_CONNECTOR(config, m_floppy0, s100_dj2db_floppies, "8dsdd", floppy_image_device::default_mfm_floppy_formats);
+ FLOPPY_CONNECTOR(config, m_floppy1, s100_dj2db_floppies, nullptr, floppy_image_device::default_mfm_floppy_formats);
+ FLOPPY_CONNECTOR(config, m_floppy2, s100_dj2db_floppies, nullptr, floppy_image_device::default_mfm_floppy_formats);
+ FLOPPY_CONNECTOR(config, m_floppy3, s100_dj2db_floppies, nullptr, floppy_image_device::default_mfm_floppy_formats);
}
diff --git a/src/devices/bus/s100/nsmdsa.cpp b/src/devices/bus/s100/nsmdsa.cpp
index 90d19b3fcb3..53441107c7d 100644
--- a/src/devices/bus/s100/nsmdsa.cpp
+++ b/src/devices/bus/s100/nsmdsa.cpp
@@ -60,7 +60,7 @@ static void mds_a_floppies(device_slot_interface &device)
void s100_mds_a_device::device_add_mconfig(machine_config &config)
{
for (auto &floppy : m_floppy)
- FLOPPY_CONNECTOR(config, floppy, mds_a_floppies, "525sd", floppy_image_device::default_floppy_formats);
+ FLOPPY_CONNECTOR(config, floppy, mds_a_floppies, "525sd", floppy_image_device::default_mfm_floppy_formats);
}
diff --git a/src/devices/bus/s100/nsmdsad.cpp b/src/devices/bus/s100/nsmdsad.cpp
index d1358e85bf0..00343623711 100644
--- a/src/devices/bus/s100/nsmdsad.cpp
+++ b/src/devices/bus/s100/nsmdsad.cpp
@@ -61,7 +61,7 @@ static void mds_ad_floppies(device_slot_interface &device)
void s100_mds_ad_device::device_add_mconfig(machine_config &config)
{
for (auto &floppy : m_floppy)
- FLOPPY_CONNECTOR(config, floppy, mds_ad_floppies, "525dd", floppy_image_device::default_floppy_formats);
+ FLOPPY_CONNECTOR(config, floppy, mds_ad_floppies, "525dd", floppy_image_device::default_mfm_floppy_formats);
}
diff --git a/src/devices/bus/samcoupe/drive/floppy.cpp b/src/devices/bus/samcoupe/drive/floppy.cpp
index 4d37aeb35f6..3940e9f5ddb 100644
--- a/src/devices/bus/samcoupe/drive/floppy.cpp
+++ b/src/devices/bus/samcoupe/drive/floppy.cpp
@@ -17,9 +17,11 @@
DEFINE_DEVICE_TYPE(SAM_FLOPPY, sam_floppy_device, "sam_floppy", "SAM Coupe Internal Floppy")
-FLOPPY_FORMATS_MEMBER( sam_floppy_device::floppy_formats )
- FLOPPY_MGT_FORMAT
-FLOPPY_FORMATS_END
+void sam_floppy_device::floppy_formats(format_registration &fr)
+{
+ fr.add_mfm_containers();
+ fr.add(FLOPPY_MGT_FORMAT);
+}
static void samcoupe_floppies(device_slot_interface &device)
{
diff --git a/src/devices/bus/samcoupe/drive/floppy.h b/src/devices/bus/samcoupe/drive/floppy.h
index a1dbd432a27..8f227009cbb 100644
--- a/src/devices/bus/samcoupe/drive/floppy.h
+++ b/src/devices/bus/samcoupe/drive/floppy.h
@@ -40,7 +40,7 @@ private:
required_device<wd1772_device> m_fdc;
required_device<floppy_connector> m_drive;
- DECLARE_FLOPPY_FORMATS( floppy_formats );
+ static void floppy_formats(format_registration &fr);
};
// device type definition
diff --git a/src/devices/bus/spc1000/fdd.cpp b/src/devices/bus/spc1000/fdd.cpp
index bb9fa2f82d6..36c4c90b958 100644
--- a/src/devices/bus/spc1000/fdd.cpp
+++ b/src/devices/bus/spc1000/fdd.cpp
@@ -105,8 +105,8 @@ void spc1000_fdd_exp_device::device_add_mconfig(machine_config &config)
m_fdc->intrq_wr_callback().set_inputline(m_cpu, INPUT_LINE_IRQ0);
// floppy drives
- FLOPPY_CONNECTOR(config, "upd765:0", sd725_floppies, "sd320", floppy_image_device::default_floppy_formats);
- FLOPPY_CONNECTOR(config, "upd765:1", sd725_floppies, "sd320", floppy_image_device::default_floppy_formats);
+ FLOPPY_CONNECTOR(config, "upd765:0", sd725_floppies, "sd320", floppy_image_device::default_mfm_floppy_formats);
+ FLOPPY_CONNECTOR(config, "upd765:1", sd725_floppies, "sd320", floppy_image_device::default_mfm_floppy_formats);
}
ROM_START( spc1000_fdd )
diff --git a/src/devices/bus/spectrum/beta.cpp b/src/devices/bus/spectrum/beta.cpp
index fd96b733eea..742f09e1922 100644
--- a/src/devices/bus/spectrum/beta.cpp
+++ b/src/devices/bus/spectrum/beta.cpp
@@ -124,9 +124,11 @@ static void beta_floppies(device_slot_interface &device)
// floppy_format_type floppy_formats
//-------------------------------------------------
-FLOPPY_FORMATS_MEMBER(spectrum_betav2_device::floppy_formats)
- FLOPPY_TRD_FORMAT
-FLOPPY_FORMATS_END
+void spectrum_betav2_device::floppy_formats(format_registration &fr)
+{
+ fr.add_mfm_containers();
+ fr.add(FLOPPY_TRD_FORMAT);
+}
//-------------------------------------------------
// ROM( beta )
diff --git a/src/devices/bus/spectrum/beta.h b/src/devices/bus/spectrum/beta.h
index d92ed6fd0b2..77f8d95777e 100644
--- a/src/devices/bus/spectrum/beta.h
+++ b/src/devices/bus/spectrum/beta.h
@@ -31,7 +31,7 @@ public:
spectrum_betav2_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
spectrum_betav2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- DECLARE_FLOPPY_FORMATS(floppy_formats);
+ static void floppy_formats(format_registration &fr);
protected:
// device-level overrides
diff --git a/src/devices/bus/spectrum/beta128.cpp b/src/devices/bus/spectrum/beta128.cpp
index d9d1f91b015..c0af1ef24c7 100644
--- a/src/devices/bus/spectrum/beta128.cpp
+++ b/src/devices/bus/spectrum/beta128.cpp
@@ -66,9 +66,11 @@ static void beta_floppies(device_slot_interface &device)
// floppy_format_type floppy_formats
//-------------------------------------------------
-FLOPPY_FORMATS_MEMBER(spectrum_beta128_device::floppy_formats)
- FLOPPY_TRD_FORMAT
-FLOPPY_FORMATS_END
+void spectrum_beta128_device::floppy_formats(format_registration &fr)
+{
+ fr.add_mfm_containers();
+ fr.add(FLOPPY_TRD_FORMAT);
+}
//-------------------------------------------------
// ROM( beta )
diff --git a/src/devices/bus/spectrum/beta128.h b/src/devices/bus/spectrum/beta128.h
index f50e4745777..97259ae73af 100644
--- a/src/devices/bus/spectrum/beta128.h
+++ b/src/devices/bus/spectrum/beta128.h
@@ -27,7 +27,7 @@ public:
// construction/destruction
spectrum_beta128_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- DECLARE_FLOPPY_FORMATS(floppy_formats);
+ static void floppy_formats(format_registration &fr);
DECLARE_INPUT_CHANGED_MEMBER(magic_button);
protected:
diff --git a/src/devices/bus/spectrum/d40.cpp b/src/devices/bus/spectrum/d40.cpp
index 85ba64f64d5..e88f4607c54 100644
--- a/src/devices/bus/spectrum/d40.cpp
+++ b/src/devices/bus/spectrum/d40.cpp
@@ -63,14 +63,6 @@ static void didaktik_floppies(device_slot_interface &device)
}
//-------------------------------------------------
-// floppy_format_type floppy_formats
-//-------------------------------------------------
-
-FLOPPY_FORMATS_MEMBER(spectrum_d40base_device::floppy_formats)
- FLOPPY_PC_FORMAT
-FLOPPY_FORMATS_END
-
-//-------------------------------------------------
// ROM
//-------------------------------------------------
@@ -99,8 +91,8 @@ void spectrum_d40_device::device_add_mconfig(machine_config &config)
WD2797(config, m_fdc, 4_MHz_XTAL / 4);
m_fdc->intrq_wr_callback().set(FUNC(spectrum_d40_device::fdc_intrq_w));
m_fdc->drq_wr_callback().set(FUNC(spectrum_d40_device::fdc_drq_w));
- FLOPPY_CONNECTOR(config, "fdc:0", didaktik_floppies, "525dd", spectrum_d40_device::floppy_formats).enable_sound(true);
- FLOPPY_CONNECTOR(config, "fdc:1", didaktik_floppies, "525dd", spectrum_d40_device::floppy_formats).enable_sound(true);
+ FLOPPY_CONNECTOR(config, "fdc:0", didaktik_floppies, "525dd", floppy_image_device::default_pc_floppy_formats).enable_sound(true);
+ FLOPPY_CONNECTOR(config, "fdc:1", didaktik_floppies, "525dd", floppy_image_device::default_pc_floppy_formats).enable_sound(true);
I8255(config, m_ppi);
m_ppi->in_pa_callback().set_ioport("JOY");
@@ -114,8 +106,8 @@ void spectrum_d80_device::device_add_mconfig(machine_config &config)
WD2797(config, m_fdc, 4_MHz_XTAL / 4);
m_fdc->intrq_wr_callback().set(FUNC(spectrum_d80_device::fdc_intrq_w));
m_fdc->drq_wr_callback().set(FUNC(spectrum_d80_device::fdc_drq_w));
- FLOPPY_CONNECTOR(config, "fdc:0", didaktik_floppies, "35dd", spectrum_d80_device::floppy_formats).enable_sound(true);
- FLOPPY_CONNECTOR(config, "fdc:1", didaktik_floppies, "35dd", spectrum_d80_device::floppy_formats).enable_sound(true);
+ FLOPPY_CONNECTOR(config, "fdc:0", didaktik_floppies, "35dd", floppy_image_device::default_pc_floppy_formats).enable_sound(true);
+ FLOPPY_CONNECTOR(config, "fdc:1", didaktik_floppies, "35dd", floppy_image_device::default_pc_floppy_formats).enable_sound(true);
I8255(config, m_ppi);
@@ -126,8 +118,8 @@ void spectrum_d80_device::device_add_mconfig(machine_config &config)
void spectrum_d80v2_device::device_add_mconfig(machine_config &config)
{
WD37C65C(config, m_fdc, 16_MHz_XTAL); // actually GM82C765B
- FLOPPY_CONNECTOR(config, "fdc:0", didaktik_floppies, "35dd", spectrum_d80v2_device::floppy_formats).enable_sound(true);
- FLOPPY_CONNECTOR(config, "fdc:1", didaktik_floppies, "35dd", spectrum_d80v2_device::floppy_formats).enable_sound(true);
+ FLOPPY_CONNECTOR(config, "fdc:0", didaktik_floppies, "35dd", floppy_image_device::default_pc_floppy_formats).enable_sound(true);
+ FLOPPY_CONNECTOR(config, "fdc:1", didaktik_floppies, "35dd", floppy_image_device::default_pc_floppy_formats).enable_sound(true);
I8255(config, m_ppi);
diff --git a/src/devices/bus/spectrum/d40.h b/src/devices/bus/spectrum/d40.h
index 94be7b77084..9bd36ce0025 100644
--- a/src/devices/bus/spectrum/d40.h
+++ b/src/devices/bus/spectrum/d40.h
@@ -27,7 +27,6 @@ class spectrum_d40base_device: public device_t, public device_spectrum_expansion
{
public:
DECLARE_INPUT_CHANGED_MEMBER(snapshot_button);
- DECLARE_FLOPPY_FORMATS(floppy_formats);
protected:
spectrum_d40base_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
diff --git a/src/devices/bus/spectrum/floppyone.cpp b/src/devices/bus/spectrum/floppyone.cpp
index fc62eff72b6..00f7aeb72aa 100644
--- a/src/devices/bus/spectrum/floppyone.cpp
+++ b/src/devices/bus/spectrum/floppyone.cpp
@@ -86,9 +86,11 @@ static void flpone_floppies(device_slot_interface &device)
// floppy_format_type floppy_formats
//-------------------------------------------------
-FLOPPY_FORMATS_MEMBER(spectrum_flpone_device::floppy_formats)
- FLOPPY_FL1_FORMAT
-FLOPPY_FORMATS_END
+void spectrum_flpone_device::floppy_formats(format_registration &fr)
+{
+ fr.add_mfm_containers();
+ fr.add(FLOPPY_FL1_FORMAT);
+}
//-------------------------------------------------
// ROM( flpone )
diff --git a/src/devices/bus/spectrum/floppyone.h b/src/devices/bus/spectrum/floppyone.h
index 5b613ddfe34..0357c83ad23 100644
--- a/src/devices/bus/spectrum/floppyone.h
+++ b/src/devices/bus/spectrum/floppyone.h
@@ -30,7 +30,7 @@ public:
// construction/destruction
spectrum_flpone_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- DECLARE_FLOPPY_FORMATS(floppy_formats);
+ static void floppy_formats(format_registration &fr);
DECLARE_INPUT_CHANGED_MEMBER(snapshot_button) { m_slot->nmi_w(newval ? ASSERT_LINE : CLEAR_LINE); };
protected:
diff --git a/src/devices/bus/spectrum/kempdisc.cpp b/src/devices/bus/spectrum/kempdisc.cpp
index aabb847ef2a..3defea60d16 100644
--- a/src/devices/bus/spectrum/kempdisc.cpp
+++ b/src/devices/bus/spectrum/kempdisc.cpp
@@ -57,14 +57,6 @@ static void kempdisc_floppies(device_slot_interface &device)
}
//-------------------------------------------------
-// floppy_format_type floppy_formats
-//-------------------------------------------------
-
-FLOPPY_FORMATS_MEMBER(spectrum_kempdisc_device::floppy_formats)
- FLOPPY_DSK_FORMAT
-FLOPPY_FORMATS_END
-
-//-------------------------------------------------
// ROM( kempdisc )
//-------------------------------------------------
@@ -95,10 +87,10 @@ void spectrum_kempdisc_device::device_add_mconfig(machine_config &config)
{
WD1770(config, m_fdc, 16_MHz_XTAL / 2);
- FLOPPY_CONNECTOR(config, "fdc:0", kempdisc_floppies, "525qd", spectrum_kempdisc_device::floppy_formats).enable_sound(true);
- FLOPPY_CONNECTOR(config, "fdc:1", kempdisc_floppies, "525qd", spectrum_kempdisc_device::floppy_formats).enable_sound(true);
- FLOPPY_CONNECTOR(config, "fdc:2", kempdisc_floppies, nullptr, spectrum_kempdisc_device::floppy_formats).enable_sound(true);
- FLOPPY_CONNECTOR(config, "fdc:3", kempdisc_floppies, nullptr, spectrum_kempdisc_device::floppy_formats).enable_sound(true);
+ FLOPPY_CONNECTOR(config, "fdc:0", kempdisc_floppies, "525qd", floppy_image_device::default_mfm_floppy_formats).enable_sound(true);
+ FLOPPY_CONNECTOR(config, "fdc:1", kempdisc_floppies, "525qd", floppy_image_device::default_mfm_floppy_formats).enable_sound(true);
+ FLOPPY_CONNECTOR(config, "fdc:2", kempdisc_floppies, nullptr, floppy_image_device::default_mfm_floppy_formats).enable_sound(true);
+ FLOPPY_CONNECTOR(config, "fdc:3", kempdisc_floppies, nullptr, floppy_image_device::default_mfm_floppy_formats).enable_sound(true);
// passthru
SPECTRUM_EXPANSION_SLOT(config, m_exp, spectrum_expansion_devices, nullptr);
diff --git a/src/devices/bus/spectrum/kempdisc.h b/src/devices/bus/spectrum/kempdisc.h
index 271d781d182..3bc38cd9b63 100644
--- a/src/devices/bus/spectrum/kempdisc.h
+++ b/src/devices/bus/spectrum/kempdisc.h
@@ -27,7 +27,7 @@ public:
// construction/destruction
spectrum_kempdisc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- DECLARE_FLOPPY_FORMATS(floppy_formats);
+ static void floppy_formats(format_registration &fr);
protected:
spectrum_kempdisc_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
diff --git a/src/devices/bus/spectrum/mgt.cpp b/src/devices/bus/spectrum/mgt.cpp
index 605c54591a2..f0ce315f2d6 100644
--- a/src/devices/bus/spectrum/mgt.cpp
+++ b/src/devices/bus/spectrum/mgt.cpp
@@ -229,9 +229,11 @@ static void plusd_floppies(device_slot_interface &device)
// floppy_format_type floppy_formats
//-------------------------------------------------
-FLOPPY_FORMATS_MEMBER(spectrum_plusd_device::floppy_formats)
- FLOPPY_MGT_FORMAT
-FLOPPY_FORMATS_END
+void spectrum_plusd_device::floppy_formats(format_registration &fr)
+{
+ fr.add_mfm_containers();
+ fr.add(FLOPPY_MGT_FORMAT);
+}
//-------------------------------------------------
// ROM( plusd )
diff --git a/src/devices/bus/spectrum/mgt.h b/src/devices/bus/spectrum/mgt.h
index 4fb385f50e7..f75b8dc540a 100644
--- a/src/devices/bus/spectrum/mgt.h
+++ b/src/devices/bus/spectrum/mgt.h
@@ -31,7 +31,7 @@ public:
// construction/destruction
spectrum_plusd_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- DECLARE_FLOPPY_FORMATS(floppy_formats);
+ static void floppy_formats(format_registration &fr);
DECLARE_INPUT_CHANGED_MEMBER(snapshot_button);
protected:
diff --git a/src/devices/bus/spectrum/opus.cpp b/src/devices/bus/spectrum/opus.cpp
index 0cec14aacc5..fccac06175a 100644
--- a/src/devices/bus/spectrum/opus.cpp
+++ b/src/devices/bus/spectrum/opus.cpp
@@ -44,9 +44,11 @@ ioport_constructor spectrum_opus_device::device_input_ports() const
// MACHINE_DRIVER( opus )
//-------------------------------------------------
-FLOPPY_FORMATS_MEMBER( spectrum_opus_device::floppy_formats )
- FLOPPY_OPD_FORMAT
-FLOPPY_FORMATS_END
+void spectrum_opus_device::floppy_formats(format_registration &fr)
+{
+ fr.add_mfm_containers();
+ fr.add(FLOPPY_OPD_FORMAT);
+}
static void spectrum_floppies(device_slot_interface &device)
{
diff --git a/src/devices/bus/spectrum/opus.h b/src/devices/bus/spectrum/opus.h
index 0b1694007e7..a85dd21af26 100644
--- a/src/devices/bus/spectrum/opus.h
+++ b/src/devices/bus/spectrum/opus.h
@@ -30,7 +30,7 @@ public:
// construction/destruction
spectrum_opus_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- DECLARE_FLOPPY_FORMATS(floppy_formats);
+ static void floppy_formats(format_registration &fr);
protected:
// device-level overrides
diff --git a/src/devices/bus/spectrum/sixword.cpp b/src/devices/bus/spectrum/sixword.cpp
index b23efda6678..943f10a887e 100644
--- a/src/devices/bus/spectrum/sixword.cpp
+++ b/src/devices/bus/spectrum/sixword.cpp
@@ -108,9 +108,11 @@ static void swiftdisc_floppies(device_slot_interface &device)
// floppy_format_type floppy_formats
//-------------------------------------------------
-FLOPPY_FORMATS_MEMBER(spectrum_swiftdisc_device::floppy_formats)
- FLOPPY_SWD_FORMAT
-FLOPPY_FORMATS_END
+void spectrum_swiftdisc_device::floppy_formats(format_registration &fr)
+{
+ fr.add_mfm_containers();
+ fr.add(FLOPPY_SWD_FORMAT);
+}
//-------------------------------------------------
// ROM( swiftdisc )
diff --git a/src/devices/bus/spectrum/sixword.h b/src/devices/bus/spectrum/sixword.h
index ab913e3057c..32370577080 100644
--- a/src/devices/bus/spectrum/sixword.h
+++ b/src/devices/bus/spectrum/sixword.h
@@ -29,7 +29,7 @@ public:
// construction/destruction
spectrum_swiftdisc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- DECLARE_FLOPPY_FORMATS(floppy_formats);
+ static void floppy_formats(format_registration &fr);
DECLARE_INPUT_CHANGED_MEMBER(nmi_button) { m_rombank |= newval << 12; m_slot->nmi_w(newval ? ASSERT_LINE : CLEAR_LINE); };
protected:
diff --git a/src/devices/bus/spectrum/speccydos.cpp b/src/devices/bus/spectrum/speccydos.cpp
index f9eaabc1cd5..5a8c7851c9a 100644
--- a/src/devices/bus/spectrum/speccydos.cpp
+++ b/src/devices/bus/spectrum/speccydos.cpp
@@ -75,9 +75,11 @@ static void speccydos_floppies(device_slot_interface &device)
// floppy_format_type floppy_formats
//-------------------------------------------------
-FLOPPY_FORMATS_MEMBER(spectrum_speccydos_device::floppy_formats)
- FLOPPY_SDD_FORMAT
-FLOPPY_FORMATS_END
+void spectrum_speccydos_device::floppy_formats(format_registration &fr)
+{
+ fr.add_mfm_containers();
+ fr.add(FLOPPY_SDD_FORMAT);
+}
//-------------------------------------------------
// ROM( speccydos )
diff --git a/src/devices/bus/spectrum/speccydos.h b/src/devices/bus/spectrum/speccydos.h
index df09043da17..03e0a42c6c6 100644
--- a/src/devices/bus/spectrum/speccydos.h
+++ b/src/devices/bus/spectrum/speccydos.h
@@ -27,7 +27,7 @@ public:
// construction/destruction
spectrum_speccydos_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- DECLARE_FLOPPY_FORMATS(floppy_formats);
+ static void floppy_formats(format_registration &fr);
DECLARE_INPUT_CHANGED_MEMBER(magic_button) { m_slot->nmi_w(newval ? ASSERT_LINE : CLEAR_LINE); };
protected:
diff --git a/src/devices/bus/ss50/dc5.cpp b/src/devices/bus/ss50/dc5.cpp
index 6cfb38a7eed..764b6ada245 100644
--- a/src/devices/bus/ss50/dc5.cpp
+++ b/src/devices/bus/ss50/dc5.cpp
@@ -76,7 +76,7 @@ private:
DECLARE_WRITE_LINE_MEMBER( fdc_drq_w );
DECLARE_WRITE_LINE_MEMBER( fdc_sso_w );
- DECLARE_FLOPPY_FORMATS(floppy_formats);
+ static void floppy_formats(format_registration &fr);
uint8_t m_fdc_status; // for floppy controller
uint8_t m_control_register;
uint8_t m_motor_timer_out;
@@ -236,12 +236,13 @@ ioport_constructor ss50_dc5_device::device_input_ports() const
// machine configuration
//-------------------------------------------------
-FLOPPY_FORMATS_MEMBER( ss50_dc5_device::floppy_formats )
- FLOPPY_MFI_FORMAT,
- FLOPPY_FLEX_FORMAT,
- FLOPPY_OS9_FORMAT,
- FLOPPY_UNIFLEX_FORMAT
-FLOPPY_FORMATS_END
+void ss50_dc5_device::floppy_formats(format_registration &fr)
+{
+ fr.add_mfm_containers();
+ fr.add(FLOPPY_FLEX_FORMAT);
+ fr.add(FLOPPY_OS9_FORMAT);
+ fr.add(FLOPPY_UNIFLEX_FORMAT);
+}
static void flex_floppies(device_slot_interface &device)
{
diff --git a/src/devices/bus/svi3x8/slot/sv801.cpp b/src/devices/bus/svi3x8/slot/sv801.cpp
index 9d73b62aec1..b4f022afba2 100644
--- a/src/devices/bus/svi3x8/slot/sv801.cpp
+++ b/src/devices/bus/svi3x8/slot/sv801.cpp
@@ -18,9 +18,11 @@
DEFINE_DEVICE_TYPE(SV801, sv801_device, "sv801", "SV-801 Disk Controller")
-FLOPPY_FORMATS_MEMBER( sv801_device::floppy_formats )
- FLOPPY_SVI_FORMAT
-FLOPPY_FORMATS_END
+void sv801_device::floppy_formats(format_registration &fr)
+{
+ fr.add_mfm_containers();
+ fr.add(FLOPPY_SVI_FORMAT);
+}
static void svi_floppies(device_slot_interface &device)
{
diff --git a/src/devices/bus/svi3x8/slot/sv801.h b/src/devices/bus/svi3x8/slot/sv801.h
index 29c2014b872..5651e519fb7 100644
--- a/src/devices/bus/svi3x8/slot/sv801.h
+++ b/src/devices/bus/svi3x8/slot/sv801.h
@@ -42,7 +42,7 @@ private:
DECLARE_WRITE_LINE_MEMBER( intrq_w );
DECLARE_WRITE_LINE_MEMBER( drq_w );
- DECLARE_FLOPPY_FORMATS(floppy_formats);
+ static void floppy_formats(format_registration &fr);
required_device<fd1793_device> m_fdc;
required_device<floppy_connector> m_floppy0;
diff --git a/src/devices/bus/tanbus/radisc.cpp b/src/devices/bus/tanbus/radisc.cpp
index a537bb13535..b302e33c80d 100644
--- a/src/devices/bus/tanbus/radisc.cpp
+++ b/src/devices/bus/tanbus/radisc.cpp
@@ -45,10 +45,10 @@ void tanbus_radisc_device::device_add_mconfig(machine_config &config)
m_fdc->hld_wr_callback().set(FUNC(tanbus_radisc_device::fdc_hld_w));
m_fdc->set_force_ready(true);
- FLOPPY_CONNECTOR(config, m_floppies[0], tandos_floppies, "525qd", floppy_image_device::default_floppy_formats).enable_sound(true);
- FLOPPY_CONNECTOR(config, m_floppies[1], tandos_floppies, "525qd", floppy_image_device::default_floppy_formats).enable_sound(true);
- FLOPPY_CONNECTOR(config, m_floppies[2], tandos_floppies, nullptr, floppy_image_device::default_floppy_formats).enable_sound(true);
- FLOPPY_CONNECTOR(config, m_floppies[3], tandos_floppies, nullptr, floppy_image_device::default_floppy_formats).enable_sound(true);
+ FLOPPY_CONNECTOR(config, m_floppies[0], tandos_floppies, "525qd", floppy_image_device::default_mfm_floppy_formats).enable_sound(true);
+ FLOPPY_CONNECTOR(config, m_floppies[1], tandos_floppies, "525qd", floppy_image_device::default_mfm_floppy_formats).enable_sound(true);
+ FLOPPY_CONNECTOR(config, m_floppies[2], tandos_floppies, nullptr, floppy_image_device::default_mfm_floppy_formats).enable_sound(true);
+ FLOPPY_CONNECTOR(config, m_floppies[3], tandos_floppies, nullptr, floppy_image_device::default_mfm_floppy_formats).enable_sound(true);
MC146818(config, m_rtc, 32.768_kHz_XTAL);
m_rtc->irq().set(m_irq_line, FUNC(input_merger_device::in_w<IRQ_RTC>));
diff --git a/src/devices/bus/tanbus/radisc.h b/src/devices/bus/tanbus/radisc.h
index a4eddf8d0f5..bbcfc2298ac 100644
--- a/src/devices/bus/tanbus/radisc.h
+++ b/src/devices/bus/tanbus/radisc.h
@@ -32,7 +32,7 @@ public:
// construction/destruction
tanbus_radisc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- DECLARE_FLOPPY_FORMATS(floppy_formats);
+ static void floppy_formats(format_registration &fr);
protected:
// device-level overrides
diff --git a/src/devices/bus/tanbus/tandos.cpp b/src/devices/bus/tanbus/tandos.cpp
index c4cbdab00ae..ae971913254 100644
--- a/src/devices/bus/tanbus/tandos.cpp
+++ b/src/devices/bus/tanbus/tandos.cpp
@@ -55,10 +55,10 @@ void tanbus_tandos_device::device_add_mconfig(machine_config &config)
m_fdc->hld_wr_callback().set(FUNC(tanbus_tandos_device::fdc_hld_w));
m_fdc->set_force_ready(true);
- FLOPPY_CONNECTOR(config, m_floppies[0], tandos_floppies, "525qd", floppy_image_device::default_floppy_formats).enable_sound(true);
- FLOPPY_CONNECTOR(config, m_floppies[1], tandos_floppies, "525qd", floppy_image_device::default_floppy_formats).enable_sound(true);
- FLOPPY_CONNECTOR(config, m_floppies[2], tandos_floppies, nullptr, floppy_image_device::default_floppy_formats).enable_sound(true);
- FLOPPY_CONNECTOR(config, m_floppies[3], tandos_floppies, nullptr, floppy_image_device::default_floppy_formats).enable_sound(true);
+ FLOPPY_CONNECTOR(config, m_floppies[0], tandos_floppies, "525qd", floppy_image_device::default_mfm_floppy_formats).enable_sound(true);
+ FLOPPY_CONNECTOR(config, m_floppies[1], tandos_floppies, "525qd", floppy_image_device::default_mfm_floppy_formats).enable_sound(true);
+ FLOPPY_CONNECTOR(config, m_floppies[2], tandos_floppies, nullptr, floppy_image_device::default_mfm_floppy_formats).enable_sound(true);
+ FLOPPY_CONNECTOR(config, m_floppies[3], tandos_floppies, nullptr, floppy_image_device::default_mfm_floppy_formats).enable_sound(true);
}
const tiny_rom_entry *tanbus_tandos_device::device_rom_region() const
diff --git a/src/devices/bus/tanbus/tandos.h b/src/devices/bus/tanbus/tandos.h
index f47cb585ec7..60a157809f8 100644
--- a/src/devices/bus/tanbus/tandos.h
+++ b/src/devices/bus/tanbus/tandos.h
@@ -30,7 +30,7 @@ public:
// construction/destruction
tanbus_tandos_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- DECLARE_FLOPPY_FORMATS(floppy_formats);
+ static void floppy_formats(format_registration &fr);
protected:
// device-level overrides
diff --git a/src/devices/bus/ti99/peb/bwg.cpp b/src/devices/bus/ti99/peb/bwg.cpp
index 28c416426af..e0373ae2fc6 100644
--- a/src/devices/bus/ti99/peb/bwg.cpp
+++ b/src/devices/bus/ti99/peb/bwg.cpp
@@ -588,10 +588,12 @@ INPUT_PORTS_START( bwg_fdc )
PORT_DIPSETTING( 0x03, "DSK1-DSK4")
INPUT_PORTS_END
-FLOPPY_FORMATS_MEMBER(snug_bwg_device::floppy_formats)
- FLOPPY_TI99_SDF_FORMAT,
- FLOPPY_TI99_TDF_FORMAT
-FLOPPY_FORMATS_END
+void snug_bwg_device::floppy_formats(format_registration &fr)
+{
+ fr.add_mfm_containers();
+ fr.add(FLOPPY_TI99_SDF_FORMAT);
+ fr.add(FLOPPY_TI99_TDF_FORMAT);
+}
static void bwg_floppies(device_slot_interface &device)
{
diff --git a/src/devices/bus/ti99/peb/bwg.h b/src/devices/bus/ti99/peb/bwg.h
index e3bca967eac..671f584dc9a 100644
--- a/src/devices/bus/ti99/peb/bwg.h
+++ b/src/devices/bus/ti99/peb/bwg.h
@@ -48,7 +48,7 @@ protected:
ioport_constructor device_input_ports() const override;
private:
- DECLARE_FLOPPY_FORMATS( floppy_formats );
+ static void floppy_formats(format_registration &fr);
DECLARE_WRITE_LINE_MEMBER( fdc_irq_w );
DECLARE_WRITE_LINE_MEMBER( fdc_drq_w );
diff --git a/src/devices/bus/ti99/peb/cc_fdc.cpp b/src/devices/bus/ti99/peb/cc_fdc.cpp
index 7255871b921..167831fbc67 100644
--- a/src/devices/bus/ti99/peb/cc_fdc.cpp
+++ b/src/devices/bus/ti99/peb/cc_fdc.cpp
@@ -470,10 +470,12 @@ INPUT_PORTS_START( cc_fdc )
PORT_DIPSETTING( 0xc0, "3 ms")
INPUT_PORTS_END
-FLOPPY_FORMATS_MEMBER(corcomp_fdc_device::floppy_formats)
- FLOPPY_TI99_SDF_FORMAT,
- FLOPPY_TI99_TDF_FORMAT
-FLOPPY_FORMATS_END
+void corcomp_fdc_device::floppy_formats(format_registration &fr)
+{
+ fr.add_mfm_containers();
+ fr.add(FLOPPY_TI99_SDF_FORMAT);
+ fr.add(FLOPPY_TI99_TDF_FORMAT);
+}
static void ccfdc_floppies(device_slot_interface &device)
{
diff --git a/src/devices/bus/ti99/peb/cc_fdc.h b/src/devices/bus/ti99/peb/cc_fdc.h
index daca16f5249..9b3ad6fa4ab 100644
--- a/src/devices/bus/ti99/peb/cc_fdc.h
+++ b/src/devices/bus/ti99/peb/cc_fdc.h
@@ -68,7 +68,7 @@ protected:
void common_config(machine_config& config);
- DECLARE_FLOPPY_FORMATS( floppy_formats );
+ static void floppy_formats(format_registration &fr);
// Link to the WD controller on the board.
required_device<wd_fdc_device_base> m_wdc;
diff --git a/src/devices/bus/ti99/peb/hfdc.cpp b/src/devices/bus/ti99/peb/hfdc.cpp
index 4cd6b926d4b..bbbd0ca9fcd 100644
--- a/src/devices/bus/ti99/peb/hfdc.cpp
+++ b/src/devices/bus/ti99/peb/hfdc.cpp
@@ -1025,10 +1025,12 @@ INPUT_PORTS_START( ti99_hfdc )
PORT_DIPSETTING( 0x30, "80 track HD, 2 ms")
INPUT_PORTS_END
-FLOPPY_FORMATS_MEMBER(myarc_hfdc_device::floppy_formats)
- FLOPPY_TI99_SDF_FORMAT,
- FLOPPY_TI99_TDF_FORMAT
-FLOPPY_FORMATS_END
+void myarc_hfdc_device::floppy_formats(format_registration &fr)
+{
+ fr.add_mfm_containers();
+ fr.add(FLOPPY_TI99_SDF_FORMAT);
+ fr.add(FLOPPY_TI99_TDF_FORMAT);
+}
static void hfdc_floppies(device_slot_interface &device)
{
diff --git a/src/devices/bus/ti99/peb/hfdc.h b/src/devices/bus/ti99/peb/hfdc.h
index 927d761e6cd..d10cf3a9eae 100644
--- a/src/devices/bus/ti99/peb/hfdc.h
+++ b/src/devices/bus/ti99/peb/hfdc.h
@@ -62,7 +62,7 @@ private:
uint8_t read_buffer();
void write_buffer(uint8_t data);
- DECLARE_FLOPPY_FORMATS( floppy_formats );
+ static void floppy_formats(format_registration &fr);
// Debug accessors
void debug_read(offs_t offset, uint8_t* value);
diff --git a/src/devices/bus/ti99/peb/myarcfdc.cpp b/src/devices/bus/ti99/peb/myarcfdc.cpp
index c25495a3650..f765d6ddb79 100644
--- a/src/devices/bus/ti99/peb/myarcfdc.cpp
+++ b/src/devices/bus/ti99/peb/myarcfdc.cpp
@@ -359,10 +359,12 @@ void myarc_fdc_device::device_config_complete()
if (subdevice("3")!=nullptr) m_floppy[3] = static_cast<floppy_image_device*>(subdevice("3")->subdevices().first());
}
-FLOPPY_FORMATS_MEMBER(myarc_fdc_device::floppy_formats)
- FLOPPY_TI99_SDF_FORMAT,
- FLOPPY_TI99_TDF_FORMAT
-FLOPPY_FORMATS_END
+void myarc_fdc_device::floppy_formats(format_registration &fr)
+{
+ fr.add_mfm_containers();
+ fr.add(FLOPPY_TI99_SDF_FORMAT);
+ fr.add(FLOPPY_TI99_TDF_FORMAT);
+}
static void ccfdc_floppies(device_slot_interface &device)
{
diff --git a/src/devices/bus/ti99/peb/myarcfdc.h b/src/devices/bus/ti99/peb/myarcfdc.h
index f588bb5176f..e4f59027244 100644
--- a/src/devices/bus/ti99/peb/myarcfdc.h
+++ b/src/devices/bus/ti99/peb/myarcfdc.h
@@ -47,7 +47,7 @@ private:
void device_add_mconfig(machine_config &config) override;
ioport_constructor device_input_ports() const override;
- DECLARE_FLOPPY_FORMATS( floppy_formats );
+ static void floppy_formats(format_registration &fr);
// Callback methods
DECLARE_WRITE_LINE_MEMBER( fdc_irq_w );
diff --git a/src/devices/bus/ti99/peb/ti_fdc.cpp b/src/devices/bus/ti99/peb/ti_fdc.cpp
index a214c265eca..15636a7d2cc 100644
--- a/src/devices/bus/ti99/peb/ti_fdc.cpp
+++ b/src/devices/bus/ti99/peb/ti_fdc.cpp
@@ -379,10 +379,12 @@ void ti_fdc_device::device_config_complete()
if (subdevice("2")!=nullptr) m_floppy[2] = static_cast<floppy_image_device*>(subdevice("2")->subdevices().first());
}
-FLOPPY_FORMATS_MEMBER(ti_fdc_device::floppy_formats)
- FLOPPY_TI99_SDF_FORMAT,
- FLOPPY_TI99_TDF_FORMAT
-FLOPPY_FORMATS_END
+void ti_fdc_device::floppy_formats(format_registration &fr)
+{
+ fr.add_mfm_containers();
+ fr.add(FLOPPY_TI99_SDF_FORMAT);
+ fr.add(FLOPPY_TI99_TDF_FORMAT);
+}
static void tifdc_floppies(device_slot_interface &device)
{
diff --git a/src/devices/bus/ti99/peb/ti_fdc.h b/src/devices/bus/ti99/peb/ti_fdc.h
index e0217b623e1..81c2324dbc9 100644
--- a/src/devices/bus/ti99/peb/ti_fdc.h
+++ b/src/devices/bus/ti99/peb/ti_fdc.h
@@ -46,7 +46,7 @@ protected:
virtual void device_add_mconfig(machine_config &config) override;
private:
- DECLARE_FLOPPY_FORMATS( floppy_formats );
+ static void floppy_formats(format_registration &fr);
DECLARE_WRITE_LINE_MEMBER(fdc_irq_w);
DECLARE_WRITE_LINE_MEMBER(fdc_drq_w);
diff --git a/src/devices/bus/tvc/hbf.cpp b/src/devices/bus/tvc/hbf.cpp
index f60b201e0a7..c12b4ab90cc 100644
--- a/src/devices/bus/tvc/hbf.cpp
+++ b/src/devices/bus/tvc/hbf.cpp
@@ -14,9 +14,11 @@
IMPLEMENTATION
***************************************************************************/
-FLOPPY_FORMATS_MEMBER( tvc_hbf_device::floppy_formats )
- FLOPPY_TVC_FORMAT
-FLOPPY_FORMATS_END
+void tvc_hbf_device::floppy_formats(format_registration &fr)
+{
+ fr.add_mfm_containers();
+ fr.add(FLOPPY_TVC_FORMAT);
+}
static void tvc_hbf_floppies(device_slot_interface &device)
{
diff --git a/src/devices/bus/tvc/hbf.h b/src/devices/bus/tvc/hbf.h
index 82534b82949..b53a3b7520d 100644
--- a/src/devices/bus/tvc/hbf.h
+++ b/src/devices/bus/tvc/hbf.h
@@ -40,7 +40,7 @@ protected:
virtual void io_write(offs_t offset, uint8_t data) override;
private:
- DECLARE_FLOPPY_FORMATS( floppy_formats );
+ static void floppy_formats(format_registration &fr);
// internal state
required_device<fd1793_device> m_fdc;
diff --git a/src/devices/bus/vme/vme_fcscsi.cpp b/src/devices/bus/vme/vme_fcscsi.cpp
index 79443b9d2e2..508ae910e9c 100644
--- a/src/devices/bus/vme/vme_fcscsi.cpp
+++ b/src/devices/bus/vme/vme_fcscsi.cpp
@@ -245,10 +245,6 @@ void vme_fcscsi1_card_device::cpu_space_map(address_map &map)
map(0xfffff5, 0xfffff5).r(FUNC(vme_fcscsi1_card_device::dma_iack));
}
-FLOPPY_FORMATS_MEMBER( vme_fcscsi1_card_device::floppy_formats )
- FLOPPY_PC_FORMAT
-FLOPPY_FORMATS_END
-
static void fcscsi_floppies(device_slot_interface &device)
{
device.option_add("525qd", FLOPPY_525_QD);
@@ -283,10 +279,10 @@ void vme_fcscsi1_card_device::device_add_mconfig(machine_config &config)
WD1772(config, m_fdc, PIT_CRYSTAL / 2);
m_fdc->intrq_wr_callback().set(FUNC(vme_fcscsi1_card_device::fdc_irq));
m_fdc->drq_wr_callback().set("mc68450", FUNC(hd63450_device::drq1_w));
- FLOPPY_CONNECTOR(config, "fdc:0", fcscsi_floppies, "525qd", vme_fcscsi1_card_device::floppy_formats);
- FLOPPY_CONNECTOR(config, "fdc:1", fcscsi_floppies, "525qd", vme_fcscsi1_card_device::floppy_formats);
- FLOPPY_CONNECTOR(config, "fdc:2", fcscsi_floppies, "525qd", vme_fcscsi1_card_device::floppy_formats);
- FLOPPY_CONNECTOR(config, "fdc:3", fcscsi_floppies, "525qd", vme_fcscsi1_card_device::floppy_formats);
+ FLOPPY_CONNECTOR(config, "fdc:0", fcscsi_floppies, "525qd", floppy_image_device::default_pc_floppy_formats);
+ FLOPPY_CONNECTOR(config, "fdc:1", fcscsi_floppies, "525qd", floppy_image_device::default_pc_floppy_formats);
+ FLOPPY_CONNECTOR(config, "fdc:2", fcscsi_floppies, "525qd", floppy_image_device::default_pc_floppy_formats);
+ FLOPPY_CONNECTOR(config, "fdc:3", fcscsi_floppies, "525qd", floppy_image_device::default_pc_floppy_formats);
/* PIT Parallel Interface and Timer device */
PIT68230(config, m_pit, PIT_CRYSTAL / 2); /* 7474 based frequency divide by 2 */
diff --git a/src/devices/bus/vme/vme_fcscsi.h b/src/devices/bus/vme/vme_fcscsi.h
index 9b7e8649bd3..58c57c88fdc 100644
--- a/src/devices/bus/vme/vme_fcscsi.h
+++ b/src/devices/bus/vme/vme_fcscsi.h
@@ -42,7 +42,6 @@ private:
DECLARE_WRITE_LINE_MEMBER(fdc_irq);
uint8_t fdc_read_byte();
void fdc_write_byte(uint8_t data);
- DECLARE_FLOPPY_FORMATS(floppy_formats);
uint16_t bootvect_r(offs_t offset);
uint8_t tcr_r();
diff --git a/src/devices/bus/vtech/memexp/floppy.cpp b/src/devices/bus/vtech/memexp/floppy.cpp
index df42dc5a5f9..e1ad9939a42 100644
--- a/src/devices/bus/vtech/memexp/floppy.cpp
+++ b/src/devices/bus/vtech/memexp/floppy.cpp
@@ -53,8 +53,8 @@ static void laser_floppies(device_slot_interface &device)
void vtech_floppy_controller_device::device_add_mconfig(machine_config &config)
{
VTECH_MEMEXP_SLOT(config, m_memexp);
- FLOPPY_CONNECTOR(config, m_floppy0, laser_floppies, "525", floppy_image_device::default_floppy_formats);
- FLOPPY_CONNECTOR(config, m_floppy1, laser_floppies, "525", floppy_image_device::default_floppy_formats);
+ FLOPPY_CONNECTOR(config, m_floppy0, laser_floppies, "525", floppy_image_device::default_mfm_floppy_formats);
+ FLOPPY_CONNECTOR(config, m_floppy1, laser_floppies, "525", floppy_image_device::default_mfm_floppy_formats);
}