diff options
author | 2021-03-02 15:29:33 +0100 | |
---|---|---|
committer | 2021-03-02 15:30:45 +0100 | |
commit | 3c9e3749541b1da8a0c5409c582070aae66dd3d6 (patch) | |
tree | 7fafe993b6679ef13fb48ed7d5e18f47a8226928 /src/devices/bus | |
parent | dd75841b96ec3a16e937ae970a986b87cc9c9ee2 (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')
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); } |