diff options
130 files changed, 1296 insertions, 1786 deletions
diff --git a/src/devices/bus/ieee488/c2031.cpp b/src/devices/bus/ieee488/c2031.cpp index acbe18f66c4..846d3512a9b 100644 --- a/src/devices/bus/ieee488/c2031.cpp +++ b/src/devices/bus/ieee488/c2031.cpp @@ -299,10 +299,10 @@ FLOPPY_FORMATS_END //------------------------------------------------- -// MACHINE_DRIVER( c2031 ) +// device_add_mconfig - add device configuration //------------------------------------------------- -static MACHINE_CONFIG_START( c2031 ) +MACHINE_CONFIG_MEMBER( c2031_device::device_add_mconfig ) MCFG_CPU_ADD(M6502_TAG, M6502, XTAL_16MHz/16) MCFG_CPU_PROGRAM_MAP(c2031_mem) MCFG_QUANTUM_PERFECT_CPU(M6502_TAG) @@ -330,17 +330,6 @@ MACHINE_CONFIG_END //------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations -//------------------------------------------------- - -machine_config_constructor c2031_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( c2031 ); -} - - -//------------------------------------------------- // INPUT_PORTS( c2031 ) //------------------------------------------------- diff --git a/src/devices/bus/ieee488/c2031.h b/src/devices/bus/ieee488/c2031.h index 38b102d381a..9d892bb467d 100644 --- a/src/devices/bus/ieee488/c2031.h +++ b/src/devices/bus/ieee488/c2031.h @@ -31,11 +31,23 @@ public: // construction/destruction c2031_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + // optional information overrides virtual const tiny_rom_entry *device_rom_region() const override; - virtual machine_config_constructor device_mconfig_additions() const override; + virtual void device_add_mconfig(machine_config &config) override; virtual ioport_constructor device_input_ports() const override; + // device_ieee488_interface overrides + virtual void ieee488_atn(int state) override; + virtual void ieee488_ifc(int state) override; + +private: + inline int get_device_number(); + DECLARE_WRITE_LINE_MEMBER( via0_irq_w ); DECLARE_READ8_MEMBER( via0_pa_r ); DECLARE_WRITE8_MEMBER( via0_pa_w ); @@ -48,17 +60,6 @@ public: DECLARE_FLOPPY_FORMATS( floppy_formats ); -protected: - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - - // device_ieee488_interface overrides - virtual void ieee488_atn(int state) override; - virtual void ieee488_ifc(int state) override; - - inline int get_device_number(); - required_device<cpu_device> m_maincpu; required_device<via6522_device> m_via0; required_device<via6522_device> m_via1; diff --git a/src/devices/bus/ieee488/c2040.cpp b/src/devices/bus/ieee488/c2040.cpp index 60370c57908..982dd693743 100644 --- a/src/devices/bus/ieee488/c2040.cpp +++ b/src/devices/bus/ieee488/c2040.cpp @@ -445,10 +445,10 @@ FLOPPY_FORMATS_END //------------------------------------------------- -// MACHINE_CONFIG_START( c2040 ) +// device_add_mconfig - add device configuration //------------------------------------------------- -static MACHINE_CONFIG_START( c2040 ) +MACHINE_CONFIG_MEMBER( c2040_device::device_add_mconfig ) // DOS MCFG_CPU_ADD(M6502_TAG, M6502, XTAL_16MHz/16) MCFG_CPU_PROGRAM_MAP(c2040_main_mem) @@ -491,22 +491,7 @@ static MACHINE_CONFIG_START( c2040 ) MACHINE_CONFIG_END -//------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations -//------------------------------------------------- - -machine_config_constructor c2040_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( c2040 ); -} - - -//------------------------------------------------- -// MACHINE_CONFIG_START( c3040 ) -//------------------------------------------------- - -static MACHINE_CONFIG_START( c3040 ) +MACHINE_CONFIG_MEMBER( c3040_device::device_add_mconfig ) // DOS MCFG_CPU_ADD(M6502_TAG, M6502, XTAL_16MHz/16) MCFG_CPU_PROGRAM_MAP(c2040_main_mem) @@ -549,22 +534,7 @@ static MACHINE_CONFIG_START( c3040 ) MACHINE_CONFIG_END -//------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations -//------------------------------------------------- - -machine_config_constructor c3040_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( c3040 ); -} - - -//------------------------------------------------- -// MACHINE_CONFIG_START( c4040 ) -//------------------------------------------------- - -static MACHINE_CONFIG_START( c4040 ) +MACHINE_CONFIG_MEMBER( c4040_device::device_add_mconfig ) // DOS MCFG_CPU_ADD(M6502_TAG, M6502, XTAL_16MHz/16) MCFG_CPU_PROGRAM_MAP(c2040_main_mem) @@ -608,17 +578,6 @@ MACHINE_CONFIG_END //------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations -//------------------------------------------------- - -machine_config_constructor c4040_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( c4040 ); -} - - -//------------------------------------------------- // INPUT_PORTS( c2040 ) //------------------------------------------------- diff --git a/src/devices/bus/ieee488/c2040.h b/src/devices/bus/ieee488/c2040.h index 7289c99c43e..3c6eef7df60 100644 --- a/src/devices/bus/ieee488/c2040.h +++ b/src/devices/bus/ieee488/c2040.h @@ -32,11 +32,6 @@ public: // construction/destruction c2040_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // optional information overrides - virtual const tiny_rom_entry *device_rom_region() const override; - virtual machine_config_constructor device_mconfig_additions() const override; - virtual ioport_constructor device_input_ports() const override; - DECLARE_READ8_MEMBER( dio_r ); DECLARE_WRITE8_MEMBER( dio_w ); DECLARE_READ8_MEMBER( riot1_pa_r ); @@ -45,8 +40,6 @@ public: DECLARE_WRITE8_MEMBER( riot1_pb_w ); DECLARE_WRITE8_MEMBER( via_pb_w ); - DECLARE_FLOPPY_FORMATS( floppy_formats ); - protected: c2040_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); @@ -54,6 +47,11 @@ protected: virtual void device_start() override; virtual void device_reset() override; + // optional information overrides + virtual const tiny_rom_entry *device_rom_region() const override; + virtual void device_add_mconfig(machine_config &config) override; + virtual ioport_constructor device_input_ports() const override; + // device_ieee488_interface overrides virtual void ieee488_atn(int state) override; virtual void ieee488_ifc(int state) override; @@ -68,6 +66,8 @@ protected: inline void update_ieee_signals(); + DECLARE_FLOPPY_FORMATS( floppy_formats ); + required_device<m6502_device> m_maincpu; required_device<m6504_device> m_fdccpu; required_device<mos6532_new_device> m_riot0; @@ -96,10 +96,12 @@ public: // construction/destruction c3040_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); +protected: // optional information overrides virtual const tiny_rom_entry *device_rom_region() const override; - virtual machine_config_constructor device_mconfig_additions() const override; + virtual void device_add_mconfig(machine_config &config) override; +private: DECLARE_FLOPPY_FORMATS( floppy_formats ); }; @@ -112,10 +114,12 @@ public: // construction/destruction c4040_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); +protected: // optional information overrides virtual const tiny_rom_entry *device_rom_region() const override; - virtual machine_config_constructor device_mconfig_additions() const override; + virtual void device_add_mconfig(machine_config &config) override; +private: DECLARE_FLOPPY_FORMATS( floppy_formats ); }; diff --git a/src/devices/bus/ieee488/c8050.cpp b/src/devices/bus/ieee488/c8050.cpp index a7c8fb5cb77..2d73ed644ed 100644 --- a/src/devices/bus/ieee488/c8050.cpp +++ b/src/devices/bus/ieee488/c8050.cpp @@ -521,10 +521,10 @@ FLOPPY_FORMATS_END //------------------------------------------------- -// MACHINE_CONFIG_START( c8050 ) +// device_add_mconfig - add device configuration //------------------------------------------------- -static MACHINE_CONFIG_START( c8050 ) +MACHINE_CONFIG_MEMBER( c8050_device::device_add_mconfig ) // DOS MCFG_CPU_ADD(M6502_TAG, M6502, XTAL_12MHz/12) MCFG_CPU_PROGRAM_MAP(c8050_main_mem) @@ -569,22 +569,7 @@ static MACHINE_CONFIG_START( c8050 ) MACHINE_CONFIG_END -//------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations -//------------------------------------------------- - -machine_config_constructor c8050_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( c8050 ); -} - - -//------------------------------------------------- -// MACHINE_CONFIG_START( c8250 ) -//------------------------------------------------- - -static MACHINE_CONFIG_START( c8250 ) +MACHINE_CONFIG_MEMBER( c8250_device::device_add_mconfig ) // DOS MCFG_CPU_ADD(M6502_TAG, M6502, XTAL_12MHz/12) MCFG_CPU_PROGRAM_MAP(c8050_main_mem) @@ -630,22 +615,7 @@ static MACHINE_CONFIG_START( c8250 ) MACHINE_CONFIG_END -//------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations -//------------------------------------------------- - -machine_config_constructor c8250_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( c8250 ); -} - - -//------------------------------------------------- -// MACHINE_CONFIG_START( c8250lp ) -//------------------------------------------------- - -static MACHINE_CONFIG_START( c8250lp ) +MACHINE_CONFIG_MEMBER( c8250lp_device::device_add_mconfig ) // DOS MCFG_CPU_ADD(M6502_TAG, M6502, XTAL_12MHz/12) MCFG_CPU_PROGRAM_MAP(c8050_main_mem) @@ -691,22 +661,7 @@ static MACHINE_CONFIG_START( c8250lp ) MACHINE_CONFIG_END -//------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations -//------------------------------------------------- - -machine_config_constructor c8250lp_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( c8250lp ); -} - - -//------------------------------------------------- -// MACHINE_CONFIG_START( sfd1001 ) -//------------------------------------------------- - -static MACHINE_CONFIG_START( sfd1001 ) +MACHINE_CONFIG_MEMBER( sfd1001_device::device_add_mconfig ) // DOS MCFG_CPU_ADD(M6502_TAG, M6502, XTAL_12MHz/12) MCFG_CPU_PROGRAM_MAP(c8050_main_mem) @@ -751,17 +706,6 @@ MACHINE_CONFIG_END //------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations -//------------------------------------------------- - -machine_config_constructor sfd1001_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( sfd1001 ); -} - - -//------------------------------------------------- // INPUT_PORTS( c8050 ) //------------------------------------------------- diff --git a/src/devices/bus/ieee488/c8050.h b/src/devices/bus/ieee488/c8050.h index c777a2b4b5b..7eb6c5b9b0d 100644 --- a/src/devices/bus/ieee488/c8050.h +++ b/src/devices/bus/ieee488/c8050.h @@ -32,11 +32,6 @@ public: // construction/destruction c8050_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // optional information overrides - virtual const tiny_rom_entry *device_rom_region() const override; - virtual machine_config_constructor device_mconfig_additions() const override; - virtual ioport_constructor device_input_ports() const override; - DECLARE_READ8_MEMBER( dio_r ); DECLARE_WRITE8_MEMBER( dio_w ); DECLARE_READ8_MEMBER( riot1_pa_r ); @@ -45,8 +40,6 @@ public: DECLARE_WRITE8_MEMBER( riot1_pb_w ); DECLARE_WRITE8_MEMBER( via_pb_w ); - DECLARE_FLOPPY_FORMATS( floppy_formats ); - protected: c8050_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); @@ -54,6 +47,11 @@ protected: virtual void device_start() override; virtual void device_reset() override; + // optional information overrides + virtual const tiny_rom_entry *device_rom_region() const override; + virtual void device_add_mconfig(machine_config &config) override; + virtual ioport_constructor device_input_ports() const override; + // device_ieee488_interface overrides virtual void ieee488_atn(int state) override; virtual void ieee488_ifc(int state) override; @@ -76,6 +74,9 @@ protected: int m_daco; // not data accepted output int m_atna; // attention acknowledge int m_ifc; + +private: + DECLARE_FLOPPY_FORMATS( floppy_formats ); }; @@ -87,9 +88,11 @@ public: // construction/destruction c8250_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); +protected: // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; + virtual void device_add_mconfig(machine_config &config) override; +private: DECLARE_FLOPPY_FORMATS( floppy_formats ); }; @@ -102,10 +105,12 @@ public: // construction/destruction c8250lp_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); +protected: // optional information overrides virtual const tiny_rom_entry *device_rom_region() const override; - virtual machine_config_constructor device_mconfig_additions() const override; + virtual void device_add_mconfig(machine_config &config) override; +private: DECLARE_FLOPPY_FORMATS( floppy_formats ); }; @@ -118,10 +123,12 @@ public: // construction/destruction sfd1001_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); +protected: // optional information overrides virtual const tiny_rom_entry *device_rom_region() const override; - virtual machine_config_constructor device_mconfig_additions() const override; + virtual void device_add_mconfig(machine_config &config) override; +private: DECLARE_FLOPPY_FORMATS( floppy_formats ); }; diff --git a/src/devices/bus/ieee488/c8280.cpp b/src/devices/bus/ieee488/c8280.cpp index c115e7502e4..007f64d8710 100644 --- a/src/devices/bus/ieee488/c8280.cpp +++ b/src/devices/bus/ieee488/c8280.cpp @@ -286,10 +286,10 @@ FLOPPY_FORMATS_END //------------------------------------------------- -// MACHINE_CONFIG_START( c8280 ) +// device_add_mconfig - add device configuration //------------------------------------------------- -static MACHINE_CONFIG_START( c8280 ) +MACHINE_CONFIG_MEMBER( c8280_device::device_add_mconfig ) MCFG_CPU_ADD(M6502_DOS_TAG, M6502, XTAL_12MHz/8) MCFG_CPU_PROGRAM_MAP(c8280_main_mem) @@ -316,17 +316,6 @@ MACHINE_CONFIG_END //------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations -//------------------------------------------------- - -machine_config_constructor c8280_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( c8280 ); -} - - -//------------------------------------------------- // INPUT_PORTS( c8280 ) //------------------------------------------------- diff --git a/src/devices/bus/ieee488/c8280.h b/src/devices/bus/ieee488/c8280.h index 8c840d707f5..c7b62e1b032 100644 --- a/src/devices/bus/ieee488/c8280.h +++ b/src/devices/bus/ieee488/c8280.h @@ -31,28 +31,19 @@ public: // construction/destruction c8280_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // optional information overrides - virtual const tiny_rom_entry *device_rom_region() const override; - virtual machine_config_constructor device_mconfig_additions() const override; - virtual ioport_constructor device_input_ports() const override; - - // not really public - DECLARE_READ8_MEMBER( dio_r ); - DECLARE_WRITE8_MEMBER( dio_w ); - DECLARE_READ8_MEMBER( riot1_pa_r ); - DECLARE_WRITE8_MEMBER( riot1_pa_w ); - DECLARE_READ8_MEMBER( riot1_pb_r ); - DECLARE_WRITE8_MEMBER( riot1_pb_w ); DECLARE_READ8_MEMBER( fk5_r ); DECLARE_WRITE8_MEMBER( fk5_w ); - DECLARE_FLOPPY_FORMATS( floppy_formats ); - protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; + // optional information overrides + virtual const tiny_rom_entry *device_rom_region() const override; + virtual void device_add_mconfig(machine_config &config) override; + virtual ioport_constructor device_input_ports() const override; + // device_ieee488_interface overrides void ieee488_atn(int state) override; void ieee488_ifc(int state) override; @@ -60,6 +51,15 @@ protected: private: inline void update_ieee_signals(); + DECLARE_READ8_MEMBER( dio_r ); + DECLARE_WRITE8_MEMBER( dio_w ); + DECLARE_READ8_MEMBER( riot1_pa_r ); + DECLARE_WRITE8_MEMBER( riot1_pa_w ); + DECLARE_READ8_MEMBER( riot1_pb_r ); + DECLARE_WRITE8_MEMBER( riot1_pb_w ); + + DECLARE_FLOPPY_FORMATS( floppy_formats ); + required_device<cpu_device> m_maincpu; required_device<cpu_device> m_fdccpu; required_device<mos6532_new_device> m_riot0; diff --git a/src/devices/bus/ieee488/d9060.cpp b/src/devices/bus/ieee488/d9060.cpp index 2f786a6735c..9260e804703 100644 --- a/src/devices/bus/ieee488/d9060.cpp +++ b/src/devices/bus/ieee488/d9060.cpp @@ -365,10 +365,10 @@ WRITE8_MEMBER( d9060_device_base::scsi_data_w ) //------------------------------------------------- -// MACHINE_CONFIG_START( d9060 ) +// device_add_mconfig - add device configuration //------------------------------------------------- -static MACHINE_CONFIG_START( d9060 ) +MACHINE_CONFIG_MEMBER( d9060_device_base::device_add_mconfig ) // DOS MCFG_CPU_ADD(M6502_DOS_TAG, M6502, XTAL_4MHz/4) MCFG_CPU_PROGRAM_MAP(d9060_main_mem) @@ -417,17 +417,6 @@ MACHINE_CONFIG_END //------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations -//------------------------------------------------- - -machine_config_constructor d9060_device_base::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( d9060 ); -} - - -//------------------------------------------------- // INPUT_PORTS( d9060 ) //------------------------------------------------- diff --git a/src/devices/bus/ieee488/d9060.h b/src/devices/bus/ieee488/d9060.h index e58f4c5f01c..b65155cd930 100644 --- a/src/devices/bus/ieee488/d9060.h +++ b/src/devices/bus/ieee488/d9060.h @@ -28,24 +28,6 @@ class d9060_device_base : public device_t, public device_ieee488_interface { -public: - // optional information overrides - virtual const tiny_rom_entry *device_rom_region() const override; - virtual machine_config_constructor device_mconfig_additions() const override; - virtual ioport_constructor device_input_ports() const override; - - // not really public - DECLARE_READ8_MEMBER( dio_r ); - DECLARE_WRITE8_MEMBER( dio_w ); - DECLARE_READ8_MEMBER( riot1_pa_r ); - DECLARE_WRITE8_MEMBER( riot1_pa_w ); - DECLARE_READ8_MEMBER( riot1_pb_r ); - DECLARE_WRITE8_MEMBER( riot1_pb_w ); - DECLARE_WRITE8_MEMBER( via_pb_w ); - DECLARE_WRITE_LINE_MEMBER( ack_w ); - DECLARE_WRITE_LINE_MEMBER( enable_w ); - DECLARE_WRITE8_MEMBER( scsi_data_w ); - protected: enum { @@ -60,6 +42,11 @@ protected: virtual void device_start() override; virtual void device_reset() override; + // optional information overrides + virtual const tiny_rom_entry *device_rom_region() const override; + virtual void device_add_mconfig(machine_config &config) override; + virtual ioport_constructor device_input_ports() const override; + // device_ieee488_interface overrides void ieee488_atn(int state) override; void ieee488_ifc(int state) override; @@ -67,6 +54,17 @@ protected: private: inline void update_ieee_signals(); + DECLARE_READ8_MEMBER( dio_r ); + DECLARE_WRITE8_MEMBER( dio_w ); + DECLARE_READ8_MEMBER( riot1_pa_r ); + DECLARE_WRITE8_MEMBER( riot1_pa_w ); + DECLARE_READ8_MEMBER( riot1_pb_r ); + DECLARE_WRITE8_MEMBER( riot1_pb_w ); + DECLARE_WRITE8_MEMBER( via_pb_w ); + DECLARE_WRITE_LINE_MEMBER( ack_w ); + DECLARE_WRITE_LINE_MEMBER( enable_w ); + DECLARE_WRITE8_MEMBER( scsi_data_w ); + required_device<cpu_device> m_maincpu; required_device<cpu_device> m_hdccpu; required_device<mos6532_new_device> m_riot0; diff --git a/src/devices/bus/ieee488/hardbox.cpp b/src/devices/bus/ieee488/hardbox.cpp index c26831bb024..24a26c8ac25 100644 --- a/src/devices/bus/ieee488/hardbox.cpp +++ b/src/devices/bus/ieee488/hardbox.cpp @@ -260,11 +260,12 @@ WRITE8_MEMBER( hardbox_device::ppi1_pc_w ) machine().output().set_led_value(LED_READY, !BIT(data, 2)); } + //------------------------------------------------- -// MACHINE_CONFIG_START( hardbox ) +// device_add_mconfig - add device configuration //------------------------------------------------- -static MACHINE_CONFIG_START( hardbox ) +MACHINE_CONFIG_MEMBER( hardbox_device::device_add_mconfig ) // basic machine hardware MCFG_CPU_ADD(Z80_TAG, Z80, XTAL_8MHz/2) MCFG_CPU_PROGRAM_MAP(hardbox_mem) @@ -295,17 +296,6 @@ MACHINE_CONFIG_END //------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations -//------------------------------------------------- - -machine_config_constructor hardbox_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( hardbox ); -} - - -//------------------------------------------------- // INPUT_PORTS( hardbox ) //------------------------------------------------- diff --git a/src/devices/bus/ieee488/hardbox.h b/src/devices/bus/ieee488/hardbox.h index d10a19c7268..e74f12054dc 100644 --- a/src/devices/bus/ieee488/hardbox.h +++ b/src/devices/bus/ieee488/hardbox.h @@ -33,11 +33,20 @@ public: // construction/destruction hardbox_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset_after_children() override; + // optional information overrides virtual const tiny_rom_entry *device_rom_region() const override; - virtual machine_config_constructor device_mconfig_additions() const override; + virtual void device_add_mconfig(machine_config &config) override; virtual ioport_constructor device_input_ports() const override; + // device_ieee488_interface overrides + virtual void ieee488_ifc(int state) override; + +private: DECLARE_READ8_MEMBER( ppi0_pa_r ); DECLARE_WRITE8_MEMBER( ppi0_pb_w ); DECLARE_READ8_MEMBER( ppi0_pc_r ); @@ -47,15 +56,6 @@ public: DECLARE_READ8_MEMBER( ppi1_pc_r ); DECLARE_WRITE8_MEMBER( ppi1_pc_w ); -protected: - // device-level overrides - virtual void device_start() override; - virtual void device_reset_after_children() override; - - // device_ieee488_interface overrides - virtual void ieee488_ifc(int state) override; - -private: enum { LED_A, diff --git a/src/devices/bus/ieee488/hp9895.cpp b/src/devices/bus/ieee488/hp9895.cpp index 26b4c479213..a3a52535f23 100644 --- a/src/devices/bus/ieee488/hp9895.cpp +++ b/src/devices/bus/ieee488/hp9895.cpp @@ -873,7 +873,12 @@ static const floppy_format_type hp9895_floppy_formats[] = { nullptr }; -static MACHINE_CONFIG_START(hp9895) +const tiny_rom_entry *hp9895_device::device_rom_region() const +{ + return ROM_NAME(hp9895); +} + +MACHINE_CONFIG_MEMBER(hp9895_device::device_add_mconfig) MCFG_CPU_ADD("cpu" , Z80 , 4000000) MCFG_CPU_PROGRAM_MAP(z80_program_map) MCFG_CPU_IO_MAP(z80_io_map) @@ -896,13 +901,3 @@ static MACHINE_CONFIG_START(hp9895) MCFG_FLOPPY_DRIVE_ADD("floppy1" , hp9895_floppies , "8dsdd" , hp9895_floppy_formats) MCFG_SLOT_FIXED(true) MACHINE_CONFIG_END - -const tiny_rom_entry *hp9895_device::device_rom_region() const -{ - return ROM_NAME(hp9895); -} - -machine_config_constructor hp9895_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME(hp9895); -} diff --git a/src/devices/bus/ieee488/hp9895.h b/src/devices/bus/ieee488/hp9895.h index 001a03abd56..d30a5fac85f 100644 --- a/src/devices/bus/ieee488/hp9895.h +++ b/src/devices/bus/ieee488/hp9895.h @@ -26,11 +26,6 @@ public: // construction/destruction hp9895_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual ioport_constructor device_input_ports() const override; - virtual const tiny_rom_entry *device_rom_region() const override; - virtual machine_config_constructor device_mconfig_additions() const override; - // device_ieee488_interface overrides virtual void ieee488_eoi(int state) override; virtual void ieee488_dav(int state) override; @@ -41,27 +36,6 @@ public: virtual void ieee488_atn(int state) override; virtual void ieee488_ren(int state) override; - // PHI write CBs - DECLARE_WRITE_LINE_MEMBER(phi_eoi_w); - DECLARE_WRITE_LINE_MEMBER(phi_dav_w); - DECLARE_WRITE_LINE_MEMBER(phi_nrfd_w); - DECLARE_WRITE_LINE_MEMBER(phi_ndac_w); - DECLARE_WRITE_LINE_MEMBER(phi_ifc_w); - DECLARE_WRITE_LINE_MEMBER(phi_srq_w); - DECLARE_WRITE_LINE_MEMBER(phi_atn_w); - DECLARE_WRITE_LINE_MEMBER(phi_ren_w); - - // PHI DIO r/w CBs - DECLARE_READ8_MEMBER(phi_dio_r); - DECLARE_WRITE8_MEMBER(phi_dio_w); - - // PHI IRQ/Z80 NMI - DECLARE_WRITE_LINE_MEMBER(phi_int_w); - - // PHI register read & Z80 IRQ - DECLARE_READ8_MEMBER(phi_reg_r); - DECLARE_WRITE16_MEMBER(z80_m1_w); - // Floppy interface DECLARE_WRITE8_MEMBER(data_w); DECLARE_WRITE8_MEMBER(clock_w); @@ -76,6 +50,9 @@ public: DECLARE_READ8_MEMBER(switches_r); DECLARE_READ8_MEMBER(switches2_r); + // PHI register read + DECLARE_READ8_MEMBER(phi_reg_r); + // Floppy drive interface void floppy_ready_cb(floppy_image_device *floppy , int state); @@ -84,7 +61,32 @@ protected: virtual void device_reset() override; virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + // device-level overrides + virtual ioport_constructor device_input_ports() const override; + virtual const tiny_rom_entry *device_rom_region() const override; + virtual void device_add_mconfig(machine_config &config) override; + private: + // PHI write CBs + DECLARE_WRITE_LINE_MEMBER(phi_eoi_w); + DECLARE_WRITE_LINE_MEMBER(phi_dav_w); + DECLARE_WRITE_LINE_MEMBER(phi_nrfd_w); + DECLARE_WRITE_LINE_MEMBER(phi_ndac_w); + DECLARE_WRITE_LINE_MEMBER(phi_ifc_w); + DECLARE_WRITE_LINE_MEMBER(phi_srq_w); + DECLARE_WRITE_LINE_MEMBER(phi_atn_w); + DECLARE_WRITE_LINE_MEMBER(phi_ren_w); + + // PHI DIO r/w CBs + DECLARE_READ8_MEMBER(phi_dio_r); + DECLARE_WRITE8_MEMBER(phi_dio_w); + + // PHI IRQ/Z80 NMI + DECLARE_WRITE_LINE_MEMBER(phi_int_w); + + // Z80 IRQ + DECLARE_WRITE16_MEMBER(z80_m1_w); + required_device<z80_device> m_cpu; required_device<phi_device> m_phi; required_device<floppy_connector> m_drives[ 2 ]; diff --git a/src/devices/bus/ieee488/shark.cpp b/src/devices/bus/ieee488/shark.cpp index 0cf7dfbc5a8..608c133ae36 100644 --- a/src/devices/bus/ieee488/shark.cpp +++ b/src/devices/bus/ieee488/shark.cpp @@ -75,10 +75,10 @@ ADDRESS_MAP_END //------------------------------------------------- -// MACHINE_CONFIG_START( mshark ) +// device_add_mconfig - add device configuration //------------------------------------------------- -static MACHINE_CONFIG_START( mshark ) +MACHINE_CONFIG_MEMBER( mshark_device::device_add_mconfig ) // basic machine hardware MCFG_CPU_ADD(I8085_TAG, I8085A, 1000000) MCFG_CPU_PROGRAM_MAP(mshark_mem) @@ -91,17 +91,6 @@ MACHINE_CONFIG_END //------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations -//------------------------------------------------- - -machine_config_constructor mshark_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( mshark ); -} - - -//------------------------------------------------- // INPUT_PORTS( mshark ) //------------------------------------------------- diff --git a/src/devices/bus/ieee488/shark.h b/src/devices/bus/ieee488/shark.h index 5b3893cd910..496be3d6176 100644 --- a/src/devices/bus/ieee488/shark.h +++ b/src/devices/bus/ieee488/shark.h @@ -30,15 +30,15 @@ public: // construction/destruction mshark_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // optional information overrides - virtual const tiny_rom_entry *device_rom_region() const override; - virtual machine_config_constructor device_mconfig_additions() const override; - virtual ioport_constructor device_input_ports() const override; - protected: // device-level overrides virtual void device_start() override; + // optional information overrides + virtual const tiny_rom_entry *device_rom_region() const override; + virtual void device_add_mconfig(machine_config &config) override; + virtual ioport_constructor device_input_ports() const override; + private: required_device<cpu_device> m_maincpu; }; diff --git a/src/devices/bus/ieee488/softbox.cpp b/src/devices/bus/ieee488/softbox.cpp index 84a980acf53..e89378d32b5 100644 --- a/src/devices/bus/ieee488/softbox.cpp +++ b/src/devices/bus/ieee488/softbox.cpp @@ -229,10 +229,10 @@ DEVICE_INPUT_DEFAULTS_END //------------------------------------------------- -// MACHINE_CONFIG_START( softbox ) +// device_add_mconfig - add device configuration //------------------------------------------------- -static MACHINE_CONFIG_START( softbox ) +MACHINE_CONFIG_MEMBER( softbox_device::device_add_mconfig ) // basic machine hardware MCFG_CPU_ADD(Z80_TAG, Z80, XTAL_8MHz/2) MCFG_CPU_PROGRAM_MAP(softbox_mem) @@ -278,17 +278,6 @@ MACHINE_CONFIG_END //------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations -//------------------------------------------------- - -machine_config_constructor softbox_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( softbox ); -} - - -//------------------------------------------------- // INPUT_PORTS( softbox ) //------------------------------------------------- diff --git a/src/devices/bus/ieee488/softbox.h b/src/devices/bus/ieee488/softbox.h index 07bb986ba91..14284042d82 100644 --- a/src/devices/bus/ieee488/softbox.h +++ b/src/devices/bus/ieee488/softbox.h @@ -35,13 +35,22 @@ public: // construction/destruction softbox_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + DECLARE_WRITE8_MEMBER( dbrg_w ); + +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset_after_children() override; + // optional information overrides virtual const tiny_rom_entry *device_rom_region() const override; - virtual machine_config_constructor device_mconfig_additions() const override; + virtual void device_add_mconfig(machine_config &config) override; virtual ioport_constructor device_input_ports() const override; - DECLARE_WRITE8_MEMBER( dbrg_w ); + // device_ieee488_interface overrides + virtual void ieee488_ifc(int state) override; +private: DECLARE_READ8_MEMBER( ppi0_pa_r ); DECLARE_WRITE8_MEMBER( ppi0_pb_w ); @@ -50,15 +59,6 @@ public: DECLARE_READ8_MEMBER( ppi1_pc_r ); DECLARE_WRITE8_MEMBER( ppi1_pc_w ); -protected: - // device-level overrides - virtual void device_start() override; - virtual void device_reset_after_children() override; - - // device_ieee488_interface overrides - virtual void ieee488_ifc(int state) override; - -private: enum { LED_A, diff --git a/src/devices/bus/imi7000/imi5000h.cpp b/src/devices/bus/imi7000/imi5000h.cpp index c9465c32b6b..a2b2c582984 100644 --- a/src/devices/bus/imi7000/imi5000h.cpp +++ b/src/devices/bus/imi7000/imi5000h.cpp @@ -337,10 +337,10 @@ WRITE8_MEMBER( imi5000h_device::pio3_pb_w ) } //------------------------------------------------- -// MACHINE_DRIVER( imi5000h ) +// device_add_mconfig - add device configuration //------------------------------------------------- -static MACHINE_CONFIG_START( imi5000h ) +MACHINE_CONFIG_MEMBER( imi5000h_device::device_add_mconfig ) MCFG_CPU_ADD(Z80_TAG, Z80, XTAL_8MHz/2) MCFG_Z80_DAISY_CHAIN(z80_daisy_chain) MCFG_CPU_PROGRAM_MAP(imi5000h_mem) @@ -382,17 +382,6 @@ MACHINE_CONFIG_END //------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations -//------------------------------------------------- - -machine_config_constructor imi5000h_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( imi5000h ); -} - - -//------------------------------------------------- // INPUT_PORTS( imi5000h ) //------------------------------------------------- diff --git a/src/devices/bus/imi7000/imi5000h.h b/src/devices/bus/imi7000/imi5000h.h index 89165ef328e..78a8113dc0a 100644 --- a/src/devices/bus/imi7000/imi5000h.h +++ b/src/devices/bus/imi7000/imi5000h.h @@ -34,11 +34,17 @@ public: // construction/destruction imi5000h_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + // optional information overrides virtual const tiny_rom_entry *device_rom_region() const override; - virtual machine_config_constructor device_mconfig_additions() const override; + virtual void device_add_mconfig(machine_config &config) override; virtual ioport_constructor device_input_ports() const override; +private: DECLARE_WRITE_LINE_MEMBER( ctc_z0_w ); DECLARE_WRITE_LINE_MEMBER( ctc_z1_w ); DECLARE_WRITE_LINE_MEMBER( ctc_z2_w ); @@ -58,12 +64,6 @@ public: DECLARE_READ8_MEMBER( pio3_pb_r ); DECLARE_WRITE8_MEMBER( pio3_pb_w ); -protected: - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - -private: enum { LED_FAULT, diff --git a/src/devices/bus/intv/ecs.cpp b/src/devices/bus/intv/ecs.cpp index fe90b9313ff..be0de17131b 100644 --- a/src/devices/bus/intv/ecs.cpp +++ b/src/devices/bus/intv/ecs.cpp @@ -90,11 +90,11 @@ void intv_ecs_device::late_subslot_setup() } //------------------------------------------------- -// MACHINE_CONFIG_START( sub_slot ) +// device_add_mconfig - add device configuration //------------------------------------------------- -static MACHINE_CONFIG_START( sub_slot ) +MACHINE_CONFIG_MEMBER( intv_ecs_device::device_add_mconfig ) MCFG_SPEAKER_STANDARD_MONO("mono_ecs") MCFG_SOUND_ADD("ay8914", AY8914, XTAL_3_579545MHz/2) @@ -108,12 +108,6 @@ static MACHINE_CONFIG_START( sub_slot ) MACHINE_CONFIG_END -machine_config_constructor intv_ecs_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( sub_slot ); -} - - ROM_START( ecs ) ROM_REGION( 0x20000, "ecs", ROMREGION_ERASEFF ) ROM_LOAD16_WORD_SWAP( "ecs_rom.20", 0x04000, 0x2000, CRC(5f9d05e5) SHA1(083a3e7405b8f8b4b8a5003ca9c31b8d824b535c)) diff --git a/src/devices/bus/intv/ecs.h b/src/devices/bus/intv/ecs.h index d577ba66250..943a768fe03 100644 --- a/src/devices/bus/intv/ecs.h +++ b/src/devices/bus/intv/ecs.h @@ -19,10 +19,6 @@ public: // construction/destruction intv_ecs_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual machine_config_constructor device_mconfig_additions() const override; - virtual const tiny_rom_entry *device_rom_region() const override; - // reading and writing // actual ECS accesses @@ -66,8 +62,11 @@ public: virtual void late_subslot_setup() override; protected: + // device-level overrides virtual void device_start() override; virtual void device_reset() override; + virtual void device_add_mconfig(machine_config &config) override; + virtual const tiny_rom_entry *device_rom_region() const override; private: diff --git a/src/devices/bus/intv/voice.cpp b/src/devices/bus/intv/voice.cpp index d13818234a5..96f8a05c451 100644 --- a/src/devices/bus/intv/voice.cpp +++ b/src/devices/bus/intv/voice.cpp @@ -66,10 +66,10 @@ void intv_voice_device::late_subslot_setup() //------------------------------------------------- -// MACHINE_CONFIG_START( intellivoice ) +// device_add_mconfig - add device configuration //------------------------------------------------- -static MACHINE_CONFIG_START( intellivoice ) +MACHINE_CONFIG_MEMBER( intv_voice_device::device_add_mconfig ) MCFG_SPEAKER_STANDARD_MONO("mono_voice") MCFG_SOUND_ADD("sp0256_speech", SP0256, 3120000) @@ -80,17 +80,6 @@ static MACHINE_CONFIG_START( intellivoice ) MACHINE_CONFIG_END -//------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations -//------------------------------------------------- - -machine_config_constructor intv_voice_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( intellivoice ); -} - - ROM_START( intellivoice ) ROM_REGION( 0x10000, "sp0256_speech", 0 ) /* SP0256-012 Speech chip w/2KiB mask rom */ diff --git a/src/devices/bus/intv/voice.h b/src/devices/bus/intv/voice.h index 0cf6a2d433b..d99b31573a3 100644 --- a/src/devices/bus/intv/voice.h +++ b/src/devices/bus/intv/voice.h @@ -16,10 +16,6 @@ public: // construction/destruction intv_voice_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual machine_config_constructor device_mconfig_additions() const override; - virtual const tiny_rom_entry *device_rom_region() const override; - // reading and writing // actual IntelliVoice access virtual DECLARE_READ16_MEMBER(read_speech) override; @@ -51,7 +47,10 @@ public: virtual void late_subslot_setup() override; protected: + // device-level overrides virtual void device_start() override; + virtual void device_add_mconfig(machine_config &config) override; + virtual const tiny_rom_entry *device_rom_region() const override; private: required_device<sp0256_device> m_speech; diff --git a/src/devices/bus/intv_ctrl/ecs_ctrl.cpp b/src/devices/bus/intv_ctrl/ecs_ctrl.cpp index c1075e98dd7..3615ea05721 100644 --- a/src/devices/bus/intv_ctrl/ecs_ctrl.cpp +++ b/src/devices/bus/intv_ctrl/ecs_ctrl.cpp @@ -143,17 +143,12 @@ static SLOT_INTERFACE_START( intvecs_controller ) SLOT_INTERFACE("handctrl", INTV_HANDCTRL) SLOT_INTERFACE_END -static MACHINE_CONFIG_START( intvecs_ctrls ) +MACHINE_CONFIG_MEMBER( intvecs_ctrls_device::device_add_mconfig ) MCFG_INTV_CONTROL_PORT_ADD("port1", intvecs_controller, "handctrl") MCFG_INTV_CONTROL_PORT_ADD("port2", intvecs_controller, "handctrl") MACHINE_CONFIG_END -machine_config_constructor intvecs_ctrls_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( intvecs_ctrls ); -} - intvecs_ctrls_device::intvecs_ctrls_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : device_t(mconfig, ECS_CTRLS, tag, owner, clock), device_intvecs_control_port_interface(mconfig, *this), diff --git a/src/devices/bus/intv_ctrl/ecs_ctrl.h b/src/devices/bus/intv_ctrl/ecs_ctrl.h index 5bf1ef69c1f..f7132c8e28b 100644 --- a/src/devices/bus/intv_ctrl/ecs_ctrl.h +++ b/src/devices/bus/intv_ctrl/ecs_ctrl.h @@ -94,14 +94,14 @@ public: // construction/destruction intvecs_ctrls_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; + // optional information overrides + virtual void device_add_mconfig(machine_config &config) override; + virtual uint8_t read_portA() override; virtual uint8_t read_portB() override; diff --git a/src/devices/bus/iq151/disc2.cpp b/src/devices/bus/iq151/disc2.cpp index 9e103dc2d4f..bf9c8db7e6a 100644 --- a/src/devices/bus/iq151/disc2.cpp +++ b/src/devices/bus/iq151/disc2.cpp @@ -23,12 +23,6 @@ static SLOT_INTERFACE_START( iq151_disc2_floppies ) SLOT_INTERFACE( "8sssd", FLOPPY_8_SSSD ) SLOT_INTERFACE_END -static MACHINE_CONFIG_START( iq151_disc2 ) - MCFG_UPD765A_ADD("fdc", false, true) - MCFG_FLOPPY_DRIVE_ADD("fdc:1", iq151_disc2_floppies, "8sssd", iq151_disc2_device::floppy_formats) - MCFG_FLOPPY_DRIVE_ADD("fdc:2", iq151_disc2_floppies, "8sssd", iq151_disc2_device::floppy_formats) -MACHINE_CONFIG_END - ROM_START( iq151_disc2 ) ROM_REGION(0x0800, "disc2", 0) ROM_LOAD( "iq151_disc2_12_5_1987_v4_0.rom", 0x0000, 0x0800, CRC(b189b170) SHA1(3e2ca80934177e7a32d0905f5a0ad14072f9dabf)) @@ -74,13 +68,14 @@ void iq151_disc2_device::device_reset() } //------------------------------------------------- -// device_mconfig_additions +// device_add_mconfig - add device configuration //------------------------------------------------- -machine_config_constructor iq151_disc2_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( iq151_disc2 ); -} +MACHINE_CONFIG_MEMBER( iq151_disc2_device::device_add_mconfig ) + MCFG_UPD765A_ADD("fdc", false, true) + MCFG_FLOPPY_DRIVE_ADD("fdc:1", iq151_disc2_floppies, "8sssd", iq151_disc2_device::floppy_formats) + MCFG_FLOPPY_DRIVE_ADD("fdc:2", iq151_disc2_floppies, "8sssd", iq151_disc2_device::floppy_formats) +MACHINE_CONFIG_END //------------------------------------------------- diff --git a/src/devices/bus/iq151/disc2.h b/src/devices/bus/iq151/disc2.h index c7452ef1415..ac778b253dc 100644 --- a/src/devices/bus/iq151/disc2.h +++ b/src/devices/bus/iq151/disc2.h @@ -22,23 +22,23 @@ public: // construction/destruction iq151_disc2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - virtual const tiny_rom_entry *device_rom_region() const override; - - DECLARE_FLOPPY_FORMATS( floppy_formats ); - protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; + // optional information overrides + virtual void device_add_mconfig(machine_config &config) override; + virtual const tiny_rom_entry *device_rom_region() const override; + // iq151cart_interface overrides virtual void read(offs_t offset, uint8_t &data) override; virtual void io_read(offs_t offset, uint8_t &data) override; virtual void io_write(offs_t offset, uint8_t data) override; private: + DECLARE_FLOPPY_FORMATS( floppy_formats ); + required_device<upd765a_device> m_fdc; uint8_t * m_rom; bool m_rom_enabled; diff --git a/src/devices/bus/iq151/grafik.cpp b/src/devices/bus/iq151/grafik.cpp index bdcc47f9886..1120aeea642 100644 --- a/src/devices/bus/iq151/grafik.cpp +++ b/src/devices/bus/iq151/grafik.cpp @@ -16,13 +16,6 @@ IMPLEMENTATION ***************************************************************************/ -static MACHINE_CONFIG_START( iq151_grafik ) - MCFG_DEVICE_ADD("ppi8255", I8255, 0) - MCFG_I8255_OUT_PORTA_CB(WRITE8(iq151_grafik_device, x_write)) - MCFG_I8255_OUT_PORTB_CB(WRITE8(iq151_grafik_device, y_write)) - MCFG_I8255_OUT_PORTC_CB(WRITE8(iq151_grafik_device, control_w)) -MACHINE_CONFIG_END - //************************************************************************** // GLOBAL VARIABLES @@ -69,13 +62,15 @@ void iq151_grafik_device::device_reset() } //------------------------------------------------- -// device_mconfig_additions +// device_add_mconfig - add device configuration //------------------------------------------------- -machine_config_constructor iq151_grafik_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( iq151_grafik ); -} +MACHINE_CONFIG_MEMBER( iq151_grafik_device::device_add_mconfig ) + MCFG_DEVICE_ADD("ppi8255", I8255, 0) + MCFG_I8255_OUT_PORTA_CB(WRITE8(iq151_grafik_device, x_write)) + MCFG_I8255_OUT_PORTB_CB(WRITE8(iq151_grafik_device, y_write)) + MCFG_I8255_OUT_PORTC_CB(WRITE8(iq151_grafik_device, control_w)) +MACHINE_CONFIG_END //------------------------------------------------- // I8255 port a diff --git a/src/devices/bus/iq151/grafik.h b/src/devices/bus/iq151/grafik.h index afdb233b4f6..aa77473b3e8 100644 --- a/src/devices/bus/iq151/grafik.h +++ b/src/devices/bus/iq151/grafik.h @@ -22,25 +22,24 @@ public: // construction/destruction iq151_grafik_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - - // ppi8255 callback - DECLARE_WRITE8_MEMBER(x_write); - DECLARE_WRITE8_MEMBER(y_write); - DECLARE_WRITE8_MEMBER(control_w); - protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; + // optional information overrides + virtual void device_add_mconfig(machine_config &config) override; + // iq151cart_interface overrides virtual void io_read(offs_t offset, uint8_t &data) override; virtual void io_write(offs_t offset, uint8_t data) override; virtual void video_update(bitmap_ind16 &bitmap, const rectangle &cliprect) override; private: + // ppi8255 callback + DECLARE_WRITE8_MEMBER(x_write); + DECLARE_WRITE8_MEMBER(y_write); + DECLARE_WRITE8_MEMBER(control_w); required_device<i8255_device> m_ppi8255; diff --git a/src/devices/bus/iq151/staper.cpp b/src/devices/bus/iq151/staper.cpp index eba32ef39cc..1dc818dfecf 100644 --- a/src/devices/bus/iq151/staper.cpp +++ b/src/devices/bus/iq151/staper.cpp @@ -21,14 +21,6 @@ IMPLEMENTATION ***************************************************************************/ -static MACHINE_CONFIG_START( iq151_staper ) - MCFG_DEVICE_ADD("ppi8255", I8255A, 0) - MCFG_I8255_IN_PORTA_CB(READ8(iq151_staper_device, ppi_porta_r)) - MCFG_I8255_OUT_PORTB_CB(WRITE8(iq151_staper_device, ppi_portb_w)) - MCFG_I8255_OUT_PORTC_CB(WRITE8(iq151_staper_device, ppi_portc_w)) - - MCFG_DEVICE_ADD("printer", PRINTER, 0) -MACHINE_CONFIG_END //************************************************************************** // GLOBAL VARIABLES @@ -65,13 +57,17 @@ void iq151_staper_device::device_start() } //------------------------------------------------- -// device_mconfig_additions +// device_add_mconfig - add device configuration //------------------------------------------------- -machine_config_constructor iq151_staper_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( iq151_staper ); -} +MACHINE_CONFIG_MEMBER( iq151_staper_device::device_add_mconfig ) + MCFG_DEVICE_ADD("ppi8255", I8255A, 0) + MCFG_I8255_IN_PORTA_CB(READ8(iq151_staper_device, ppi_porta_r)) + MCFG_I8255_OUT_PORTB_CB(WRITE8(iq151_staper_device, ppi_portb_w)) + MCFG_I8255_OUT_PORTC_CB(WRITE8(iq151_staper_device, ppi_portc_w)) + + MCFG_DEVICE_ADD("printer", PRINTER, 0) +MACHINE_CONFIG_END //------------------------------------------------- // device_timer - handler timer events diff --git a/src/devices/bus/iq151/staper.h b/src/devices/bus/iq151/staper.h index 65df83e03fd..8e0c5e2b094 100644 --- a/src/devices/bus/iq151/staper.h +++ b/src/devices/bus/iq151/staper.h @@ -23,24 +23,23 @@ public: // construction/destruction iq151_staper_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - - // i8255 callbacks - DECLARE_READ8_MEMBER( ppi_porta_r ); - DECLARE_WRITE8_MEMBER( ppi_portb_w ); - DECLARE_WRITE8_MEMBER( ppi_portc_w ); - protected: // device-level overrides virtual void device_start() override; virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + // optional information overrides + virtual void device_add_mconfig(machine_config &config) override; + // iq151cart_interface overrides virtual void io_read(offs_t offset, uint8_t &data) override; virtual void io_write(offs_t offset, uint8_t data) override; private: + // i8255 callbacks + DECLARE_READ8_MEMBER( ppi_porta_r ); + DECLARE_WRITE8_MEMBER( ppi_portb_w ); + DECLARE_WRITE8_MEMBER( ppi_portc_w ); static const device_timer_id TIMER_PRINTER = 0; diff --git a/src/devices/bus/isa/3c503.cpp b/src/devices/bus/isa/3c503.cpp index b0fe1361a70..7a811272f38 100644 --- a/src/devices/bus/isa/3c503.cpp +++ b/src/devices/bus/isa/3c503.cpp @@ -5,7 +5,7 @@ #define SADDR 0xcc000 -static MACHINE_CONFIG_START(el2_3c503_config) +MACHINE_CONFIG_MEMBER(el2_3c503_device::device_add_mconfig) MCFG_DEVICE_ADD("dp8390d", DP8390D, 0) MCFG_DP8390D_IRQ_CB(WRITELINE(el2_3c503_device, el2_3c503_irq_w)) MCFG_DP8390D_MEM_READ_CB(READ8(el2_3c503_device, el2_3c503_mem_read)) @@ -14,10 +14,6 @@ MACHINE_CONFIG_END DEFINE_DEVICE_TYPE(EL2_3C503, el2_3c503_device, "el2_3c503", "3C503 Network Adapter") -machine_config_constructor el2_3c503_device::device_mconfig_additions() const { - return MACHINE_CONFIG_NAME(el2_3c503_config); -} - el2_3c503_device::el2_3c503_device(const machine_config& mconfig, const char* tag, device_t* owner, uint32_t clock) : device_t(mconfig, EL2_3C503, tag, owner, clock) , device_isa8_card_interface(mconfig, *this) diff --git a/src/devices/bus/isa/3c503.h b/src/devices/bus/isa/3c503.h index 9db5b7c5e70..73661ab2071 100644 --- a/src/devices/bus/isa/3c503.h +++ b/src/devices/bus/isa/3c503.h @@ -14,11 +14,7 @@ class el2_3c503_device : public device_t, public device_isa8_card_interface { public: el2_3c503_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual machine_config_constructor device_mconfig_additions() const override; - void el2_3c503_irq_w(int state); - DECLARE_READ8_MEMBER(el2_3c503_mem_read); - DECLARE_WRITE8_MEMBER(el2_3c503_mem_write); DECLARE_READ8_MEMBER(el2_3c503_loport_r); DECLARE_WRITE8_MEMBER(el2_3c503_loport_w); DECLARE_READ8_MEMBER(el2_3c503_hiport_r); @@ -26,10 +22,17 @@ public: void eop_w(int state) override; uint8_t dack_r(int line) override; void dack_w(int line, uint8_t data) override; + protected: virtual void device_start() override; virtual void device_reset() override; + virtual void device_add_mconfig(machine_config &config) override; + private: + void el2_3c503_irq_w(int state); + DECLARE_READ8_MEMBER(el2_3c503_mem_read); + DECLARE_WRITE8_MEMBER(el2_3c503_mem_write); + required_device<dp8390d_device> m_dp8390; uint8_t m_board_ram[8*1024]; uint8_t m_rom[8*1024]; diff --git a/src/devices/bus/isa/adlib.cpp b/src/devices/bus/isa/adlib.cpp index d9ce293e1c8..a82e5d63d7b 100644 --- a/src/devices/bus/isa/adlib.cpp +++ b/src/devices/bus/isa/adlib.cpp @@ -15,12 +15,6 @@ #define ym3812_StdClock 3579545 -static MACHINE_CONFIG_START( adlib_config ) - MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_SOUND_ADD("ym3812", YM3812, ym3812_StdClock) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 3.00) -MACHINE_CONFIG_END - READ8_MEMBER( isa8_adlib_device::ym3812_16_r ) { uint8_t retVal = 0xff; @@ -47,14 +41,14 @@ WRITE8_MEMBER( isa8_adlib_device::ym3812_16_w ) DEFINE_DEVICE_TYPE(ISA8_ADLIB, isa8_adlib_device, "isa_adlib", "Ad Lib Sound Card") //------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations +// device_add_mconfig - add device configuration //------------------------------------------------- -machine_config_constructor isa8_adlib_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( adlib_config ); -} +MACHINE_CONFIG_MEMBER( isa8_adlib_device::device_add_mconfig ) + MCFG_SPEAKER_STANDARD_MONO("mono") + MCFG_SOUND_ADD("ym3812", YM3812, ym3812_StdClock) + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 3.00) +MACHINE_CONFIG_END //************************************************************************** // LIVE DEVICE diff --git a/src/devices/bus/isa/adlib.h b/src/devices/bus/isa/adlib.h index e91c4f4521d..590ea4f675e 100644 --- a/src/devices/bus/isa/adlib.h +++ b/src/devices/bus/isa/adlib.h @@ -15,25 +15,27 @@ // ======================> isa8_adlib_device class isa8_adlib_device : - public device_t, - public device_isa8_card_interface + public device_t, + public device_isa8_card_interface { public: - // construction/destruction - isa8_adlib_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + // construction/destruction + isa8_adlib_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; + DECLARE_READ8_MEMBER(ym3812_16_r); + DECLARE_WRITE8_MEMBER(ym3812_16_w); - DECLARE_READ8_MEMBER(ym3812_16_r); - DECLARE_WRITE8_MEMBER(ym3812_16_w); protected: - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + + // optional information overrides + virtual void device_add_mconfig(machine_config &config) override; + private: - // internal state - required_device<ym3812_device> m_ym3812; + // internal state + required_device<ym3812_device> m_ym3812; }; diff --git a/src/devices/bus/isa/aga.cpp b/src/devices/bus/isa/aga.cpp index 1ae7f83de4e..b52ab5bb18c 100644 --- a/src/devices/bus/isa/aga.cpp +++ b/src/devices/bus/isa/aga.cpp @@ -273,7 +273,7 @@ MC6845_UPDATE_ROW( isa8_aga_device::aga_update_row ) } -MACHINE_CONFIG_START( pcvideo_aga ) +MACHINE_CONFIG_MEMBER( isa8_aga_device::device_add_mconfig ) MCFG_SCREEN_ADD( AGA_SCREEN_NAME, RASTER ) MCFG_SCREEN_RAW_PARAMS( XTAL_14_31818MHz,912,0,640,262,0,200 ) MCFG_SCREEN_UPDATE_DEVICE( AGA_MC6845_NAME, mc6845_device, screen_update ) @@ -288,10 +288,6 @@ MACHINE_CONFIG_START( pcvideo_aga ) MCFG_MC6845_OUT_VSYNC_CB(WRITELINE(isa8_aga_device, vsync_changed)) MACHINE_CONFIG_END -machine_config_constructor isa8_aga_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( pcvideo_aga ); -} /************************************* * diff --git a/src/devices/bus/isa/aga.h b/src/devices/bus/isa/aga.h index 528fced9bda..85142843009 100644 --- a/src/devices/bus/isa/aga.h +++ b/src/devices/bus/isa/aga.h @@ -37,13 +37,6 @@ class isa8_aga_device : public: // construction/destruction isa8_aga_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - virtual const tiny_rom_entry *device_rom_region() const override; - virtual ioport_constructor device_input_ports() const override; - - DECLARE_WRITE_LINE_MEMBER( hsync_changed ); - DECLARE_WRITE_LINE_MEMBER( vsync_changed ); DECLARE_READ8_MEMBER( pc_aga_mda_r ); DECLARE_WRITE8_MEMBER( pc_aga_mda_w ); @@ -54,7 +47,6 @@ public: DECLARE_WRITE8_MEMBER( pc_aga_videoram_w ); DECLARE_READ8_MEMBER( pc_aga_videoram_r ); - MC6845_UPDATE_ROW( aga_update_row ); MC6845_UPDATE_ROW( mda_text_inten_update_row ); MC6845_UPDATE_ROW( mda_text_blink_update_row ); MC6845_UPDATE_ROW( cga_text_inten_update_row ); @@ -71,9 +63,15 @@ public: protected: isa8_aga_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; + // optional information overrides + virtual void device_add_mconfig(machine_config &config) override; + virtual const tiny_rom_entry *device_rom_region() const override; + virtual ioport_constructor device_input_ports() const override; + required_ioport m_cga_config; int m_update_row_type; @@ -95,6 +93,11 @@ protected: uint8_t m_cga_palette_lut_2bpp[4]; std::unique_ptr<uint8_t[]> m_videoram; + +private: + MC6845_UPDATE_ROW( aga_update_row ); + DECLARE_WRITE_LINE_MEMBER( hsync_changed ); + DECLARE_WRITE_LINE_MEMBER( vsync_changed ); }; // device type definition diff --git a/src/devices/bus/isa/aha1542.cpp b/src/devices/bus/isa/aha1542.cpp index 2fcd42ae52b..f03d92a105e 100644 --- a/src/devices/bus/isa/aha1542.cpp +++ b/src/devices/bus/isa/aha1542.cpp @@ -169,20 +169,15 @@ static ADDRESS_MAP_START( z84c0010_mem, AS_PROGRAM, 8, aha1542_device ) AM_RANGE(0xb000, 0xb000) AM_NOP // something? ADDRESS_MAP_END -static MACHINE_CONFIG_START( aha1542 ) - MCFG_CPU_ADD(Z84C0010_TAG, Z80, XTAL_12MHz) - MCFG_CPU_PROGRAM_MAP( z84c0010_mem ) -MACHINE_CONFIG_END - const tiny_rom_entry *aha1542_device::device_rom_region() const { return ROM_NAME( aha1542 ); } -machine_config_constructor aha1542_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( aha1542 ); -} +MACHINE_CONFIG_MEMBER( aha1542_device::device_add_mconfig ) + MCFG_CPU_ADD(Z84C0010_TAG, Z80, XTAL_12MHz) + MCFG_CPU_PROGRAM_MAP( z84c0010_mem ) +MACHINE_CONFIG_END aha1542_device::aha1542_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : device_t(mconfig, AHA1542, tag, owner, clock), diff --git a/src/devices/bus/isa/aha1542.h b/src/devices/bus/isa/aha1542.h index 2b9fd179054..96a02757999 100644 --- a/src/devices/bus/isa/aha1542.h +++ b/src/devices/bus/isa/aha1542.h @@ -31,10 +31,6 @@ public: // construction/destruction aha1542_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // optional information overrides - virtual const tiny_rom_entry *device_rom_region() const override; - virtual machine_config_constructor device_mconfig_additions() const override; - DECLARE_READ8_MEMBER( aha1542_r ); DECLARE_WRITE8_MEMBER( aha1542_w ); @@ -43,6 +39,10 @@ protected: virtual void device_start() override; virtual void device_reset() override; + // optional information overrides + virtual const tiny_rom_entry *device_rom_region() const override; + virtual void device_add_mconfig(machine_config &config) override; + }; // device type definition diff --git a/src/devices/bus/isa/cga.cpp b/src/devices/bus/isa/cga.cpp index ca5c44d92d8..2f810bdafdb 100644 --- a/src/devices/bus/isa/cga.cpp +++ b/src/devices/bus/isa/cga.cpp @@ -244,24 +244,6 @@ MC6845_UPDATE_ROW( isa8_cga_pc1512_device::crtc_update_row ) #define CGA_LCLK (XTAL_14_31818MHz/16) -static MACHINE_CONFIG_START( cga ) - MCFG_SCREEN_ADD(CGA_SCREEN_NAME, RASTER) - MCFG_SCREEN_RAW_PARAMS(XTAL_14_31818MHz,912,0,640,262,0,200) - MCFG_SCREEN_UPDATE_DEVICE( DEVICE_SELF, isa8_cga_device, screen_update ) - - MCFG_PALETTE_ADD("palette", /* CGA_PALETTE_SETS * 16*/ 65536 ) - - MCFG_MC6845_ADD(CGA_MC6845_NAME, MC6845, CGA_SCREEN_NAME, XTAL_14_31818MHz/8) - MCFG_MC6845_SHOW_BORDER_AREA(false) - MCFG_MC6845_CHAR_WIDTH(8) - MCFG_MC6845_UPDATE_ROW_CB(isa8_cga_device, crtc_update_row) - MCFG_MC6845_OUT_HSYNC_CB(WRITELINE(isa8_cga_device, hsync_changed)) - MCFG_MC6845_OUT_VSYNC_CB(WRITELINE(isa8_cga_device, vsync_changed)) - MCFG_MC6845_RECONFIGURE_CB(isa8_cga_device, reconfigure) - MCFG_VIDEO_SET_SCREEN(nullptr) -MACHINE_CONFIG_END - - ROM_START( cga ) /* IBM 1501981(CGA) and 1501985(MDA) Character rom */ ROM_REGION(0x2000,"gfx1", 0) @@ -276,14 +258,25 @@ ROM_END DEFINE_DEVICE_TYPE(ISA8_CGA, isa8_cga_device, "cga", "IBM Color/Graphics Monitor Adapter") //------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations +// device_add_mconfig - add device configuration //------------------------------------------------- -machine_config_constructor isa8_cga_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( cga ); -} +MACHINE_CONFIG_MEMBER( isa8_cga_device::device_add_mconfig ) + MCFG_SCREEN_ADD(CGA_SCREEN_NAME, RASTER) + MCFG_SCREEN_RAW_PARAMS(XTAL_14_31818MHz,912,0,640,262,0,200) + MCFG_SCREEN_UPDATE_DEVICE( DEVICE_SELF, isa8_cga_device, screen_update ) + + MCFG_PALETTE_ADD("palette", /* CGA_PALETTE_SETS * 16*/ 65536 ) + + MCFG_MC6845_ADD(CGA_MC6845_NAME, MC6845, CGA_SCREEN_NAME, XTAL_14_31818MHz/8) + MCFG_MC6845_SHOW_BORDER_AREA(false) + MCFG_MC6845_CHAR_WIDTH(8) + MCFG_MC6845_UPDATE_ROW_CB(isa8_cga_device, crtc_update_row) + MCFG_MC6845_OUT_HSYNC_CB(WRITELINE(isa8_cga_device, hsync_changed)) + MCFG_MC6845_OUT_VSYNC_CB(WRITELINE(isa8_cga_device, vsync_changed)) + MCFG_MC6845_RECONFIGURE_CB(isa8_cga_device, reconfigure) + MCFG_VIDEO_SET_SCREEN(nullptr) +MACHINE_CONFIG_END ioport_constructor isa8_cga_device::device_input_ports() const { @@ -1916,17 +1909,15 @@ const tiny_rom_entry *isa8_cga_mc1502_device::device_rom_region() const DEFINE_DEVICE_TYPE(ISA8_CGA_M24, isa8_cga_m24_device, "cga_m24", "Olivetti M24 CGA") -static MACHINE_CONFIG_DERIVED( m24, cga ) +MACHINE_CONFIG_MEMBER( isa8_cga_m24_device::device_add_mconfig ) + isa8_cga_device::device_add_mconfig(config); + MCFG_DEVICE_MODIFY(CGA_SCREEN_NAME) MCFG_SCREEN_RAW_PARAMS(XTAL_14_31818MHz,912,0,640,462,0,400) MCFG_DEVICE_MODIFY(CGA_MC6845_NAME) MCFG_MC6845_RECONFIGURE_CB(isa8_cga_m24_device, reconfigure) MACHINE_CONFIG_END -machine_config_constructor isa8_cga_m24_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( m24 ); -} isa8_cga_m24_device::isa8_cga_m24_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : isa8_cga_device(mconfig, ISA8_CGA_M24, tag, owner, clock), m_mode2(0), m_index(0) { diff --git a/src/devices/bus/isa/cga.h b/src/devices/bus/isa/cga.h index 3b843ba83a3..5dd14acd103 100644 --- a/src/devices/bus/isa/cga.h +++ b/src/devices/bus/isa/cga.h @@ -41,11 +41,6 @@ public: MC6845_UPDATE_ROW( cga_gfx_2bpp_update_row ); MC6845_UPDATE_ROW( cga_gfx_1bpp_update_row ); - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - virtual ioport_constructor device_input_ports() const override; - virtual const tiny_rom_entry *device_rom_region() const override; - protected: isa8_cga_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); @@ -54,16 +49,21 @@ protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; + + // optional information overrides + virtual void device_add_mconfig(machine_config &config) override; + virtual ioport_constructor device_input_ports() const override; + virtual const tiny_rom_entry *device_rom_region() const override; + + virtual uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); + public: void mode_control_w(uint8_t data); void set_palette_luts(); void plantronics_w(uint8_t data); virtual DECLARE_READ8_MEMBER( io_read ); virtual DECLARE_WRITE8_MEMBER( io_write ); - DECLARE_WRITE_LINE_MEMBER( hsync_changed ); - DECLARE_WRITE_LINE_MEMBER( vsync_changed ); - virtual uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); - MC6845_RECONFIGURE(reconfigure); + public: int m_framecnt; @@ -86,6 +86,11 @@ public: offs_t m_start_offset; required_device<palette_device> m_palette; required_device<screen_device> m_screen; + +private: + DECLARE_WRITE_LINE_MEMBER( hsync_changed ); + DECLARE_WRITE_LINE_MEMBER( vsync_changed ); + MC6845_RECONFIGURE(reconfigure); }; // device type definition @@ -272,16 +277,17 @@ class isa8_cga_m24_device : public: // construction/destruction isa8_cga_m24_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual machine_config_constructor device_mconfig_additions() const override; - // optional information overrides - //virtual const rom_entry *device_rom_region() const; virtual DECLARE_READ8_MEMBER( io_read ) override; virtual DECLARE_WRITE8_MEMBER( io_write ) override; virtual MC6845_UPDATE_ROW( crtc_update_row ) override; MC6845_UPDATE_ROW( m24_gfx_1bpp_m24_update_row ); MC6845_RECONFIGURE(reconfigure); + protected: virtual void device_reset() override; + // optional information overrides + virtual void device_add_mconfig(machine_config &config) override; + private: uint8_t m_mode2, m_index; }; diff --git a/src/devices/bus/isa/com.cpp b/src/devices/bus/isa/com.cpp index 180c99cfcfc..edb477e2ff7 100644 --- a/src/devices/bus/isa/com.cpp +++ b/src/devices/bus/isa/com.cpp @@ -21,7 +21,18 @@ static SLOT_INTERFACE_START(isa_com) SLOT_INTERFACE("null_modem", NULL_MODEM) SLOT_INTERFACE_END -static MACHINE_CONFIG_START( com_config ) + +//************************************************************************** +// GLOBAL VARIABLES +//************************************************************************** + +DEFINE_DEVICE_TYPE(ISA8_COM, isa8_com_device, "isa_com", "Communications Adapter PC/XT") + +//------------------------------------------------- +// device_add_mconfig - add device configuration +//------------------------------------------------- + +MACHINE_CONFIG_MEMBER( isa8_com_device::device_add_mconfig ) MCFG_DEVICE_ADD( "uart_0", INS8250, XTAL_1_8432MHz ) MCFG_INS8250_OUT_TX_CB(DEVWRITELINE("serport0", rs232_port_device, write_txd)) MCFG_INS8250_OUT_DTR_CB(DEVWRITELINE("serport0", rs232_port_device, write_dtr)) @@ -73,22 +84,6 @@ static MACHINE_CONFIG_START( com_config ) MACHINE_CONFIG_END //************************************************************************** -// GLOBAL VARIABLES -//************************************************************************** - -DEFINE_DEVICE_TYPE(ISA8_COM, isa8_com_device, "isa_com", "Communications Adapter PC/XT") - -//------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations -//------------------------------------------------- - -machine_config_constructor isa8_com_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( com_config ); -} - -//************************************************************************** // LIVE DEVICE //************************************************************************** @@ -129,7 +124,17 @@ void isa8_com_device::device_reset() { } -static MACHINE_CONFIG_START( com_at_config ) +//************************************************************************** +// GLOBAL VARIABLES +//************************************************************************** + +DEFINE_DEVICE_TYPE(ISA8_COM_AT, isa8_com_at_device, "isa_com_at", "Communications Adapter") + +//------------------------------------------------- +// device_add_mconfig - add device configuration +//------------------------------------------------- + +MACHINE_CONFIG_MEMBER( isa8_com_at_device::device_add_mconfig ) MCFG_DEVICE_ADD( "uart_0", NS16450, XTAL_1_8432MHz ) /* Verified: IBM P/N 6320947 Serial/Parallel card uses an NS16450N */ MCFG_INS8250_OUT_TX_CB(DEVWRITELINE("serport0", rs232_port_device, write_txd)) MCFG_INS8250_OUT_DTR_CB(DEVWRITELINE("serport0", rs232_port_device, write_dtr)) @@ -168,22 +173,6 @@ static MACHINE_CONFIG_START( com_at_config ) // MCFG_RS232_PORT_ADD( "serport3", isa_com, nullptr ) MACHINE_CONFIG_END -//************************************************************************** -// GLOBAL VARIABLES -//************************************************************************** - -DEFINE_DEVICE_TYPE(ISA8_COM_AT, isa8_com_at_device, "isa_com_at", "Communications Adapter") - -//------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations -//------------------------------------------------- - -machine_config_constructor isa8_com_at_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( com_at_config ); -} - //------------------------------------------------- // isa8_com_device - constructor //------------------------------------------------- diff --git a/src/devices/bus/isa/com.h b/src/devices/bus/isa/com.h index b0230fbc405..ff7b5e4eef8 100644 --- a/src/devices/bus/isa/com.h +++ b/src/devices/bus/isa/com.h @@ -22,8 +22,6 @@ public: // construction/destruction isa8_com_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; DECLARE_WRITE_LINE_MEMBER(pc_com_interrupt_1) { m_isa->irq4_w(state); } DECLARE_WRITE_LINE_MEMBER(pc_com_interrupt_2) { m_isa->irq3_w(state); } @@ -33,6 +31,9 @@ protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; + + // optional information overrides + virtual void device_add_mconfig(machine_config &config) override; }; @@ -48,8 +49,9 @@ public: // construction/destruction isa8_com_at_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); +protected: // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; + virtual void device_add_mconfig(machine_config &config) override; }; diff --git a/src/devices/bus/isa/dectalk.cpp b/src/devices/bus/isa/dectalk.cpp index b13468996d3..4b0811bdbea 100644 --- a/src/devices/bus/isa/dectalk.cpp +++ b/src/devices/bus/isa/dectalk.cpp @@ -140,7 +140,20 @@ static ADDRESS_MAP_START(dectalk_dsp_map, AS_PROGRAM, 16, dectalk_isa_device) AM_RANGE(0x0000, 0x0FFF) AM_ROM AM_REGION("dectalk_dsp", 0) ADDRESS_MAP_END -static MACHINE_CONFIG_START( dectalk_isa ) +ROM_START( dectalk_isa ) + ROM_REGION( 0x4000, "dectalk_cpu", 0 ) + ROM_LOAD16_BYTE("pc_boot_hxl.am27c64.d6.e26", 0x0000, 0x2000, CRC(7492f1e3) SHA1(fe6946a227f01c94f2b99220320a616445c96ee0)) // Some cards have a different label on the chip which lists the sum16: 31AC (matches contents) + ROM_LOAD16_BYTE("pc_boot_hxh.am27c64.d8.e27", 0x0001, 0x2000, CRC(1fe7fe40) SHA1(6e89c237f01aa22e0d21ff4d6fdf8137c6ace374)) // Some cards have a different label on the chip which lists the sum16: 1A25 (matches contents) + ROM_REGION( 0x2000, "dectalk_dsp", 0 ) + ROM_LOAD("spc_034c__2-1-92.tms320p15nl.d3.bin", 0x0000, 0x2000, CRC(d8b1201e) SHA1(4b873a5e882205fcac79a27562054b5c4d1a117c)) +ROM_END + +const tiny_rom_entry* dectalk_isa_device::device_rom_region() const +{ + return ROM_NAME( dectalk_isa ); +} + +MACHINE_CONFIG_MEMBER( dectalk_isa_device::device_add_mconfig ) MCFG_CPU_ADD("dectalk_cpu", I80186, XTAL_20MHz) MCFG_CPU_IO_MAP(dectalk_cpu_io) MCFG_CPU_PROGRAM_MAP(dectalk_cpu_map) @@ -157,24 +170,6 @@ static MACHINE_CONFIG_START( dectalk_isa ) MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT) MACHINE_CONFIG_END -ROM_START( dectalk_isa ) - ROM_REGION( 0x4000, "dectalk_cpu", 0 ) - ROM_LOAD16_BYTE("pc_boot_hxl.am27c64.d6.e26", 0x0000, 0x2000, CRC(7492f1e3) SHA1(fe6946a227f01c94f2b99220320a616445c96ee0)) // Some cards have a different label on the chip which lists the sum16: 31AC (matches contents) - ROM_LOAD16_BYTE("pc_boot_hxh.am27c64.d8.e27", 0x0001, 0x2000, CRC(1fe7fe40) SHA1(6e89c237f01aa22e0d21ff4d6fdf8137c6ace374)) // Some cards have a different label on the chip which lists the sum16: 1A25 (matches contents) - ROM_REGION( 0x2000, "dectalk_dsp", 0 ) - ROM_LOAD("spc_034c__2-1-92.tms320p15nl.d3.bin", 0x0000, 0x2000, CRC(d8b1201e) SHA1(4b873a5e882205fcac79a27562054b5c4d1a117c)) -ROM_END - -const tiny_rom_entry* dectalk_isa_device::device_rom_region() const -{ - return ROM_NAME( dectalk_isa ); -} - -machine_config_constructor dectalk_isa_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( dectalk_isa ); -} - WRITE8_MEMBER(dectalk_isa_device::write) { switch(offset) diff --git a/src/devices/bus/isa/dectalk.h b/src/devices/bus/isa/dectalk.h index eaab353afb7..f2743787a15 100644 --- a/src/devices/bus/isa/dectalk.h +++ b/src/devices/bus/isa/dectalk.h @@ -16,10 +16,6 @@ class dectalk_isa_device : public device_t, public: dectalk_isa_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // optional information overrides - virtual const tiny_rom_entry *device_rom_region() const override; - virtual machine_config_constructor device_mconfig_additions() const override; - DECLARE_WRITE8_MEMBER(write); DECLARE_READ8_MEMBER(read); @@ -34,16 +30,21 @@ public: DECLARE_READ16_MEMBER(dsp_dma_r); DECLARE_WRITE16_MEMBER(dsp_dma_w); DECLARE_WRITE16_MEMBER(output_ctl_w); - DECLARE_READ_LINE_MEMBER(bio_line_r); DECLARE_WRITE16_MEMBER(irq_line_w); - DECLARE_WRITE_LINE_MEMBER(clock_w); protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; + // optional information overrides + virtual const tiny_rom_entry *device_rom_region() const override; + virtual void device_add_mconfig(machine_config &config) override; + private: + DECLARE_READ_LINE_MEMBER(bio_line_r); + DECLARE_WRITE_LINE_MEMBER(clock_w); + uint16_t m_cmd, m_stat, m_data, m_dsp_dma, m_ctl; uint8_t m_dma, m_vol, m_bio; diff --git a/src/devices/bus/isa/ega.cpp b/src/devices/bus/isa/ega.cpp index 530a57731cd..c700df2ede3 100644 --- a/src/devices/bus/isa/ega.cpp +++ b/src/devices/bus/isa/ega.cpp @@ -463,23 +463,6 @@ located at I/O port 0x3CE, and a data register located at I/O port 0x3CF. Prototypes */ -MACHINE_CONFIG_START( pcvideo_ega ) - MCFG_SCREEN_ADD(EGA_SCREEN_NAME, RASTER) - MCFG_SCREEN_RAW_PARAMS(16257000,912,0,640,262,0,200) - MCFG_SCREEN_UPDATE_DEVICE(EGA_CRTC_NAME, crtc_ega_device, screen_update) - MCFG_SCREEN_PALETTE("palette") - - MCFG_PALETTE_ADD( "palette", 64 ) - - MCFG_DEVICE_ADD(EGA_CRTC_NAME, CRTC_EGA, 16257000/8) - MCFG_CRTC_EGA_SET_SCREEN(EGA_SCREEN_NAME) - MCFG_CRTC_EGA_HPIXELS_PER_COLUMN(8) - MCFG_CRTC_EGA_ROW_UPDATE_CB(isa8_ega_device, ega_update_row) - MCFG_CRTC_EGA_RES_OUT_DE_CB(WRITELINE(isa8_ega_device, de_changed)) - MCFG_CRTC_EGA_RES_OUT_HSYNC_CB(WRITELINE(isa8_ega_device, hsync_changed)) - MCFG_CRTC_EGA_RES_OUT_VSYNC_CB(WRITELINE(isa8_ega_device, vsync_changed)) - MCFG_CRTC_EGA_RES_OUT_VBLANK_CB(WRITELINE(isa8_ega_device, vblank_changed)) -MACHINE_CONFIG_END ROM_START( ega ) ROM_REGION(0x4000, "user1", 0) @@ -542,14 +525,26 @@ DEFINE_DEVICE_TYPE(ISA8_EGA, isa8_ega_device, "ega", "IBM Enhanced Graphics Adap //------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations +// device_add_mconfig - add device configuration //------------------------------------------------- -machine_config_constructor isa8_ega_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( pcvideo_ega ); -} +MACHINE_CONFIG_MEMBER( isa8_ega_device::device_add_mconfig ) + MCFG_SCREEN_ADD(EGA_SCREEN_NAME, RASTER) + MCFG_SCREEN_RAW_PARAMS(16257000,912,0,640,262,0,200) + MCFG_SCREEN_UPDATE_DEVICE(EGA_CRTC_NAME, crtc_ega_device, screen_update) + MCFG_SCREEN_PALETTE("palette") + + MCFG_PALETTE_ADD( "palette", 64 ) + + MCFG_DEVICE_ADD(EGA_CRTC_NAME, CRTC_EGA, 16257000/8) + MCFG_CRTC_EGA_SET_SCREEN(EGA_SCREEN_NAME) + MCFG_CRTC_EGA_HPIXELS_PER_COLUMN(8) + MCFG_CRTC_EGA_ROW_UPDATE_CB(isa8_ega_device, ega_update_row) + MCFG_CRTC_EGA_RES_OUT_DE_CB(WRITELINE(isa8_ega_device, de_changed)) + MCFG_CRTC_EGA_RES_OUT_HSYNC_CB(WRITELINE(isa8_ega_device, hsync_changed)) + MCFG_CRTC_EGA_RES_OUT_VSYNC_CB(WRITELINE(isa8_ega_device, vsync_changed)) + MCFG_CRTC_EGA_RES_OUT_VBLANK_CB(WRITELINE(isa8_ega_device, vblank_changed)) +MACHINE_CONFIG_END //------------------------------------------------- // rom_region - device-specific ROM region diff --git a/src/devices/bus/isa/ega.h b/src/devices/bus/isa/ega.h index 38310580de4..88b33fd5a4c 100644 --- a/src/devices/bus/isa/ega.h +++ b/src/devices/bus/isa/ega.h @@ -22,11 +22,6 @@ public: // construction/destruction isa8_ega_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - virtual const tiny_rom_entry *device_rom_region() const override; - virtual ioport_constructor device_input_ports() const override; - DECLARE_READ8_MEMBER(read); DECLARE_WRITE8_MEMBER(write); DECLARE_READ8_MEMBER(pc_ega8_3b0_r); @@ -35,12 +30,7 @@ public: DECLARE_WRITE8_MEMBER(pc_ega8_3c0_w); DECLARE_READ8_MEMBER(pc_ega8_3d0_r); DECLARE_WRITE8_MEMBER(pc_ega8_3d0_w); - DECLARE_WRITE_LINE_MEMBER(de_changed); - DECLARE_WRITE_LINE_MEMBER(hsync_changed); - DECLARE_WRITE_LINE_MEMBER(vsync_changed); - DECLARE_WRITE_LINE_MEMBER(vblank_changed); - CRTC_EGA_ROW_UPDATE(ega_update_row); CRTC_EGA_ROW_UPDATE(pc_ega_graphics); CRTC_EGA_ROW_UPDATE(pc_ega_text); @@ -51,8 +41,21 @@ protected: virtual void device_start() override; virtual void device_reset() override; + // optional information overrides + virtual void device_add_mconfig(machine_config &config) override; + virtual const tiny_rom_entry *device_rom_region() const override; + virtual ioport_constructor device_input_ports() const override; + uint8_t alu_op( uint8_t data, uint8_t latch_data ); +private: + DECLARE_WRITE_LINE_MEMBER(de_changed); + DECLARE_WRITE_LINE_MEMBER(hsync_changed); + DECLARE_WRITE_LINE_MEMBER(vsync_changed); + DECLARE_WRITE_LINE_MEMBER(vblank_changed); + + CRTC_EGA_ROW_UPDATE(ega_update_row); + public: crtc_ega_device *m_crtc_ega; diff --git a/src/devices/bus/isa/fdc.cpp b/src/devices/bus/isa/fdc.cpp index 2c37cb176dd..ddaf8409a8c 100644 --- a/src/devices/bus/isa/fdc.cpp +++ b/src/devices/bus/isa/fdc.cpp @@ -31,46 +31,6 @@ static SLOT_INTERFACE_START( pc_hd_floppies ) SLOT_INTERFACE( "35dd", FLOPPY_35_DD ) SLOT_INTERFACE_END -static MACHINE_CONFIG_START( cfg_xt ) - MCFG_PC_FDC_XT_ADD("fdc") - MCFG_PC_FDC_INTRQ_CALLBACK(WRITELINE(isa8_fdc_device, irq_w)) - MCFG_PC_FDC_DRQ_CALLBACK(WRITELINE(isa8_fdc_device, drq_w)) - MCFG_FLOPPY_DRIVE_ADD("fdc:0", pc_dd_floppies, "525dd", isa8_fdc_device::floppy_formats) - MCFG_FLOPPY_DRIVE_ADD("fdc:1", pc_dd_floppies, "525dd", isa8_fdc_device::floppy_formats) -MACHINE_CONFIG_END - -static MACHINE_CONFIG_START( cfg_at ) - MCFG_PC_FDC_AT_ADD("fdc") - MCFG_PC_FDC_INTRQ_CALLBACK(WRITELINE(isa8_fdc_device, irq_w)) - MCFG_PC_FDC_DRQ_CALLBACK(WRITELINE(isa8_fdc_device, drq_w)) - MCFG_FLOPPY_DRIVE_ADD("fdc:0", pc_hd_floppies, "35hd", isa8_fdc_device::floppy_formats) - MCFG_FLOPPY_DRIVE_ADD("fdc:1", pc_hd_floppies, "35hd", isa8_fdc_device::floppy_formats) -MACHINE_CONFIG_END - -static MACHINE_CONFIG_START( cfg_smc ) - MCFG_SMC37C78_ADD("fdc") - MCFG_UPD765_INTRQ_CALLBACK(WRITELINE(isa8_fdc_device, irq_w)) - MCFG_UPD765_DRQ_CALLBACK(WRITELINE(isa8_fdc_device, drq_w)) - MCFG_FLOPPY_DRIVE_ADD("fdc:0", pc_hd_floppies, "35hd", isa8_fdc_device::floppy_formats) - MCFG_FLOPPY_DRIVE_ADD("fdc:1", pc_hd_floppies, "35hd", isa8_fdc_device::floppy_formats) -MACHINE_CONFIG_END - -static MACHINE_CONFIG_START( cfg_ps2 ) - MCFG_N82077AA_ADD("fdc", n82077aa_device::MODE_PS2) - MCFG_UPD765_INTRQ_CALLBACK(WRITELINE(isa8_fdc_device, irq_w)) - MCFG_UPD765_DRQ_CALLBACK(WRITELINE(isa8_fdc_device, drq_w)) - MCFG_FLOPPY_DRIVE_ADD("fdc:0", pc_hd_floppies, "35hd", isa8_fdc_device::floppy_formats) - MCFG_FLOPPY_DRIVE_ADD("fdc:1", pc_hd_floppies, "35hd", isa8_fdc_device::floppy_formats) -MACHINE_CONFIG_END - -static MACHINE_CONFIG_START( cfg_superio ) - MCFG_PC_FDC_SUPERIO_ADD("fdc") - MCFG_UPD765_INTRQ_CALLBACK(WRITELINE(isa8_fdc_device, irq_w)) - MCFG_UPD765_DRQ_CALLBACK(WRITELINE(isa8_fdc_device, drq_w)) - MCFG_FLOPPY_DRIVE_ADD("fdc:0", pc_hd_floppies, "35hd", isa8_fdc_device::floppy_formats) - MCFG_FLOPPY_DRIVE_ADD("fdc:1", pc_hd_floppies, "35hd", isa8_fdc_device::floppy_formats) -MACHINE_CONFIG_END - isa8_fdc_device::isa8_fdc_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : device_t(mconfig, type, tag, owner, clock), @@ -115,50 +75,67 @@ void isa8_fdc_device::eop_w(int state) fdc->tc_w(state == ASSERT_LINE); } + isa8_fdc_xt_device::isa8_fdc_xt_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : isa8_fdc_device(mconfig, ISA8_FDC_XT, tag, owner, clock) { } -machine_config_constructor isa8_fdc_xt_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME(cfg_xt); -} +MACHINE_CONFIG_MEMBER( isa8_fdc_xt_device::device_add_mconfig ) + MCFG_PC_FDC_XT_ADD("fdc") + MCFG_PC_FDC_INTRQ_CALLBACK(WRITELINE(isa8_fdc_device, irq_w)) + MCFG_PC_FDC_DRQ_CALLBACK(WRITELINE(isa8_fdc_device, drq_w)) + MCFG_FLOPPY_DRIVE_ADD("fdc:0", pc_dd_floppies, "525dd", isa8_fdc_device::floppy_formats) + MCFG_FLOPPY_DRIVE_ADD("fdc:1", pc_dd_floppies, "525dd", isa8_fdc_device::floppy_formats) +MACHINE_CONFIG_END + isa8_fdc_at_device::isa8_fdc_at_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : isa8_fdc_device(mconfig, ISA8_FDC_AT, tag, owner, clock) { } -machine_config_constructor isa8_fdc_at_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME(cfg_at); -} +MACHINE_CONFIG_MEMBER( isa8_fdc_at_device::device_add_mconfig ) + MCFG_PC_FDC_AT_ADD("fdc") + MCFG_PC_FDC_INTRQ_CALLBACK(WRITELINE(isa8_fdc_device, irq_w)) + MCFG_PC_FDC_DRQ_CALLBACK(WRITELINE(isa8_fdc_device, drq_w)) + MCFG_FLOPPY_DRIVE_ADD("fdc:0", pc_hd_floppies, "35hd", isa8_fdc_device::floppy_formats) + MCFG_FLOPPY_DRIVE_ADD("fdc:1", pc_hd_floppies, "35hd", isa8_fdc_device::floppy_formats) +MACHINE_CONFIG_END isa8_fdc_smc_device::isa8_fdc_smc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : isa8_fdc_device(mconfig, ISA8_FDC_SMC, tag, owner, clock) { } -machine_config_constructor isa8_fdc_smc_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME(cfg_smc); -} +MACHINE_CONFIG_MEMBER( isa8_fdc_smc_device::device_add_mconfig ) + MCFG_SMC37C78_ADD("fdc") + MCFG_UPD765_INTRQ_CALLBACK(WRITELINE(isa8_fdc_device, irq_w)) + MCFG_UPD765_DRQ_CALLBACK(WRITELINE(isa8_fdc_device, drq_w)) + MCFG_FLOPPY_DRIVE_ADD("fdc:0", pc_hd_floppies, "35hd", isa8_fdc_device::floppy_formats) + MCFG_FLOPPY_DRIVE_ADD("fdc:1", pc_hd_floppies, "35hd", isa8_fdc_device::floppy_formats) +MACHINE_CONFIG_END isa8_fdc_ps2_device::isa8_fdc_ps2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : isa8_fdc_device(mconfig, ISA8_FDC_PS2, tag, owner, clock) { } -machine_config_constructor isa8_fdc_ps2_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME(cfg_ps2); -} +MACHINE_CONFIG_MEMBER( isa8_fdc_ps2_device::device_add_mconfig ) + MCFG_N82077AA_ADD("fdc", n82077aa_device::MODE_PS2) + MCFG_UPD765_INTRQ_CALLBACK(WRITELINE(isa8_fdc_device, irq_w)) + MCFG_UPD765_DRQ_CALLBACK(WRITELINE(isa8_fdc_device, drq_w)) + MCFG_FLOPPY_DRIVE_ADD("fdc:0", pc_hd_floppies, "35hd", isa8_fdc_device::floppy_formats) + MCFG_FLOPPY_DRIVE_ADD("fdc:1", pc_hd_floppies, "35hd", isa8_fdc_device::floppy_formats) +MACHINE_CONFIG_END isa8_fdc_superio_device::isa8_fdc_superio_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : isa8_fdc_device(mconfig, ISA8_FDC_SUPERIO, tag, owner, clock) { } -machine_config_constructor isa8_fdc_superio_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME(cfg_superio); -} +MACHINE_CONFIG_MEMBER( isa8_fdc_superio_device::device_add_mconfig ) + MCFG_PC_FDC_SUPERIO_ADD("fdc") + MCFG_UPD765_INTRQ_CALLBACK(WRITELINE(isa8_fdc_device, irq_w)) + MCFG_UPD765_DRQ_CALLBACK(WRITELINE(isa8_fdc_device, drq_w)) + MCFG_FLOPPY_DRIVE_ADD("fdc:0", pc_hd_floppies, "35hd", isa8_fdc_device::floppy_formats) + MCFG_FLOPPY_DRIVE_ADD("fdc:1", pc_hd_floppies, "35hd", isa8_fdc_device::floppy_formats) +MACHINE_CONFIG_END DEFINE_DEVICE_TYPE(ISA8_FDC_XT, isa8_fdc_xt_device, "isa8_fdc_xt", "ISA 8bits XT FDC hookup") DEFINE_DEVICE_TYPE(ISA8_FDC_AT, isa8_fdc_at_device, "isa8_fdc_at", "ISA 8bits AT FDC hookup") diff --git a/src/devices/bus/isa/fdc.h b/src/devices/bus/isa/fdc.h index 0d9227a04e4..026e0d5005d 100644 --- a/src/devices/bus/isa/fdc.h +++ b/src/devices/bus/isa/fdc.h @@ -46,31 +46,41 @@ protected: class isa8_fdc_xt_device : public isa8_fdc_device { public: isa8_fdc_xt_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual machine_config_constructor device_mconfig_additions() const override; + +protected: + virtual void device_add_mconfig(machine_config &config) override; }; class isa8_fdc_at_device : public isa8_fdc_device { public: isa8_fdc_at_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual machine_config_constructor device_mconfig_additions() const override; + +protected: + virtual void device_add_mconfig(machine_config &config) override; }; class isa8_fdc_smc_device : public isa8_fdc_device { public: isa8_fdc_smc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual machine_config_constructor device_mconfig_additions() const override; + +protected: + virtual void device_add_mconfig(machine_config &config) override; }; class isa8_fdc_ps2_device : public isa8_fdc_device { public: isa8_fdc_ps2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual machine_config_constructor device_mconfig_additions() const override; + +protected: + virtual void device_add_mconfig(machine_config &config) override; }; class isa8_fdc_superio_device : public isa8_fdc_device { public: isa8_fdc_superio_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual machine_config_constructor device_mconfig_additions() const override; + +protected: + virtual void device_add_mconfig(machine_config &config) override; }; // device type definition diff --git a/src/devices/bus/isa/finalchs.cpp b/src/devices/bus/isa/finalchs.cpp index 2960366a325..9892e1508a9 100644 --- a/src/devices/bus/isa/finalchs.cpp +++ b/src/devices/bus/isa/finalchs.cpp @@ -46,11 +46,6 @@ static ADDRESS_MAP_START(finalchs_mem , AS_PROGRAM, 8, isa8_finalchs_device) AM_RANGE( 0x8000, 0xffff ) AM_ROM ADDRESS_MAP_END -static MACHINE_CONFIG_START( finalchs_config ) - MCFG_CPU_ADD("maincpu",M65C02,5000000) - MCFG_CPU_PROGRAM_MAP(finalchs_mem) -MACHINE_CONFIG_END - ROM_START(finalchs) ROM_REGION(0x10000,"maincpu",0) ROM_LOAD("finalchs.bin", 0x8000, 0x8000, CRC(c8e72dff) SHA1(f422b19a806cef4fadd580caefaaf8c32b644098)) @@ -72,14 +67,13 @@ WRITE8_MEMBER( isa8_finalchs_device::finalchs_w ) DEFINE_DEVICE_TYPE(ISA8_FINALCHS, isa8_finalchs_device, "isa_finalchs", "Final Chess Card") //------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations +// device_add_mconfig - add device configuration //------------------------------------------------- -machine_config_constructor isa8_finalchs_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( finalchs_config ); -} +MACHINE_CONFIG_MEMBER( isa8_finalchs_device::device_add_mconfig ) + MCFG_CPU_ADD("maincpu",M65C02,5000000) + MCFG_CPU_PROGRAM_MAP(finalchs_mem) +MACHINE_CONFIG_END //************************************************************************** // LIVE DEVICE diff --git a/src/devices/bus/isa/finalchs.h b/src/devices/bus/isa/finalchs.h index f287489cb3f..d16a69443ac 100644 --- a/src/devices/bus/isa/finalchs.h +++ b/src/devices/bus/isa/finalchs.h @@ -29,14 +29,15 @@ public: DECLARE_READ8_MEMBER( io6000_read ); DECLARE_WRITE8_MEMBER( io6000_write ); - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - virtual const tiny_rom_entry *device_rom_region() const override; protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; + // optional information overrides + virtual void device_add_mconfig(machine_config &config) override; + virtual const tiny_rom_entry *device_rom_region() const override; + private: // internal state uint8_t m_FCH_latch_data; diff --git a/src/devices/bus/isa/gblaster.cpp b/src/devices/bus/isa/gblaster.cpp index 0ee1da6f5cf..f742fa413fc 100644 --- a/src/devices/bus/isa/gblaster.cpp +++ b/src/devices/bus/isa/gblaster.cpp @@ -20,15 +20,7 @@ jumperable? normally 0x220 */ -static MACHINE_CONFIG_START( game_blaster_config ) - MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_SAA1099_ADD("saa1099.1", 7159090) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.50) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.50) - MCFG_SAA1099_ADD("saa1099.2", 7159090) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.50) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.50) -MACHINE_CONFIG_END + READ8_MEMBER( isa8_gblaster_device::saa1099_16_r ) { @@ -73,14 +65,18 @@ WRITE8_MEMBER( isa8_gblaster_device::detect_w ) DEFINE_DEVICE_TYPE(ISA8_GAME_BLASTER, isa8_gblaster_device, "isa_gblaster", "Game Blaster Sound Card") //------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations +// device_add_mconfig - add device configuration //------------------------------------------------- -machine_config_constructor isa8_gblaster_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( game_blaster_config ); -} +MACHINE_CONFIG_MEMBER( isa8_gblaster_device::device_add_mconfig ) + MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") + MCFG_SAA1099_ADD("saa1099.1", 7159090) + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.50) + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.50) + MCFG_SAA1099_ADD("saa1099.2", 7159090) + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.50) + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.50) +MACHINE_CONFIG_END //************************************************************************** // LIVE DEVICE diff --git a/src/devices/bus/isa/gblaster.h b/src/devices/bus/isa/gblaster.h index 32cebdaa0ba..03b1fcea87d 100644 --- a/src/devices/bus/isa/gblaster.h +++ b/src/devices/bus/isa/gblaster.h @@ -22,18 +22,20 @@ public: // construction/destruction isa8_gblaster_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - DECLARE_READ8_MEMBER(saa1099_16_r); DECLARE_WRITE8_MEMBER(saa1099_1_16_w); DECLARE_WRITE8_MEMBER(saa1099_2_16_w); DECLARE_READ8_MEMBER(detect_r); DECLARE_WRITE8_MEMBER(detect_w); + protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; + + // optional information overrides + virtual void device_add_mconfig(machine_config &config) override; + private: // internal state required_device<saa1099_device> m_saa1099_1; diff --git a/src/devices/bus/isa/gus.cpp b/src/devices/bus/isa/gus.cpp index de9dc6624e9..5545a070e25 100644 --- a/src/devices/bus/isa/gus.cpp +++ b/src/devices/bus/isa/gus.cpp @@ -1231,7 +1231,26 @@ void gf1_device::eop_w(int state) /* 16-bit ISA card device implementation */ -static MACHINE_CONFIG_START( gus_config ) +static INPUT_PORTS_START( gus_joy ) + PORT_START("gus_joy") + PORT_BIT( 0x0f, IP_ACTIVE_LOW, IPT_UNUSED ) // x/y ad stick to digital converters + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1) PORT_NAME("GUS Joystick Button 1") + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2) PORT_NAME("GUS Joystick Button 2") + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3) PORT_NAME("GUS Joystick Button 3") + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON4) PORT_NAME("GUS Joystick Button 4") + + PORT_START("gus_joy_1") + PORT_BIT(0xff,0x80,IPT_AD_STICK_X) PORT_SENSITIVITY(100) PORT_KEYDELTA(1) PORT_MINMAX(1,0xff) PORT_CODE_DEC(KEYCODE_LEFT) PORT_CODE_INC(KEYCODE_RIGHT) PORT_CODE_DEC(JOYCODE_X_LEFT_SWITCH) PORT_CODE_INC(JOYCODE_X_RIGHT_SWITCH) + + PORT_START("gus_joy_2") + PORT_BIT(0xff,0x80,IPT_AD_STICK_Y) PORT_SENSITIVITY(100) PORT_KEYDELTA(1) PORT_MINMAX(1,0xff) PORT_CODE_DEC(KEYCODE_UP) PORT_CODE_INC(KEYCODE_DOWN) PORT_CODE_DEC(JOYCODE_Y_UP_SWITCH) PORT_CODE_INC(JOYCODE_Y_DOWN_SWITCH) +INPUT_PORTS_END + +//------------------------------------------------- +// device_add_mconfig - add device configuration +//------------------------------------------------- + +MACHINE_CONFIG_MEMBER( isa16_gus_device::device_add_mconfig ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker","rspeaker") MCFG_SOUND_ADD("gf1",GGF1,GF1_CLOCK) MCFG_SOUND_ROUTE(0,"lspeaker",0.50) @@ -1259,31 +1278,6 @@ static MACHINE_CONFIG_START( gus_config ) MCFG_CLOCK_SIGNAL_HANDLER(WRITELINE(isa16_gus_device, write_acia_clock)) MACHINE_CONFIG_END -static INPUT_PORTS_START( gus_joy ) - PORT_START("gus_joy") - PORT_BIT( 0x0f, IP_ACTIVE_LOW, IPT_UNUSED ) // x/y ad stick to digital converters - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1) PORT_NAME("GUS Joystick Button 1") - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2) PORT_NAME("GUS Joystick Button 2") - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3) PORT_NAME("GUS Joystick Button 3") - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON4) PORT_NAME("GUS Joystick Button 4") - - PORT_START("gus_joy_1") - PORT_BIT(0xff,0x80,IPT_AD_STICK_X) PORT_SENSITIVITY(100) PORT_KEYDELTA(1) PORT_MINMAX(1,0xff) PORT_CODE_DEC(KEYCODE_LEFT) PORT_CODE_INC(KEYCODE_RIGHT) PORT_CODE_DEC(JOYCODE_X_LEFT_SWITCH) PORT_CODE_INC(JOYCODE_X_RIGHT_SWITCH) - - PORT_START("gus_joy_2") - PORT_BIT(0xff,0x80,IPT_AD_STICK_Y) PORT_SENSITIVITY(100) PORT_KEYDELTA(1) PORT_MINMAX(1,0xff) PORT_CODE_DEC(KEYCODE_UP) PORT_CODE_INC(KEYCODE_DOWN) PORT_CODE_DEC(JOYCODE_Y_UP_SWITCH) PORT_CODE_INC(JOYCODE_Y_DOWN_SWITCH) -INPUT_PORTS_END - -//------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations -//------------------------------------------------- - -machine_config_constructor isa16_gus_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( gus_config ); -} - ioport_constructor isa16_gus_device::device_input_ports() const { return INPUT_PORTS_NAME( gus_joy ); diff --git a/src/devices/bus/isa/gus.h b/src/devices/bus/isa/gus.h index fe0103734d5..7c3bdcea91a 100644 --- a/src/devices/bus/isa/gus.h +++ b/src/devices/bus/isa/gus.h @@ -270,35 +270,36 @@ public: DECLARE_WRITE8_MEMBER(adlib_w); DECLARE_READ8_MEMBER(joy_r); DECLARE_WRITE8_MEMBER(joy_w); - DECLARE_WRITE_LINE_MEMBER(midi_txirq); - DECLARE_WRITE_LINE_MEMBER(midi_rxirq); - DECLARE_WRITE_LINE_MEMBER(wavetable_irq); - DECLARE_WRITE_LINE_MEMBER(volumeramp_irq); - DECLARE_WRITE_LINE_MEMBER(timer1_irq); - DECLARE_WRITE_LINE_MEMBER(timer2_irq); - DECLARE_WRITE_LINE_MEMBER(sb_irq); - DECLARE_WRITE_LINE_MEMBER(dma_irq); - DECLARE_WRITE_LINE_MEMBER(drq1_w); - DECLARE_WRITE_LINE_MEMBER(drq2_w); - DECLARE_WRITE_LINE_MEMBER(nmi_w); - DECLARE_WRITE_LINE_MEMBER(write_acia_clock); // DMA overrides virtual uint8_t dack_r(int line) override; virtual void dack_w(int line,uint8_t data) override; virtual void eop_w(int state) override; - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - virtual ioport_constructor device_input_ports() const override; - protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; virtual void device_stop() override; + // optional information overrides + virtual void device_add_mconfig(machine_config &config) override; + virtual ioport_constructor device_input_ports() const override; + private: + DECLARE_WRITE_LINE_MEMBER(midi_txirq); + DECLARE_WRITE_LINE_MEMBER(midi_rxirq); + DECLARE_WRITE_LINE_MEMBER(wavetable_irq); + DECLARE_WRITE_LINE_MEMBER(volumeramp_irq); + DECLARE_WRITE_LINE_MEMBER(timer1_irq); + DECLARE_WRITE_LINE_MEMBER(timer2_irq); + DECLARE_WRITE_LINE_MEMBER(sb_irq); + DECLARE_WRITE_LINE_MEMBER(dma_irq); + DECLARE_WRITE_LINE_MEMBER(drq1_w); + DECLARE_WRITE_LINE_MEMBER(drq2_w); + DECLARE_WRITE_LINE_MEMBER(nmi_w); + DECLARE_WRITE_LINE_MEMBER(write_acia_clock); + required_device<gf1_device> m_gf1; uint8_t m_irq_status; diff --git a/src/devices/bus/isa/hdc.cpp b/src/devices/bus/isa/hdc.cpp index c5d5797ecd2..d728aa73b74 100644 --- a/src/devices/bus/isa/hdc.cpp +++ b/src/devices/bus/isa/hdc.cpp @@ -112,22 +112,6 @@ static const char *const hdc_command_names[] = nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr /* 0xF8-0xFF */ }; -static MACHINE_CONFIG_START( xt_hdc_config ) - MCFG_DEVICE_ADD("hdc",XT_HDC,0) - MCFG_XTHDC_IRQ_HANDLER(WRITELINE(isa8_hdc_device,irq_w)) - MCFG_XTHDC_DRQ_HANDLER(WRITELINE(isa8_hdc_device,drq_w)) - MCFG_HARDDISK_ADD("hdc:primary") - MCFG_HARDDISK_ADD("hdc:slave") -MACHINE_CONFIG_END - -static MACHINE_CONFIG_START( ec1841_hdc_config ) - MCFG_DEVICE_ADD("hdc",EC1841_HDC,0) - MCFG_XTHDC_IRQ_HANDLER(WRITELINE(isa8_hdc_ec1841_device,irq_w)) - MCFG_XTHDC_DRQ_HANDLER(WRITELINE(isa8_hdc_ec1841_device,drq_w)) - MCFG_HARDDISK_ADD("hdc:primary") - MCFG_HARDDISK_ADD("hdc:slave") -MACHINE_CONFIG_END - ROM_START( hdc ) ROM_REGION(0x02000,"hdc", 0) // Bios taken from WD1002A-WX1 @@ -931,19 +915,24 @@ DEFINE_DEVICE_TYPE(ISA8_HDC, isa8_hdc_device, "isa_hdc", "F DEFINE_DEVICE_TYPE(ISA8_HDC_EC1841, isa8_hdc_ec1841_device, "isa_hdc_ec1841", "EC1841 HDC Card") //------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations +// device_add_mconfig - add device configuration //------------------------------------------------- -machine_config_constructor isa8_hdc_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( xt_hdc_config ); -} +MACHINE_CONFIG_MEMBER( isa8_hdc_device::device_add_mconfig ) + MCFG_DEVICE_ADD("hdc",XT_HDC,0) + MCFG_XTHDC_IRQ_HANDLER(WRITELINE(isa8_hdc_device,irq_w)) + MCFG_XTHDC_DRQ_HANDLER(WRITELINE(isa8_hdc_device,drq_w)) + MCFG_HARDDISK_ADD("hdc:primary") + MCFG_HARDDISK_ADD("hdc:slave") +MACHINE_CONFIG_END -machine_config_constructor isa8_hdc_ec1841_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( ec1841_hdc_config ); -} +MACHINE_CONFIG_MEMBER( isa8_hdc_ec1841_device::device_add_mconfig ) + MCFG_DEVICE_ADD("hdc",EC1841_HDC,0) + MCFG_XTHDC_IRQ_HANDLER(WRITELINE(isa8_hdc_ec1841_device,irq_w)) + MCFG_XTHDC_DRQ_HANDLER(WRITELINE(isa8_hdc_ec1841_device,drq_w)) + MCFG_HARDDISK_ADD("hdc:primary") + MCFG_HARDDISK_ADD("hdc:slave") +MACHINE_CONFIG_END //------------------------------------------------- // rom_region - device-specific ROM region diff --git a/src/devices/bus/isa/hdc.h b/src/devices/bus/isa/hdc.h index b631fc91818..b8b325f1c6d 100644 --- a/src/devices/bus/isa/hdc.h +++ b/src/devices/bus/isa/hdc.h @@ -149,21 +149,23 @@ public: DECLARE_READ8_MEMBER(pc_hdc_r); DECLARE_WRITE8_MEMBER(pc_hdc_w); - DECLARE_WRITE_LINE_MEMBER(irq_w); - DECLARE_WRITE_LINE_MEMBER(drq_w); required_device<xt_hdc_device> m_hdc; - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - virtual const tiny_rom_entry *device_rom_region() const override; - virtual ioport_constructor device_input_ports() const override; - protected: isa8_hdc_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); // device-level overrides virtual void device_start() override; virtual void device_reset() override; + + // optional information overrides + virtual void device_add_mconfig(machine_config &config) override; + virtual const tiny_rom_entry *device_rom_region() const override; + virtual ioport_constructor device_input_ports() const override; + + DECLARE_WRITE_LINE_MEMBER(irq_w); + DECLARE_WRITE_LINE_MEMBER(drq_w); + public: virtual uint8_t dack_r(int line) override; virtual void dack_w(int line,uint8_t data) override; @@ -178,8 +180,9 @@ class isa8_hdc_ec1841_device : public isa8_hdc_device public: isa8_hdc_ec1841_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); +protected: // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; + virtual void device_add_mconfig(machine_config &config) override; required_device<ec1841_device> m_hdc; }; diff --git a/src/devices/bus/isa/ibm_mfc.cpp b/src/devices/bus/isa/ibm_mfc.cpp index 81ba7f9328a..e2c35e02551 100644 --- a/src/devices/bus/isa/ibm_mfc.cpp +++ b/src/devices/bus/isa/ibm_mfc.cpp @@ -269,47 +269,6 @@ WRITE_LINE_MEMBER(isa8_ibm_mfc_device::ibm_mfc_ym_irq) //------------------------------------------------- -// Machine config -//------------------------------------------------- - -static MACHINE_CONFIG_START( ibm_mfc ) - MCFG_CPU_ADD("ibm_mfc", Z80, XTAL_11_8MHz / 2) - MCFG_CPU_PROGRAM_MAP(prg_map) - MCFG_CPU_IO_MAP(io_map) - - MCFG_DEVICE_ADD("d71055c_0", I8255, 0) - MCFG_I8255_IN_PORTA_CB(READ8(isa8_ibm_mfc_device, ppi0_i_a)) - MCFG_I8255_OUT_PORTB_CB(WRITE8(isa8_ibm_mfc_device, ppi0_o_b)) - MCFG_I8255_IN_PORTC_CB(READ8(isa8_ibm_mfc_device, ppi0_i_c)) - MCFG_I8255_OUT_PORTC_CB(WRITE8(isa8_ibm_mfc_device, ppi0_o_c)) - - MCFG_DEVICE_ADD("d71055c_1", I8255, 0) - MCFG_I8255_OUT_PORTA_CB(WRITE8(isa8_ibm_mfc_device, ppi1_o_a)) - MCFG_I8255_IN_PORTB_CB(READ8(isa8_ibm_mfc_device, ppi1_i_b)) - MCFG_I8255_OUT_PORTC_CB(WRITE8(isa8_ibm_mfc_device, ppi1_o_c)) - - MCFG_DEVICE_ADD("d71051", I8251, 0) - - MCFG_DEVICE_ADD("usart_clock", CLOCK, XTAL_4MHz / 8) // 500KHz - MCFG_CLOCK_SIGNAL_HANDLER(WRITELINE(isa8_ibm_mfc_device, write_usart_clock)) - - MCFG_DEVICE_ADD("d8253", PIT8253, 0) - MCFG_PIT8253_CLK0(XTAL_4MHz / 8) - MCFG_PIT8253_OUT0_HANDLER(WRITELINE(isa8_ibm_mfc_device, d8253_out0)) - MCFG_PIT8253_CLK1(0) - MCFG_PIT8253_OUT1_HANDLER(WRITELINE(isa8_ibm_mfc_device, d8253_out1)) - MCFG_PIT8253_CLK2(XTAL_4MHz / 2) - MCFG_PIT8253_OUT2_HANDLER(DEVWRITELINE("d8253", pit8253_device, write_clk1)) - - MCFG_SPEAKER_STANDARD_STEREO("ymleft", "ymright") - MCFG_YM2151_ADD("ym2151", XTAL_4MHz) - MCFG_YM2151_IRQ_HANDLER(WRITELINE(isa8_ibm_mfc_device, ibm_mfc_ym_irq)) - MCFG_SOUND_ROUTE(0, "ymleft", 1.00) - MCFG_SOUND_ROUTE(1, "ymright", 1.00) -MACHINE_CONFIG_END - - -//------------------------------------------------- // ISA interface //------------------------------------------------- @@ -410,14 +369,44 @@ ROM_END //------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations +// device_add_mconfig - add device configuration //------------------------------------------------- -machine_config_constructor isa8_ibm_mfc_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( ibm_mfc ); -} +MACHINE_CONFIG_MEMBER( isa8_ibm_mfc_device::device_add_mconfig ) + MCFG_CPU_ADD("ibm_mfc", Z80, XTAL_11_8MHz / 2) + MCFG_CPU_PROGRAM_MAP(prg_map) + MCFG_CPU_IO_MAP(io_map) + + MCFG_DEVICE_ADD("d71055c_0", I8255, 0) + MCFG_I8255_IN_PORTA_CB(READ8(isa8_ibm_mfc_device, ppi0_i_a)) + MCFG_I8255_OUT_PORTB_CB(WRITE8(isa8_ibm_mfc_device, ppi0_o_b)) + MCFG_I8255_IN_PORTC_CB(READ8(isa8_ibm_mfc_device, ppi0_i_c)) + MCFG_I8255_OUT_PORTC_CB(WRITE8(isa8_ibm_mfc_device, ppi0_o_c)) + + MCFG_DEVICE_ADD("d71055c_1", I8255, 0) + MCFG_I8255_OUT_PORTA_CB(WRITE8(isa8_ibm_mfc_device, ppi1_o_a)) + MCFG_I8255_IN_PORTB_CB(READ8(isa8_ibm_mfc_device, ppi1_i_b)) + MCFG_I8255_OUT_PORTC_CB(WRITE8(isa8_ibm_mfc_device, ppi1_o_c)) + + MCFG_DEVICE_ADD("d71051", I8251, 0) + + MCFG_DEVICE_ADD("usart_clock", CLOCK, XTAL_4MHz / 8) // 500KHz + MCFG_CLOCK_SIGNAL_HANDLER(WRITELINE(isa8_ibm_mfc_device, write_usart_clock)) + + MCFG_DEVICE_ADD("d8253", PIT8253, 0) + MCFG_PIT8253_CLK0(XTAL_4MHz / 8) + MCFG_PIT8253_OUT0_HANDLER(WRITELINE(isa8_ibm_mfc_device, d8253_out0)) + MCFG_PIT8253_CLK1(0) + MCFG_PIT8253_OUT1_HANDLER(WRITELINE(isa8_ibm_mfc_device, d8253_out1)) + MCFG_PIT8253_CLK2(XTAL_4MHz / 2) + MCFG_PIT8253_OUT2_HANDLER(DEVWRITELINE("d8253", pit8253_device, write_clk1)) + + MCFG_SPEAKER_STANDARD_STEREO("ymleft", "ymright") + MCFG_YM2151_ADD("ym2151", XTAL_4MHz) + MCFG_YM2151_IRQ_HANDLER(WRITELINE(isa8_ibm_mfc_device, ibm_mfc_ym_irq)) + MCFG_SOUND_ROUTE(0, "ymleft", 1.00) + MCFG_SOUND_ROUTE(1, "ymright", 1.00) +MACHINE_CONFIG_END //------------------------------------------------- diff --git a/src/devices/bus/isa/ibm_mfc.h b/src/devices/bus/isa/ibm_mfc.h index 019f89d5da2..38403291378 100644 --- a/src/devices/bus/isa/ibm_mfc.h +++ b/src/devices/bus/isa/ibm_mfc.h @@ -31,6 +31,20 @@ public: // Construction/destruction isa8_ibm_mfc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + DECLARE_READ8_MEMBER( ibm_mfc_r ); + DECLARE_WRITE8_MEMBER( ibm_mfc_w ); + +protected: + // Device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + + virtual void device_add_mconfig(machine_config &config) override; + virtual ioport_constructor device_input_ports() const override; + + virtual const tiny_rom_entry* device_rom_region() const override; + +private: DECLARE_READ8_MEMBER( ppi0_i_a ); DECLARE_WRITE8_MEMBER( ppi0_o_b ); DECLARE_READ8_MEMBER( ppi0_i_c ); @@ -41,9 +55,6 @@ public: DECLARE_WRITE8_MEMBER( ppi1_o_c ); - DECLARE_READ8_MEMBER( ibm_mfc_r ); - DECLARE_WRITE8_MEMBER( ibm_mfc_w ); - DECLARE_WRITE_LINE_MEMBER( d8253_out0 ); DECLARE_WRITE_LINE_MEMBER( d8253_out1 ); @@ -51,17 +62,6 @@ public: DECLARE_WRITE_LINE_MEMBER( ibm_mfc_ym_irq ); -protected: - // Device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - - virtual machine_config_constructor device_mconfig_additions() const override; - virtual ioport_constructor device_input_ports() const override; - - virtual const tiny_rom_entry* device_rom_region() const override; - -private: void set_z80_interrupt(int src, int state); void set_pc_interrupt(int src, int state); void update_pc_interrupts(void); diff --git a/src/devices/bus/isa/ide.cpp b/src/devices/bus/isa/ide.cpp index fe2feb511d2..94312ba3cf0 100644 --- a/src/devices/bus/isa/ide.cpp +++ b/src/devices/bus/isa/ide.cpp @@ -52,16 +52,6 @@ static MACHINE_CONFIG_START(cdrom_headphones) MCFG_SPEAKER_STANDARD_STEREO("lheadphone", "rheadphone") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( ide ) - MCFG_IDE_CONTROLLER_ADD("ide", ata_devices, "hdd", nullptr, false) - MCFG_ATA_INTERFACE_IRQ_HANDLER(WRITELINE(isa16_ide_device, ide_interrupt)) - - MCFG_DEVICE_MODIFY("ide:0") - MCFG_SLOT_OPTION_MACHINE_CONFIG("cdrom", cdrom_headphones) - MCFG_DEVICE_MODIFY("ide:1") - MCFG_SLOT_OPTION_MACHINE_CONFIG("cdrom", cdrom_headphones) -MACHINE_CONFIG_END - static INPUT_PORTS_START( ide ) PORT_START("DSW") PORT_DIPNAME( 0x01, 0x00, "IDE Configuration") @@ -76,14 +66,18 @@ INPUT_PORTS_END DEFINE_DEVICE_TYPE(ISA16_IDE, isa16_ide_device, "isa_ide", "IDE Fixed Drive Adapter") //------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations +// device_add_mconfig - add device configuration //------------------------------------------------- -machine_config_constructor isa16_ide_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( ide ); -} +MACHINE_CONFIG_MEMBER( isa16_ide_device::device_add_mconfig ) + MCFG_IDE_CONTROLLER_ADD("ide", ata_devices, "hdd", nullptr, false) + MCFG_ATA_INTERFACE_IRQ_HANDLER(WRITELINE(isa16_ide_device, ide_interrupt)) + + MCFG_DEVICE_MODIFY("ide:0") + MCFG_SLOT_OPTION_MACHINE_CONFIG("cdrom", cdrom_headphones) + MCFG_DEVICE_MODIFY("ide:1") + MCFG_SLOT_OPTION_MACHINE_CONFIG("cdrom", cdrom_headphones) +MACHINE_CONFIG_END //------------------------------------------------- // input_ports - device-specific input ports diff --git a/src/devices/bus/isa/ide.h b/src/devices/bus/isa/ide.h index 6f34b144461..d1655c5cfd5 100644 --- a/src/devices/bus/isa/ide.h +++ b/src/devices/bus/isa/ide.h @@ -21,22 +21,24 @@ public: // construction/destruction isa16_ide_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - virtual ioport_constructor device_input_ports() const override; - bool is_primary() { return m_is_primary; } - DECLARE_WRITE_LINE_MEMBER(ide_interrupt); DECLARE_ADDRESS_MAP(map, 16); DECLARE_ADDRESS_MAP(alt_map, 8); READ8_MEMBER(ide16_alt_r); WRITE8_MEMBER(ide16_alt_w); + protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; + // optional information overrides + virtual void device_add_mconfig(machine_config &config) override; + virtual ioport_constructor device_input_ports() const override; + private: + DECLARE_WRITE_LINE_MEMBER(ide_interrupt); + // internal state bool m_is_primary; required_device<ide_controller_device> m_ide; diff --git a/src/devices/bus/isa/lpt.cpp b/src/devices/bus/isa/lpt.cpp index 39f9df36671..ca81b9a0499 100644 --- a/src/devices/bus/isa/lpt.cpp +++ b/src/devices/bus/isa/lpt.cpp @@ -19,16 +19,11 @@ isa8_lpt_device::isa8_lpt_device(const machine_config &mconfig, const char *tag, { } -static MACHINE_CONFIG_START( lpt_config ) +MACHINE_CONFIG_MEMBER( isa8_lpt_device::device_add_mconfig ) MCFG_DEVICE_ADD("lpt", PC_LPT, 0) MCFG_PC_LPT_IRQ_HANDLER(WRITELINE(isa8_lpt_device, pc_cpu_line)) MACHINE_CONFIG_END -machine_config_constructor isa8_lpt_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( lpt_config ); -} - static INPUT_PORTS_START( lpt_dsw ) PORT_START("DSW") PORT_DIPNAME( 0x01, 0x00, "Base address") diff --git a/src/devices/bus/isa/lpt.h b/src/devices/bus/isa/lpt.h index 4ff3e60a9e2..1aa2731bfaf 100644 --- a/src/devices/bus/isa/lpt.h +++ b/src/devices/bus/isa/lpt.h @@ -27,20 +27,19 @@ public: // construction/destruction isa8_lpt_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - virtual ioport_constructor device_input_ports() const override; - bool is_primary() { return m_is_primary; } - WRITE_LINE_MEMBER(pc_cpu_line); - protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; + // optional information overrides + virtual void device_add_mconfig(machine_config &config) override; + virtual ioport_constructor device_input_ports() const override; + private: + WRITE_LINE_MEMBER(pc_cpu_line); // internal state bool m_is_primary; diff --git a/src/devices/bus/isa/mach32.cpp b/src/devices/bus/isa/mach32.cpp index 51a28531ac2..328072ca7a9 100644 --- a/src/devices/bus/isa/mach32.cpp +++ b/src/devices/bus/isa/mach32.cpp @@ -48,16 +48,11 @@ mach32_device::mach32_device(const machine_config &mconfig, device_type type, co { } -static MACHINE_CONFIG_START( mach32_8514a ) +MACHINE_CONFIG_MEMBER( mach32_device::device_add_mconfig ) MCFG_DEVICE_ADD("8514a", ATIMACH32_8514A, 0) MCFG_EEPROM_SERIAL_93C56_ADD("ati_eeprom") MACHINE_CONFIG_END -machine_config_constructor mach32_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( mach32_8514a ); -} - void mach32_8514a_device::device_config_complete() { m_vga = dynamic_cast<vga_device*>(owner()); @@ -115,16 +110,11 @@ mach64_device::mach64_device(const machine_config &mconfig, device_type type, co { } -static MACHINE_CONFIG_START( mach64_8514a ) +MACHINE_CONFIG_MEMBER( mach64_device::device_add_mconfig ) MCFG_DEVICE_ADD("8514a", ATIMACH64_8514A, 0) MCFG_EEPROM_SERIAL_93C56_ADD("ati_eeprom") MACHINE_CONFIG_END -machine_config_constructor mach64_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( mach64_8514a ); -} - void mach64_8514a_device::device_config_complete() { m_vga = dynamic_cast<vga_device*>(owner()); diff --git a/src/devices/bus/isa/mach32.h b/src/devices/bus/isa/mach32.h index f3aba4a911a..db2f8bdc2af 100644 --- a/src/devices/bus/isa/mach32.h +++ b/src/devices/bus/isa/mach32.h @@ -129,7 +129,7 @@ protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; - virtual machine_config_constructor device_mconfig_additions() const override; + virtual void device_add_mconfig(machine_config &config) override; }; /* @@ -167,7 +167,7 @@ protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; - virtual machine_config_constructor device_mconfig_additions() const override; + virtual void device_add_mconfig(machine_config &config) override; required_device<mach64_8514a_device> m_8514a; // provides accelerated 2D drawing, derived from the Mach8 device }; diff --git a/src/devices/bus/isa/mc1502_fdc.cpp b/src/devices/bus/isa/mc1502_fdc.cpp index b59d2482c13..9ea522fd8f9 100644 --- a/src/devices/bus/isa/mc1502_fdc.cpp +++ b/src/devices/bus/isa/mc1502_fdc.cpp @@ -39,14 +39,6 @@ static SLOT_INTERFACE_START( mc1502_floppies ) SLOT_INTERFACE( "525qd", FLOPPY_525_QD ) SLOT_INTERFACE_END -static MACHINE_CONFIG_START( mc1502_fdc ) - MCFG_FD1793_ADD("fdc", XTAL_16MHz / 16) - MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(mc1502_fdc_device, mc1502_fdc_irq_drq)) - MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(mc1502_fdc_device, mc1502_fdc_irq_drq)) - MCFG_FLOPPY_DRIVE_ADD("fdc:0", mc1502_floppies, "525qd", mc1502_fdc_device::floppy_formats) - MCFG_FLOPPY_DRIVE_ADD("fdc:1", mc1502_floppies, "525qd", mc1502_fdc_device::floppy_formats) -MACHINE_CONFIG_END - //------------------------------------------------- // ROM( mc1502_fdc ) //------------------------------------------------- @@ -56,14 +48,16 @@ ROM_END //------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations +// device_add_mconfig - add device configuration //------------------------------------------------- -machine_config_constructor mc1502_fdc_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME(mc1502_fdc); -} +MACHINE_CONFIG_MEMBER( mc1502_fdc_device::device_add_mconfig ) + MCFG_FD1793_ADD("fdc", XTAL_16MHz / 16) + MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(mc1502_fdc_device, mc1502_fdc_irq_drq)) + MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(mc1502_fdc_device, mc1502_fdc_irq_drq)) + MCFG_FLOPPY_DRIVE_ADD("fdc:0", mc1502_floppies, "525qd", mc1502_fdc_device::floppy_formats) + MCFG_FLOPPY_DRIVE_ADD("fdc:1", mc1502_floppies, "525qd", mc1502_fdc_device::floppy_formats) +MACHINE_CONFIG_END //------------------------------------------------- // rom_region - device-specific ROM region diff --git a/src/devices/bus/isa/mc1502_fdc.h b/src/devices/bus/isa/mc1502_fdc.h index 0d3b97f326c..972a005b761 100644 --- a/src/devices/bus/isa/mc1502_fdc.h +++ b/src/devices/bus/isa/mc1502_fdc.h @@ -27,23 +27,26 @@ public: // construction/destruction mc1502_fdc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - virtual const tiny_rom_entry *device_rom_region() const override; - DECLARE_FLOPPY_FORMATS(floppy_formats); TIMER_CALLBACK_MEMBER(motor_callback); DECLARE_READ8_MEMBER(mc1502_fdc_r); DECLARE_READ8_MEMBER(mc1502_fdcv2_r); DECLARE_WRITE8_MEMBER(mc1502_fdc_w); - DECLARE_WRITE_LINE_MEMBER(mc1502_fdc_irq_drq); protected: // device-level overrides virtual void device_start() override; + // optional information overrides + virtual void device_add_mconfig(machine_config &config) override; + 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; int motor_on; emu_timer *motor_timer; diff --git a/src/devices/bus/isa/mda.cpp b/src/devices/bus/isa/mda.cpp index 7b7df7c5009..a3978eb9369 100644 --- a/src/devices/bus/isa/mda.cpp +++ b/src/devices/bus/isa/mda.cpp @@ -93,7 +93,24 @@ WRITE_LINE_MEMBER(isa8_mda_device::pc_cpu_line) } -MACHINE_CONFIG_START( pcvideo_mda ) +ROM_START( mda ) + /* IBM 1501981(CGA) and 1501985(MDA) Character rom */ + ROM_REGION(0x08100,"gfx1", 0) + ROM_LOAD("5788005.u33", 0x00000, 0x02000, CRC(0bf56d70) SHA1(c2a8b10808bf51a3c123ba3eb1e9dd608231916f)) /* "AMI 8412PI // 5788005 // (C) IBM CORP. 1981 // KOREA" */ +ROM_END + +//************************************************************************** +// GLOBAL VARIABLES +//************************************************************************** + +DEFINE_DEVICE_TYPE(ISA8_MDA, isa8_mda_device, "isa_ibm_mda", "IBM Monochrome Display and Printer Adapter") + + +//------------------------------------------------- +// device_add_mconfig - add device configuration +//------------------------------------------------- + +MACHINE_CONFIG_MEMBER( isa8_mda_device::device_add_mconfig ) MCFG_SCREEN_ADD( MDA_SCREEN_NAME, RASTER) MCFG_SCREEN_RAW_PARAMS(MDA_CLOCK, 882, 0, 720, 370, 0, 350 ) MCFG_SCREEN_UPDATE_DEVICE( MDA_MC6845_NAME, mc6845_device, screen_update ) @@ -113,29 +130,6 @@ MACHINE_CONFIG_START( pcvideo_mda ) MCFG_PC_LPT_IRQ_HANDLER(WRITELINE(isa8_mda_device, pc_cpu_line)) MACHINE_CONFIG_END -ROM_START( mda ) - /* IBM 1501981(CGA) and 1501985(MDA) Character rom */ - ROM_REGION(0x08100,"gfx1", 0) - ROM_LOAD("5788005.u33", 0x00000, 0x02000, CRC(0bf56d70) SHA1(c2a8b10808bf51a3c123ba3eb1e9dd608231916f)) /* "AMI 8412PI // 5788005 // (C) IBM CORP. 1981 // KOREA" */ -ROM_END - -//************************************************************************** -// GLOBAL VARIABLES -//************************************************************************** - -DEFINE_DEVICE_TYPE(ISA8_MDA, isa8_mda_device, "isa_ibm_mda", "IBM Monochrome Display and Printer Adapter") - - -//------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations -//------------------------------------------------- - -machine_config_constructor isa8_mda_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( pcvideo_mda ); -} - //------------------------------------------------- // rom_region - device-specific ROM region //------------------------------------------------- @@ -529,7 +523,22 @@ static GFXDECODE_START( pcherc ) GFXDECODE_ENTRY( "gfx1", 0x0000, pc_16_charlayout, 1, 1 ) GFXDECODE_END -MACHINE_CONFIG_START( pcvideo_hercules ) +ROM_START( hercules ) + ROM_REGION(0x1000,"gfx1", 0) + ROM_LOAD("um2301.bin", 0x00000, 0x1000, CRC(0827bdac) SHA1(15f1aceeee8b31f0d860ff420643e3c7f29b5ffc)) +ROM_END + +//************************************************************************** +// GLOBAL VARIABLES +//************************************************************************** + +DEFINE_DEVICE_TYPE(ISA8_HERCULES, isa8_hercules_device, "isa_hercules", "Hercules Graphics Card") + +//------------------------------------------------- +// device_add_mconfig - add device configuration +//------------------------------------------------- + +MACHINE_CONFIG_MEMBER( isa8_hercules_device::device_add_mconfig ) MCFG_SCREEN_ADD( HERCULES_SCREEN_NAME, RASTER) MCFG_SCREEN_RAW_PARAMS(MDA_CLOCK, 882, 0, 720, 370, 0, 350 ) MCFG_SCREEN_UPDATE_DEVICE( HERCULES_MC6845_NAME, mc6845_device, screen_update ) @@ -549,27 +558,6 @@ MACHINE_CONFIG_START( pcvideo_hercules ) MCFG_PC_LPT_IRQ_HANDLER(WRITELINE(isa8_mda_device, pc_cpu_line)) MACHINE_CONFIG_END -ROM_START( hercules ) - ROM_REGION(0x1000,"gfx1", 0) - ROM_LOAD("um2301.bin", 0x00000, 0x1000, CRC(0827bdac) SHA1(15f1aceeee8b31f0d860ff420643e3c7f29b5ffc)) -ROM_END - -//************************************************************************** -// GLOBAL VARIABLES -//************************************************************************** - -DEFINE_DEVICE_TYPE(ISA8_HERCULES, isa8_hercules_device, "isa_hercules", "Hercules Graphics Card") - -//------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations -//------------------------------------------------- - -machine_config_constructor isa8_hercules_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( pcvideo_hercules ); -} - //------------------------------------------------- // rom_region - device-specific ROM region //------------------------------------------------- @@ -760,8 +748,15 @@ READ8_MEMBER( isa8_hercules_device::io_read ) return data; } +DEFINE_DEVICE_TYPE(ISA8_EC1840_0002, isa8_ec1840_0002_device, "ec1840_0002", "EC1840.0002 (MDA)") + + +//------------------------------------------------- +// device_add_mconfig - add device configuration +//------------------------------------------------- + // XXX -MACHINE_CONFIG_START( pcvideo_ec1840_0002 ) +MACHINE_CONFIG_MEMBER( isa8_ec1840_0002_device::device_add_mconfig ) MCFG_SCREEN_ADD( MDA_SCREEN_NAME, RASTER) MCFG_SCREEN_RAW_PARAMS(MDA_CLOCK, 792, 0, 640, 370, 0, 350 ) MCFG_SCREEN_UPDATE_DEVICE( MDA_MC6845_NAME, mc6845_device, screen_update ) @@ -776,19 +771,6 @@ MACHINE_CONFIG_START( pcvideo_ec1840_0002 ) MCFG_MC6845_OUT_VSYNC_CB(WRITELINE(isa8_mda_device, vsync_changed)) MACHINE_CONFIG_END -DEFINE_DEVICE_TYPE(ISA8_EC1840_0002, isa8_ec1840_0002_device, "ec1840_0002", "EC1840.0002 (MDA)") - - -//------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations -//------------------------------------------------- - -machine_config_constructor isa8_ec1840_0002_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( pcvideo_ec1840_0002 ); -} - //------------------------------------------------- // isa8_ec1840_0002_device - constructor //------------------------------------------------- diff --git a/src/devices/bus/isa/mda.h b/src/devices/bus/isa/mda.h index effbf2b59e5..f786f22b84b 100644 --- a/src/devices/bus/isa/mda.h +++ b/src/devices/bus/isa/mda.h @@ -23,22 +23,15 @@ public: // construction/destruction isa8_mda_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - virtual const tiny_rom_entry *device_rom_region() const override; - - DECLARE_WRITE_LINE_MEMBER(hsync_changed); - DECLARE_WRITE_LINE_MEMBER(vsync_changed); virtual DECLARE_READ8_MEMBER(io_read); virtual DECLARE_WRITE8_MEMBER(io_write); virtual DECLARE_READ8_MEMBER(status_r); virtual DECLARE_WRITE8_MEMBER(mode_control_w); - WRITE_LINE_MEMBER(pc_cpu_line); - + DECLARE_WRITE_LINE_MEMBER(hsync_changed); + DECLARE_WRITE_LINE_MEMBER(vsync_changed); + virtual MC6845_UPDATE_ROW( crtc_update_row ); - MC6845_UPDATE_ROW( mda_text_inten_update_row ); - MC6845_UPDATE_ROW( mda_text_blink_update_row ); protected: isa8_mda_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); @@ -47,6 +40,16 @@ protected: virtual void device_start() override; virtual void device_reset() override; + // optional information overrides + virtual void device_add_mconfig(machine_config &config) override; + virtual const tiny_rom_entry *device_rom_region() const override; + +private: + WRITE_LINE_MEMBER(pc_cpu_line); + + MC6845_UPDATE_ROW( mda_text_inten_update_row ); + MC6845_UPDATE_ROW( mda_text_blink_update_row ); + public: int m_framecnt; @@ -73,24 +76,25 @@ class isa8_hercules_device : public: // construction/destruction isa8_hercules_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - virtual const tiny_rom_entry *device_rom_region() const override; virtual DECLARE_READ8_MEMBER(io_read) override; virtual DECLARE_WRITE8_MEMBER(io_write) override; virtual DECLARE_READ8_MEMBER(status_r) override; virtual DECLARE_WRITE8_MEMBER(mode_control_w) override; - virtual MC6845_UPDATE_ROW( crtc_update_row ) override; - MC6845_UPDATE_ROW( hercules_gfx_update_row ); - protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; -public: + // optional information overrides + virtual void device_add_mconfig(machine_config &config) override; + virtual const tiny_rom_entry *device_rom_region() const override; + +private: + virtual MC6845_UPDATE_ROW( crtc_update_row ) override; + MC6845_UPDATE_ROW( hercules_gfx_update_row ); + uint8_t m_configuration_switch; //hercules }; @@ -106,23 +110,23 @@ class isa8_ec1840_0002_device : public: // construction/destruction isa8_ec1840_0002_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; + virtual void device_add_mconfig(machine_config &config) override; +private: virtual DECLARE_WRITE8_MEMBER(mode_control_w) override; virtual MC6845_UPDATE_ROW( crtc_update_row ) override; MC6845_UPDATE_ROW( mda_lowres_text_inten_update_row ); MC6845_UPDATE_ROW( mda_lowres_text_blink_update_row ); -protected: - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - -public: std::unique_ptr<uint8_t[]> m_soft_chr_gen; - }; // device type definition diff --git a/src/devices/bus/isa/mpu401.cpp b/src/devices/bus/isa/mpu401.cpp index 77e5540a6c5..84757bbb6cf 100644 --- a/src/devices/bus/isa/mpu401.cpp +++ b/src/devices/bus/isa/mpu401.cpp @@ -15,9 +15,6 @@ #define MPU_CORE_TAG "mpu401" -MACHINE_CONFIG_START( isa8mpu401 ) - MCFG_MPU401_ADD(MPU_CORE_TAG, WRITELINE(isa8_mpu401_device, mpu_irq_out)) -MACHINE_CONFIG_END /* DIP-SWs @@ -48,14 +45,12 @@ WRITE_LINE_MEMBER( isa8_mpu401_device::mpu_irq_out ) DEFINE_DEVICE_TYPE(ISA8_MPU401, isa8_mpu401_device, "isa_mpu401", "Roland MPU-401 MIDI Interface (ISA)") //------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations +// device_add_mconfig - add device configuration //------------------------------------------------- -machine_config_constructor isa8_mpu401_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( isa8mpu401 ); -} +MACHINE_CONFIG_MEMBER( isa8_mpu401_device::device_add_mconfig ) + MCFG_MPU401_ADD(MPU_CORE_TAG, WRITELINE(isa8_mpu401_device, mpu_irq_out)) +MACHINE_CONFIG_END //************************************************************************** diff --git a/src/devices/bus/isa/mpu401.h b/src/devices/bus/isa/mpu401.h index 2daabbac9e7..89974be7b84 100644 --- a/src/devices/bus/isa/mpu401.h +++ b/src/devices/bus/isa/mpu401.h @@ -22,15 +22,17 @@ public: // construction/destruction isa8_mpu401_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // called back by the MPU401 core to set the IRQ line state - DECLARE_WRITE_LINE_MEMBER(mpu_irq_out); - - // optional information overrides protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; - virtual machine_config_constructor device_mconfig_additions() const override; + + // optional information overrides + virtual void device_add_mconfig(machine_config &config) override; + +private: + // called back by the MPU401 core to set the IRQ line state + DECLARE_WRITE_LINE_MEMBER(mpu_irq_out); required_device<mpu401_device> m_mpu401; }; diff --git a/src/devices/bus/isa/mufdc.cpp b/src/devices/bus/isa/mufdc.cpp index e3313982327..b77c63d51a0 100644 --- a/src/devices/bus/isa/mufdc.cpp +++ b/src/devices/bus/isa/mufdc.cpp @@ -28,11 +28,6 @@ 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") -//------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations -//------------------------------------------------- - FLOPPY_FORMATS_MEMBER( mufdc_device::floppy_formats ) FLOPPY_PC_FORMAT, FLOPPY_NASLITE_FORMAT @@ -45,7 +40,11 @@ static SLOT_INTERFACE_START( drives ) SLOT_INTERFACE("35dd", FLOPPY_35_DD) SLOT_INTERFACE_END -static MACHINE_CONFIG_START( mufdc_device ) +//------------------------------------------------- +// device_add_mconfig - add device configuration +//------------------------------------------------- + +MACHINE_CONFIG_MEMBER( mufdc_device::device_add_mconfig ) MCFG_MCS3201_ADD("fdc") MCFG_MCS3201_INPUT_HANDLER(READ8(mufdc_device, fdc_input_r)) MCFG_UPD765_INTRQ_CALLBACK(WRITELINE(mufdc_device, fdc_irq_w)) @@ -56,11 +55,6 @@ static MACHINE_CONFIG_START( mufdc_device ) MCFG_FLOPPY_DRIVE_ADD("fdc:3", drives, nullptr, mufdc_device::floppy_formats) MACHINE_CONFIG_END -machine_config_constructor mufdc_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( mufdc_device ); -} - //------------------------------------------------- // input_ports - device-specific input ports //------------------------------------------------- diff --git a/src/devices/bus/isa/mufdc.h b/src/devices/bus/isa/mufdc.h index 3f62b9862ed..4d042a58834 100644 --- a/src/devices/bus/isa/mufdc.h +++ b/src/devices/bus/isa/mufdc.h @@ -32,17 +32,6 @@ class mufdc_device : public device_t, public device_isa8_card_interface { -public: - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - virtual ioport_constructor device_input_ports() const override; - - DECLARE_FLOPPY_FORMATS( floppy_formats ); - - DECLARE_READ8_MEMBER( fdc_input_r ); - DECLARE_WRITE_LINE_MEMBER( fdc_irq_w ); - DECLARE_WRITE_LINE_MEMBER( fdc_drq_w ); - protected: // construction/destruction mufdc_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); @@ -51,12 +40,22 @@ protected: virtual void device_start() override; virtual void device_reset() override; + // optional information overrides + virtual void device_add_mconfig(machine_config &config) override; + virtual ioport_constructor device_input_ports() const override; + // device_isa8_card_interface virtual uint8_t dack_r(int line) override; virtual void dack_w(int line, uint8_t data) override; virtual void eop_w(int state) override; private: + DECLARE_FLOPPY_FORMATS( floppy_formats ); + + DECLARE_READ8_MEMBER( fdc_input_r ); + DECLARE_WRITE_LINE_MEMBER( fdc_irq_w ); + DECLARE_WRITE_LINE_MEMBER( fdc_drq_w ); + required_device<pc_fdc_interface> m_fdc; required_ioport m_config; }; diff --git a/src/devices/bus/isa/ne1000.cpp b/src/devices/bus/isa/ne1000.cpp index 1657b2f0c77..5041e091a1a 100644 --- a/src/devices/bus/isa/ne1000.cpp +++ b/src/devices/bus/isa/ne1000.cpp @@ -3,19 +3,16 @@ #include "emu.h" #include "ne1000.h" -static MACHINE_CONFIG_START(ne1000_config) + +DEFINE_DEVICE_TYPE(NE1000, ne1000_device, "ne1000", "NE1000 Network Adapter") + +MACHINE_CONFIG_MEMBER(ne1000_device::device_add_mconfig) MCFG_DEVICE_ADD("dp8390d", DP8390D, 0) MCFG_DP8390D_IRQ_CB(WRITELINE(ne1000_device, ne1000_irq_w)) MCFG_DP8390D_MEM_READ_CB(READ8(ne1000_device, ne1000_mem_read)) MCFG_DP8390D_MEM_WRITE_CB(WRITE8(ne1000_device, ne1000_mem_write)) MACHINE_CONFIG_END -DEFINE_DEVICE_TYPE(NE1000, ne1000_device, "ne1000", "NE1000 Network Adapter") - -machine_config_constructor ne1000_device::device_mconfig_additions() const { - return MACHINE_CONFIG_NAME(ne1000_config); -} - ne1000_device::ne1000_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : device_t(mconfig, NE1000, tag, owner, clock), device_isa8_card_interface(mconfig, *this), diff --git a/src/devices/bus/isa/ne1000.h b/src/devices/bus/isa/ne1000.h index 5277b4d61c5..a59e24374ed 100644 --- a/src/devices/bus/isa/ne1000.h +++ b/src/devices/bus/isa/ne1000.h @@ -15,18 +15,22 @@ class ne1000_device: public device_t, { public: ne1000_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual machine_config_constructor device_mconfig_additions() const override; - virtual ioport_constructor device_input_ports() const override; - void ne1000_irq_w(int state); - DECLARE_READ8_MEMBER(ne1000_mem_read); - DECLARE_WRITE8_MEMBER(ne1000_mem_write); DECLARE_READ8_MEMBER(ne1000_port_r); DECLARE_WRITE8_MEMBER(ne1000_port_w); + protected: virtual void device_start() override; virtual void device_reset() override; + + virtual void device_add_mconfig(machine_config &config) override; + virtual ioport_constructor device_input_ports() const override; + private: + void ne1000_irq_w(int state); + DECLARE_READ8_MEMBER(ne1000_mem_read); + DECLARE_WRITE8_MEMBER(ne1000_mem_write); + required_device<dp8390d_device> m_dp8390; uint8_t m_irq; uint8_t m_board_ram[8*1024]; diff --git a/src/devices/bus/isa/ne2000.cpp b/src/devices/bus/isa/ne2000.cpp index a6086b4b77a..19bc8f015de 100644 --- a/src/devices/bus/isa/ne2000.cpp +++ b/src/devices/bus/isa/ne2000.cpp @@ -4,19 +4,15 @@ #include "ne2000.h" -static MACHINE_CONFIG_START(ne2000_config) +DEFINE_DEVICE_TYPE(NE2000, ne2000_device, "ne2000", "NE2000 Network Adapter") + +MACHINE_CONFIG_MEMBER(ne2000_device::device_add_mconfig) MCFG_DEVICE_ADD("dp8390d", DP8390D, 0) MCFG_DP8390D_IRQ_CB(WRITELINE(ne2000_device, ne2000_irq_w)) MCFG_DP8390D_MEM_READ_CB(READ8(ne2000_device, ne2000_mem_read)) MCFG_DP8390D_MEM_WRITE_CB(WRITE8(ne2000_device, ne2000_mem_write)) MACHINE_CONFIG_END -DEFINE_DEVICE_TYPE(NE2000, ne2000_device, "ne2000", "NE2000 Network Adapter") - -machine_config_constructor ne2000_device::device_mconfig_additions() const { - return MACHINE_CONFIG_NAME(ne2000_config); -} - ne2000_device::ne2000_device(const machine_config& mconfig, const char* tag, device_t* owner, uint32_t clock) : device_t(mconfig, NE2000, tag, owner, clock), device_isa16_card_interface(mconfig, *this), diff --git a/src/devices/bus/isa/ne2000.h b/src/devices/bus/isa/ne2000.h index 27f3688d1b5..868d78b35a6 100644 --- a/src/devices/bus/isa/ne2000.h +++ b/src/devices/bus/isa/ne2000.h @@ -13,18 +13,22 @@ class ne2000_device: public device_t, { public: ne2000_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual machine_config_constructor device_mconfig_additions() const override; - virtual ioport_constructor device_input_ports() const override; - void ne2000_irq_w(int state); - DECLARE_READ8_MEMBER(ne2000_mem_read); - DECLARE_WRITE8_MEMBER(ne2000_mem_write); DECLARE_READ16_MEMBER(ne2000_port_r); DECLARE_WRITE16_MEMBER(ne2000_port_w); + protected: virtual void device_start() override; virtual void device_reset() override; + + virtual void device_add_mconfig(machine_config &config) override; + virtual ioport_constructor device_input_ports() const override; + private: + void ne2000_irq_w(int state); + DECLARE_READ8_MEMBER(ne2000_mem_read); + DECLARE_WRITE8_MEMBER(ne2000_mem_write); + required_device<dp8390d_device> m_dp8390; uint8_t m_irq; uint8_t m_board_ram[16*1024]; diff --git a/src/devices/bus/isa/num9rev.cpp b/src/devices/bus/isa/num9rev.cpp index 022cb911f5f..61176c4a7ec 100644 --- a/src/devices/bus/isa/num9rev.cpp +++ b/src/devices/bus/isa/num9rev.cpp @@ -47,7 +47,12 @@ UPD7220_DISPLAY_PIXELS_MEMBER( isa8_number_9_rev_device::hgdc_display_pixels ) } } -static MACHINE_CONFIG_START( num_9_rev ) + +//------------------------------------------------- +// device_add_mconfig - add device configuration +//------------------------------------------------- + +MACHINE_CONFIG_MEMBER( isa8_number_9_rev_device::device_add_mconfig ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_SIZE(512, 448) MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 448-1) @@ -61,16 +66,6 @@ static MACHINE_CONFIG_START( num_9_rev ) MCFG_VIDEO_SET_SCREEN("screen") MACHINE_CONFIG_END -//------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations -//------------------------------------------------- - -machine_config_constructor isa8_number_9_rev_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( num_9_rev ); -} - //************************************************************************** // LIVE DEVICE //************************************************************************** diff --git a/src/devices/bus/isa/num9rev.h b/src/devices/bus/isa/num9rev.h index 805ee13d449..0686c3e4cc4 100644 --- a/src/devices/bus/isa/num9rev.h +++ b/src/devices/bus/isa/num9rev.h @@ -16,44 +16,47 @@ // ======================> isa16_vga_device class isa8_number_9_rev_device : - public device_t, - public device_isa8_card_interface + public device_t, + public device_isa8_card_interface { public: - // construction/destruction - isa8_number_9_rev_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - - UPD7220_DISPLAY_PIXELS_MEMBER(hgdc_display_pixels); - DECLARE_READ8_MEMBER(pal8_r); - DECLARE_WRITE8_MEMBER(pal8_w); - DECLARE_READ8_MEMBER(pal12_r); - DECLARE_WRITE8_MEMBER(pal12_w); - DECLARE_READ8_MEMBER(overlay_r); - DECLARE_WRITE8_MEMBER(overlay_w); - DECLARE_READ8_MEMBER(bank_r); - DECLARE_WRITE8_MEMBER(bank_w); - DECLARE_READ8_MEMBER(ctrl_r); - DECLARE_WRITE8_MEMBER(ctrl_w); - DECLARE_READ8_MEMBER(read8); - DECLARE_WRITE8_MEMBER(write8); - - uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); + // construction/destruction + isa8_number_9_rev_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + + DECLARE_READ8_MEMBER(pal8_r); + DECLARE_WRITE8_MEMBER(pal8_w); + DECLARE_READ8_MEMBER(pal12_r); + DECLARE_WRITE8_MEMBER(pal12_w); + DECLARE_READ8_MEMBER(overlay_r); + DECLARE_WRITE8_MEMBER(overlay_w); + DECLARE_READ8_MEMBER(bank_r); + DECLARE_WRITE8_MEMBER(bank_w); + DECLARE_READ8_MEMBER(ctrl_r); + DECLARE_WRITE8_MEMBER(ctrl_w); + DECLARE_READ8_MEMBER(read8); + DECLARE_WRITE8_MEMBER(write8); + protected: - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + + // optional information overrides + virtual void device_add_mconfig(machine_config &config) override; + private: - required_device<upd7220_device> m_upd7220; - required_device<palette_device> m_palette; - std::vector<uint8_t> m_ram; - std::vector<uint8_t> m_overlay; - - uint8_t m_bank; - uint8_t m_mode; - bool m_1024; + UPD7220_DISPLAY_PIXELS_MEMBER(hgdc_display_pixels); + + uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); + + required_device<upd7220_device> m_upd7220; + required_device<palette_device> m_palette; + std::vector<uint8_t> m_ram; + std::vector<uint8_t> m_overlay; + + uint8_t m_bank; + uint8_t m_mode; + bool m_1024; }; // device type definition diff --git a/src/devices/bus/isa/omti8621.cpp b/src/devices/bus/isa/omti8621.cpp index d288882eb6e..ddffb43575e 100644 --- a/src/devices/bus/isa/omti8621.cpp +++ b/src/devices/bus/isa/omti8621.cpp @@ -212,18 +212,6 @@ static SLOT_INTERFACE_START( pc_hd_floppies ) SLOT_INTERFACE( "35dd", FLOPPY_35_DD ) SLOT_INTERFACE_END -MACHINE_CONFIG_START( omti_disk ) - MCFG_DEVICE_ADD(OMTI_DISK0_TAG, OMTI_DISK, 0) - MCFG_DEVICE_ADD(OMTI_DISK1_TAG, OMTI_DISK, 0) - - MCFG_PC_FDC_AT_ADD(OMTI_FDC_TAG) - MCFG_PC_FDC_INTRQ_CALLBACK(WRITELINE(omti8621_device, fdc_irq_w)) - MCFG_PC_FDC_DRQ_CALLBACK(WRITELINE(omti8621_device, fdc_drq_w)) - MCFG_FLOPPY_DRIVE_ADD(OMTI_FDC_TAG":0", pc_hd_floppies, "525hd", omti8621_device::floppy_formats) -// Apollo workstations never have more then 1 floppy drive -// MCFG_FLOPPY_DRIVE_ADD(OMTI_FDC_TAG":1", pc_hd_floppies, "525hd", omti8621_device::floppy_formats) -MACHINE_CONFIG_END - FLOPPY_FORMATS_MEMBER( omti8621_device::floppy_formats ) FLOPPY_APOLLO_FORMAT, FLOPPY_PC_FORMAT, @@ -264,10 +252,17 @@ static INPUT_PORTS_START( omti_port ) PORT_DIPSETTING( 0x01, "CA000h" ) INPUT_PORTS_END -machine_config_constructor omti8621_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( omti_disk ); -} +MACHINE_CONFIG_MEMBER( omti8621_device::device_add_mconfig ) + MCFG_DEVICE_ADD(OMTI_DISK0_TAG, OMTI_DISK, 0) + MCFG_DEVICE_ADD(OMTI_DISK1_TAG, OMTI_DISK, 0) + + MCFG_PC_FDC_AT_ADD(OMTI_FDC_TAG) + MCFG_PC_FDC_INTRQ_CALLBACK(WRITELINE(omti8621_device, fdc_irq_w)) + MCFG_PC_FDC_DRQ_CALLBACK(WRITELINE(omti8621_device, fdc_drq_w)) + MCFG_FLOPPY_DRIVE_ADD(OMTI_FDC_TAG":0", pc_hd_floppies, "525hd", omti8621_device::floppy_formats) +// Apollo workstations never have more then 1 floppy drive +// MCFG_FLOPPY_DRIVE_ADD(OMTI_FDC_TAG":1", pc_hd_floppies, "525hd", omti8621_device::floppy_formats) +MACHINE_CONFIG_END const tiny_rom_entry *omti8621_device::device_rom_region() const { diff --git a/src/devices/bus/isa/omti8621.h b/src/devices/bus/isa/omti8621.h index 66f5ad64b73..33411ef0da5 100644 --- a/src/devices/bus/isa/omti8621.h +++ b/src/devices/bus/isa/omti8621.h @@ -34,10 +34,6 @@ public: static void set_verbose(int on_off); - DECLARE_WRITE_LINE_MEMBER( fdc_irq_w ); - DECLARE_WRITE_LINE_MEMBER( fdc_drq_w ); - DECLARE_FLOPPY_FORMATS( floppy_formats ); - protected: static constexpr unsigned OMTI_MAX_LUN = 1; static constexpr unsigned CDB_SIZE = 10; @@ -54,7 +50,7 @@ protected: virtual void device_reset() override; virtual const tiny_rom_entry *device_rom_region() const override; virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; - virtual machine_config_constructor device_mconfig_additions() const override; + virtual void device_add_mconfig(machine_config &config) override; virtual ioport_constructor device_input_ports() const override; virtual uint8_t dack_r(int line) override; @@ -70,6 +66,10 @@ protected: omti_disk_image_device *our_disks[OMTI_MAX_LUN+1]; private: + DECLARE_WRITE_LINE_MEMBER( fdc_irq_w ); + DECLARE_WRITE_LINE_MEMBER( fdc_drq_w ); + DECLARE_FLOPPY_FORMATS( floppy_formats ); + uint16_t jumper; uint8_t omti_state; diff --git a/src/devices/bus/isa/p1_fdc.cpp b/src/devices/bus/isa/p1_fdc.cpp index 166c9f32dfc..53690881366 100644 --- a/src/devices/bus/isa/p1_fdc.cpp +++ b/src/devices/bus/isa/p1_fdc.cpp @@ -39,14 +39,6 @@ static SLOT_INTERFACE_START( poisk1_floppies ) SLOT_INTERFACE( "525qd", FLOPPY_525_QD ) SLOT_INTERFACE_END -static MACHINE_CONFIG_START( fdc_b504 ) - MCFG_FD1793_ADD("fdc", XTAL_16MHz / 16) - MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(p1_fdc_device, p1_fdc_irq_drq)) - MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(p1_fdc_device, p1_fdc_irq_drq)) - MCFG_FLOPPY_DRIVE_ADD("fdc:0", poisk1_floppies, "525qd", p1_fdc_device::floppy_formats) - MCFG_FLOPPY_DRIVE_ADD("fdc:1", poisk1_floppies, "525qd", p1_fdc_device::floppy_formats) -MACHINE_CONFIG_END - //------------------------------------------------- // ROM( p1_fdc ) //------------------------------------------------- @@ -66,14 +58,16 @@ ROM_END //------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations +// device_add_mconfig - add device configuration //------------------------------------------------- -machine_config_constructor p1_fdc_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME(fdc_b504); -} +MACHINE_CONFIG_MEMBER( p1_fdc_device::device_add_mconfig ) + MCFG_FD1793_ADD("fdc", XTAL_16MHz / 16) + MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(p1_fdc_device, p1_fdc_irq_drq)) + MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(p1_fdc_device, p1_fdc_irq_drq)) + MCFG_FLOPPY_DRIVE_ADD("fdc:0", poisk1_floppies, "525qd", p1_fdc_device::floppy_formats) + MCFG_FLOPPY_DRIVE_ADD("fdc:1", poisk1_floppies, "525qd", p1_fdc_device::floppy_formats) +MACHINE_CONFIG_END //------------------------------------------------- // rom_region - device-specific ROM region diff --git a/src/devices/bus/isa/p1_fdc.h b/src/devices/bus/isa/p1_fdc.h index 81d17bb4bf5..2670f47c250 100644 --- a/src/devices/bus/isa/p1_fdc.h +++ b/src/devices/bus/isa/p1_fdc.h @@ -27,21 +27,23 @@ public: // construction/destruction p1_fdc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - virtual const tiny_rom_entry *device_rom_region() const override; - - DECLARE_FLOPPY_FORMATS(floppy_formats); DECLARE_READ8_MEMBER(p1_fdc_r); DECLARE_WRITE8_MEMBER(p1_fdc_w); - DECLARE_WRITE_LINE_MEMBER(p1_fdc_irq_drq); protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; + // optional information overrides + virtual void device_add_mconfig(machine_config &config) override; + 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; public: diff --git a/src/devices/bus/isa/p1_hdc.cpp b/src/devices/bus/isa/p1_hdc.cpp index e638e044fc9..3656f1846d8 100644 --- a/src/devices/bus/isa/p1_hdc.cpp +++ b/src/devices/bus/isa/p1_hdc.cpp @@ -35,18 +35,6 @@ DEFINE_DEVICE_TYPE(P1_HDC, p1_hdc_device, "p1_hdc", "Poisk-1 MFM disk B942") -static MACHINE_CONFIG_START( hdc_b942 ) - MCFG_DEVICE_ADD(KM1809VG7_TAG, WD2010, 5000000) // XXX clock? - MCFG_WD2010_IN_DRDY_CB(VCC) - MCFG_WD2010_IN_INDEX_CB(VCC) - MCFG_WD2010_IN_WF_CB(VCC) - MCFG_WD2010_IN_TK000_CB(VCC) - MCFG_WD2010_IN_SC_CB(VCC) - - MCFG_HARDDISK_ADD("hard0") - MCFG_HARDDISK_ADD("hard1") -MACHINE_CONFIG_END - //------------------------------------------------- // ROM( p1_hdc ) @@ -67,14 +55,20 @@ ROM_END //------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations +// device_add_mconfig - add device configuration //------------------------------------------------- -machine_config_constructor p1_hdc_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME(hdc_b942); -} +MACHINE_CONFIG_MEMBER( p1_hdc_device::device_add_mconfig ) + MCFG_DEVICE_ADD(KM1809VG7_TAG, WD2010, 5000000) // XXX clock? + MCFG_WD2010_IN_DRDY_CB(VCC) + MCFG_WD2010_IN_INDEX_CB(VCC) + MCFG_WD2010_IN_WF_CB(VCC) + MCFG_WD2010_IN_TK000_CB(VCC) + MCFG_WD2010_IN_SC_CB(VCC) + + MCFG_HARDDISK_ADD("hard0") + MCFG_HARDDISK_ADD("hard1") +MACHINE_CONFIG_END //------------------------------------------------- diff --git a/src/devices/bus/isa/p1_hdc.h b/src/devices/bus/isa/p1_hdc.h index 071cbcded95..65fbb801886 100644 --- a/src/devices/bus/isa/p1_hdc.h +++ b/src/devices/bus/isa/p1_hdc.h @@ -27,15 +27,15 @@ public: // construction/destruction p1_hdc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - virtual const tiny_rom_entry *device_rom_region() const override; - protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; + // optional information overrides + virtual void device_add_mconfig(machine_config &config) override; + virtual const tiny_rom_entry *device_rom_region() const override; + private: required_device<wd2010_device> m_hdc; diff --git a/src/devices/bus/isa/p1_sound.cpp b/src/devices/bus/isa/p1_sound.cpp index e639be97ac2..629926f657a 100644 --- a/src/devices/bus/isa/p1_sound.cpp +++ b/src/devices/bus/isa/p1_sound.cpp @@ -26,10 +26,10 @@ DEFINE_DEVICE_TYPE(P1_SOUND, p1_sound_device, "p1_sound", "Poisk-1 sound card (B //------------------------------------------------- -// Machine config +// device_add_mconfig - add device configuration //------------------------------------------------- -static MACHINE_CONFIG_START( p1_sound ) +MACHINE_CONFIG_MEMBER( p1_sound_device::device_add_mconfig ) MCFG_DEVICE_ADD("midi", I8251, 0) MCFG_I8251_TXD_HANDLER(DEVWRITELINE("mdout", midi_port_device, write_txd)) MCFG_I8251_RXRDY_HANDLER(DEVWRITELINE(":isa", isa8_device, irq3_w)) @@ -73,17 +73,6 @@ static MACHINE_CONFIG_START( p1_sound ) MACHINE_CONFIG_END -//------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations -//------------------------------------------------- - -machine_config_constructor p1_sound_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME(p1_sound); -} - - //************************************************************************** // LIVE DEVICE //************************************************************************** diff --git a/src/devices/bus/isa/p1_sound.h b/src/devices/bus/isa/p1_sound.h index aee52304b99..e0d105300ba 100644 --- a/src/devices/bus/isa/p1_sound.h +++ b/src/devices/bus/isa/p1_sound.h @@ -33,9 +33,6 @@ public: // construction/destruction p1_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // Optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - DECLARE_READ8_MEMBER(d14_r); DECLARE_READ8_MEMBER(d16_r); DECLARE_READ8_MEMBER(d17_r); @@ -43,7 +40,6 @@ public: DECLARE_WRITE8_MEMBER(d16_w); DECLARE_WRITE8_MEMBER(d17_w); - DECLARE_WRITE_LINE_MEMBER(sampler_sync); DECLARE_READ8_MEMBER(adc_r); DECLARE_WRITE8_MEMBER(dac_w); @@ -52,7 +48,12 @@ protected: virtual void device_start() override; virtual void device_reset() override; + // Optional information overrides + virtual void device_add_mconfig(machine_config &config) override; + private: + DECLARE_WRITE_LINE_MEMBER(sampler_sync); + uint8_t m_dac_data[16]; int m_dac_ptr; diff --git a/src/devices/bus/isa/pds.cpp b/src/devices/bus/isa/pds.cpp index ec0b7f00c8c..c86ab0d7c48 100644 --- a/src/devices/bus/isa/pds.cpp +++ b/src/devices/bus/isa/pds.cpp @@ -56,11 +56,6 @@ void isa8_pds_device::device_stop() { } -static MACHINE_CONFIG_START( pds_config ) +MACHINE_CONFIG_MEMBER( isa8_pds_device::device_add_mconfig ) MCFG_DEVICE_ADD("pds_ppi", I8255, 0) MACHINE_CONFIG_END - -machine_config_constructor isa8_pds_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( pds_config ); -} diff --git a/src/devices/bus/isa/pds.h b/src/devices/bus/isa/pds.h index 7b92f10350b..5e8bf16bb88 100644 --- a/src/devices/bus/isa/pds.h +++ b/src/devices/bus/isa/pds.h @@ -22,14 +22,15 @@ public: DECLARE_READ8_MEMBER(ppi_r); DECLARE_WRITE8_MEMBER(ppi_w); - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; virtual void device_stop() override; + // optional information overrides + virtual void device_add_mconfig(machine_config &config) override; + required_device<i8255_device> m_ppi; }; diff --git a/src/devices/bus/isa/pgc.cpp b/src/devices/bus/isa/pgc.cpp index f4a776a16c0..c0126190ca7 100644 --- a/src/devices/bus/isa/pgc.cpp +++ b/src/devices/bus/isa/pgc.cpp @@ -138,7 +138,19 @@ static GFXDECODE_START( pgc ) GFXDECODE_REVERSEBITS("chargen", 0, pgc_charlayout, 0, 1) GFXDECODE_END -MACHINE_CONFIG_START( pcvideo_pgc ) + +//************************************************************************** +// GLOBAL VARIABLES +//************************************************************************** + +DEFINE_DEVICE_TYPE(ISA8_PGC, isa8_pgc_device, "isa_ibm_pgc", "IBM Professional Graphics Controller") + + +//------------------------------------------------- +// device_add_mconfig - add device configuration +//------------------------------------------------- + +MACHINE_CONFIG_MEMBER( isa8_pgc_device::device_add_mconfig ) MCFG_CPU_ADD("maincpu", I8088, XTAL_24MHz/3) MCFG_CPU_PROGRAM_MAP(pgc_map) MCFG_CPU_IO_MAP(pgc_io) @@ -162,23 +174,6 @@ MACHINE_CONFIG_START( pcvideo_pgc ) MCFG_PALETTE_ADD( "palette", 256 ) MACHINE_CONFIG_END -//************************************************************************** -// GLOBAL VARIABLES -//************************************************************************** - -DEFINE_DEVICE_TYPE(ISA8_PGC, isa8_pgc_device, "isa_ibm_pgc", "IBM Professional Graphics Controller") - - -//------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations -//------------------------------------------------- - -machine_config_constructor isa8_pgc_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( pcvideo_pgc ); -} - //------------------------------------------------- // rom_region - device-specific ROM region //------------------------------------------------- diff --git a/src/devices/bus/isa/pgc.h b/src/devices/bus/isa/pgc.h index 546c1d24f5a..fc82c094cf6 100644 --- a/src/devices/bus/isa/pgc.h +++ b/src/devices/bus/isa/pgc.h @@ -24,17 +24,6 @@ public: // construction/destruction isa8_pgc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - virtual const tiny_rom_entry *device_rom_region() const override; - virtual ioport_constructor device_input_ports() const override; - - uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - - TIMER_DEVICE_CALLBACK_MEMBER( scanline_callback ); - INTERRUPT_GEN_MEMBER(vblank_irq); - IRQ_CALLBACK_MEMBER(irq_callback); - DECLARE_WRITE8_MEMBER( stateparam_w ); DECLARE_READ8_MEMBER( stateparam_r ); DECLARE_WRITE8_MEMBER( lut_w ); @@ -49,7 +38,19 @@ protected: virtual void device_start() override; virtual void device_reset() override; + // optional information overrides + virtual void device_add_mconfig(machine_config &config) override; + virtual const tiny_rom_entry *device_rom_region() const override; + virtual ioport_constructor device_input_ports() const override; + private: + uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + + TIMER_DEVICE_CALLBACK_MEMBER( scanline_callback ); + + INTERRUPT_GEN_MEMBER(vblank_irq); + IRQ_CALLBACK_MEMBER(irq_callback); + required_device<i8088_cpu_device> m_cpu; required_device<screen_device> m_screen; required_device<palette_device> m_palette; diff --git a/src/devices/bus/isa/sb16.cpp b/src/devices/bus/isa/sb16.cpp index 2a6270469a7..49853e6c5ba 100644 --- a/src/devices/bus/isa/sb16.cpp +++ b/src/devices/bus/isa/sb16.cpp @@ -405,7 +405,12 @@ static ADDRESS_MAP_START(sb16_io, AS_IO, 8, sb16_lle_device) AM_RANGE(MCS51_PORT_P2, MCS51_PORT_P2) AM_READWRITE(p2_r, p2_w) ADDRESS_MAP_END -static MACHINE_CONFIG_START( sb16 ) +const tiny_rom_entry *sb16_lle_device::device_rom_region() const +{ + return ROM_NAME( sb16 ); +} + +MACHINE_CONFIG_MEMBER( sb16_lle_device::device_add_mconfig ) MCFG_CPU_ADD("sb16_cpu", I80C52, XTAL_24MHz) MCFG_CPU_IO_MAP(sb16_io) @@ -422,16 +427,6 @@ static MACHINE_CONFIG_START( sb16 ) MCFG_PC_JOY_ADD("pc_joy") MACHINE_CONFIG_END -const tiny_rom_entry *sb16_lle_device::device_rom_region() const -{ - return ROM_NAME( sb16 ); -} - -machine_config_constructor sb16_lle_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( sb16 ); -} - READ8_MEMBER( sb16_lle_device::host_data_r ) { m_data_out = false; diff --git a/src/devices/bus/isa/sb16.h b/src/devices/bus/isa/sb16.h index 8f02531ae55..3ea6d54e45d 100644 --- a/src/devices/bus/isa/sb16.h +++ b/src/devices/bus/isa/sb16.h @@ -22,10 +22,6 @@ public: // construction/destruction sb16_lle_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // optional information overrides - virtual const tiny_rom_entry *device_rom_region() const override; - virtual machine_config_constructor device_mconfig_additions() const override; - READ8_MEMBER( mpu401_r ); WRITE8_MEMBER( mpu401_w ); @@ -78,6 +74,11 @@ protected: virtual void device_reset() override; virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + + // optional information overrides + virtual const tiny_rom_entry *device_rom_region() const override; + virtual void device_add_mconfig(machine_config &config) override; + uint8_t dack_r(int line) override; void dack_w(int line, uint8_t data) override; uint16_t dack16_r(int line) override; diff --git a/src/devices/bus/isa/sblaster.cpp b/src/devices/bus/isa/sblaster.cpp index 24a54405685..69e10819602 100644 --- a/src/devices/bus/isa/sblaster.cpp +++ b/src/devices/bus/isa/sblaster.cpp @@ -78,72 +78,6 @@ static const int m_cmd_fifo_length[256] = static const int protection_magic[4] = { 0x96, 0xa5, 0x69, 0x5a }; -static MACHINE_CONFIG_START( sblaster1_0_config ) - MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_SOUND_ADD("ym3812", YM3812, ym3812_StdClock) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 3.00) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 3.00) - MCFG_SAA1099_ADD("saa1099.1", 7159090) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.50) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.50) - MCFG_SAA1099_ADD("saa1099.2", 7159090) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.50) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.50) - - MCFG_SOUND_ADD("ldac", DAC_16BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.5) // unknown DAC - MCFG_SOUND_ADD("rdac", DAC_16BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.5) // unknown DAC - MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0) - MCFG_SOUND_ROUTE_EX(0, "ldac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "ldac", -1.0, DAC_VREF_NEG_INPUT) - MCFG_SOUND_ROUTE_EX(0, "rdac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "rdac", -1.0, DAC_VREF_NEG_INPUT) - - MCFG_PC_JOY_ADD("pc_joy") - MCFG_MIDI_PORT_ADD("mdin", midiin_slot, "midiin") - MCFG_MIDI_RX_HANDLER(DEVWRITELINE(DEVICE_SELF, sb_device, midi_rx_w)) - - MCFG_MIDI_PORT_ADD("mdout", midiout_slot, "midiout") -MACHINE_CONFIG_END - -static MACHINE_CONFIG_START( sblaster1_5_config ) - MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_SOUND_ADD("ym3812", YM3812, ym3812_StdClock) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.00) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.00) - /* no CM/S support (empty sockets) */ - - MCFG_SOUND_ADD("ldac", DAC_16BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.5) // unknown DAC - MCFG_SOUND_ADD("rdac", DAC_16BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.5) // unknown DAC - MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0) - MCFG_SOUND_ROUTE_EX(0, "ldac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "ldac", -1.0, DAC_VREF_NEG_INPUT) - MCFG_SOUND_ROUTE_EX(0, "rdac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "rdac", -1.0, DAC_VREF_NEG_INPUT) - - MCFG_PC_JOY_ADD("pc_joy") - MCFG_MIDI_PORT_ADD("mdin", midiin_slot, "midiin") - MCFG_MIDI_RX_HANDLER(DEVWRITELINE(DEVICE_SELF, sb_device, midi_rx_w)) - - MCFG_MIDI_PORT_ADD("mdout", midiout_slot, "midiout") -MACHINE_CONFIG_END - -static MACHINE_CONFIG_START( sblaster_16_config ) - MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_SOUND_ADD("ymf262", YMF262, ymf262_StdClock) - MCFG_SOUND_ROUTE(0, "lspeaker", 1.00) - MCFG_SOUND_ROUTE(1, "rspeaker", 1.00) - MCFG_SOUND_ROUTE(2, "lspeaker", 1.00) - MCFG_SOUND_ROUTE(3, "rspeaker", 1.00) - - MCFG_SOUND_ADD("ldac", DAC_16BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.5) // unknown DAC - MCFG_SOUND_ADD("rdac", DAC_16BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.5) // unknown DAC - MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0) - MCFG_SOUND_ROUTE_EX(0, "ldac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "ldac", -1.0, DAC_VREF_NEG_INPUT) - MCFG_SOUND_ROUTE_EX(0, "rdac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "rdac", -1.0, DAC_VREF_NEG_INPUT) - - MCFG_PC_JOY_ADD("pc_joy") - MCFG_MIDI_PORT_ADD("mdin", midiin_slot, "midiin") - MCFG_MIDI_RX_HANDLER(DEVWRITELINE(DEVICE_SELF, sb_device, midi_rx_w)) - - MCFG_MIDI_PORT_ADD("mdout", midiout_slot, "midiout") -MACHINE_CONFIG_END - READ8_MEMBER( sb8_device::ym3812_16_r ) { uint8_t retVal = 0xff; @@ -1203,24 +1137,74 @@ DEFINE_DEVICE_TYPE(ISA8_SOUND_BLASTER_1_5, isa8_sblaster1_5_device, "isa_sblaste DEFINE_DEVICE_TYPE(ISA16_SOUND_BLASTER_16, isa16_sblaster16_device, "isa_sblaster_16", "Sound Blaster 16") //------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations +// device_add_mconfig - add device configuration //------------------------------------------------- -machine_config_constructor isa8_sblaster1_0_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( sblaster1_0_config ); -} +MACHINE_CONFIG_MEMBER( isa8_sblaster1_0_device::device_add_mconfig ) + MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") + MCFG_SOUND_ADD("ym3812", YM3812, ym3812_StdClock) + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 3.00) + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 3.00) + MCFG_SAA1099_ADD("saa1099.1", 7159090) + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.50) + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.50) + MCFG_SAA1099_ADD("saa1099.2", 7159090) + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.50) + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.50) -machine_config_constructor isa8_sblaster1_5_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( sblaster1_5_config ); -} + MCFG_SOUND_ADD("ldac", DAC_16BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.5) // unknown DAC + MCFG_SOUND_ADD("rdac", DAC_16BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.5) // unknown DAC + MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0) + MCFG_SOUND_ROUTE_EX(0, "ldac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "ldac", -1.0, DAC_VREF_NEG_INPUT) + MCFG_SOUND_ROUTE_EX(0, "rdac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "rdac", -1.0, DAC_VREF_NEG_INPUT) -machine_config_constructor isa16_sblaster16_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( sblaster_16_config ); -} + MCFG_PC_JOY_ADD("pc_joy") + MCFG_MIDI_PORT_ADD("mdin", midiin_slot, "midiin") + MCFG_MIDI_RX_HANDLER(DEVWRITELINE(DEVICE_SELF, sb_device, midi_rx_w)) + + MCFG_MIDI_PORT_ADD("mdout", midiout_slot, "midiout") +MACHINE_CONFIG_END + +MACHINE_CONFIG_MEMBER( isa8_sblaster1_5_device::device_add_mconfig ) + MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") + MCFG_SOUND_ADD("ym3812", YM3812, ym3812_StdClock) + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.00) + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.00) + /* no CM/S support (empty sockets) */ + + MCFG_SOUND_ADD("ldac", DAC_16BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.5) // unknown DAC + MCFG_SOUND_ADD("rdac", DAC_16BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.5) // unknown DAC + MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0) + MCFG_SOUND_ROUTE_EX(0, "ldac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "ldac", -1.0, DAC_VREF_NEG_INPUT) + MCFG_SOUND_ROUTE_EX(0, "rdac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "rdac", -1.0, DAC_VREF_NEG_INPUT) + + MCFG_PC_JOY_ADD("pc_joy") + MCFG_MIDI_PORT_ADD("mdin", midiin_slot, "midiin") + MCFG_MIDI_RX_HANDLER(DEVWRITELINE(DEVICE_SELF, sb_device, midi_rx_w)) + + MCFG_MIDI_PORT_ADD("mdout", midiout_slot, "midiout") +MACHINE_CONFIG_END + +MACHINE_CONFIG_MEMBER( isa16_sblaster16_device::device_add_mconfig ) + MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") + MCFG_SOUND_ADD("ymf262", YMF262, ymf262_StdClock) + MCFG_SOUND_ROUTE(0, "lspeaker", 1.00) + MCFG_SOUND_ROUTE(1, "rspeaker", 1.00) + MCFG_SOUND_ROUTE(2, "lspeaker", 1.00) + MCFG_SOUND_ROUTE(3, "rspeaker", 1.00) + + MCFG_SOUND_ADD("ldac", DAC_16BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.5) // unknown DAC + MCFG_SOUND_ADD("rdac", DAC_16BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.5) // unknown DAC + MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0) + MCFG_SOUND_ROUTE_EX(0, "ldac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "ldac", -1.0, DAC_VREF_NEG_INPUT) + MCFG_SOUND_ROUTE_EX(0, "rdac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "rdac", -1.0, DAC_VREF_NEG_INPUT) + + MCFG_PC_JOY_ADD("pc_joy") + MCFG_MIDI_PORT_ADD("mdin", midiin_slot, "midiin") + MCFG_MIDI_RX_HANDLER(DEVWRITELINE(DEVICE_SELF, sb_device, midi_rx_w)) + + MCFG_MIDI_PORT_ADD("mdout", midiout_slot, "midiout") +MACHINE_CONFIG_END //************************************************************************** // LIVE DEVICE diff --git a/src/devices/bus/isa/sblaster.h b/src/devices/bus/isa/sblaster.h index 8411a35acac..c6c3a6f6f17 100644 --- a/src/devices/bus/isa/sblaster.h +++ b/src/devices/bus/isa/sblaster.h @@ -169,15 +169,17 @@ public: // construction/destruction isa8_sblaster1_0_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - DECLARE_READ8_MEMBER(saa1099_16_r); DECLARE_WRITE8_MEMBER(saa1099_1_16_w); DECLARE_WRITE8_MEMBER(saa1099_2_16_w); + protected: // device-level overrides virtual void device_start() override; + + // optional information overrides + virtual void device_add_mconfig(machine_config &config) override; + private: // internal state required_device<saa1099_device> m_saa1099_1; @@ -190,11 +192,12 @@ public: // construction/destruction isa8_sblaster1_5_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; protected: // device-level overrides virtual void device_start() override; + + // optional information overrides + virtual void device_add_mconfig(machine_config &config) override; }; class sb16_device : public sb_device, @@ -230,11 +233,12 @@ public: // construction/destruction isa16_sblaster16_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; protected: // device-level overrides virtual void device_start() override; + + // optional information overrides + virtual void device_add_mconfig(machine_config &config) override; }; // device type definition diff --git a/src/devices/bus/isa/sc499.cpp b/src/devices/bus/isa/sc499.cpp index 7fd3abb0db9..c7ccabf1802 100644 --- a/src/devices/bus/isa/sc499.cpp +++ b/src/devices/bus/isa/sc499.cpp @@ -177,14 +177,10 @@ static INPUT_PORTS_START( sc499_port ) INPUT_PORTS_END -MACHINE_CONFIG_START( sc499_ctape ) +MACHINE_CONFIG_MEMBER( sc499_device::device_add_mconfig ) MCFG_DEVICE_ADD(SC499_CTAPE_TAG, SC499_CTAPE, 0) MACHINE_CONFIG_END -machine_config_constructor sc499_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( sc499_ctape ); -} //************************************************************************** // DEVICE DEFINITIONS diff --git a/src/devices/bus/isa/sc499.h b/src/devices/bus/isa/sc499.h index 4f3bd24ab64..0daf242eb83 100644 --- a/src/devices/bus/isa/sc499.h +++ b/src/devices/bus/isa/sc499.h @@ -74,7 +74,7 @@ private: virtual void device_start() override; virtual void device_reset() override; virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; - virtual machine_config_constructor device_mconfig_additions() const override; + virtual void device_add_mconfig(machine_config &config) override; virtual ioport_constructor device_input_ports() const override; // ISA overrides diff --git a/src/devices/bus/isa/side116.cpp b/src/devices/bus/isa/side116.cpp index a83c7200c28..778adc66e8f 100644 --- a/src/devices/bus/isa/side116.cpp +++ b/src/devices/bus/isa/side116.cpp @@ -19,19 +19,14 @@ DEFINE_DEVICE_TYPE(ISA8_SIDE116, side116_device, "side116", "Acculogic sIDE-1/16 IDE Disk Controller") //------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations +// device_add_mconfig - add device configuration //------------------------------------------------- -static MACHINE_CONFIG_START( side116 ) +MACHINE_CONFIG_MEMBER( side116_device::device_add_mconfig ) MCFG_ATA_INTERFACE_ADD("ata", ata_devices, "hdd", nullptr, false) MCFG_ATA_INTERFACE_IRQ_HANDLER(WRITELINE(side116_device, ide_interrupt)) MACHINE_CONFIG_END -machine_config_constructor side116_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( side116 ); -} //------------------------------------------------- // input_ports - device-specific input ports diff --git a/src/devices/bus/isa/side116.h b/src/devices/bus/isa/side116.h index 00095bf6279..ac49b3efead 100644 --- a/src/devices/bus/isa/side116.h +++ b/src/devices/bus/isa/side116.h @@ -29,21 +29,22 @@ public: // construction/destruction side116_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - virtual ioport_constructor device_input_ports() const override; - virtual const tiny_rom_entry *device_rom_region() const override; - DECLARE_READ8_MEMBER( read ); DECLARE_WRITE8_MEMBER( write ); - DECLARE_WRITE_LINE_MEMBER( ide_interrupt ); protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; + // optional information overrides + virtual void device_add_mconfig(machine_config &config) override; + virtual ioport_constructor device_input_ports() const override; + virtual const tiny_rom_entry *device_rom_region() const override; + private: + DECLARE_WRITE_LINE_MEMBER( ide_interrupt ); + required_device<ata_interface_device> m_ata; required_ioport m_config; uint8_t m_latch; diff --git a/src/devices/bus/isa/ssi2001.cpp b/src/devices/bus/isa/ssi2001.cpp index 5009705ea6e..b6983656f9a 100644 --- a/src/devices/bus/isa/ssi2001.cpp +++ b/src/devices/bus/isa/ssi2001.cpp @@ -10,18 +10,13 @@ DEFINE_DEVICE_TYPE(ISA8_SSI2001, ssi2001_device, "ssi2001", "Innovation SSI-2001 Audio Adapter") -static MACHINE_CONFIG_START( ssi2001 ) +MACHINE_CONFIG_MEMBER( ssi2001_device::device_add_mconfig ) MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_ADD("sid6581", MOS6581, XTAL_14_31818MHz/16) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) MCFG_PC_JOY_ADD("pc_joy") MACHINE_CONFIG_END -machine_config_constructor ssi2001_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( ssi2001 ); -} - ssi2001_device::ssi2001_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : device_t(mconfig, ISA8_SSI2001, tag, owner, clock), device_isa8_card_interface(mconfig, *this), diff --git a/src/devices/bus/isa/ssi2001.h b/src/devices/bus/isa/ssi2001.h index 3facf845c03..85efa17c5ac 100644 --- a/src/devices/bus/isa/ssi2001.h +++ b/src/devices/bus/isa/ssi2001.h @@ -22,14 +22,14 @@ public: // construction/destruction ssi2001_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; + // optional information overrides + virtual void device_add_mconfig(machine_config &config) override; + required_device<pc_joy_device> m_joy; required_device<mos6581_device> m_sid; }; diff --git a/src/devices/bus/isa/stereo_fx.cpp b/src/devices/bus/isa/stereo_fx.cpp index 4a485a4fba4..da29bbe2eb0 100644 --- a/src/devices/bus/isa/stereo_fx.cpp +++ b/src/devices/bus/isa/stereo_fx.cpp @@ -109,7 +109,12 @@ static ADDRESS_MAP_START(stereo_fx_rom, AS_PROGRAM, 8, stereo_fx_device) AM_RANGE(0x0000, 0x7fff) AM_ROM ADDRESS_MAP_END -static MACHINE_CONFIG_START( stereo_fx ) +const tiny_rom_entry *stereo_fx_device::device_rom_region() const +{ + return ROM_NAME( stereo_fx ); +} + +MACHINE_CONFIG_MEMBER( stereo_fx_device::device_add_mconfig ) MCFG_CPU_ADD("stereo_fx_cpu", I80C31, XTAL_30MHz) MCFG_CPU_IO_MAP(stereo_fx_io) MCFG_CPU_PROGRAM_MAP(stereo_fx_rom) @@ -129,16 +134,6 @@ static MACHINE_CONFIG_START( stereo_fx ) MCFG_PC_JOY_ADD("pc_joy") MACHINE_CONFIG_END -const tiny_rom_entry *stereo_fx_device::device_rom_region() const -{ - return ROM_NAME( stereo_fx ); -} - -machine_config_constructor stereo_fx_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( stereo_fx ); -} - READ8_MEMBER( stereo_fx_device::dsp_data_r ) { m_data_out = false; diff --git a/src/devices/bus/isa/stereo_fx.h b/src/devices/bus/isa/stereo_fx.h index 738841e9178..a3552dc5780 100644 --- a/src/devices/bus/isa/stereo_fx.h +++ b/src/devices/bus/isa/stereo_fx.h @@ -23,10 +23,6 @@ public: // construction/destruction stereo_fx_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // optional information overrides - virtual const tiny_rom_entry *device_rom_region() const override; - virtual machine_config_constructor device_mconfig_additions() const override; - // mcu ports DECLARE_READ8_MEMBER( dev_dsp_data_r ); DECLARE_WRITE8_MEMBER( dev_dsp_data_w ); @@ -53,6 +49,11 @@ protected: virtual void device_reset() override; virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + + // optional information overrides + virtual const tiny_rom_entry *device_rom_region() const override; + virtual void device_add_mconfig(machine_config &config) override; + uint8_t dack_r(int line) override; void dack_w(int line, uint8_t data) override; diff --git a/src/devices/bus/isa/svga_cirrus.cpp b/src/devices/bus/isa/svga_cirrus.cpp index 24eaa48d084..f1cf4c936b1 100644 --- a/src/devices/bus/isa/svga_cirrus.cpp +++ b/src/devices/bus/isa/svga_cirrus.cpp @@ -25,7 +25,12 @@ ROM_END DEFINE_DEVICE_TYPE(ISA16_SVGA_CIRRUS, isa16_svga_cirrus_device, "dm_clgd5430", "Diamond Speedstar Pro SE ISA Graphics Card (BIOS v1.00)") DEFINE_DEVICE_TYPE(ISA16_SVGA_CIRRUS_GD542X, isa16_svga_cirrus_gd542x_device, "clgd542x", "Generic Cirrus Logic CD542 Graphics Card (BIOS v1.20)") -static MACHINE_CONFIG_START( vga_cirrus ) + +//------------------------------------------------- +// device_add_mconfig - add device configuration +//------------------------------------------------- + +MACHINE_CONFIG_MEMBER( isa16_svga_cirrus_device::device_add_mconfig ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(XTAL_25_1748MHz,900,0,640,526,0,480) MCFG_SCREEN_UPDATE_DEVICE("vga", cirrus_gd5430_device, screen_update) @@ -36,16 +41,6 @@ static MACHINE_CONFIG_START( vga_cirrus ) MACHINE_CONFIG_END //------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations -//------------------------------------------------- - -machine_config_constructor isa16_svga_cirrus_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( vga_cirrus ); -} - -//------------------------------------------------- // rom_region - device-specific ROM region //------------------------------------------------- @@ -112,7 +107,11 @@ ROM_END // GLOBAL VARIABLES //************************************************************************** -static MACHINE_CONFIG_START( vga_cirrus_gd542x ) +//------------------------------------------------- +// device_add_mconfig - add device configuration +//------------------------------------------------- + +MACHINE_CONFIG_MEMBER( isa16_svga_cirrus_gd542x_device::device_add_mconfig ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(XTAL_25_1748MHz,900,0,640,526,0,480) MCFG_SCREEN_UPDATE_DEVICE("vga", cirrus_gd5428_device, screen_update) @@ -123,16 +122,6 @@ static MACHINE_CONFIG_START( vga_cirrus_gd542x ) MACHINE_CONFIG_END //------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations -//------------------------------------------------- - -machine_config_constructor isa16_svga_cirrus_gd542x_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( vga_cirrus_gd542x ); -} - -//------------------------------------------------- // rom_region - device-specific ROM region //------------------------------------------------- diff --git a/src/devices/bus/isa/svga_cirrus.h b/src/devices/bus/isa/svga_cirrus.h index 3d5f3f5678d..46b0cfcfc04 100644 --- a/src/devices/bus/isa/svga_cirrus.h +++ b/src/devices/bus/isa/svga_cirrus.h @@ -20,15 +20,17 @@ public: // construction/destruction isa16_svga_cirrus_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - virtual const tiny_rom_entry *device_rom_region() const override; - DECLARE_READ8_MEMBER(input_port_0_r); + protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; + + // optional information overrides + virtual void device_add_mconfig(machine_config &config) override; + virtual const tiny_rom_entry *device_rom_region() const override; + private: cirrus_gd5430_device *m_vga; }; @@ -41,15 +43,17 @@ public: // construction/destruction isa16_svga_cirrus_gd542x_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - virtual const tiny_rom_entry *device_rom_region() const override; - DECLARE_READ8_MEMBER(input_port_0_r); + protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; + + // optional information overrides + virtual void device_add_mconfig(machine_config &config) override; + virtual const tiny_rom_entry *device_rom_region() const override; + private: cirrus_gd5428_device *m_vga; }; diff --git a/src/devices/bus/isa/svga_s3.cpp b/src/devices/bus/isa/svga_s3.cpp index aad3f60d662..6bd0f7815de 100644 --- a/src/devices/bus/isa/svga_s3.cpp +++ b/src/devices/bus/isa/svga_s3.cpp @@ -36,7 +36,11 @@ ROM_END DEFINE_DEVICE_TYPE(ISA16_SVGA_S3, isa16_svga_s3_device, "s3_764", "Number Nine 9FX Vision 330 (S3 764)") -static MACHINE_CONFIG_START( vga_s3 ) +//------------------------------------------------- +// device_add_mconfig - add device configuration +//------------------------------------------------- + +MACHINE_CONFIG_MEMBER( isa16_svga_s3_device::device_add_mconfig ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(XTAL_25_1748MHz,900,0,640,526,0,480) MCFG_SCREEN_UPDATE_DEVICE("vga", s3_vga_device, screen_update) @@ -47,16 +51,6 @@ static MACHINE_CONFIG_START( vga_s3 ) MACHINE_CONFIG_END //------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations -//------------------------------------------------- - -machine_config_constructor isa16_svga_s3_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( vga_s3 ); -} - -//------------------------------------------------- // rom_region - device-specific ROM region //------------------------------------------------- @@ -149,7 +143,11 @@ ROM_END DEFINE_DEVICE_TYPE(ISA16_S3VIRGE, isa16_s3virge_device, "s3virge", "S3 ViRGE Graphics Card") -static MACHINE_CONFIG_START( vga_s3virge ) +//------------------------------------------------- +// device_add_mconfig - add device configuration +//------------------------------------------------- + +MACHINE_CONFIG_MEMBER( isa16_s3virge_device::device_add_mconfig ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(XTAL_25_1748MHz,900,0,640,526,0,480) MCFG_SCREEN_UPDATE_DEVICE("vga", s3virge_vga_device, screen_update) @@ -160,16 +158,6 @@ static MACHINE_CONFIG_START( vga_s3virge ) MACHINE_CONFIG_END //------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations -//------------------------------------------------- - -machine_config_constructor isa16_s3virge_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( vga_s3virge ); -} - -//------------------------------------------------- // rom_region - device-specific ROM region //------------------------------------------------- @@ -225,16 +213,6 @@ void isa16_s3virge_device::device_reset() * S3 ViRGE/DX */ -static MACHINE_CONFIG_START( vga_s3virgedx ) - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(XTAL_25_1748MHz,900,0,640,526,0,480) - MCFG_SCREEN_UPDATE_DEVICE("vga", s3virgedx_vga_device, screen_update) - - MCFG_PALETTE_ADD("palette", 0x100) - - MCFG_DEVICE_ADD("vga", S3VIRGEDX, 0) -MACHINE_CONFIG_END - ROM_START( s3virgedx ) ROM_REGION(0x8000,"s3virgedx", 0) ROM_LOAD("s3virgedx.bin", 0x00000, 0x8000, CRC(0da83bd3) SHA1(228a2d644e1732cb5a2eb1291608c7050cf39229) ) @@ -248,14 +226,18 @@ DEFINE_DEVICE_TYPE(ISA16_S3VIRGEDX, isa16_s3virgedx_device, "s3virgedx", "S3 ViR //------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations +// device_add_mconfig - add device configuration //------------------------------------------------- -machine_config_constructor isa16_s3virgedx_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( vga_s3virgedx ); -} +MACHINE_CONFIG_MEMBER( isa16_s3virgedx_device::device_add_mconfig ) + MCFG_SCREEN_ADD("screen", RASTER) + MCFG_SCREEN_RAW_PARAMS(XTAL_25_1748MHz,900,0,640,526,0,480) + MCFG_SCREEN_UPDATE_DEVICE("vga", s3virgedx_vga_device, screen_update) + + MCFG_PALETTE_ADD("palette", 0x100) + + MCFG_DEVICE_ADD("vga", S3VIRGEDX, 0) +MACHINE_CONFIG_END //------------------------------------------------- // rom_region - device-specific ROM region @@ -314,16 +296,6 @@ void isa16_s3virgedx_device::device_reset() * Diamond Stealth 3D 2000 Pro */ -static MACHINE_CONFIG_START( vga_stealth3d2kpro ) - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(XTAL_25_1748MHz,900,0,640,526,0,480) - MCFG_SCREEN_UPDATE_DEVICE("vga", s3virgedx_rev1_vga_device, screen_update) - - MCFG_PALETTE_ADD("palette", 0x100) - - MCFG_DEVICE_ADD("vga", S3VIRGEDX1, 0) -MACHINE_CONFIG_END - ROM_START( stealth3d2kpro ) ROM_REGION(0x8000,"stealth3d", 0) ROM_LOAD("virgedxdiamond.bin", 0x00000, 0x8000, CRC(58b0dcda) SHA1(b13ae6b04db6fc05a76d924ddf2efe150b823029) ) @@ -337,14 +309,18 @@ DEFINE_DEVICE_TYPE(ISA16_DMS3D2KPRO, isa16_stealth3d2kpro_device, "dms3d2kp", "D //------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations +// device_add_mconfig - add device configuration //------------------------------------------------- -machine_config_constructor isa16_stealth3d2kpro_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( vga_stealth3d2kpro ); -} +MACHINE_CONFIG_MEMBER( isa16_stealth3d2kpro_device::device_add_mconfig ) + MCFG_SCREEN_ADD("screen", RASTER) + MCFG_SCREEN_RAW_PARAMS(XTAL_25_1748MHz,900,0,640,526,0,480) + MCFG_SCREEN_UPDATE_DEVICE("vga", s3virgedx_rev1_vga_device, screen_update) + + MCFG_PALETTE_ADD("palette", 0x100) + + MCFG_DEVICE_ADD("vga", S3VIRGEDX1, 0) +MACHINE_CONFIG_END //------------------------------------------------- // rom_region - device-specific ROM region diff --git a/src/devices/bus/isa/svga_s3.h b/src/devices/bus/isa/svga_s3.h index fbfba9bd35b..f60141518de 100644 --- a/src/devices/bus/isa/svga_s3.h +++ b/src/devices/bus/isa/svga_s3.h @@ -23,15 +23,17 @@ public: // construction/destruction isa16_svga_s3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - virtual const tiny_rom_entry *device_rom_region() const override; - DECLARE_READ8_MEMBER(input_port_0_r); + protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; + + // optional information overrides + virtual void device_add_mconfig(machine_config &config) override; + virtual const tiny_rom_entry *device_rom_region() const override; + private: s3_vga_device *m_vga; ibm8514a_device *m_8514; @@ -45,15 +47,17 @@ public: // construction/destruction isa16_s3virge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - virtual const tiny_rom_entry *device_rom_region() const override; - DECLARE_READ8_MEMBER(input_port_0_r); + protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; + + // optional information overrides + virtual void device_add_mconfig(machine_config &config) override; + virtual const tiny_rom_entry *device_rom_region() const override; + private: s3virge_vga_device *m_vga; }; @@ -66,15 +70,17 @@ public: // construction/destruction isa16_s3virgedx_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - virtual const tiny_rom_entry *device_rom_region() const override; - DECLARE_READ8_MEMBER(input_port_0_r); + protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; + + // optional information overrides + virtual void device_add_mconfig(machine_config &config) override; + virtual const tiny_rom_entry *device_rom_region() const override; + private: s3virgedx_vga_device *m_vga; }; @@ -87,15 +93,17 @@ public: // construction/destruction isa16_stealth3d2kpro_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - virtual const tiny_rom_entry *device_rom_region() const override; - DECLARE_READ8_MEMBER(input_port_0_r); + protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; + + // optional information overrides + virtual void device_add_mconfig(machine_config &config) override; + virtual const tiny_rom_entry *device_rom_region() const override; + private: s3virgedx_vga_device *m_vga; }; diff --git a/src/devices/bus/isa/svga_trident.cpp b/src/devices/bus/isa/svga_trident.cpp index 6b058f6cfe9..0cf75c3f5a9 100644 --- a/src/devices/bus/isa/svga_trident.cpp +++ b/src/devices/bus/isa/svga_trident.cpp @@ -26,7 +26,11 @@ ROM_END DEFINE_DEVICE_TYPE(ISA16_SVGA_TGUI9680, isa16_svga_tgui9680_device, "igui9680", "Trident TGUI9680 Graphics Card (BIOS X5.5 (02) 02/13/96)") -static MACHINE_CONFIG_START( vga_trident ) +//------------------------------------------------- +// device_add_mconfig - add device configuration +//------------------------------------------------- + +MACHINE_CONFIG_MEMBER( isa16_svga_tgui9680_device::device_add_mconfig ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(XTAL_25_1748MHz,900,0,640,526,0,480) MCFG_SCREEN_UPDATE_DEVICE("vga", trident_vga_device, screen_update) @@ -37,16 +41,6 @@ static MACHINE_CONFIG_START( vga_trident ) MACHINE_CONFIG_END //------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations -//------------------------------------------------- - -machine_config_constructor isa16_svga_tgui9680_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( vga_trident ); -} - -//------------------------------------------------- // rom_region - device-specific ROM region //------------------------------------------------- diff --git a/src/devices/bus/isa/svga_trident.h b/src/devices/bus/isa/svga_trident.h index 7cfac58b4f6..d8be1458591 100644 --- a/src/devices/bus/isa/svga_trident.h +++ b/src/devices/bus/isa/svga_trident.h @@ -27,15 +27,17 @@ public: // construction/destruction isa16_svga_tgui9680_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - virtual const tiny_rom_entry *device_rom_region() const override; - DECLARE_READ8_MEMBER(input_port_0_r); + protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; + + // optional information overrides + virtual void device_add_mconfig(machine_config &config) override; + virtual const tiny_rom_entry *device_rom_region() const override; + private: trident_vga_device *m_vga; }; diff --git a/src/devices/bus/isa/svga_tseng.cpp b/src/devices/bus/isa/svga_tseng.cpp index 9f9086d723b..52ac79c832b 100644 --- a/src/devices/bus/isa/svga_tseng.cpp +++ b/src/devices/bus/isa/svga_tseng.cpp @@ -25,7 +25,11 @@ ROM_END DEFINE_DEVICE_TYPE(ISA8_SVGA_ET4K, isa8_svga_et4k_device, "et4000", "SVGA Tseng ET4000 Graphics Card") -static MACHINE_CONFIG_START( vga_tseng ) +//------------------------------------------------- +// device_add_mconfig - add device configuration +//------------------------------------------------- + +MACHINE_CONFIG_MEMBER( isa8_svga_et4k_device::device_add_mconfig ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(XTAL_25_1748MHz,900,0,640,526,0,480) MCFG_SCREEN_UPDATE_DEVICE("vga", tseng_vga_device, screen_update) @@ -36,16 +40,6 @@ static MACHINE_CONFIG_START( vga_tseng ) MACHINE_CONFIG_END //------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations -//------------------------------------------------- - -machine_config_constructor isa8_svga_et4k_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( vga_tseng ); -} - -//------------------------------------------------- // rom_region - device-specific ROM region //------------------------------------------------- diff --git a/src/devices/bus/isa/svga_tseng.h b/src/devices/bus/isa/svga_tseng.h index 6f430af17d6..13805bad615 100644 --- a/src/devices/bus/isa/svga_tseng.h +++ b/src/devices/bus/isa/svga_tseng.h @@ -22,15 +22,17 @@ public: // construction/destruction isa8_svga_et4k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - virtual const tiny_rom_entry *device_rom_region() const override; - DECLARE_READ8_MEMBER(input_port_0_r); + protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; + + // optional information overrides + virtual void device_add_mconfig(machine_config &config) override; + virtual const tiny_rom_entry *device_rom_region() const override; + private: tseng_vga_device *m_vga; }; diff --git a/src/devices/bus/isa/vga.cpp b/src/devices/bus/isa/vga.cpp index d0e49ce0d56..8919e742c94 100644 --- a/src/devices/bus/isa/vga.cpp +++ b/src/devices/bus/isa/vga.cpp @@ -23,14 +23,12 @@ DEFINE_DEVICE_TYPE(ISA8_VGA, isa8_vga_device, "ibm_vga", "IBM VGA Graphics Card" //------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations +// device_add_mconfig - add device configuration //------------------------------------------------- -machine_config_constructor isa8_vga_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( pcvideo_vga ); -} +MACHINE_CONFIG_MEMBER( isa8_vga_device::device_add_mconfig) + MCFG_FRAGMENT_ADD( pcvideo_vga ); +MACHINE_CONFIG_END //------------------------------------------------- // rom_region - device-specific ROM region diff --git a/src/devices/bus/isa/vga.h b/src/devices/bus/isa/vga.h index 3d306be8d6b..856016ecc5a 100644 --- a/src/devices/bus/isa/vga.h +++ b/src/devices/bus/isa/vga.h @@ -22,15 +22,17 @@ public: // construction/destruction isa8_vga_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - virtual const tiny_rom_entry *device_rom_region() const override; - DECLARE_READ8_MEMBER(input_port_0_r); + protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; + + // optional information overrides + virtual void device_add_mconfig(machine_config &config) override; + virtual const tiny_rom_entry *device_rom_region() const override; + private: vga_device *m_vga; }; diff --git a/src/devices/bus/isa/vga_ati.cpp b/src/devices/bus/isa/vga_ati.cpp index 53c195d3058..02143c9c4ad 100644 --- a/src/devices/bus/isa/vga_ati.cpp +++ b/src/devices/bus/isa/vga_ati.cpp @@ -72,7 +72,11 @@ DEFINE_DEVICE_TYPE(ISA16_VGA_GFXULTRA, isa16_vga_gfxultra_device, "gfxulr DEFINE_DEVICE_TYPE(ISA16_SVGA_GFXULTRAPRO, isa16_vga_gfxultrapro_device, "gfxxultrp", "ATi Graphics Ultra Pro Card") DEFINE_DEVICE_TYPE(ISA16_SVGA_MACH64, isa16_vga_mach64_device, "mach64isa", "ATi mach64 Card") -static MACHINE_CONFIG_START( vga_ati ) +//------------------------------------------------- +// device_add_mconfig - add device configuration +//------------------------------------------------- + +MACHINE_CONFIG_MEMBER( isa16_vga_gfxultra_device::device_add_mconfig ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(XTAL_25_1748MHz,900,0,640,526,0,480) MCFG_SCREEN_UPDATE_DEVICE("vga", ati_vga_device, screen_update) @@ -82,7 +86,7 @@ static MACHINE_CONFIG_START( vga_ati ) MCFG_DEVICE_ADD("vga", ATI_VGA, 0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( vga_mach32 ) +MACHINE_CONFIG_MEMBER( isa16_vga_gfxultrapro_device::device_add_mconfig ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(XTAL_25_1748MHz,900,0,640,526,0,480) MCFG_SCREEN_UPDATE_DEVICE("vga", mach32_device, screen_update) @@ -92,7 +96,7 @@ static MACHINE_CONFIG_START( vga_mach32 ) MCFG_DEVICE_ADD("vga", ATIMACH32, 0) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( vga_mach64 ) +MACHINE_CONFIG_MEMBER( isa16_vga_mach64_device::device_add_mconfig ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(XTAL_25_1748MHz,900,0,640,526,0,480) MCFG_SCREEN_UPDATE_DEVICE("vga", mach64_device, screen_update) @@ -103,26 +107,6 @@ static MACHINE_CONFIG_START( vga_mach64 ) MACHINE_CONFIG_END //------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations -//------------------------------------------------- - -machine_config_constructor isa16_vga_gfxultra_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( vga_ati ); -} - -machine_config_constructor isa16_vga_gfxultrapro_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( vga_mach32 ); -} - -machine_config_constructor isa16_vga_mach64_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( vga_mach64 ); -} - -//------------------------------------------------- // rom_region - device-specific ROM region //------------------------------------------------- diff --git a/src/devices/bus/isa/vga_ati.h b/src/devices/bus/isa/vga_ati.h index 33cf8718e79..e626f8a45ab 100644 --- a/src/devices/bus/isa/vga_ati.h +++ b/src/devices/bus/isa/vga_ati.h @@ -30,15 +30,17 @@ public: // construction/destruction isa16_vga_gfxultra_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - virtual const tiny_rom_entry *device_rom_region() const override; - DECLARE_READ8_MEMBER(input_port_0_r); + protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; + + // optional information overrides + virtual void device_add_mconfig(machine_config &config) override; + virtual const tiny_rom_entry *device_rom_region() const override; + private: ati_vga_device *m_vga; mach8_device *m_8514; @@ -52,16 +54,18 @@ public: // construction/destruction isa16_vga_gfxultrapro_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - virtual const tiny_rom_entry *device_rom_region() const override; - DECLARE_READ8_MEMBER(input_port_0_r); + protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; -private: + + // optional information overrides + virtual void device_add_mconfig(machine_config &config) override; + virtual const tiny_rom_entry *device_rom_region() const override; + + private: mach32_device *m_vga; }; @@ -73,15 +77,17 @@ public: // construction/destruction isa16_vga_mach64_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - virtual const tiny_rom_entry *device_rom_region() const override; - DECLARE_READ8_MEMBER(input_port_0_r); + protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; + + // optional information overrides + virtual void device_add_mconfig(machine_config &config) override; + virtual const tiny_rom_entry *device_rom_region() const override; + private: mach64_device *m_vga; }; diff --git a/src/devices/bus/isa/wdxt_gen.cpp b/src/devices/bus/isa/wdxt_gen.cpp index 638a46b660c..7930ca4de92 100644 --- a/src/devices/bus/isa/wdxt_gen.cpp +++ b/src/devices/bus/isa/wdxt_gen.cpp @@ -135,10 +135,10 @@ WRITE8_MEMBER( wdxt_gen_device::ram_w ) } //------------------------------------------------- -// MACHINE_DRIVER( wdxt_gen ) +// device_add_mconfig - add device configuration //------------------------------------------------- -static MACHINE_CONFIG_START( wdxt_gen ) +MACHINE_CONFIG_MEMBER( wdxt_gen_device::device_add_mconfig ) MCFG_CPU_ADD(WD1015_TAG, I8049, 5000000) MCFG_CPU_IO_MAP(wd1015_io) MCFG_MCS48_PORT_T0_IN_CB(DEVREADLINE(WD11C00_17_TAG, wd11c00_17_device, busy_r)) @@ -173,17 +173,6 @@ static MACHINE_CONFIG_START( wdxt_gen ) MACHINE_CONFIG_END -//------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations -//------------------------------------------------- - -machine_config_constructor wdxt_gen_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( wdxt_gen ); -} - - //************************************************************************** // LIVE DEVICE //************************************************************************** diff --git a/src/devices/bus/isa/wdxt_gen.h b/src/devices/bus/isa/wdxt_gen.h index cfced925737..c17111cf52b 100644 --- a/src/devices/bus/isa/wdxt_gen.h +++ b/src/devices/bus/isa/wdxt_gen.h @@ -40,11 +40,20 @@ public: // construction/destruction wdxt_gen_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; + virtual void device_add_mconfig(machine_config &config) override; virtual const tiny_rom_entry *device_rom_region() const override; - // not really public + // device_isa8_card_interface + virtual uint8_t dack_r(int line) override; + virtual void dack_w(int line, uint8_t data) override; + +private: DECLARE_WRITE_LINE_MEMBER( irq5_w ); DECLARE_WRITE_LINE_MEMBER( drq3_w ); DECLARE_WRITE_LINE_MEMBER( mr_w ); @@ -57,16 +66,6 @@ public: DECLARE_READ8_MEMBER( wd1015_p2_r ); DECLARE_WRITE8_MEMBER( wd1015_p2_w ); -protected: - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - - // device_isa8_card_interface - virtual uint8_t dack_r(int line) override; - virtual void dack_w(int line, uint8_t data) override; - -private: required_device<cpu_device> m_maincpu; required_device<wd11c00_17_device> m_host; required_device<wd2010_device> m_hdc; diff --git a/src/devices/bus/isa/xtide.cpp b/src/devices/bus/isa/xtide.cpp index 53047da9795..295fb34333c 100644 --- a/src/devices/bus/isa/xtide.cpp +++ b/src/devices/bus/isa/xtide.cpp @@ -122,12 +122,6 @@ WRITE_LINE_MEMBER(xtide_device::ide_interrupt) } } -static MACHINE_CONFIG_START( xtide_config ) - MCFG_ATA_INTERFACE_ADD("ata", ata_devices, "hdd", nullptr, false) - MCFG_ATA_INTERFACE_IRQ_HANDLER(WRITELINE(xtide_device, ide_interrupt)) - - MCFG_EEPROM_2864_ADD("eeprom") -MACHINE_CONFIG_END static INPUT_PORTS_START( xtide_port ) PORT_START("BIOS_BASE") @@ -265,14 +259,15 @@ ROM_END DEFINE_DEVICE_TYPE(ISA8_XTIDE, xtide_device, "xtide", "XT-IDE Fixed Drive Adapter") //------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations +// device_add_mconfig - add device configuration //------------------------------------------------- -machine_config_constructor xtide_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( xtide_config ); -} +MACHINE_CONFIG_MEMBER( xtide_device::device_add_mconfig ) + MCFG_ATA_INTERFACE_ADD("ata", ata_devices, "hdd", nullptr, false) + MCFG_ATA_INTERFACE_IRQ_HANDLER(WRITELINE(xtide_device, ide_interrupt)) + + MCFG_EEPROM_2864_ADD("eeprom") +MACHINE_CONFIG_END //------------------------------------------------- // input_ports - device-specific input ports diff --git a/src/devices/bus/isa/xtide.h b/src/devices/bus/isa/xtide.h index b78d7bd6229..4402aa991fd 100644 --- a/src/devices/bus/isa/xtide.h +++ b/src/devices/bus/isa/xtide.h @@ -19,21 +19,22 @@ public: // construction/destruction xtide_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - virtual ioport_constructor device_input_ports() const override; - virtual const tiny_rom_entry *device_rom_region() const override; - DECLARE_READ8_MEMBER(read); DECLARE_WRITE8_MEMBER(write); - DECLARE_WRITE_LINE_MEMBER(ide_interrupt); protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; + // optional information overrides + virtual void device_add_mconfig(machine_config &config) override; + virtual ioport_constructor device_input_ports() const override; + virtual const tiny_rom_entry *device_rom_region() const override; + private: + DECLARE_WRITE_LINE_MEMBER(ide_interrupt); + required_device<ata_interface_device> m_ata; required_device<eeprom_parallel_28xx_device> m_eeprom; diff --git a/src/devices/bus/isbx/compis_fdc.cpp b/src/devices/bus/isbx/compis_fdc.cpp index 5b311ffc047..327b709dba2 100644 --- a/src/devices/bus/isbx/compis_fdc.cpp +++ b/src/devices/bus/isbx/compis_fdc.cpp @@ -50,10 +50,10 @@ SLOT_INTERFACE_END //------------------------------------------------- -// MACHINE_DRIVER( compis_fdc ) +// device_add_mconfig - add device configuration //------------------------------------------------- -static MACHINE_CONFIG_START( compis_fdc ) +MACHINE_CONFIG_MEMBER( compis_fdc_device::device_add_mconfig ) MCFG_I8272A_ADD(I8272_TAG, true) MCFG_UPD765_INTRQ_CALLBACK(WRITELINE(compis_fdc_device, fdc_irq)) MCFG_UPD765_DRQ_CALLBACK(WRITELINE(compis_fdc_device, fdc_drq)) @@ -62,17 +62,6 @@ static MACHINE_CONFIG_START( compis_fdc ) MACHINE_CONFIG_END -//------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations -//------------------------------------------------- - -machine_config_constructor compis_fdc_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( compis_fdc ); -} - - //************************************************************************** // LIVE DEVICE diff --git a/src/devices/bus/isbx/compis_fdc.h b/src/devices/bus/isbx/compis_fdc.h index 2caf59513d3..ff6c0e87974 100644 --- a/src/devices/bus/isbx/compis_fdc.h +++ b/src/devices/bus/isbx/compis_fdc.h @@ -30,18 +30,14 @@ public: // construction/destruction compis_fdc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - - DECLARE_WRITE_LINE_MEMBER( fdc_irq ); - DECLARE_WRITE_LINE_MEMBER( fdc_drq ); - DECLARE_FLOPPY_FORMATS( floppy_formats ); - protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; + // optional information overrides + virtual void device_add_mconfig(machine_config &config) override; + // device_isbx_card_interface overrides virtual uint8_t mcs0_r(address_space &space, offs_t offset) override; virtual void mcs0_w(address_space &space, offs_t offset, uint8_t data) override; @@ -51,6 +47,10 @@ protected: virtual void opt1_w(int state) override; private: + DECLARE_WRITE_LINE_MEMBER( fdc_irq ); + DECLARE_WRITE_LINE_MEMBER( fdc_drq ); + DECLARE_FLOPPY_FORMATS( floppy_formats ); + required_device<i8272a_device> m_fdc; required_device<floppy_connector> m_floppy0; required_device<floppy_connector> m_floppy1; diff --git a/src/devices/bus/isbx/isbc_218a.cpp b/src/devices/bus/isbx/isbc_218a.cpp index 7bc16af2127..7b054719a41 100644 --- a/src/devices/bus/isbx/isbc_218a.cpp +++ b/src/devices/bus/isbx/isbc_218a.cpp @@ -50,10 +50,10 @@ SLOT_INTERFACE_END //------------------------------------------------- -// MACHINE_DRIVER( isbc_218a ) +// device_add_mconfig - add device configuration //------------------------------------------------- -static MACHINE_CONFIG_START( isbc_218a ) +MACHINE_CONFIG_MEMBER( isbc_218a_device::device_add_mconfig ) MCFG_I8272A_ADD(I8272_TAG, true) MCFG_UPD765_INTRQ_CALLBACK(WRITELINE(isbc_218a_device, fdc_irq)) MCFG_UPD765_DRQ_CALLBACK(WRITELINE(isbc_218a_device, fdc_drq)) @@ -61,18 +61,6 @@ static MACHINE_CONFIG_START( isbc_218a ) MACHINE_CONFIG_END -//------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations -//------------------------------------------------- - -machine_config_constructor isbc_218a_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( isbc_218a ); -} - - - //************************************************************************** // LIVE DEVICE //************************************************************************** diff --git a/src/devices/bus/isbx/isbc_218a.h b/src/devices/bus/isbx/isbc_218a.h index f22391a4c4e..929203c8dfb 100644 --- a/src/devices/bus/isbx/isbc_218a.h +++ b/src/devices/bus/isbx/isbc_218a.h @@ -30,18 +30,14 @@ public: // construction/destruction isbc_218a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - - DECLARE_WRITE_LINE_MEMBER( fdc_irq ); - DECLARE_WRITE_LINE_MEMBER( fdc_drq ); - DECLARE_FLOPPY_FORMATS( floppy_formats ); - protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; + // optional information overrides + virtual void device_add_mconfig(machine_config &config) override; + // device_isbx_card_interface overrides virtual uint8_t mcs0_r(address_space &space, offs_t offset) override; virtual void mcs0_w(address_space &space, offs_t offset, uint8_t data) override; @@ -52,6 +48,10 @@ protected: virtual void opt0_w(int state) override; private: + DECLARE_WRITE_LINE_MEMBER( fdc_irq ); + DECLARE_WRITE_LINE_MEMBER( fdc_drq ); + DECLARE_FLOPPY_FORMATS( floppy_formats ); + required_device<i8272a_device> m_fdc; required_device<floppy_connector> m_floppy0; diff --git a/src/devices/bus/kc/d002.cpp b/src/devices/bus/kc/d002.cpp index be1a9fe74fe..9ba57dc6d9d 100644 --- a/src/devices/bus/kc/d002.cpp +++ b/src/devices/bus/kc/d002.cpp @@ -64,40 +64,6 @@ WRITE_LINE_MEMBER(kc_d002_device::out_halt_w) m_slot->m_out_halt_cb(state); } -static MACHINE_CONFIG_START( kc_d002 ) - MCFG_DEVICE_ADD("m0", KCCART_SLOT, 0) - MCFG_DEVICE_SLOT_INTERFACE(kc85_cart, nullptr, false) - MCFG_KCCART_SLOT_NEXT_SLOT("m4") - MCFG_KCCART_SLOT_OUT_IRQ_CB(WRITELINE(kc_d002_device, out_irq_w)) - MCFG_KCCART_SLOT_OUT_NMI_CB(WRITELINE(kc_d002_device, out_nmi_w)) - MCFG_KCCART_SLOT_OUT_HALT_CB(WRITELINE(kc_d002_device, out_halt_w)) - MCFG_DEVICE_ADD("m4", KCCART_SLOT, 0) - MCFG_DEVICE_SLOT_INTERFACE(kc85_cart, nullptr, false) - MCFG_KCCART_SLOT_NEXT_SLOT("m8") - MCFG_KCCART_SLOT_OUT_IRQ_CB(WRITELINE(kc_d002_device, out_irq_w)) - MCFG_KCCART_SLOT_OUT_NMI_CB(WRITELINE(kc_d002_device, out_nmi_w)) - MCFG_KCCART_SLOT_OUT_HALT_CB(WRITELINE(kc_d002_device, out_halt_w)) - MCFG_DEVICE_ADD("m8", KCCART_SLOT, 0) - MCFG_DEVICE_SLOT_INTERFACE(kc85_cart, nullptr, false) - MCFG_KCCART_SLOT_NEXT_SLOT("mc") - MCFG_KCCART_SLOT_OUT_IRQ_CB(WRITELINE(kc_d002_device, out_irq_w)) - MCFG_KCCART_SLOT_OUT_NMI_CB(WRITELINE(kc_d002_device, out_nmi_w)) - MCFG_KCCART_SLOT_OUT_HALT_CB(WRITELINE(kc_d002_device, out_halt_w)) - MCFG_DEVICE_ADD("mc", KCCART_SLOT, 0) - MCFG_DEVICE_SLOT_INTERFACE(kc85_cart, nullptr, false) - MCFG_KCCART_SLOT_NEXT_SLOT("exp") - MCFG_KCCART_SLOT_OUT_IRQ_CB(WRITELINE(kc_d002_device, out_irq_w)) - MCFG_KCCART_SLOT_OUT_NMI_CB(WRITELINE(kc_d002_device, out_nmi_w)) - MCFG_KCCART_SLOT_OUT_HALT_CB(WRITELINE(kc_d002_device, out_halt_w)) - - // expansion interface - MCFG_DEVICE_ADD("exp", KCCART_SLOT, 0) - MCFG_DEVICE_SLOT_INTERFACE(kc85_exp, nullptr, false) - MCFG_KCEXP_SLOT_NEXT_SLOT(nullptr) - MCFG_KCEXP_SLOT_OUT_IRQ_CB(WRITELINE(kc_d002_device, out_irq_w)) - MCFG_KCEXP_SLOT_OUT_NMI_CB(WRITELINE(kc_d002_device, out_nmi_w)) - MCFG_KCEXP_SLOT_OUT_HALT_CB(WRITELINE(kc_d002_device, out_halt_w)) -MACHINE_CONFIG_END //************************************************************************** // GLOBAL VARIABLES @@ -139,13 +105,43 @@ void kc_d002_device::device_reset() } //------------------------------------------------- -// device_mconfig_additions +// device_add_mconfig - add device configuration //------------------------------------------------- -machine_config_constructor kc_d002_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( kc_d002 ); -} +MACHINE_CONFIG_MEMBER( kc_d002_device::device_add_mconfig ) + MCFG_DEVICE_ADD("m0", KCCART_SLOT, 0) + MCFG_DEVICE_SLOT_INTERFACE(kc85_cart, nullptr, false) + MCFG_KCCART_SLOT_NEXT_SLOT("m4") + MCFG_KCCART_SLOT_OUT_IRQ_CB(WRITELINE(kc_d002_device, out_irq_w)) + MCFG_KCCART_SLOT_OUT_NMI_CB(WRITELINE(kc_d002_device, out_nmi_w)) + MCFG_KCCART_SLOT_OUT_HALT_CB(WRITELINE(kc_d002_device, out_halt_w)) + MCFG_DEVICE_ADD("m4", KCCART_SLOT, 0) + MCFG_DEVICE_SLOT_INTERFACE(kc85_cart, nullptr, false) + MCFG_KCCART_SLOT_NEXT_SLOT("m8") + MCFG_KCCART_SLOT_OUT_IRQ_CB(WRITELINE(kc_d002_device, out_irq_w)) + MCFG_KCCART_SLOT_OUT_NMI_CB(WRITELINE(kc_d002_device, out_nmi_w)) + MCFG_KCCART_SLOT_OUT_HALT_CB(WRITELINE(kc_d002_device, out_halt_w)) + MCFG_DEVICE_ADD("m8", KCCART_SLOT, 0) + MCFG_DEVICE_SLOT_INTERFACE(kc85_cart, nullptr, false) + MCFG_KCCART_SLOT_NEXT_SLOT("mc") + MCFG_KCCART_SLOT_OUT_IRQ_CB(WRITELINE(kc_d002_device, out_irq_w)) + MCFG_KCCART_SLOT_OUT_NMI_CB(WRITELINE(kc_d002_device, out_nmi_w)) + MCFG_KCCART_SLOT_OUT_HALT_CB(WRITELINE(kc_d002_device, out_halt_w)) + MCFG_DEVICE_ADD("mc", KCCART_SLOT, 0) + MCFG_DEVICE_SLOT_INTERFACE(kc85_cart, nullptr, false) + MCFG_KCCART_SLOT_NEXT_SLOT("exp") + MCFG_KCCART_SLOT_OUT_IRQ_CB(WRITELINE(kc_d002_device, out_irq_w)) + MCFG_KCCART_SLOT_OUT_NMI_CB(WRITELINE(kc_d002_device, out_nmi_w)) + MCFG_KCCART_SLOT_OUT_HALT_CB(WRITELINE(kc_d002_device, out_halt_w)) + + // expansion interface + MCFG_DEVICE_ADD("exp", KCCART_SLOT, 0) + MCFG_DEVICE_SLOT_INTERFACE(kc85_exp, nullptr, false) + MCFG_KCEXP_SLOT_NEXT_SLOT(nullptr) + MCFG_KCEXP_SLOT_OUT_IRQ_CB(WRITELINE(kc_d002_device, out_irq_w)) + MCFG_KCEXP_SLOT_OUT_NMI_CB(WRITELINE(kc_d002_device, out_nmi_w)) + MCFG_KCEXP_SLOT_OUT_HALT_CB(WRITELINE(kc_d002_device, out_halt_w)) +MACHINE_CONFIG_END //------------------------------------------------- // input_ports - device-specific input ports diff --git a/src/devices/bus/kc/d002.h b/src/devices/bus/kc/d002.h index 48bd97336b2..7db1418bf5f 100644 --- a/src/devices/bus/kc/d002.h +++ b/src/devices/bus/kc/d002.h @@ -21,20 +21,15 @@ public: // construction/destruction kc_d002_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - virtual ioport_constructor device_input_ports() const override; - - // interface callbacks - DECLARE_WRITE_LINE_MEMBER( out_irq_w ); - DECLARE_WRITE_LINE_MEMBER( out_nmi_w ); - DECLARE_WRITE_LINE_MEMBER( out_halt_w ); - protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; + // optional information overrides + virtual void device_add_mconfig(machine_config &config) override; + virtual ioport_constructor device_input_ports() const override; + // kcexp_interface overrides virtual void read(offs_t offset, uint8_t &data) override; virtual void write(offs_t offset, uint8_t data) override; @@ -43,6 +38,11 @@ protected: virtual DECLARE_WRITE_LINE_MEMBER( mei_w ) override; private: + // interface callbacks + DECLARE_WRITE_LINE_MEMBER( out_irq_w ); + DECLARE_WRITE_LINE_MEMBER( out_nmi_w ); + DECLARE_WRITE_LINE_MEMBER( out_halt_w ); + kcexp_slot_device *m_slot; // internal state diff --git a/src/devices/bus/kc/d004.cpp b/src/devices/bus/kc/d004.cpp index 967818f5a9d..723f9a4588f 100644 --- a/src/devices/bus/kc/d004.cpp +++ b/src/devices/bus/kc/d004.cpp @@ -63,36 +63,6 @@ static const z80_daisy_config kc_d004_daisy_chain[] = { nullptr } }; -static MACHINE_CONFIG_START(kc_d004) - MCFG_CPU_ADD(Z80_TAG, Z80, XTAL_8MHz/2) - MCFG_CPU_PROGRAM_MAP(kc_d004_mem) - MCFG_CPU_IO_MAP(kc_d004_io) - MCFG_Z80_DAISY_CHAIN(kc_d004_daisy_chain) - - MCFG_DEVICE_ADD(Z80CTC_TAG, Z80CTC, XTAL_8MHz/2) - MCFG_Z80CTC_INTR_CB(INPUTLINE(Z80_TAG, 0)) - MCFG_Z80CTC_ZC0_CB(DEVWRITELINE(Z80CTC_TAG, z80ctc_device, trg1)) - MCFG_Z80CTC_ZC1_CB(DEVWRITELINE(Z80CTC_TAG, z80ctc_device, trg2)) - MCFG_Z80CTC_ZC2_CB(DEVWRITELINE(Z80CTC_TAG, z80ctc_device, trg3)) - - MCFG_UPD765A_ADD(UPD765_TAG, false, false) - MCFG_UPD765_INTRQ_CALLBACK(WRITELINE(kc_d004_device, fdc_irq)) - MCFG_FLOPPY_DRIVE_ADD(UPD765_TAG ":0", kc_d004_floppies, "525qd", kc_d004_device::floppy_formats) - MCFG_FLOPPY_DRIVE_ADD(UPD765_TAG ":1", kc_d004_floppies, "525qd", kc_d004_device::floppy_formats) - MCFG_FLOPPY_DRIVE_ADD(UPD765_TAG ":2", kc_d004_floppies, "525qd", kc_d004_device::floppy_formats) - MCFG_FLOPPY_DRIVE_ADD(UPD765_TAG ":3", kc_d004_floppies, "525qd", kc_d004_device::floppy_formats) -MACHINE_CONFIG_END - -static MACHINE_CONFIG_START(kc_d004_gide) - MCFG_FRAGMENT_ADD(kc_d004) - - MCFG_CPU_MODIFY(Z80_TAG) - MCFG_CPU_IO_MAP(kc_d004_gide_io) - - MCFG_ATA_INTERFACE_ADD(ATA_TAG, ata_devices, "hdd", nullptr, false) -MACHINE_CONFIG_END - - ROM_START( kc_d004 ) ROM_REGION(0x2000, Z80_TAG, 0) ROM_LOAD_OPTIONAL("d004v20.bin", 0x0000, 0x2000, CRC(4f3494f1) SHA1(66f476de78fb474d9ac61c6eaffce3354fd66776)) @@ -173,13 +143,28 @@ void kc_d004_device::device_reset() } //------------------------------------------------- -// device_mconfig_additions +// device_add_mconfig - add device configuration //------------------------------------------------- -machine_config_constructor kc_d004_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( kc_d004 ); -} +MACHINE_CONFIG_MEMBER(kc_d004_device::device_add_mconfig) + MCFG_CPU_ADD(Z80_TAG, Z80, XTAL_8MHz/2) + MCFG_CPU_PROGRAM_MAP(kc_d004_mem) + MCFG_CPU_IO_MAP(kc_d004_io) + MCFG_Z80_DAISY_CHAIN(kc_d004_daisy_chain) + + MCFG_DEVICE_ADD(Z80CTC_TAG, Z80CTC, XTAL_8MHz/2) + MCFG_Z80CTC_INTR_CB(INPUTLINE(Z80_TAG, 0)) + MCFG_Z80CTC_ZC0_CB(DEVWRITELINE(Z80CTC_TAG, z80ctc_device, trg1)) + MCFG_Z80CTC_ZC1_CB(DEVWRITELINE(Z80CTC_TAG, z80ctc_device, trg2)) + MCFG_Z80CTC_ZC2_CB(DEVWRITELINE(Z80CTC_TAG, z80ctc_device, trg3)) + + MCFG_UPD765A_ADD(UPD765_TAG, false, false) + MCFG_UPD765_INTRQ_CALLBACK(WRITELINE(kc_d004_device, fdc_irq)) + MCFG_FLOPPY_DRIVE_ADD(UPD765_TAG ":0", kc_d004_floppies, "525qd", kc_d004_device::floppy_formats) + MCFG_FLOPPY_DRIVE_ADD(UPD765_TAG ":1", kc_d004_floppies, "525qd", kc_d004_device::floppy_formats) + MCFG_FLOPPY_DRIVE_ADD(UPD765_TAG ":2", kc_d004_floppies, "525qd", kc_d004_device::floppy_formats) + MCFG_FLOPPY_DRIVE_ADD(UPD765_TAG ":3", kc_d004_floppies, "525qd", kc_d004_device::floppy_formats) +MACHINE_CONFIG_END //------------------------------------------------- // device_rom_region @@ -382,13 +367,17 @@ kc_d004_gide_device::kc_d004_gide_device(const machine_config &mconfig, const ch } //------------------------------------------------- -// device_mconfig_additions +// device_add_mconfig - add device configuration //------------------------------------------------- -machine_config_constructor kc_d004_gide_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( kc_d004_gide ); -} +MACHINE_CONFIG_MEMBER(kc_d004_gide_device::device_add_mconfig) + kc_d004_device::device_add_mconfig(config); + + MCFG_CPU_MODIFY(Z80_TAG) + MCFG_CPU_IO_MAP(kc_d004_gide_io) + + MCFG_ATA_INTERFACE_ADD(ATA_TAG, ata_devices, "hdd", nullptr, false) +MACHINE_CONFIG_END //------------------------------------------------- diff --git a/src/devices/bus/kc/d004.h b/src/devices/bus/kc/d004.h index bbac3463866..83522b3118c 100644 --- a/src/devices/bus/kc/d004.h +++ b/src/devices/bus/kc/d004.h @@ -27,18 +27,10 @@ public: // construction/destruction kc_d004_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - virtual const tiny_rom_entry *device_rom_region() const override; - - DECLARE_FLOPPY_FORMATS( floppy_formats ); - DECLARE_READ8_MEMBER(hw_input_gate_r); DECLARE_WRITE8_MEMBER(fdd_select_w); DECLARE_WRITE8_MEMBER(hw_terminal_count_w); - DECLARE_WRITE_LINE_MEMBER( fdc_irq ); - protected: kc_d004_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); @@ -47,6 +39,10 @@ protected: virtual void device_reset() override; virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + // optional information overrides + virtual void device_add_mconfig(machine_config &config) override; + virtual const tiny_rom_entry *device_rom_region() const override; + // kcexp_interface overrides virtual uint8_t module_id_r() override { return 0xa7; } virtual void control_w(uint8_t data) override; @@ -55,6 +51,10 @@ protected: virtual void io_write(offs_t offset, uint8_t data) override; private: + DECLARE_FLOPPY_FORMATS( floppy_formats ); + + DECLARE_WRITE_LINE_MEMBER( fdc_irq ); + static const device_timer_id TIMER_RESET = 0; required_device<cpu_device> m_cpu; @@ -87,10 +87,6 @@ public: // construction/destruction kc_d004_gide_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - virtual const tiny_rom_entry *device_rom_region() const override; - DECLARE_READ8_MEMBER(gide_r); DECLARE_WRITE8_MEMBER(gide_w); @@ -98,6 +94,10 @@ protected: // device-level overrides virtual void device_reset() override; + // optional information overrides + virtual void device_add_mconfig(machine_config &config) override; + virtual const tiny_rom_entry *device_rom_region() const override; + private: required_device<ata_interface_device> m_ata; diff --git a/src/devices/bus/lpci/southbridge.cpp b/src/devices/bus/lpci/southbridge.cpp index a5b47cb4cdc..969a2b8c71b 100644 --- a/src/devices/bus/lpci/southbridge.cpp +++ b/src/devices/bus/lpci/southbridge.cpp @@ -23,7 +23,12 @@ static SLOT_INTERFACE_START(pc_isa_onboard) SLOT_INTERFACE("fdcsmc", ISA8_FDC_SMC) SLOT_INTERFACE_END -static MACHINE_CONFIG_START( southbridge ) + +//------------------------------------------------- +// device_add_mconfig - add device configuration +//------------------------------------------------- + +MACHINE_CONFIG_MEMBER( southbridge_device::device_add_mconfig ) MCFG_DEVICE_ADD("pit8254", PIT8254, 0) MCFG_PIT8253_CLK0(4772720/4) /* heartbeat IRQ */ MCFG_PIT8253_OUT0_HANDLER(WRITELINE(southbridge_device, at_pit8254_out0_changed)) @@ -122,16 +127,6 @@ static MACHINE_CONFIG_START( southbridge ) MCFG_ISA16_SLOT_ADD("isabus","board3", pc_isa_onboard, "lpt", true) MACHINE_CONFIG_END -//------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations -//------------------------------------------------- - -machine_config_constructor southbridge_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( southbridge ); -} - southbridge_device::southbridge_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : device_t(mconfig, type, tag, owner, clock), m_maincpu(*this, ":maincpu"), diff --git a/src/devices/bus/lpci/southbridge.h b/src/devices/bus/lpci/southbridge.h index f1e8fb7571b..586a5ae30ca 100644 --- a/src/devices/bus/lpci/southbridge.h +++ b/src/devices/bus/lpci/southbridge.h @@ -38,6 +38,50 @@ class southbridge_device : public device_t { public: + + +protected: + // construction/destruction + southbridge_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // optional information overrides + virtual void device_add_mconfig(machine_config &config) override; + + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + + required_device<cpu_device> m_maincpu; + required_device<pic8259_device> m_pic8259_master; + required_device<pic8259_device> m_pic8259_slave; + required_device<am9517a_device> m_dma8237_1; + required_device<am9517a_device> m_dma8237_2; + required_device<pit8254_device> m_pit8254; + required_device<at_keyboard_controller_device> m_keybc; + required_device<isa16_device> m_isabus; + required_device<speaker_sound_device> m_speaker; + required_device<ds12885_device> m_ds12885; + required_device<pc_kbdc_device> m_pc_kbdc; + required_device<bus_master_ide_controller_device> m_ide; + required_device<bus_master_ide_controller_device> m_ide2; + + uint8_t m_at_spkrdata; + uint8_t m_pit_out2; + int m_dma_channel; + bool m_cur_eop; + uint8_t m_dma_offset[2][4]; + uint8_t m_at_pages[0x10]; + uint16_t m_dma_high_byte; + uint8_t m_at_speaker; + bool m_refresh; + void at_speaker_set_spkrdata(uint8_t data); + + uint8_t m_channel_check; + uint8_t m_nmi_enabled; + + void pc_select_dma_channel(int channel, bool state); + +private: DECLARE_READ8_MEMBER(at_page8_r); DECLARE_WRITE8_MEMBER(at_page8_w); DECLARE_READ8_MEMBER(at_portb_r); @@ -83,47 +127,6 @@ public: DECLARE_WRITE8_MEMBER(pc_dma_write_byte); DECLARE_READ8_MEMBER(pc_dma_read_word); DECLARE_WRITE8_MEMBER(pc_dma_write_word); - -protected: - // construction/destruction - southbridge_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); - - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - - required_device<cpu_device> m_maincpu; - required_device<pic8259_device> m_pic8259_master; - required_device<pic8259_device> m_pic8259_slave; - required_device<am9517a_device> m_dma8237_1; - required_device<am9517a_device> m_dma8237_2; - required_device<pit8254_device> m_pit8254; - required_device<at_keyboard_controller_device> m_keybc; - required_device<isa16_device> m_isabus; - required_device<speaker_sound_device> m_speaker; - required_device<ds12885_device> m_ds12885; - required_device<pc_kbdc_device> m_pc_kbdc; - required_device<bus_master_ide_controller_device> m_ide; - required_device<bus_master_ide_controller_device> m_ide2; - - uint8_t m_at_spkrdata; - uint8_t m_pit_out2; - int m_dma_channel; - bool m_cur_eop; - uint8_t m_dma_offset[2][4]; - uint8_t m_at_pages[0x10]; - uint16_t m_dma_high_byte; - uint8_t m_at_speaker; - bool m_refresh; - void at_speaker_set_spkrdata(uint8_t data); - - uint8_t m_channel_check; - uint8_t m_nmi_enabled; - - void pc_select_dma_channel(int channel, bool state); }; #endif // MAME_BUS_LPCI_SOUTHBRIDGE_H |