From 6ac6484d609894d840d228b7b68324f0217dc278 Mon Sep 17 00:00:00 2001 From: Michael Zapf Date: Tue, 21 Aug 2018 02:04:06 +0200 Subject: [PATCH] ti99: Kill some more MCFGs. (nw) --- src/devices/bus/hexbus/hx5102.cpp | 19 +++++++++-------- src/devices/bus/ti99/gromport/gkracker.cpp | 7 ++++--- src/devices/bus/ti99/gromport/multiconn.cpp | 13 ++++++------ src/devices/bus/ti99/gromport/singleconn.cpp | 7 ++++--- src/devices/bus/ti99/internal/998board.cpp | 13 ++++++------ src/devices/bus/ti99/peb/bwg.cpp | 17 +++++++-------- src/devices/bus/ti99/peb/hfdc.cpp | 22 ++++++++------------ src/devices/bus/ti99/peb/ti_fdc.cpp | 14 ++++++------- src/devices/imagedev/mfmhd.h | 16 +++++++++++++- 9 files changed, 69 insertions(+), 59 deletions(-) diff --git a/src/devices/bus/hexbus/hx5102.cpp b/src/devices/bus/hexbus/hx5102.cpp index c8a74e5ba49..580fad0e55e 100644 --- a/src/devices/bus/hexbus/hx5102.cpp +++ b/src/devices/bus/hexbus/hx5102.cpp @@ -667,7 +667,8 @@ INPUT_PORTS_END /* HX5102 configuration */ -MACHINE_CONFIG_START(hx5102_device::device_add_mconfig) +void hx5102_device::device_add_mconfig(machine_config& config) +{ // Hexbus controller IBC(config, m_hexbus_ctrl, 0); m_hexbus_ctrl->hexbus_cb().set(FUNC(hx5102_device::hexbus_out)); @@ -687,13 +688,13 @@ MACHINE_CONFIG_START(hx5102_device::device_add_mconfig) // Not connected: Select lines (DS0, DS1), Head load (HDL), VCO // Tied to 1: READY // Tied to 0: TC - MCFG_I8272A_ADD(FDC_TAG, false) - MCFG_UPD765_INTRQ_CALLBACK(WRITELINE(*this, hx5102_device, fdc_irq_w)) - MCFG_UPD765_DRQ_CALLBACK(WRITELINE(*this, hx5102_device, fdc_drq_w)) - MCFG_FLOPPY_DRIVE_ADD("d0", hx5102_drive, "525dd", hx5102_device::floppy_formats) - MCFG_FLOPPY_DRIVE_SOUND(true) - MCFG_FLOPPY_DRIVE_ADD("d1", hx5102_drive, nullptr, hx5102_device::floppy_formats) - MCFG_FLOPPY_DRIVE_SOUND(true) + I8272A(config, m_floppy_ctrl, 0); + m_floppy_ctrl->set_ready_line_connected(false); + m_floppy_ctrl->intrq_wr_callback().set(FUNC(hx5102_device::fdc_irq_w)); + m_floppy_ctrl->drq_wr_callback().set(FUNC(hx5102_device::fdc_drq_w)); + + FLOPPY_CONNECTOR(config, "d0", hx5102_drive, "525dd", hx5102_device::floppy_formats).enable_sound(true); + FLOPPY_CONNECTOR(config, "d1", hx5102_drive, nullptr, hx5102_device::floppy_formats).enable_sound(true); // Monoflops TTL74123(config, m_motormf, 0); @@ -721,7 +722,7 @@ MACHINE_CONFIG_START(hx5102_device::device_add_mconfig) // RAM RAM(config, RAM1_TAG).set_default_size("2048").set_default_value(0); RAM(config, RAM2_TAG).set_default_size("2048").set_default_value(0); -MACHINE_CONFIG_END +} ROM_START( hx5102 ) ROM_REGION( 0x4000, DSR_TAG, 0 ) diff --git a/src/devices/bus/ti99/gromport/gkracker.cpp b/src/devices/bus/ti99/gromport/gkracker.cpp index cd4a99d5000..d9de20949b2 100644 --- a/src/devices/bus/ti99/gromport/gkracker.cpp +++ b/src/devices/bus/ti99/gromport/gkracker.cpp @@ -433,9 +433,10 @@ const tiny_rom_entry *ti99_gkracker_device::device_rom_region() const return ROM_NAME( gkracker_rom ); } -MACHINE_CONFIG_START(ti99_gkracker_device::device_add_mconfig) - MCFG_DEVICE_ADD("cartridge", TI99_CART, 0) -MACHINE_CONFIG_END +void ti99_gkracker_device::device_add_mconfig(machine_config &config) +{ + TI99_CART(config, "cartridge", 0); +} INPUT_PORTS_START(gkracker) PORT_START( GKSWITCH1_TAG ) diff --git a/src/devices/bus/ti99/gromport/multiconn.cpp b/src/devices/bus/ti99/gromport/multiconn.cpp index 860d2e7fbd7..efaf57d649d 100644 --- a/src/devices/bus/ti99/gromport/multiconn.cpp +++ b/src/devices/bus/ti99/gromport/multiconn.cpp @@ -301,12 +301,13 @@ void ti99_multi_cart_conn_device::device_reset(void) m_grom_selected = false; } -MACHINE_CONFIG_START(ti99_multi_cart_conn_device::device_add_mconfig) - MCFG_DEVICE_ADD("cartridge1", TI99_CART, 0) - MCFG_DEVICE_ADD("cartridge2", TI99_CART, 0) - MCFG_DEVICE_ADD("cartridge3", TI99_CART, 0) - MCFG_DEVICE_ADD("cartridge4", TI99_CART, 0) -MACHINE_CONFIG_END +void ti99_multi_cart_conn_device::device_add_mconfig(machine_config &config) +{ + TI99_CART(config, "cartridge1", 0); + TI99_CART(config, "cartridge2", 0); + TI99_CART(config, "cartridge3", 0); + TI99_CART(config, "cartridge4", 0); +} INPUT_CHANGED_MEMBER( ti99_multi_cart_conn_device::switch_changed ) { diff --git a/src/devices/bus/ti99/gromport/singleconn.cpp b/src/devices/bus/ti99/gromport/singleconn.cpp index 93a7d088c0b..c967cf503f2 100644 --- a/src/devices/bus/ti99/gromport/singleconn.cpp +++ b/src/devices/bus/ti99/gromport/singleconn.cpp @@ -83,9 +83,10 @@ void ti99_single_cart_conn_device::device_reset() m_cartridge->set_slot(0); } -MACHINE_CONFIG_START(ti99_single_cart_conn_device::device_add_mconfig) - MCFG_DEVICE_ADD("cartridge", TI99_CART, 0) -MACHINE_CONFIG_END +void ti99_single_cart_conn_device::device_add_mconfig(machine_config &config) +{ + TI99_CART(config, "cartridge", 0); +} } } } // end namespace bus::ti99::gromport diff --git a/src/devices/bus/ti99/internal/998board.cpp b/src/devices/bus/ti99/internal/998board.cpp index ccfe31d9813..957fd1f0558 100644 --- a/src/devices/bus/ti99/internal/998board.cpp +++ b/src/devices/bus/ti99/internal/998board.cpp @@ -1070,12 +1070,13 @@ void mainboard8_device::device_reset() m_space = &m_maincpu->space(AS_PROGRAM); } -MACHINE_CONFIG_START(mainboard8_device::device_add_mconfig) - MCFG_DEVICE_ADD(TI998_VAQUERRO_TAG, TI99_VAQUERRO, 0) - MCFG_DEVICE_ADD(TI998_MOFETTA_TAG, TI99_MOFETTA, 0) - MCFG_DEVICE_ADD(TI998_AMIGO_TAG, TI99_AMIGO, 0) - MCFG_DEVICE_ADD(TI998_OSO_TAG, TI99_OSO, 0) -MACHINE_CONFIG_END +void mainboard8_device::device_add_mconfig(machine_config &config) +{ + TI99_VAQUERRO(config, TI998_VAQUERRO_TAG, 0); + TI99_MOFETTA(config, TI998_MOFETTA_TAG, 0); + TI99_AMIGO(config, TI998_AMIGO_TAG, 0); + TI99_OSO(config, TI998_OSO_TAG, 0); +} /*************************************************************************** ===== VAQUERRO: Logical Address Space decoder ===== diff --git a/src/devices/bus/ti99/peb/bwg.cpp b/src/devices/bus/ti99/peb/bwg.cpp index 4ef48a51ea0..877485174f2 100644 --- a/src/devices/bus/ti99/peb/bwg.cpp +++ b/src/devices/bus/ti99/peb/bwg.cpp @@ -675,24 +675,21 @@ ROM_START( bwg_fdc ) ROM_LOAD("bwg_dsr.u15", 0x0000, 0x8000, CRC(06f1ec89) SHA1(6ad77033ed268f986d9a5439e65f7d391c4b7651)) /* BwG disk DSR ROM */ ROM_END -MACHINE_CONFIG_START(snug_bwg_device::device_add_mconfig) +void snug_bwg_device::device_add_mconfig(machine_config& config) +{ WD1773(config, m_wd1773, 8_MHz_XTAL); m_wd1773->intrq_wr_callback().set(FUNC(snug_bwg_device::fdc_irq_w)); m_wd1773->drq_wr_callback().set(FUNC(snug_bwg_device::fdc_drq_w)); MM58274C(config, CLOCK_TAG, 0).set_mode_and_day(1, 0); // 24h, sunday - MCFG_FLOPPY_DRIVE_ADD("0", bwg_floppies, "525dd", snug_bwg_device::floppy_formats) - MCFG_FLOPPY_DRIVE_SOUND(true) - MCFG_FLOPPY_DRIVE_ADD("1", bwg_floppies, "525dd", snug_bwg_device::floppy_formats) - MCFG_FLOPPY_DRIVE_SOUND(true) - MCFG_FLOPPY_DRIVE_ADD("2", bwg_floppies, nullptr, snug_bwg_device::floppy_formats) - MCFG_FLOPPY_DRIVE_SOUND(true) - MCFG_FLOPPY_DRIVE_ADD("3", bwg_floppies, nullptr, snug_bwg_device::floppy_formats) - MCFG_FLOPPY_DRIVE_SOUND(true) + FLOPPY_CONNECTOR(config, "0", bwg_floppies, "525dd", snug_bwg_device::floppy_formats).enable_sound(true); + FLOPPY_CONNECTOR(config, "1", bwg_floppies, "525dd", snug_bwg_device::floppy_formats).enable_sound(true); + FLOPPY_CONNECTOR(config, "2", bwg_floppies, nullptr, snug_bwg_device::floppy_formats).enable_sound(true); + FLOPPY_CONNECTOR(config, "3", bwg_floppies, nullptr, snug_bwg_device::floppy_formats).enable_sound(true); RAM(config, BUFFER).set_default_size("2K").set_default_value(0); -MACHINE_CONFIG_END +} ioport_constructor snug_bwg_device::device_input_ports() const { diff --git a/src/devices/bus/ti99/peb/hfdc.cpp b/src/devices/bus/ti99/peb/hfdc.cpp index d48c138834a..97ac8d403ab 100644 --- a/src/devices/bus/ti99/peb/hfdc.cpp +++ b/src/devices/bus/ti99/peb/hfdc.cpp @@ -1069,7 +1069,6 @@ ROM_END void myarc_hfdc_device::device_add_mconfig(machine_config& config) { - device_t *device = nullptr; HDC9234(config, m_hdc9234, 0); m_hdc9234->intrq_cb().set(FUNC(myarc_hfdc_device::intrq_w)); m_hdc9234->dmarq_cb().set(FUNC(myarc_hfdc_device::dmarq_w)); @@ -1078,19 +1077,16 @@ void myarc_hfdc_device::device_add_mconfig(machine_config& config) m_hdc9234->dmain_cb().set(FUNC(myarc_hfdc_device::read_buffer)); m_hdc9234->dmaout_cb().set(FUNC(myarc_hfdc_device::write_buffer)); - MCFG_FLOPPY_DRIVE_ADD("f1", hfdc_floppies, "525dd", myarc_hfdc_device::floppy_formats) - MCFG_FLOPPY_DRIVE_SOUND(true) - MCFG_FLOPPY_DRIVE_ADD("f2", hfdc_floppies, "525dd", myarc_hfdc_device::floppy_formats) - MCFG_FLOPPY_DRIVE_SOUND(true) - MCFG_FLOPPY_DRIVE_ADD("f3", hfdc_floppies, nullptr, myarc_hfdc_device::floppy_formats) - MCFG_FLOPPY_DRIVE_SOUND(true) - MCFG_FLOPPY_DRIVE_ADD("f4", hfdc_floppies, nullptr, myarc_hfdc_device::floppy_formats) - MCFG_FLOPPY_DRIVE_SOUND(true) + // First two floppy drives shall be connected by default + FLOPPY_CONNECTOR(config, "f1", hfdc_floppies, "525dd", myarc_hfdc_device::floppy_formats).enable_sound(true); + FLOPPY_CONNECTOR(config, "f2", hfdc_floppies, "525dd", myarc_hfdc_device::floppy_formats).enable_sound(true); + FLOPPY_CONNECTOR(config, "f3", hfdc_floppies, nullptr, myarc_hfdc_device::floppy_formats).enable_sound(true); + FLOPPY_CONNECTOR(config, "f4", hfdc_floppies, nullptr, myarc_hfdc_device::floppy_formats).enable_sound(true); - // NB: Hard disks don't go without image (other than floppy drives) - MCFG_MFM_HARDDISK_CONN_ADD("h1", hfdc_harddisks, nullptr, MFM_BYTE, 3000, 20, MFMHD_GEN_FORMAT) - MCFG_MFM_HARDDISK_CONN_ADD("h2", hfdc_harddisks, nullptr, MFM_BYTE, 2000, 20, MFMHD_GEN_FORMAT) - MCFG_MFM_HARDDISK_CONN_ADD("h3", hfdc_harddisks, nullptr, MFM_BYTE, 2000, 20, MFMHD_GEN_FORMAT) + // Hard disks don't go without image (other than floppy drives) + MFM_HD_CONNECTOR(config, "h1", hfdc_harddisks, nullptr, MFM_BYTE, 3000, 20, MFMHD_GEN_FORMAT); + MFM_HD_CONNECTOR(config, "h2", hfdc_harddisks, nullptr, MFM_BYTE, 3000, 20, MFMHD_GEN_FORMAT); + MFM_HD_CONNECTOR(config, "h3", hfdc_harddisks, nullptr, MFM_BYTE, 3000, 20, MFMHD_GEN_FORMAT); MM58274C(config, CLOCK_TAG, 0).set_mode_and_day(1, 0); // 24h, sunday diff --git a/src/devices/bus/ti99/peb/ti_fdc.cpp b/src/devices/bus/ti99/peb/ti_fdc.cpp index 472a5d5d881..7fd4192757c 100644 --- a/src/devices/bus/ti99/peb/ti_fdc.cpp +++ b/src/devices/bus/ti99/peb/ti_fdc.cpp @@ -419,17 +419,15 @@ ROM_START( ti_fdc ) ROM_LOAD("fdc_dsr.u27", 0x1000, 0x1000, CRC(2c921087) SHA1(3646c3bcd2dce16b918ee01ea65312f36ae811d2)) /* TI disk DSR ROM second 4K */ ROM_END -MACHINE_CONFIG_START(ti_fdc_device::device_add_mconfig) +void ti_fdc_device::device_add_mconfig(machine_config& config) +{ FD1771(config, m_fd1771, 1_MHz_XTAL); m_fd1771->intrq_wr_callback().set(FUNC(ti_fdc_device::fdc_irq_w)); m_fd1771->drq_wr_callback().set(FUNC(ti_fdc_device::fdc_drq_w)); - MCFG_FLOPPY_DRIVE_ADD("0", tifdc_floppies, "525dd", ti_fdc_device::floppy_formats) - MCFG_FLOPPY_DRIVE_SOUND(true) - MCFG_FLOPPY_DRIVE_ADD("1", tifdc_floppies, "525dd", ti_fdc_device::floppy_formats) - MCFG_FLOPPY_DRIVE_SOUND(true) - MCFG_FLOPPY_DRIVE_ADD("2", tifdc_floppies, nullptr, ti_fdc_device::floppy_formats) - MCFG_FLOPPY_DRIVE_SOUND(true) + FLOPPY_CONNECTOR(config, "0", tifdc_floppies, "525dd", ti_fdc_device::floppy_formats).enable_sound(true); + FLOPPY_CONNECTOR(config, "1", tifdc_floppies, "525dd", ti_fdc_device::floppy_formats).enable_sound(true); + FLOPPY_CONNECTOR(config, "2", tifdc_floppies, nullptr, ti_fdc_device::floppy_formats).enable_sound(true); LS259(config, m_crulatch); // U23 m_crulatch->q_out_cb<0>().set(FUNC(ti_fdc_device::dskpgena_w)); @@ -440,7 +438,7 @@ MACHINE_CONFIG_START(ti_fdc_device::device_add_mconfig) m_crulatch->q_out_cb<5>().set(FUNC(ti_fdc_device::dsel_w)); m_crulatch->q_out_cb<6>().set(FUNC(ti_fdc_device::dsel_w)); m_crulatch->q_out_cb<7>().set(FUNC(ti_fdc_device::sidsel_w)); -MACHINE_CONFIG_END +} const tiny_rom_entry *ti_fdc_device::device_rom_region() const { diff --git a/src/devices/imagedev/mfmhd.h b/src/devices/imagedev/mfmhd.h index 972d7bd4e75..69b868a30ac 100644 --- a/src/devices/imagedev/mfmhd.h +++ b/src/devices/imagedev/mfmhd.h @@ -206,11 +206,25 @@ public: DECLARE_DEVICE_TYPE(MFMHD_ST251, mfm_hd_st251_device) -/* Connector for a MFM hard disk. See also floppy.c */ +/* + Connector for a MFM hard disk. Similar concept as in floppy.cpp. +*/ class mfm_harddisk_connector : public device_t, public device_slot_interface { public: + template + mfm_harddisk_connector(const machine_config &mconfig, const char *tag, device_t *owner, T &&opts, + const char *dflt, mfmhd_enc_t enc, int spinup, int cache, const mfmhd_format_type format, bool fixed = false) + : mfm_harddisk_connector(mconfig, tag, owner, 0) + { + option_reset(); + opts(*this); + set_default_option(dflt); + set_fixed(fixed); + configure(enc, spinup, cache, format); + } + mfm_harddisk_connector(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); ~mfm_harddisk_connector();