From f31b1520801a4848a15a0cbb646797f44e476d33 Mon Sep 17 00:00:00 2001 From: Ivan Vangelista Date: Thu, 8 Jun 2017 17:20:12 +0200 Subject: [PATCH] device_add_mconfig up to devices/bus/h* (nw) --- src/devices/bus/cbmiec/c1526.cpp | 30 +------ src/devices/bus/cbmiec/c1526.h | 8 +- src/devices/bus/cbmiec/c1541.cpp | 93 +++------------------ src/devices/bus/cbmiec/c1541.h | 91 +++++++++++--------- src/devices/bus/cbmiec/c1571.cpp | 66 ++------------- src/devices/bus/cbmiec/c1571.h | 21 +++-- src/devices/bus/cbmiec/c1581.cpp | 15 +--- src/devices/bus/cbmiec/c1581.h | 46 +++++----- src/devices/bus/cbmiec/cmdhd.cpp | 15 +--- src/devices/bus/cbmiec/cmdhd.h | 8 +- src/devices/bus/cbmiec/fd2000.cpp | 58 ++++--------- src/devices/bus/cbmiec/fd2000.h | 22 ++--- src/devices/bus/cbmiec/interpod.cpp | 15 +--- src/devices/bus/cbmiec/interpod.h | 8 +- src/devices/bus/cbmiec/serialbox.cpp | 15 +--- src/devices/bus/cbmiec/serialbox.h | 8 +- src/devices/bus/cbmiec/vic1515.cpp | 15 +--- src/devices/bus/cbmiec/vic1515.h | 10 +-- src/devices/bus/cbmiec/vic1520.cpp | 15 +--- src/devices/bus/cbmiec/vic1520.h | 10 +-- src/devices/bus/centronics/comxpl80.cpp | 15 +--- src/devices/bus/centronics/comxpl80.h | 10 +-- src/devices/bus/centronics/covox.cpp | 48 ++++------- src/devices/bus/centronics/covox.h | 12 +-- src/devices/bus/centronics/digiblst.cpp | 22 ++--- src/devices/bus/centronics/digiblst.h | 6 +- src/devices/bus/centronics/epson_ex800.cpp | 15 +--- src/devices/bus/centronics/epson_ex800.h | 23 ++--- src/devices/bus/centronics/epson_lx800.cpp | 15 +--- src/devices/bus/centronics/epson_lx800.h | 32 +++---- src/devices/bus/centronics/epson_lx810l.cpp | 14 +--- src/devices/bus/centronics/epson_lx810l.h | 62 +++++++------- src/devices/bus/centronics/nec_p72.cpp | 14 +--- src/devices/bus/centronics/nec_p72.h | 8 +- src/devices/bus/centronics/printer.cpp | 18 ++-- src/devices/bus/centronics/printer.h | 5 +- src/devices/bus/cgenie/expansion/floppy.cpp | 10 +-- src/devices/bus/cgenie/expansion/floppy.h | 14 ++-- src/devices/bus/cgenie/parallel/printer.cpp | 10 +-- src/devices/bus/cgenie/parallel/printer.h | 12 +-- src/devices/bus/compis/hrg.cpp | 33 +------- src/devices/bus/compis/hrg.h | 15 ++-- src/devices/bus/compucolor/floppy.cpp | 15 +--- src/devices/bus/compucolor/floppy.h | 10 +-- src/devices/bus/comx35/clm.cpp | 16 +--- src/devices/bus/comx35/clm.h | 13 ++- src/devices/bus/comx35/expbox.cpp | 15 +--- src/devices/bus/comx35/expbox.h | 12 +-- src/devices/bus/comx35/fdc.cpp | 17 +--- src/devices/bus/comx35/fdc.h | 12 +-- src/devices/bus/comx35/printer.cpp | 15 +--- src/devices/bus/comx35/printer.h | 8 +- src/devices/bus/cpc/amdrum.cpp | 8 +- src/devices/bus/cpc/amdrum.h | 7 +- src/devices/bus/cpc/cpc_pds.cpp | 10 +-- src/devices/bus/cpc/cpc_pds.h | 6 +- src/devices/bus/cpc/cpc_rom.cpp | 9 +- src/devices/bus/cpc/cpc_rom.h | 6 +- src/devices/bus/cpc/cpc_rs232.cpp | 37 ++++---- src/devices/bus/cpc/cpc_rs232.h | 14 ++-- src/devices/bus/cpc/cpc_ssa1.cpp | 15 +--- src/devices/bus/cpc/cpc_ssa1.h | 26 +++--- src/devices/bus/cpc/ddi1.cpp | 8 +- src/devices/bus/cpc/ddi1.h | 13 +-- src/devices/bus/cpc/doubler.cpp | 10 +-- src/devices/bus/cpc/doubler.h | 6 +- src/devices/bus/cpc/hd20.cpp | 8 +- src/devices/bus/cpc/hd20.h | 11 +-- src/devices/bus/cpc/magicsound.cpp | 28 +++---- src/devices/bus/cpc/magicsound.h | 19 +++-- src/devices/bus/cpc/mface2.cpp | 24 +++--- src/devices/bus/cpc/mface2.h | 11 +-- src/devices/bus/cpc/playcity.cpp | 14 +--- src/devices/bus/cpc/playcity.h | 11 +-- src/devices/bus/cpc/smartwatch.cpp | 6 +- src/devices/bus/cpc/smartwatch.h | 9 +- src/devices/bus/cpc/symbfac2.cpp | 21 ++--- src/devices/bus/cpc/symbfac2.h | 8 +- src/devices/bus/dmv/k210.cpp | 52 +++++------- src/devices/bus/dmv/k210.h | 26 +++--- src/devices/bus/dmv/k220.cpp | 32 +++---- src/devices/bus/dmv/k220.h | 22 ++--- src/devices/bus/dmv/k230.cpp | 53 ++++-------- src/devices/bus/dmv/k230.h | 12 +-- src/devices/bus/dmv/k801.cpp | 87 ++++++++----------- src/devices/bus/dmv/k801.h | 29 ++++--- src/devices/bus/dmv/k803.cpp | 16 ++-- src/devices/bus/dmv/k803.h | 12 +-- src/devices/bus/dmv/k806.cpp | 24 ++---- src/devices/bus/dmv/k806.h | 20 ++--- src/devices/bus/ecbbus/grip.cpp | 17 +--- src/devices/bus/ecbbus/grip.h | 31 +++---- src/devices/bus/econet/e01.cpp | 17 +--- src/devices/bus/econet/e01.h | 26 +++--- src/devices/bus/electron/m2105.cpp | 15 +--- src/devices/bus/electron/m2105.h | 12 +-- src/devices/bus/electron/plus3.cpp | 41 ++++----- src/devices/bus/electron/plus3.h | 12 +-- src/devices/bus/ep64/exdos.cpp | 16 +--- src/devices/bus/ep64/exdos.h | 12 +-- src/devices/bus/epson_sio/pf10.cpp | 10 +-- src/devices/bus/epson_sio/pf10.h | 29 +++---- src/devices/bus/epson_sio/tf20.cpp | 12 +-- src/devices/bus/epson_sio/tf20.h | 33 ++++---- src/devices/bus/gamegear/smsctrladp.cpp | 16 ++-- src/devices/bus/gamegear/smsctrladp.h | 8 +- src/devices/bus/gba/rom.cpp | 14 +--- src/devices/bus/gba/rom.h | 14 ++-- src/devices/bus/hp9845_io/98034.cpp | 17 ++-- src/devices/bus/hp9845_io/98034.h | 24 +++--- src/devices/bus/hp9845_io/98035.cpp | 17 ++-- src/devices/bus/hp9845_io/98035.h | 14 ++-- 112 files changed, 834 insertions(+), 1418 deletions(-) diff --git a/src/devices/bus/cbmiec/c1526.cpp b/src/devices/bus/cbmiec/c1526.cpp index f33d9a1ceec..e763e79e069 100644 --- a/src/devices/bus/cbmiec/c1526.cpp +++ b/src/devices/bus/cbmiec/c1526.cpp @@ -85,47 +85,25 @@ ADDRESS_MAP_END //------------------------------------------------- -// MACHINE_DRIVER( c1526 ) +// device_add_mconfig - add device configuration //------------------------------------------------- -static MACHINE_CONFIG_START( c1526 ) +MACHINE_CONFIG_MEMBER( c1526_device::device_add_mconfig ) MCFG_CPU_ADD(M6504_TAG, M6504, XTAL_4MHz/4) MCFG_CPU_PROGRAM_MAP(c1526_mem) MACHINE_CONFIG_END //------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations +// device_add_mconfig - add device configuration //------------------------------------------------- -machine_config_constructor c1526_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( c1526 ); -} - - -//------------------------------------------------- -// MACHINE_DRIVER( c4023 ) -//------------------------------------------------- - -static MACHINE_CONFIG_START( c4023 ) +MACHINE_CONFIG_MEMBER( c4023_device::device_add_mconfig ) MCFG_CPU_ADD(M6504_TAG, M6504, XTAL_4MHz/4) MCFG_CPU_PROGRAM_MAP(c1526_mem) MACHINE_CONFIG_END -//------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations -//------------------------------------------------- - -machine_config_constructor c4023_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( c4023 ); -} - - //------------------------------------------------- // INPUT_PORTS( c1526 ) //------------------------------------------------- diff --git a/src/devices/bus/cbmiec/c1526.h b/src/devices/bus/cbmiec/c1526.h index 9d4d61ec7ae..8ba0edcb782 100644 --- a/src/devices/bus/cbmiec/c1526.h +++ b/src/devices/bus/cbmiec/c1526.h @@ -43,12 +43,12 @@ public: // construction/destruction c1526_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; virtual ioport_constructor device_input_ports() const override; virtual const tiny_rom_entry *device_rom_region() const override; -protected: // device_cbm_iec_interface overrides void cbm_iec_atn(int state) override; void cbm_iec_data(int state) override; @@ -64,12 +64,12 @@ public: // construction/destruction c4023_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; virtual ioport_constructor device_input_ports() const override; virtual const tiny_rom_entry *device_rom_region() const override; -protected: // device_ieee488_interface overrides virtual void ieee488_atn(int state) override; virtual void ieee488_ifc(int state) override; diff --git a/src/devices/bus/cbmiec/c1541.cpp b/src/devices/bus/cbmiec/c1541.cpp index bf947e03987..092d2155ee2 100644 --- a/src/devices/bus/cbmiec/c1541.cpp +++ b/src/devices/bus/cbmiec/c1541.cpp @@ -808,10 +808,10 @@ WRITE8_MEMBER( c1541_prologic_dos_classic_device::pia_pb_w ) //------------------------------------------------- -// MACHINE_DRIVER( c1541 ) +// device_add_mconfig - add device configuration //------------------------------------------------- -static MACHINE_CONFIG_START( c1541 ) +MACHINE_CONFIG_MEMBER( c1541_device_base::device_add_mconfig ) MCFG_CPU_ADD(M6502_TAG, M6502, XTAL_16MHz/16) MCFG_CPU_PROGRAM_MAP(c1541_mem) MCFG_QUANTUM_PERFECT_CPU(M6502_TAG) @@ -840,89 +840,29 @@ static MACHINE_CONFIG_START( c1541 ) MACHINE_CONFIG_END -//------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations -//------------------------------------------------- - -machine_config_constructor c1541_device_base::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( c1541 ); -} - - -//------------------------------------------------- -// MACHINE_DRIVER( c1541c ) -//------------------------------------------------- - -static MACHINE_CONFIG_START( c1541c ) - MCFG_FRAGMENT_ADD(c1541) +MACHINE_CONFIG_MEMBER( c1541c_device::device_add_mconfig ) + c1541_device_base::device_add_mconfig(config); MACHINE_CONFIG_END -//------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations -//------------------------------------------------- - -machine_config_constructor c1541c_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( c1541c ); -} - - -//------------------------------------------------- -// MACHINE_DRIVER( c1541dd ) -//------------------------------------------------- - -static MACHINE_CONFIG_START( c1541dd ) - MCFG_FRAGMENT_ADD(c1541) +MACHINE_CONFIG_MEMBER( c1541_dolphin_dos_device::device_add_mconfig ) + c1541_device_base::device_add_mconfig(config); MCFG_CPU_MODIFY(M6502_TAG) MCFG_CPU_PROGRAM_MAP(c1541dd_mem) MACHINE_CONFIG_END -//------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations -//------------------------------------------------- - -machine_config_constructor c1541_dolphin_dos_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( c1541dd ); -} - - -//------------------------------------------------- -// MACHINE_DRIVER( c1541pd ) -//------------------------------------------------- - -static MACHINE_CONFIG_START( c1541pd ) - MCFG_FRAGMENT_ADD(c1541) +MACHINE_CONFIG_MEMBER( c1541_professional_dos_v1_device::device_add_mconfig ) + c1541_device_base::device_add_mconfig(config); MCFG_CPU_MODIFY(M6502_TAG) MCFG_CPU_PROGRAM_MAP(c1541pd_mem) MACHINE_CONFIG_END -//------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations -//------------------------------------------------- - -machine_config_constructor c1541_professional_dos_v1_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( c1541pd ); -} - - -//------------------------------------------------- -// MACHINE_DRIVER( c1541pdc ) -//------------------------------------------------- - -static MACHINE_CONFIG_START( c1541pdc ) - MCFG_FRAGMENT_ADD(c1541) +MACHINE_CONFIG_MEMBER( c1541_prologic_dos_classic_device::device_add_mconfig ) + c1541_device_base::device_add_mconfig(config); MCFG_CPU_MODIFY(M6502_TAG) MCFG_CPU_PROGRAM_MAP(c1541pdc_mem) @@ -939,17 +879,6 @@ static MACHINE_CONFIG_START( c1541pdc ) MACHINE_CONFIG_END -//------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations -//------------------------------------------------- - -machine_config_constructor c1541_prologic_dos_classic_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( c1541pdc ); -} - - //------------------------------------------------- // INPUT_PORTS( c1541 ) //------------------------------------------------- @@ -1004,11 +933,11 @@ c1541_device_base::c1541_device_base(const machine_config &mconfig, device_type device_t(mconfig, type, tag, owner, clock), device_cbm_iec_interface(mconfig, *this), device_c64_floppy_parallel_interface(mconfig, *this), + m_floppy(*this, C64H156_TAG":0:525ssqd"), m_maincpu(*this, M6502_TAG), m_via0(*this, M6522_0_TAG), m_via1(*this, M6522_1_TAG), m_ga(*this, C64H156_TAG), - m_floppy(*this, C64H156_TAG":0:525ssqd"), m_address(*this, "ADDRESS"), m_data_out(1), m_via0_irq(CLEAR_LINE), diff --git a/src/devices/bus/cbmiec/c1541.h b/src/devices/bus/cbmiec/c1541.h index 3725da29fa5..d2f3cfca377 100644 --- a/src/devices/bus/cbmiec/c1541.h +++ b/src/devices/bus/cbmiec/c1541.h @@ -39,11 +39,37 @@ class c1541_device_base : public device_t, public device_cbm_iec_interface, public device_c64_floppy_parallel_interface { -public: +protected: + // construction/destruction + c1541_device_base(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 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_cbm_iec_interface overrides + virtual void cbm_iec_atn(int state) override; + virtual void cbm_iec_reset(int state) override; + + // device_c64_floppy_parallel_interface overrides + virtual void parallel_data_w(uint8_t data) override; + virtual void parallel_strobe_w(int state) override; + + required_device m_floppy; + +private: + enum + { + LED_POWER = 0, + LED_ACT + }; + + inline void set_iec_data(); + DECLARE_WRITE_LINE_MEMBER( via0_irq_w ); virtual DECLARE_READ8_MEMBER( via0_pa_r ); DECLARE_WRITE8_MEMBER( via0_pa_w ); @@ -58,35 +84,10 @@ public: DECLARE_FLOPPY_FORMATS( floppy_formats ); -protected: - // construction/destruction - c1541_device_base(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; - - // device_cbm_iec_interface overrides - virtual void cbm_iec_atn(int state) override; - virtual void cbm_iec_reset(int state) override; - - // device_c64_floppy_parallel_interface overrides - virtual void parallel_data_w(uint8_t data) override; - virtual void parallel_strobe_w(int state) override; - - enum - { - LED_POWER = 0, - LED_ACT - }; - - inline void set_iec_data(); - required_device m_maincpu; required_device m_via0; required_device m_via1; required_device m_ga; - required_device m_floppy; required_ioport m_address; // IEC bus @@ -106,6 +107,7 @@ public: // construction/destruction c1540_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; }; @@ -119,6 +121,7 @@ public: // construction/destruction c1541_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; }; @@ -132,10 +135,12 @@ public: // construction/destruction c1541c_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: // not really public virtual DECLARE_READ8_MEMBER( via0_pa_r ) override; }; @@ -149,6 +154,7 @@ public: // construction/destruction c1541ii_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; }; @@ -162,6 +168,7 @@ public: // construction/destruction sx1541_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; }; @@ -175,6 +182,7 @@ public: // construction/destruction fsd1_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; }; @@ -188,6 +196,7 @@ public: // construction/destruction fsd2_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; @@ -204,6 +213,7 @@ public: // construction/destruction csd1_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; }; @@ -217,9 +227,10 @@ public: // construction/destruction c1541_dolphin_dos_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; }; @@ -231,9 +242,10 @@ public: // construction/destruction c1541_professional_dos_v1_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; }; @@ -245,25 +257,27 @@ public: // construction/destruction c1541_prologic_dos_classic_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; - // not really public DECLARE_READ8_MEMBER( read ); DECLARE_WRITE8_MEMBER( write ); +protected: + // optional information overrides + virtual const tiny_rom_entry *device_rom_region() const override; + virtual void device_add_mconfig(machine_config &config) override; + DECLARE_READ8_MEMBER( pia_r ); DECLARE_WRITE8_MEMBER( pia_w ); - DECLARE_WRITE8_MEMBER( pia_pa_w ); - DECLARE_READ8_MEMBER( pia_pb_r ); - DECLARE_WRITE8_MEMBER( pia_pb_w ); - protected: required_device m_pia; required_device m_cent_data_out; required_memory_region m_mmu_rom; + +private: + DECLARE_WRITE8_MEMBER( pia_pa_w ); + DECLARE_READ8_MEMBER( pia_pb_r ); + DECLARE_WRITE8_MEMBER( pia_pb_w ); }; @@ -275,6 +289,7 @@ public: // construction/destruction indus_gt_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; }; diff --git a/src/devices/bus/cbmiec/c1571.cpp b/src/devices/bus/cbmiec/c1571.cpp index 4c9041df1f4..a3f1ffd0ffd 100644 --- a/src/devices/bus/cbmiec/c1571.cpp +++ b/src/devices/bus/cbmiec/c1571.cpp @@ -597,10 +597,10 @@ static SLOT_INTERFACE_START( mini_chief_isa8_cards ) SLOT_INTERFACE_END //------------------------------------------------- -// MACHINE_DRIVER( c1570 ) +// device_add_mconfig - add device configuration //------------------------------------------------- -static MACHINE_CONFIG_START( c1570 ) +MACHINE_CONFIG_MEMBER( c1570_device::device_add_mconfig ) MCFG_CPU_ADD(M6502_TAG, M6502, XTAL_16MHz/16) MCFG_CPU_PROGRAM_MAP(c1571_mem) MCFG_QUANTUM_PERFECT_CPU(M6502_TAG) @@ -636,22 +636,7 @@ static MACHINE_CONFIG_START( c1570 ) MACHINE_CONFIG_END -//------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations -//------------------------------------------------- - -machine_config_constructor c1570_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( c1570 ); -} - - -//------------------------------------------------- -// MACHINE_DRIVER( c1571 ) -//------------------------------------------------- - -static MACHINE_CONFIG_START( c1571 ) +MACHINE_CONFIG_MEMBER( c1571_device::device_add_mconfig ) MCFG_CPU_ADD(M6502_TAG, M6502, XTAL_16MHz/16) MCFG_CPU_PROGRAM_MAP(c1571_mem) MCFG_QUANTUM_PERFECT_CPU(M6502_TAG) @@ -687,22 +672,7 @@ static MACHINE_CONFIG_START( c1571 ) MACHINE_CONFIG_END -//------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations -//------------------------------------------------- - -machine_config_constructor c1571_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( c1571 ); -} - - -//------------------------------------------------- -// MACHINE_DRIVER( c1571cr ) -//------------------------------------------------- - -static MACHINE_CONFIG_START( c1571cr ) +MACHINE_CONFIG_MEMBER( c1571cr_device::device_add_mconfig ) MCFG_CPU_ADD(M6502_TAG, M6502, XTAL_16MHz/16) MCFG_CPU_PROGRAM_MAP(c1571_mem) MCFG_QUANTUM_PERFECT_CPU(M6502_TAG) @@ -732,22 +702,7 @@ static MACHINE_CONFIG_START( c1571cr ) MACHINE_CONFIG_END -//------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations -//------------------------------------------------- - -machine_config_constructor c1571cr_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( c1571cr ); -} - - -//------------------------------------------------- -// MACHINE_DRIVER( mini_chief ) -//------------------------------------------------- - -static MACHINE_CONFIG_START( mini_chief ) +MACHINE_CONFIG_MEMBER( mini_chief_device::device_add_mconfig ) MCFG_CPU_ADD(M6502_TAG, M6502, XTAL_16MHz/16) MCFG_CPU_PROGRAM_MAP(mini_chief_mem) MCFG_QUANTUM_PERFECT_CPU(M6502_TAG) @@ -787,17 +742,6 @@ static MACHINE_CONFIG_START( mini_chief ) MACHINE_CONFIG_END -//------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations -//------------------------------------------------- - -machine_config_constructor mini_chief_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( mini_chief ); -} - - //------------------------------------------------- // INPUT_PORTS( c1571 ) //------------------------------------------------- diff --git a/src/devices/bus/cbmiec/c1571.h b/src/devices/bus/cbmiec/c1571.h index 3bc5b287b98..1864313fe8c 100644 --- a/src/devices/bus/cbmiec/c1571.h +++ b/src/devices/bus/cbmiec/c1571.h @@ -43,11 +43,6 @@ public: // construction/destruction c1571_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_WRITE_LINE_MEMBER( via0_irq_w ); DECLARE_READ8_MEMBER( via0_pa_r ); DECLARE_WRITE8_MEMBER( via0_pa_w ); @@ -80,6 +75,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_cbm_iec_interface overrides virtual void cbm_iec_srq(int state) override; virtual void cbm_iec_atn(int state) override; @@ -131,9 +131,10 @@ public: // construction/destruction c1570_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; }; @@ -145,10 +146,12 @@ public: // construction/destruction c1571cr_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_WRITE8_MEMBER( via0_pa_w ); DECLARE_WRITE8_MEMBER( via0_pb_w ); }; @@ -162,10 +165,12 @@ public: // construction/destruction mini_chief_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_READ8_MEMBER( cia_pa_r ); DECLARE_WRITE8_MEMBER( cia_pa_w ); DECLARE_WRITE8_MEMBER( cia_pb_w ); diff --git a/src/devices/bus/cbmiec/c1581.cpp b/src/devices/bus/cbmiec/c1581.cpp index 0f70bb013fc..c5bfb3d40fb 100644 --- a/src/devices/bus/cbmiec/c1581.cpp +++ b/src/devices/bus/cbmiec/c1581.cpp @@ -262,10 +262,10 @@ FLOPPY_FORMATS_END //------------------------------------------------- -// MACHINE_DRIVER( c1581 ) +// device_add_mconfig - add device configuration //------------------------------------------------- -static MACHINE_CONFIG_START( c1581 ) +MACHINE_CONFIG_MEMBER( c1581_device::device_add_mconfig ) MCFG_CPU_ADD(M6502_TAG, M6502, XTAL_16MHz/8) MCFG_CPU_PROGRAM_MAP(c1581_mem) @@ -283,17 +283,6 @@ static MACHINE_CONFIG_START( c1581 ) MACHINE_CONFIG_END -//------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations -//------------------------------------------------- - -machine_config_constructor c1581_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( c1581 ); -} - - //------------------------------------------------- // INPUT_PORTS( c1581 ) //------------------------------------------------- diff --git a/src/devices/bus/cbmiec/c1581.h b/src/devices/bus/cbmiec/c1581.h index 77d60400e8c..46d60c05e56 100644 --- a/src/devices/bus/cbmiec/c1581.h +++ b/src/devices/bus/cbmiec/c1581.h @@ -39,12 +39,33 @@ public: // construction/destruction c1581_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); +protected: + c1581_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 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; - // not really public + // device_cbm_iec_interface overrides + virtual void cbm_iec_srq(int state) override; + virtual void cbm_iec_atn(int state) override; + virtual void cbm_iec_data(int state) override; + virtual void cbm_iec_reset(int state) override; + +private: + enum + { + LED_POWER = 0, + LED_ACT + }; + + void update_iec(); + DECLARE_WRITE_LINE_MEMBER( cnt_w ); DECLARE_WRITE_LINE_MEMBER( sp_w ); DECLARE_READ8_MEMBER( cia_pa_r ); @@ -54,27 +75,6 @@ public: DECLARE_FLOPPY_FORMATS( floppy_formats ); -protected: - c1581_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; - - // device_cbm_iec_interface overrides - virtual void cbm_iec_srq(int state) override; - virtual void cbm_iec_atn(int state) override; - virtual void cbm_iec_data(int state) override; - virtual void cbm_iec_reset(int state) override; - - enum - { - LED_POWER = 0, - LED_ACT - }; - - void update_iec(); - required_device m_maincpu; required_device m_cia; required_device m_fdc; diff --git a/src/devices/bus/cbmiec/cmdhd.cpp b/src/devices/bus/cbmiec/cmdhd.cpp index 26d91a44cbf..41c1c86a54d 100644 --- a/src/devices/bus/cbmiec/cmdhd.cpp +++ b/src/devices/bus/cbmiec/cmdhd.cpp @@ -73,10 +73,10 @@ ADDRESS_MAP_END //------------------------------------------------- -// MACHINE_DRIVER( cmd_hd ) +// device_add_mconfig - add device configuration //------------------------------------------------- -static MACHINE_CONFIG_START( cmd_hd ) +MACHINE_CONFIG_MEMBER( cmd_hd_device::device_add_mconfig ) MCFG_CPU_ADD(M6502_TAG, M6502, 2000000) MCFG_CPU_PROGRAM_MAP(cmd_hd_mem) @@ -90,17 +90,6 @@ static MACHINE_CONFIG_START( cmd_hd ) MACHINE_CONFIG_END -//------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations -//------------------------------------------------- - -machine_config_constructor cmd_hd_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( cmd_hd ); -} - - //************************************************************************** // LIVE DEVICE diff --git a/src/devices/bus/cbmiec/cmdhd.h b/src/devices/bus/cbmiec/cmdhd.h index e648f379281..5b19ef10656 100644 --- a/src/devices/bus/cbmiec/cmdhd.h +++ b/src/devices/bus/cbmiec/cmdhd.h @@ -40,10 +40,6 @@ public: // construction/destruction cmd_hd_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( led_w ); protected: @@ -51,6 +47,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_cbm_iec_interface overrides void cbm_iec_srq(int state) override; void cbm_iec_atn(int state) override; diff --git a/src/devices/bus/cbmiec/fd2000.cpp b/src/devices/bus/cbmiec/fd2000.cpp index 3a9618bd61e..6f5cc650245 100644 --- a/src/devices/bus/cbmiec/fd2000.cpp +++ b/src/devices/bus/cbmiec/fd2000.cpp @@ -77,16 +77,13 @@ ROM_END const tiny_rom_entry *fd2000_device::device_rom_region() const { - switch (m_variant) - { - default: - return ROM_NAME( fd2000 ); - - case TYPE_FD4000: - return ROM_NAME( fd4000 ); - } + return ROM_NAME( fd2000 ); } +const tiny_rom_entry *fd4000_device::device_rom_region() const +{ + return ROM_NAME( fd4000 ); +} //------------------------------------------------- // ADDRESS_MAP( fd2000_mem ) @@ -209,11 +206,12 @@ FLOPPY_FORMATS_MEMBER( fd2000_device::floppy_formats ) FLOPPY_FORMATS_END */ + //------------------------------------------------- -// MACHINE_DRIVER( fd2000 ) +// device_add_mconfig - add device configuration //------------------------------------------------- -static MACHINE_CONFIG_START( fd2000 ) +MACHINE_CONFIG_MEMBER( fd2000_device::device_add_mconfig ) MCFG_CPU_ADD(G65SC02PI2_TAG, M65C02, XTAL_24MHz/12) MCFG_CPU_PROGRAM_MAP(fd2000_mem) @@ -229,11 +227,7 @@ static MACHINE_CONFIG_START( fd2000 ) MACHINE_CONFIG_END -//------------------------------------------------- -// MACHINE_DRIVER( fd4000 ) -//------------------------------------------------- - -static MACHINE_CONFIG_START( fd4000 ) +MACHINE_CONFIG_MEMBER( fd4000_device::device_add_mconfig ) MCFG_CPU_ADD(R65C02P4_TAG, M65C02, XTAL_24MHz/6) MCFG_CPU_PROGRAM_MAP(fd4000_mem) @@ -249,24 +243,6 @@ static MACHINE_CONFIG_START( fd4000 ) MACHINE_CONFIG_END -//------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations -//------------------------------------------------- - -machine_config_constructor fd2000_device::device_mconfig_additions() const -{ - switch (m_variant) - { - default: - return MACHINE_CONFIG_NAME( fd2000 ); - - case TYPE_FD4000: - return MACHINE_CONFIG_NAME( fd4000 ); - } -} - - //************************************************************************** // LIVE DEVICE //************************************************************************** @@ -276,17 +252,16 @@ machine_config_constructor fd2000_device::device_mconfig_additions() const //------------------------------------------------- fd2000_device::fd2000_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : fd2000_device(mconfig, FD2000, tag, owner, clock, TYPE_FD2000) + : fd2000_device(mconfig, FD2000, tag, owner, clock) { } -fd2000_device::fd2000_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t variant) +fd2000_device::fd2000_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : device_t(mconfig, type, tag, owner, clock) , device_cbm_iec_interface(mconfig, *this) - , m_maincpu(*this, R65C02P4_TAG) - , m_fdc(*this, PC8477AV1_TAG) - , m_floppy0(*this, PC8477AV1_TAG":0") - , m_variant(variant) + , m_maincpu(*this, G65SC02PI2_TAG) + , m_fdc(*this, DP8473V_TAG) + , m_floppy0(*this, DP8473V_TAG":0") { } @@ -296,8 +271,11 @@ fd2000_device::fd2000_device(const machine_config &mconfig, device_type type, co //------------------------------------------------- fd4000_device::fd4000_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : fd2000_device(mconfig, FD4000, tag, owner, clock, TYPE_FD4000) + : fd2000_device(mconfig, FD4000, tag, owner, clock) { + m_maincpu.set_tag(R65C02P4_TAG); + m_fdc.set_tag(PC8477AV1_TAG); + m_floppy0.set_tag(PC8477AV1_TAG":0"); } diff --git a/src/devices/bus/cbmiec/fd2000.h b/src/devices/bus/cbmiec/fd2000.h index 4623a0d8d10..0331ce535de 100644 --- a/src/devices/bus/cbmiec/fd2000.h +++ b/src/devices/bus/cbmiec/fd2000.h @@ -40,10 +40,6 @@ public: // construction/destruction fd2000_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( via_pa_r ); DECLARE_WRITE8_MEMBER( via_pa_w ); DECLARE_READ8_MEMBER( via_pb_r ); @@ -52,18 +48,16 @@ public: //DECLARE_FLOPPY_FORMATS( floppy_formats ); protected: - enum - { - TYPE_FD2000, - TYPE_FD4000 - }; - - fd2000_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t variant); + fd2000_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 const tiny_rom_entry *device_rom_region() const override; + virtual void device_add_mconfig(machine_config &config) override; + // device_cbm_iec_interface overrides void cbm_iec_srq(int state) override; void cbm_iec_atn(int state) override; @@ -73,8 +67,6 @@ protected: required_device m_maincpu; required_device m_fdc; required_device m_floppy0; - - int m_variant; }; @@ -85,6 +77,10 @@ class fd4000_device : public fd2000_device public: // construction/destruction fd4000_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + +protected: + virtual const tiny_rom_entry *device_rom_region() const override; + virtual void device_add_mconfig(machine_config &config) override; }; diff --git a/src/devices/bus/cbmiec/interpod.cpp b/src/devices/bus/cbmiec/interpod.cpp index deeca37da91..d645e065513 100644 --- a/src/devices/bus/cbmiec/interpod.cpp +++ b/src/devices/bus/cbmiec/interpod.cpp @@ -120,10 +120,10 @@ ADDRESS_MAP_END //------------------------------------------------- -// MACHINE_DRIVER( interpod ) +// device_add_mconfig - add device configuration //------------------------------------------------- -static MACHINE_CONFIG_START( interpod ) +MACHINE_CONFIG_MEMBER( interpod_device::device_add_mconfig ) MCFG_CPU_ADD(R6502_TAG, M6502, 1000000) MCFG_CPU_PROGRAM_MAP(interpod_mem) @@ -135,17 +135,6 @@ static MACHINE_CONFIG_START( interpod ) MACHINE_CONFIG_END -//------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations -//------------------------------------------------- - -machine_config_constructor interpod_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( interpod ); -} - - //************************************************************************** // LIVE DEVICE //************************************************************************** diff --git a/src/devices/bus/cbmiec/interpod.h b/src/devices/bus/cbmiec/interpod.h index b33eb8bcd86..b7345ea7377 100644 --- a/src/devices/bus/cbmiec/interpod.h +++ b/src/devices/bus/cbmiec/interpod.h @@ -49,15 +49,15 @@ public: // construction/destruction interpod_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; - 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; + required_device m_maincpu; required_device m_via; required_device m_riot; diff --git a/src/devices/bus/cbmiec/serialbox.cpp b/src/devices/bus/cbmiec/serialbox.cpp index 03ba96f6690..686710c3055 100644 --- a/src/devices/bus/cbmiec/serialbox.cpp +++ b/src/devices/bus/cbmiec/serialbox.cpp @@ -65,26 +65,15 @@ ADDRESS_MAP_END //------------------------------------------------- -// MACHINE_DRIVER( serial_box ) +// device_add_mconfig - add device configuration //------------------------------------------------- -static MACHINE_CONFIG_START( serial_box ) +MACHINE_CONFIG_MEMBER( serial_box_device::device_add_mconfig ) MCFG_CPU_ADD(M6502_TAG, M65C02, XTAL_4MHz/4) MCFG_CPU_PROGRAM_MAP(serial_box_mem) MACHINE_CONFIG_END -//------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations -//------------------------------------------------- - -machine_config_constructor serial_box_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( serial_box ); -} - - //************************************************************************** // LIVE DEVICE diff --git a/src/devices/bus/cbmiec/serialbox.h b/src/devices/bus/cbmiec/serialbox.h index 67fa9feacf5..8633e374ec2 100644 --- a/src/devices/bus/cbmiec/serialbox.h +++ b/src/devices/bus/cbmiec/serialbox.h @@ -36,15 +36,15 @@ public: // construction/destruction serial_box_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; - 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; + // device_cbm_iec_interface overrides void cbm_iec_atn(int state) override; void cbm_iec_data(int state) override; diff --git a/src/devices/bus/cbmiec/vic1515.cpp b/src/devices/bus/cbmiec/vic1515.cpp index 8ef5a1ae986..a647aff8456 100644 --- a/src/devices/bus/cbmiec/vic1515.cpp +++ b/src/devices/bus/cbmiec/vic1515.cpp @@ -56,27 +56,16 @@ ADDRESS_MAP_END //------------------------------------------------- -// MACHINE_DRIVER( vic1515 ) +// device_add_mconfig - add device configuration //------------------------------------------------- -static MACHINE_CONFIG_START( vic1515 ) +MACHINE_CONFIG_MEMBER( vic1515_device::device_add_mconfig ) MCFG_CPU_ADD("maincpu", I8039, XTAL_6MHz) MCFG_CPU_PROGRAM_MAP(vic1515_mem) MCFG_CPU_IO_MAP(vic1515_io) MACHINE_CONFIG_END -//------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations -//------------------------------------------------- - -machine_config_constructor vic1515_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( vic1515 ); -} - - //------------------------------------------------- // INPUT_PORTS( vic1515 ) //------------------------------------------------- diff --git a/src/devices/bus/cbmiec/vic1515.h b/src/devices/bus/cbmiec/vic1515.h index ca5452aa35c..7c6876897bc 100644 --- a/src/devices/bus/cbmiec/vic1515.h +++ b/src/devices/bus/cbmiec/vic1515.h @@ -28,16 +28,16 @@ public: // construction/destruction vic1515_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; 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_cbm_iec_interface overrides void cbm_iec_atn(int state) override; void cbm_iec_data(int state) override; diff --git a/src/devices/bus/cbmiec/vic1520.cpp b/src/devices/bus/cbmiec/vic1520.cpp index c8743a6ac3b..25297765dae 100644 --- a/src/devices/bus/cbmiec/vic1520.cpp +++ b/src/devices/bus/cbmiec/vic1520.cpp @@ -90,26 +90,15 @@ ADDRESS_MAP_END //------------------------------------------------- -// MACHINE_DRIVER( vic1520 ) +// device_add_mconfig - add device configuration //------------------------------------------------- -static MACHINE_CONFIG_START( vic1520 ) +MACHINE_CONFIG_MEMBER( vic1520_device::device_add_mconfig ) MCFG_CPU_ADD(M6500_1_TAG, M6502, XTAL_2MHz) // M6500/1 MCFG_CPU_PROGRAM_MAP(vic1520_mem) MACHINE_CONFIG_END -//------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations -//------------------------------------------------- - -machine_config_constructor vic1520_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( vic1520 ); -} - - //------------------------------------------------- // INPUT_PORTS( vic1520 ) //------------------------------------------------- diff --git a/src/devices/bus/cbmiec/vic1520.h b/src/devices/bus/cbmiec/vic1520.h index b39fa85b9b1..dba79b29618 100644 --- a/src/devices/bus/cbmiec/vic1520.h +++ b/src/devices/bus/cbmiec/vic1520.h @@ -28,16 +28,16 @@ public: // construction/destruction vic1520_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; 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_cbm_iec_interface overrides void cbm_iec_atn(int state) override; void cbm_iec_data(int state) override; diff --git a/src/devices/bus/centronics/comxpl80.cpp b/src/devices/bus/centronics/comxpl80.cpp index f50d9782dae..7fa35d5b117 100644 --- a/src/devices/bus/centronics/comxpl80.cpp +++ b/src/devices/bus/centronics/comxpl80.cpp @@ -95,10 +95,10 @@ ADDRESS_MAP_END //------------------------------------------------- -// MACHINE_DRIVER( comxpl80 ) +// device_add_mconfig - add device configuration //------------------------------------------------- -static MACHINE_CONFIG_START( comxpl80 ) +MACHINE_CONFIG_MEMBER( comx_pl80_device::device_add_mconfig ) MCFG_CPU_ADD(CX005_TAG, M6805, 4000000) // CX005: some kind of MC6805/MC68HC05 clone MCFG_CPU_PROGRAM_MAP(comxpl80_mem) MCFG_CPU_IO_MAP(comxpl80_io) @@ -106,17 +106,6 @@ static MACHINE_CONFIG_START( comxpl80 ) MACHINE_CONFIG_END -//------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations -//------------------------------------------------- - -machine_config_constructor comx_pl80_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( comxpl80 ); -} - - //------------------------------------------------- // INPUT_PORTS( comxpl80 ) //------------------------------------------------- diff --git a/src/devices/bus/centronics/comxpl80.h b/src/devices/bus/centronics/comxpl80.h index 2fbb809fd3b..8aca17e287b 100644 --- a/src/devices/bus/centronics/comxpl80.h +++ b/src/devices/bus/centronics/comxpl80.h @@ -29,11 +29,6 @@ public: // construction/destruction comx_pl80_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_WRITE8_MEMBER( pa_w ); DECLARE_WRITE8_MEMBER( pb_w ); @@ -45,6 +40,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; + virtual DECLARE_WRITE_LINE_MEMBER( input_data0 ) override { if (state) m_data |= 0x01; else m_data &= ~0x01; } virtual DECLARE_WRITE_LINE_MEMBER( input_data1 ) override { if (state) m_data |= 0x02; else m_data &= ~0x02; } virtual DECLARE_WRITE_LINE_MEMBER( input_data2 ) override { if (state) m_data |= 0x04; else m_data &= ~0x04; } diff --git a/src/devices/bus/centronics/covox.cpp b/src/devices/bus/centronics/covox.cpp index 76cb4cdb93c..5b55412a4c8 100644 --- a/src/devices/bus/centronics/covox.cpp +++ b/src/devices/bus/centronics/covox.cpp @@ -18,14 +18,6 @@ // device type definition DEFINE_DEVICE_TYPE(CENTRONICS_COVOX, centronics_covox_device, "covox", "Covox Speech Thing") -static MACHINE_CONFIG_START( covox ) - /* sound hardware */ - MCFG_SPEAKER_STANDARD_MONO("speaker") - MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) // unknown DAC - MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0) - 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 - /*************************************************************************** IMPLEMENTATION @@ -43,14 +35,16 @@ centronics_covox_device::centronics_covox_device(const machine_config &mconfig, } //------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations +// device_add_mconfig - add device configuration //------------------------------------------------- -machine_config_constructor centronics_covox_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( covox ); -} +MACHINE_CONFIG_MEMBER( centronics_covox_device::device_add_mconfig ) + /* sound hardware */ + MCFG_SPEAKER_STANDARD_MONO("speaker") + MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) // unknown DAC + MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0) + 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 void centronics_covox_device::device_start() { @@ -70,16 +64,6 @@ void centronics_covox_device::update_dac() // device type definition DEFINE_DEVICE_TYPE(CENTRONICS_COVOX_STEREO, centronics_covox_stereo_device, "covox_stereo", "Covox (Stereo-in-1)") -static MACHINE_CONFIG_START( covox_stereo ) - /* sound hardware */ - MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_SOUND_ADD("ldac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.5) // unknown DAC - MCFG_SOUND_ADD("rdac", DAC_8BIT_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_END - /*************************************************************************** IMPLEMENTATION @@ -100,14 +84,18 @@ centronics_covox_stereo_device::centronics_covox_stereo_device(const machine_con } //------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations +// device_add_mconfig - add device configuration //------------------------------------------------- -machine_config_constructor centronics_covox_stereo_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( covox_stereo ); -} +MACHINE_CONFIG_MEMBER( centronics_covox_stereo_device::device_add_mconfig ) + /* sound hardware */ + MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") + MCFG_SOUND_ADD("ldac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.5) // unknown DAC + MCFG_SOUND_ADD("rdac", DAC_8BIT_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_END void centronics_covox_stereo_device::device_start() { diff --git a/src/devices/bus/centronics/covox.h b/src/devices/bus/centronics/covox.h index 969065c117a..da6ed1063aa 100644 --- a/src/devices/bus/centronics/covox.h +++ b/src/devices/bus/centronics/covox.h @@ -23,13 +23,13 @@ public: // construction/destruction centronics_covox_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; + virtual DECLARE_WRITE_LINE_MEMBER( input_data0 ) override { if (state) m_data |= 0x01; else m_data &= ~0x01; update_dac(); } virtual DECLARE_WRITE_LINE_MEMBER( input_data1 ) override { if (state) m_data |= 0x02; else m_data &= ~0x02; update_dac(); } virtual DECLARE_WRITE_LINE_MEMBER( input_data2 ) override { if (state) m_data |= 0x04; else m_data &= ~0x04; update_dac(); } @@ -59,13 +59,13 @@ public: // construction/destruction centronics_covox_stereo_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; + virtual DECLARE_WRITE_LINE_MEMBER( input_strobe ) override { m_strobe = state; update_dac(); } virtual DECLARE_WRITE_LINE_MEMBER( input_data0 ) override { if (state) m_data |= 0x01; else m_data &= ~0x01; update_dac(); } virtual DECLARE_WRITE_LINE_MEMBER( input_data1 ) override { if (state) m_data |= 0x02; else m_data &= ~0x02; update_dac(); } diff --git a/src/devices/bus/centronics/digiblst.cpp b/src/devices/bus/centronics/digiblst.cpp index 6618d32af11..050a3840f35 100644 --- a/src/devices/bus/centronics/digiblst.cpp +++ b/src/devices/bus/centronics/digiblst.cpp @@ -18,14 +18,6 @@ // device type definition DEFINE_DEVICE_TYPE(CENTRONICS_DIGIBLASTER, centronics_digiblaster_device, "digiblst", "Digiblaster (DIY)") -static MACHINE_CONFIG_START( digiblst ) - /* sound hardware */ - MCFG_SPEAKER_STANDARD_MONO("speaker") - MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) // unknown DAC - MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0) - 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 - /*************************************************************************** IMPLEMENTATION @@ -43,14 +35,16 @@ centronics_digiblaster_device::centronics_digiblaster_device(const machine_confi } //------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations +// device_add_mconfig - add device configuration //------------------------------------------------- -machine_config_constructor centronics_digiblaster_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( digiblst ); -} +MACHINE_CONFIG_MEMBER( centronics_digiblaster_device::device_add_mconfig ) + /* sound hardware */ + MCFG_SPEAKER_STANDARD_MONO("speaker") + MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) // unknown DAC + MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0) + 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 void centronics_digiblaster_device::device_start() { diff --git a/src/devices/bus/centronics/digiblst.h b/src/devices/bus/centronics/digiblst.h index 4521b8a2a6b..d6c40cec78c 100644 --- a/src/devices/bus/centronics/digiblst.h +++ b/src/devices/bus/centronics/digiblst.h @@ -29,13 +29,13 @@ public: // construction/destruction centronics_digiblaster_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; + virtual DECLARE_WRITE_LINE_MEMBER( input_data0 ) override { if (state) m_data |= 0x01; else m_data &= ~0x01; update_dac(); } virtual DECLARE_WRITE_LINE_MEMBER( input_data1 ) override { if (state) m_data |= 0x02; else m_data &= ~0x02; update_dac(); } virtual DECLARE_WRITE_LINE_MEMBER( input_data2 ) override { if (state) m_data |= 0x04; else m_data &= ~0x04; update_dac(); } diff --git a/src/devices/bus/centronics/epson_ex800.cpp b/src/devices/bus/centronics/epson_ex800.cpp index 2aac8b5e68a..45dd6588e55 100644 --- a/src/devices/bus/centronics/epson_ex800.cpp +++ b/src/devices/bus/centronics/epson_ex800.cpp @@ -212,10 +212,10 @@ ADDRESS_MAP_END //------------------------------------------------- -// MACHINE_DRIVER( epson_ex800 ) +// device_add_mconfig - add device configuration //------------------------------------------------- -static MACHINE_CONFIG_START( epson_ex800 ) +MACHINE_CONFIG_MEMBER( epson_ex800_device::device_add_mconfig ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", UPD7810, 12000000) /* 12 MHz? */ MCFG_CPU_PROGRAM_MAP(ex800_mem) @@ -235,17 +235,6 @@ static MACHINE_CONFIG_START( epson_ex800 ) MACHINE_CONFIG_END -//------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations -//------------------------------------------------- - -machine_config_constructor epson_ex800_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( epson_ex800 ); -} - - /* The ON LINE switch is directly connected to the INT1 input of the CPU */ INPUT_CHANGED_MEMBER(epson_ex800_device::online_switch) { diff --git a/src/devices/bus/centronics/epson_ex800.h b/src/devices/bus/centronics/epson_ex800.h index 453670750d5..b559f7f5c2f 100644 --- a/src/devices/bus/centronics/epson_ex800.h +++ b/src/devices/bus/centronics/epson_ex800.h @@ -30,17 +30,6 @@ public: // construction/destruction epson_ex800_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(porta_r); - DECLARE_READ8_MEMBER(portb_r); - DECLARE_READ8_MEMBER(portc_r); - DECLARE_WRITE8_MEMBER(porta_w); - DECLARE_WRITE8_MEMBER(portb_w); - DECLARE_WRITE8_MEMBER(portc_w); DECLARE_READ8_MEMBER(devsel_r); DECLARE_WRITE8_MEMBER(devsel_w); DECLARE_READ8_MEMBER(gate5a_r); @@ -57,7 +46,19 @@ 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; + private: + DECLARE_READ8_MEMBER(porta_r); + DECLARE_READ8_MEMBER(portb_r); + DECLARE_READ8_MEMBER(portc_r); + DECLARE_WRITE8_MEMBER(porta_w); + DECLARE_WRITE8_MEMBER(portb_w); + DECLARE_WRITE8_MEMBER(portc_w); + required_device m_maincpu; required_device m_beeper; diff --git a/src/devices/bus/centronics/epson_lx800.cpp b/src/devices/bus/centronics/epson_lx800.cpp index 1cc732b5746..cfe0263172e 100644 --- a/src/devices/bus/centronics/epson_lx800.cpp +++ b/src/devices/bus/centronics/epson_lx800.cpp @@ -63,10 +63,10 @@ ADDRESS_MAP_END //------------------------------------------------- -// MACHINE_DRIVER( epson_lx800 ) +// device_add_mconfig - add device configuration //------------------------------------------------- -static MACHINE_CONFIG_START( epson_lx800 ) +MACHINE_CONFIG_MEMBER( epson_lx800_device::device_add_mconfig ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", UPD7810, XTAL_14_7456MHz) MCFG_CPU_PROGRAM_MAP(lx800_mem) @@ -98,17 +98,6 @@ static MACHINE_CONFIG_START( epson_lx800 ) MACHINE_CONFIG_END -//------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations -//------------------------------------------------- - -machine_config_constructor epson_lx800_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( epson_lx800 ); -} - - //------------------------------------------------- // INPUT_PORTS( epson_lx800 ) //------------------------------------------------- diff --git a/src/devices/bus/centronics/epson_lx800.h b/src/devices/bus/centronics/epson_lx800.h index 2cf67beb9eb..bb2f605f374 100644 --- a/src/devices/bus/centronics/epson_lx800.h +++ b/src/devices/bus/centronics/epson_lx800.h @@ -31,25 +31,10 @@ public: // construction/destruction epson_lx800_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(porta_r); - DECLARE_WRITE8_MEMBER(porta_w); - DECLARE_READ8_MEMBER(portc_r); - DECLARE_WRITE8_MEMBER(portc_w); DECLARE_READ8_MEMBER(centronics_data_r); DECLARE_WRITE_LINE_MEMBER(centronics_pe_w); DECLARE_WRITE_LINE_MEMBER(paperempty_led_w); DECLARE_WRITE_LINE_MEMBER(reset_w); - DECLARE_READ_LINE_MEMBER(an0_r); - DECLARE_READ_LINE_MEMBER(an1_r); - DECLARE_READ_LINE_MEMBER(an2_r); - DECLARE_READ_LINE_MEMBER(an3_r); - DECLARE_READ_LINE_MEMBER(an4_r); - DECLARE_READ_LINE_MEMBER(an5_r); protected: epson_lx800_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); @@ -58,7 +43,24 @@ 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; + private: + DECLARE_READ8_MEMBER(porta_r); + DECLARE_WRITE8_MEMBER(porta_w); + DECLARE_READ8_MEMBER(portc_r); + DECLARE_WRITE8_MEMBER(portc_w); + + DECLARE_READ_LINE_MEMBER(an0_r); + DECLARE_READ_LINE_MEMBER(an1_r); + DECLARE_READ_LINE_MEMBER(an2_r); + DECLARE_READ_LINE_MEMBER(an3_r); + DECLARE_READ_LINE_MEMBER(an4_r); + DECLARE_READ_LINE_MEMBER(an5_r); + required_device m_maincpu; required_device m_beep; }; diff --git a/src/devices/bus/centronics/epson_lx810l.cpp b/src/devices/bus/centronics/epson_lx810l.cpp index b8afcd7906f..e9dbe316d30 100644 --- a/src/devices/bus/centronics/epson_lx810l.cpp +++ b/src/devices/bus/centronics/epson_lx810l.cpp @@ -106,10 +106,10 @@ ADDRESS_MAP_END //------------------------------------------------- -// MACHINE_DRIVER( epson_lx810l ) +// device_add_mconfig - add device configuration //------------------------------------------------- -static MACHINE_CONFIG_START( epson_lx810l ) +MACHINE_CONFIG_MEMBER( epson_lx810l_device::device_add_mconfig ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", UPD7810, XTAL_14_7456MHz) MCFG_CPU_PROGRAM_MAP(lx810l_mem) @@ -172,16 +172,6 @@ static MACHINE_CONFIG_START( epson_lx810l ) MACHINE_CONFIG_END -//------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations -//------------------------------------------------- - -machine_config_constructor epson_lx810l_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( epson_lx810l ); -} - /*************************************************************************** INPUT PORTS diff --git a/src/devices/bus/centronics/epson_lx810l.h b/src/devices/bus/centronics/epson_lx810l.h index 429266de8e4..d8add7e8b4e 100644 --- a/src/devices/bus/centronics/epson_lx810l.h +++ b/src/devices/bus/centronics/epson_lx810l.h @@ -41,11 +41,42 @@ public: // construction/destruction epson_lx810l_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + /* fake memory I/O to get past memory reset check */ + DECLARE_READ8_MEMBER(fakemem_r); + DECLARE_WRITE8_MEMBER(fakemem_w); + + /* Centronics stuff */ + virtual DECLARE_WRITE_LINE_MEMBER( input_strobe ) override { if (m_e05a30) m_e05a30->centronics_input_strobe(state); } + virtual DECLARE_WRITE_LINE_MEMBER( input_data0 ) override { if (m_e05a30) m_e05a30->centronics_input_data0(state); } + virtual DECLARE_WRITE_LINE_MEMBER( input_data1 ) override { if (m_e05a30) m_e05a30->centronics_input_data1(state); } + virtual DECLARE_WRITE_LINE_MEMBER( input_data2 ) override { if (m_e05a30) m_e05a30->centronics_input_data2(state); } + virtual DECLARE_WRITE_LINE_MEMBER( input_data3 ) override { if (m_e05a30) m_e05a30->centronics_input_data3(state); } + virtual DECLARE_WRITE_LINE_MEMBER( input_data4 ) override { if (m_e05a30) m_e05a30->centronics_input_data4(state); } + virtual DECLARE_WRITE_LINE_MEMBER( input_data5 ) override { if (m_e05a30) m_e05a30->centronics_input_data5(state); } + virtual DECLARE_WRITE_LINE_MEMBER( input_data6 ) override { if (m_e05a30) m_e05a30->centronics_input_data6(state); } + virtual DECLARE_WRITE_LINE_MEMBER( input_data7 ) override { if (m_e05a30) m_e05a30->centronics_input_data7(state); } + + /* Panel buttons */ + DECLARE_INPUT_CHANGED_MEMBER(online_sw); + + /* Video hardware (simulates paper) */ +#define uabs(x) ((x) > 0 ? (x) : -(x)) + unsigned int bitmap_line(int i) { return ((uabs(m_pf_pos_abs) / 6) + i) % m_bitmap.height(); } + +protected: + epson_lx810l_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; + 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 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_READ8_MEMBER(porta_r); DECLARE_WRITE8_MEMBER(porta_w); DECLARE_READ8_MEMBER(portb_r); @@ -66,49 +97,22 @@ public: DECLARE_READ8_MEMBER(an6_r); DECLARE_READ8_MEMBER(an7_r); - /* fake memory I/O to get past memory reset check */ - DECLARE_READ8_MEMBER(fakemem_r); - DECLARE_WRITE8_MEMBER(fakemem_w); - + /* GATE ARRAY */ DECLARE_WRITE16_MEMBER(printhead); DECLARE_WRITE8_MEMBER(pf_stepper); DECLARE_WRITE8_MEMBER(cr_stepper); DECLARE_WRITE_LINE_MEMBER(e05a30_ready); - /* Centronics stuff */ - virtual DECLARE_WRITE_LINE_MEMBER( input_strobe ) override { if (m_e05a30) m_e05a30->centronics_input_strobe(state); } - virtual DECLARE_WRITE_LINE_MEMBER( input_data0 ) override { if (m_e05a30) m_e05a30->centronics_input_data0(state); } - virtual DECLARE_WRITE_LINE_MEMBER( input_data1 ) override { if (m_e05a30) m_e05a30->centronics_input_data1(state); } - virtual DECLARE_WRITE_LINE_MEMBER( input_data2 ) override { if (m_e05a30) m_e05a30->centronics_input_data2(state); } - virtual DECLARE_WRITE_LINE_MEMBER( input_data3 ) override { if (m_e05a30) m_e05a30->centronics_input_data3(state); } - virtual DECLARE_WRITE_LINE_MEMBER( input_data4 ) override { if (m_e05a30) m_e05a30->centronics_input_data4(state); } - virtual DECLARE_WRITE_LINE_MEMBER( input_data5 ) override { if (m_e05a30) m_e05a30->centronics_input_data5(state); } - virtual DECLARE_WRITE_LINE_MEMBER( input_data6 ) override { if (m_e05a30) m_e05a30->centronics_input_data6(state); } - virtual DECLARE_WRITE_LINE_MEMBER( input_data7 ) override { if (m_e05a30) m_e05a30->centronics_input_data7(state); } DECLARE_WRITE_LINE_MEMBER(e05a30_centronics_ack) { output_ack(state); } DECLARE_WRITE_LINE_MEMBER(e05a30_centronics_busy) { output_busy(state); } DECLARE_WRITE_LINE_MEMBER(e05a30_centronics_perror) { output_perror(state); } DECLARE_WRITE_LINE_MEMBER(e05a30_centronics_fault) { output_fault(state); } DECLARE_WRITE_LINE_MEMBER(e05a30_centronics_select) { output_select(state); } - /* Panel buttons */ - DECLARE_INPUT_CHANGED_MEMBER(online_sw); - /* Video hardware (simulates paper) */ uint32_t screen_update_lx810l(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); -#define uabs(x) ((x) > 0 ? (x) : -(x)) - unsigned int bitmap_line(int i) { return ((uabs(m_pf_pos_abs) / 6) + i) % m_bitmap.height(); } -protected: - epson_lx810l_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; - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; - -private: required_device m_maincpu; required_device m_pf_stepper; required_device m_cr_stepper; diff --git a/src/devices/bus/centronics/nec_p72.cpp b/src/devices/bus/centronics/nec_p72.cpp index b0f696acfce..ba0276a61fb 100644 --- a/src/devices/bus/centronics/nec_p72.cpp +++ b/src/devices/bus/centronics/nec_p72.cpp @@ -45,26 +45,16 @@ ADDRESS_MAP_END //------------------------------------------------- -// MACHINE_DRIVER( nec_p72 ) +// device_add_mconfig - add device configuration //------------------------------------------------- -static MACHINE_CONFIG_START( nec_p72 ) +MACHINE_CONFIG_MEMBER( nec_p72_device::device_add_mconfig ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", V33, XTAL_16MHz/2) /* TODO it's actually a V40 */ MCFG_CPU_PROGRAM_MAP(p72_mem) MACHINE_CONFIG_END -//------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations -//------------------------------------------------- - -machine_config_constructor nec_p72_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( nec_p72 ); -} - //------------------------------------------------- // device_start - device-specific startup diff --git a/src/devices/bus/centronics/nec_p72.h b/src/devices/bus/centronics/nec_p72.h index c34e1886c17..fd50e36b447 100644 --- a/src/devices/bus/centronics/nec_p72.h +++ b/src/devices/bus/centronics/nec_p72.h @@ -22,16 +22,16 @@ public: // construction/destruction nec_p72_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; - protected: nec_p72_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 const tiny_rom_entry *device_rom_region() const override; + virtual void device_add_mconfig(machine_config &config) override; + private: required_device m_maincpu; }; diff --git a/src/devices/bus/centronics/printer.cpp b/src/devices/bus/centronics/printer.cpp index beb2deaf853..ff926f5ad7e 100644 --- a/src/devices/bus/centronics/printer.cpp +++ b/src/devices/bus/centronics/printer.cpp @@ -11,12 +11,6 @@ DEFINE_DEVICE_TYPE(CENTRONICS_PRINTER, centronics_printer_device, "centronics_printer", "Centronics Printer") -static MACHINE_CONFIG_START( centronics_printer ) - MCFG_DEVICE_ADD("printer", PRINTER, 0) - MCFG_PRINTER_ONLINE_CB(WRITELINE(centronics_printer_device, printer_online)) -MACHINE_CONFIG_END - - /*************************************************************************** IMPLEMENTATION ***************************************************************************/ @@ -34,14 +28,14 @@ centronics_printer_device::centronics_printer_device(const machine_config &mconf { } //------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations +// device_add_mconfig - add device configuration //------------------------------------------------- -machine_config_constructor centronics_printer_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( centronics_printer ); -} + +MACHINE_CONFIG_MEMBER( centronics_printer_device::device_add_mconfig ) + MCFG_DEVICE_ADD("printer", PRINTER, 0) + MCFG_PRINTER_ONLINE_CB(WRITELINE(centronics_printer_device, printer_online)) +MACHINE_CONFIG_END /*------------------------------------------------- printer_online - callback that diff --git a/src/devices/bus/centronics/printer.h b/src/devices/bus/centronics/printer.h index 9e1f358c569..df767a9c5ab 100644 --- a/src/devices/bus/centronics/printer.h +++ b/src/devices/bus/centronics/printer.h @@ -28,16 +28,15 @@ public: virtual DECLARE_WRITE_LINE_MEMBER( input_data7 ) override { if (state) m_data |= 0x80; else m_data &= ~0x80; } virtual DECLARE_WRITE_LINE_MEMBER( input_init ) override; - DECLARE_WRITE_LINE_MEMBER( printer_online ); - protected: // device-level overrides - virtual machine_config_constructor device_mconfig_additions() const override; + virtual void device_add_mconfig(machine_config &config) override; 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; private: + DECLARE_WRITE_LINE_MEMBER( printer_online ); enum { diff --git a/src/devices/bus/cgenie/expansion/floppy.cpp b/src/devices/bus/cgenie/expansion/floppy.cpp index d72127203ff..78e159d3ac0 100644 --- a/src/devices/bus/cgenie/expansion/floppy.cpp +++ b/src/devices/bus/cgenie/expansion/floppy.cpp @@ -66,11 +66,10 @@ const tiny_rom_entry *cgenie_fdc_device::device_rom_region() const } //------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations +// device_add_mconfig - add device configuration //------------------------------------------------- -static MACHINE_CONFIG_START( cgenie_fdc ) +MACHINE_CONFIG_MEMBER( cgenie_fdc_device::device_add_mconfig ) MCFG_TIMER_DRIVER_ADD_PERIODIC("timer", cgenie_fdc_device, timer_callback, attotime::from_msec(25)) MCFG_FD1793_ADD("fd1793", XTAL_1MHz) @@ -90,11 +89,6 @@ static MACHINE_CONFIG_START( cgenie_fdc ) MCFG_SOFTWARE_LIST_ADD("rom_list", "cgenie_flop_rom") MACHINE_CONFIG_END -machine_config_constructor cgenie_fdc_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( cgenie_fdc ); -} - //************************************************************************** // LIVE DEVICE diff --git a/src/devices/bus/cgenie/expansion/floppy.h b/src/devices/bus/cgenie/expansion/floppy.h index b46f2eee796..0b180810318 100644 --- a/src/devices/bus/cgenie/expansion/floppy.h +++ b/src/devices/bus/cgenie/expansion/floppy.h @@ -32,23 +32,23 @@ public: TIMER_DEVICE_CALLBACK_MEMBER(timer_callback); - DECLARE_DEVICE_IMAGE_LOAD_MEMBER(socket_load); - - DECLARE_WRITE_LINE_MEMBER(intrq_w); DECLARE_READ8_MEMBER(irq_r); DECLARE_WRITE8_MEMBER(select_w); DECLARE_WRITE8_MEMBER(command_w); - DECLARE_FLOPPY_FORMATS(floppy_formats); - - protected: 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 void device_start() override; virtual void device_reset() override; private: + DECLARE_DEVICE_IMAGE_LOAD_MEMBER(socket_load); + + DECLARE_WRITE_LINE_MEMBER(intrq_w); + + DECLARE_FLOPPY_FORMATS(floppy_formats); + required_device m_fdc; required_device m_floppy0; required_device m_floppy1; diff --git a/src/devices/bus/cgenie/parallel/printer.cpp b/src/devices/bus/cgenie/parallel/printer.cpp index 2f106750526..740524306bb 100644 --- a/src/devices/bus/cgenie/parallel/printer.cpp +++ b/src/devices/bus/cgenie/parallel/printer.cpp @@ -24,11 +24,10 @@ DEFINE_DEVICE_TYPE(CGENIE_PRINTER, cgenie_printer_device, "cgenie_printer", "Printer Interface EG2012") //------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations +// device_add_mconfig - add device configuration //------------------------------------------------- -static MACHINE_CONFIG_START( cgenie_printer ) +MACHINE_CONFIG_MEMBER( cgenie_printer_device::device_add_mconfig ) MCFG_CENTRONICS_ADD("centronics", centronics_devices, "printer") MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(cgenie_printer_device, busy_w)) MCFG_CENTRONICS_PERROR_HANDLER(WRITELINE(cgenie_printer_device, perror_w)) @@ -37,11 +36,6 @@ static MACHINE_CONFIG_START( cgenie_printer ) MCFG_CENTRONICS_OUTPUT_LATCH_ADD("latch", "centronics") MACHINE_CONFIG_END -machine_config_constructor cgenie_printer_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( cgenie_printer ); -} - //************************************************************************** // LIVE DEVICE diff --git a/src/devices/bus/cgenie/parallel/printer.h b/src/devices/bus/cgenie/parallel/printer.h index f2a5338be27..6da59e68ea0 100644 --- a/src/devices/bus/cgenie/parallel/printer.h +++ b/src/devices/bus/cgenie/parallel/printer.h @@ -27,13 +27,8 @@ public: // construction/destruction cgenie_printer_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - DECLARE_WRITE_LINE_MEMBER(busy_w); - DECLARE_WRITE_LINE_MEMBER(perror_w); - DECLARE_WRITE_LINE_MEMBER(select_w); - DECLARE_WRITE_LINE_MEMBER(fault_w); - protected: - virtual machine_config_constructor device_mconfig_additions() const override; + virtual void device_add_mconfig(machine_config &config) override; virtual void device_start() override; virtual void device_reset() override; @@ -42,6 +37,11 @@ protected: virtual void pb_w(uint8_t data) override; private: + DECLARE_WRITE_LINE_MEMBER(busy_w); + DECLARE_WRITE_LINE_MEMBER(perror_w); + DECLARE_WRITE_LINE_MEMBER(select_w); + DECLARE_WRITE_LINE_MEMBER(fault_w); + required_device m_centronics; required_device m_latch; diff --git a/src/devices/bus/compis/hrg.cpp b/src/devices/bus/compis/hrg.cpp index 4941b1e6191..a28deba73d1 100644 --- a/src/devices/bus/compis/hrg.cpp +++ b/src/devices/bus/compis/hrg.cpp @@ -72,10 +72,10 @@ UPD7220_DISPLAY_PIXELS_MEMBER( compis_uhrg_device::display_pixels ) //------------------------------------------------- -// MACHINE_CONFIG_START( hrg ) +// device_add_mconfig - add device configuration //------------------------------------------------- -static MACHINE_CONFIG_START( hrg ) +MACHINE_CONFIG_MEMBER( compis_hrg_device::device_add_mconfig ) MCFG_SCREEN_ADD_MONOCHROME(SCREEN_TAG, RASTER, rgb_t::green()) MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK) MCFG_SCREEN_REFRESH_RATE(50) @@ -93,22 +93,7 @@ static MACHINE_CONFIG_START( hrg ) MACHINE_CONFIG_END -//------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations -//------------------------------------------------- - -machine_config_constructor compis_hrg_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( hrg ); -} - - -//------------------------------------------------- -// MACHINE_CONFIG_START( uhrg ) -//------------------------------------------------- - -static MACHINE_CONFIG_START( uhrg ) +MACHINE_CONFIG_MEMBER( compis_uhrg_device::device_add_mconfig ) MCFG_SCREEN_ADD_MONOCHROME(SCREEN_TAG, RASTER, rgb_t::green()) MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK) MCFG_SCREEN_REFRESH_RATE(50) @@ -126,18 +111,6 @@ static MACHINE_CONFIG_START( uhrg ) MACHINE_CONFIG_END -//------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations -//------------------------------------------------- - -machine_config_constructor compis_uhrg_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( uhrg ); -} - - - //************************************************************************** // LIVE DEVICE //************************************************************************** diff --git a/src/devices/bus/compis/hrg.h b/src/devices/bus/compis/hrg.h index 50dfe882d58..389cb745e94 100644 --- a/src/devices/bus/compis/hrg.h +++ b/src/devices/bus/compis/hrg.h @@ -29,11 +29,6 @@ public: // construction/destruction compis_hrg_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( display_pixels ); - protected: compis_hrg_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); @@ -41,6 +36,9 @@ protected: virtual void device_start() override; virtual void device_reset() override; + // optional information overrides + virtual void device_add_mconfig(machine_config &config) override; + // device_compis_graphics_card_interface overrides virtual uint8_t pcs6_6_r(address_space &space, offs_t offset) override; virtual void pcs6_6_w(address_space &space, offs_t offset, uint8_t data) override; @@ -50,6 +48,9 @@ protected: required_shared_ptr m_video_ram; uint8_t m_unk_video; + +private: + UPD7220_DISPLAY_PIXELS_MEMBER( display_pixels ); }; @@ -61,9 +62,11 @@ public: // construction/destruction compis_uhrg_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: UPD7220_DISPLAY_PIXELS_MEMBER( display_pixels ); }; diff --git a/src/devices/bus/compucolor/floppy.cpp b/src/devices/bus/compucolor/floppy.cpp index 20c79c8d22f..f61a9a706ee 100644 --- a/src/devices/bus/compucolor/floppy.cpp +++ b/src/devices/bus/compucolor/floppy.cpp @@ -47,25 +47,14 @@ SLOT_INTERFACE_END //------------------------------------------------- -// MACHINE_DRIVER( compucolor_floppy ) +// device_add_mconfig - add device configuration //------------------------------------------------- -static MACHINE_CONFIG_START( compucolor_floppy ) +MACHINE_CONFIG_MEMBER( compucolor_floppy_device::device_add_mconfig ) MCFG_FLOPPY_DRIVE_ADD("floppy", compucolor_floppies, "525sssd", compucolor_floppy_device::floppy_formats) MACHINE_CONFIG_END -//------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations -//------------------------------------------------- - -machine_config_constructor compucolor_floppy_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( compucolor_floppy ); -} - - //************************************************************************** // LIVE DEVICE diff --git a/src/devices/bus/compucolor/floppy.h b/src/devices/bus/compucolor/floppy.h index 69c6524ab01..0a5c064acf1 100644 --- a/src/devices/bus/compucolor/floppy.h +++ b/src/devices/bus/compucolor/floppy.h @@ -74,16 +74,14 @@ public: // construction/destruction compucolor_floppy_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - DECLARE_FLOPPY_FORMATS( floppy_formats ); - - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - 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; + // device_serial_port_interface overrides virtual void tx(uint8_t state); @@ -93,6 +91,8 @@ protected: virtual void select_w(int state) override; private: + DECLARE_FLOPPY_FORMATS( floppy_formats ); + required_device m_floppy; bool read_bit(); diff --git a/src/devices/bus/comx35/clm.cpp b/src/devices/bus/comx35/clm.cpp index a763a0d8d04..ad371e94f41 100644 --- a/src/devices/bus/comx35/clm.cpp +++ b/src/devices/bus/comx35/clm.cpp @@ -133,10 +133,10 @@ GFXDECODE_END //------------------------------------------------- -// MACHINE_CONFIG_START( comx_clm ) +// device_add_mconfig - add device configuration //------------------------------------------------- -static MACHINE_CONFIG_START( comx_clm ) +MACHINE_CONFIG_MEMBER( comx_clm_device::device_add_mconfig ) MCFG_SCREEN_ADD_MONOCHROME(MC6845_SCREEN_TAG, RASTER, rgb_t::white()) MCFG_SCREEN_UPDATE_DEVICE(MC6845_TAG, mc6845_device, screen_update) MCFG_SCREEN_SIZE(80*8, 24*8) @@ -154,18 +154,6 @@ static MACHINE_CONFIG_START( comx_clm ) MACHINE_CONFIG_END -//------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations -//------------------------------------------------- - -machine_config_constructor comx_clm_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( comx_clm ); -} - - - //************************************************************************** // LIVE DEVICE //************************************************************************** diff --git a/src/devices/bus/comx35/clm.h b/src/devices/bus/comx35/clm.h index 4967d386214..d16b23bceb3 100644 --- a/src/devices/bus/comx35/clm.h +++ b/src/devices/bus/comx35/clm.h @@ -30,24 +30,23 @@ public: // construction/destruction comx_clm_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; - - // not really public - MC6845_UPDATE_ROW( crtc_update_row ); - 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; + // device_comx_expansion_card_interface overrides virtual int comx_ef4_r() override; virtual uint8_t comx_mrd_r(address_space &space, offs_t offset, int *extrom) override; virtual void comx_mwr_w(address_space &space, offs_t offset, uint8_t data) override; private: + MC6845_UPDATE_ROW( crtc_update_row ); + required_device m_crtc; required_device m_palette; required_memory_region m_rom; diff --git a/src/devices/bus/comx35/expbox.cpp b/src/devices/bus/comx35/expbox.cpp index 21d83bf44e6..25d5c647f60 100644 --- a/src/devices/bus/comx35/expbox.cpp +++ b/src/devices/bus/comx35/expbox.cpp @@ -95,10 +95,10 @@ const tiny_rom_entry *comx_eb_device::device_rom_region() const //------------------------------------------------- -// MACHINE_CONFIG_START( comx_eb ) +// device_add_mconfig - add device configuration //------------------------------------------------- -static MACHINE_CONFIG_START( comx_eb ) +MACHINE_CONFIG_MEMBER( comx_eb_device::device_add_mconfig ) MCFG_COMX_EXPANSION_SLOT_ADD(SLOT1_TAG, comx_expansion_cards, "fd") MCFG_COMX_EXPANSION_SLOT_IRQ_CALLBACK(WRITELINE(comx_eb_device, slot1_irq_w)) MCFG_COMX_EXPANSION_SLOT_ADD(SLOT2_TAG, comx_expansion_cards, "clm") @@ -110,17 +110,6 @@ static MACHINE_CONFIG_START( comx_eb ) MACHINE_CONFIG_END -//------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations -//------------------------------------------------- - -machine_config_constructor comx_eb_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( comx_eb ); -} - - //************************************************************************** // LIVE DEVICE diff --git a/src/devices/bus/comx35/expbox.h b/src/devices/bus/comx35/expbox.h index ce266ee0402..4c806a79b92 100644 --- a/src/devices/bus/comx35/expbox.h +++ b/src/devices/bus/comx35/expbox.h @@ -36,11 +36,6 @@ public: // construction/destruction comx_eb_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - DECLARE_WRITE_LINE_MEMBER( slot1_irq_w ) { m_irq[0] = state; set_irq(); } - DECLARE_WRITE_LINE_MEMBER( slot2_irq_w ) { m_irq[1] = state; set_irq(); } - DECLARE_WRITE_LINE_MEMBER( slot3_irq_w ) { m_irq[2] = state; set_irq(); } - DECLARE_WRITE_LINE_MEMBER( slot4_irq_w ) { m_irq[3] = state; set_irq(); } - protected: // device-level overrides virtual void device_start() override; @@ -48,7 +43,7 @@ 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; // device_comx_expansion_card_interface overrides virtual int comx_ef4_r() override; @@ -61,6 +56,11 @@ protected: void set_irq() { m_slot->irq_w(m_irq[0] || m_irq[1] || m_irq[2] || m_irq[3]); } private: + DECLARE_WRITE_LINE_MEMBER( slot1_irq_w ) { m_irq[0] = state; set_irq(); } + DECLARE_WRITE_LINE_MEMBER( slot2_irq_w ) { m_irq[1] = state; set_irq(); } + DECLARE_WRITE_LINE_MEMBER( slot3_irq_w ) { m_irq[2] = state; set_irq(); } + DECLARE_WRITE_LINE_MEMBER( slot4_irq_w ) { m_irq[3] = state; set_irq(); } + required_memory_region m_rom; comx_expansion_slot_device *m_expansion_slot[MAX_EB_SLOTS]; diff --git a/src/devices/bus/comx35/fdc.cpp b/src/devices/bus/comx35/fdc.cpp index b7273c4a87a..0fbe31a7295 100644 --- a/src/devices/bus/comx35/fdc.cpp +++ b/src/devices/bus/comx35/fdc.cpp @@ -92,28 +92,17 @@ SLOT_INTERFACE_END //------------------------------------------------- -// MACHINE_CONFIG_START( comx_fd ) +// device_add_mconfig - add device configuration //------------------------------------------------- -static MACHINE_CONFIG_START( comx_fd ) +MACHINE_CONFIG_MEMBER( comx_fd_device::device_add_mconfig ) MCFG_WD1770_ADD(WD1770_TAG, XTAL_8MHz) MCFG_FLOPPY_DRIVE_ADD(WD1770_TAG":0", comx_fd_floppies, "525sd35t", comx_fd_device::floppy_formats) - MCFG_FLOPPY_DRIVE_ADD(WD1770_TAG":1", comx_fd_floppies, nullptr, comx_fd_device::floppy_formats) + MCFG_FLOPPY_DRIVE_ADD(WD1770_TAG":1", comx_fd_floppies, nullptr, comx_fd_device::floppy_formats) MACHINE_CONFIG_END -//------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations -//------------------------------------------------- - -machine_config_constructor comx_fd_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( comx_fd ); -} - - //************************************************************************** // LIVE DEVICE diff --git a/src/devices/bus/comx35/fdc.h b/src/devices/bus/comx35/fdc.h index bc23816da98..ee88732e964 100644 --- a/src/devices/bus/comx35/fdc.h +++ b/src/devices/bus/comx35/fdc.h @@ -30,17 +30,15 @@ public: // construction/destruction comx_fd_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_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; + // device_comx_expansion_card_interface overrides virtual int comx_ef4_r() override; virtual void comx_q_w(int state) override; @@ -49,6 +47,8 @@ protected: virtual void comx_io_w(address_space &space, offs_t offset, uint8_t data) override; private: + DECLARE_FLOPPY_FORMATS( floppy_formats ); + // internal state required_device m_fdc; required_device m_floppy0; diff --git a/src/devices/bus/comx35/printer.cpp b/src/devices/bus/comx35/printer.cpp index 57f477274d3..b1e5f065070 100644 --- a/src/devices/bus/comx35/printer.cpp +++ b/src/devices/bus/comx35/printer.cpp @@ -52,10 +52,10 @@ const tiny_rom_entry *comx_prn_device::device_rom_region() const //------------------------------------------------- -// MACHINE_CONFIG_START( comx_prn ) +// device_add_mconfig - add device configuration //------------------------------------------------- -static MACHINE_CONFIG_START( comx_prn ) +MACHINE_CONFIG_MEMBER( comx_prn_device::device_add_mconfig ) MCFG_CENTRONICS_ADD(CENTRONICS_TAG, centronics_devices, "printer") MCFG_CENTRONICS_ACK_HANDLER(DEVWRITELINE("cent_status_in", input_buffer_device, write_bit0)) MCFG_CENTRONICS_BUSY_HANDLER(DEVWRITELINE("cent_status_in", input_buffer_device, write_bit1)) @@ -67,17 +67,6 @@ static MACHINE_CONFIG_START( comx_prn ) MACHINE_CONFIG_END -//------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations -//------------------------------------------------- - -machine_config_constructor comx_prn_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( comx_prn ); -} - - //************************************************************************** // LIVE DEVICE diff --git a/src/devices/bus/comx35/printer.h b/src/devices/bus/comx35/printer.h index b973982b2f3..dcfd27a7cd1 100644 --- a/src/devices/bus/comx35/printer.h +++ b/src/devices/bus/comx35/printer.h @@ -29,15 +29,15 @@ public: // construction/destruction comx_prn_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; - 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; + // device_comx_expansion_card_interface overrides virtual uint8_t comx_mrd_r(address_space &space, offs_t offset, int *extrom) override; virtual uint8_t comx_io_r(address_space &space, offs_t offset) override; diff --git a/src/devices/bus/cpc/amdrum.cpp b/src/devices/bus/cpc/amdrum.cpp index cf5252957d3..d6e929bb7b6 100644 --- a/src/devices/bus/cpc/amdrum.cpp +++ b/src/devices/bus/cpc/amdrum.cpp @@ -1,7 +1,7 @@ // license:BSD-3-Clause // copyright-holders:Barry Rodewald /* - * amdrum.c + * amdrum.cpp * * Created on: 23/08/2014 */ @@ -20,7 +20,7 @@ DEFINE_DEVICE_TYPE(CPC_AMDRUM, cpc_amdrum_device, "cpc_amdrum", "Amdrum") -static MACHINE_CONFIG_START( cpc_amdrum ) +MACHINE_CONFIG_MEMBER( cpc_amdrum_device::device_add_mconfig ) MCFG_SPEAKER_STANDARD_MONO("speaker") MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) // unknown DAC MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0) @@ -28,10 +28,6 @@ static MACHINE_CONFIG_START( cpc_amdrum ) // no pass-through MACHINE_CONFIG_END -machine_config_constructor cpc_amdrum_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( cpc_amdrum ); -} //************************************************************************** // LIVE DEVICE diff --git a/src/devices/bus/cpc/amdrum.h b/src/devices/bus/cpc/amdrum.h index 6f68a506bd5..360f1228c09 100644 --- a/src/devices/bus/cpc/amdrum.h +++ b/src/devices/bus/cpc/amdrum.h @@ -27,15 +27,16 @@ public: // construction/destruction cpc_amdrum_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_WRITE8_MEMBER(dac_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: cpc_expansion_slot_device *m_slot; diff --git a/src/devices/bus/cpc/cpc_pds.cpp b/src/devices/bus/cpc/cpc_pds.cpp index 8b09fec3590..d897b682c51 100644 --- a/src/devices/bus/cpc/cpc_pds.cpp +++ b/src/devices/bus/cpc/cpc_pds.cpp @@ -1,7 +1,7 @@ // license:BSD-3-Clause // copyright-holders:Barry Rodewald /* - * cpc_pds.c -- CPC interface hardware for the Programmers Development System + * cpc_pds.cpp -- CPC interface hardware for the Programmers Development System * * Created on: 10/02/2014 */ @@ -17,19 +17,13 @@ DEFINE_DEVICE_TYPE(CPC_PDS, cpc_pds_device, "cpc_pds", "Programmers Development System (CPC Target)") -static MACHINE_CONFIG_START( cpc_pds ) +MACHINE_CONFIG_MEMBER( cpc_pds_device::device_add_mconfig ) MCFG_DEVICE_ADD("pio", Z80PIO, XTAL_4MHz) // no clock on the PCB, so will presume that it uses the CPC's clock // no pass-through seen on remake PCBs, unknown if actual hardware had a pass-through port or not MACHINE_CONFIG_END -machine_config_constructor cpc_pds_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( cpc_pds ); -} - - //************************************************************************** // LIVE DEVICE //************************************************************************** diff --git a/src/devices/bus/cpc/cpc_pds.h b/src/devices/bus/cpc/cpc_pds.h index 2da3ac96a01..5908a5a75c7 100644 --- a/src/devices/bus/cpc/cpc_pds.h +++ b/src/devices/bus/cpc/cpc_pds.h @@ -36,9 +36,6 @@ public: // construction/destruction cpc_pds_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(pio_r); DECLARE_WRITE8_MEMBER(pio_w); @@ -47,6 +44,9 @@ protected: virtual void device_start() override; virtual void device_reset() override; + // optional information overrides + virtual void device_add_mconfig(machine_config &config) override; + private: cpc_expansion_slot_device *m_slot; diff --git a/src/devices/bus/cpc/cpc_rom.cpp b/src/devices/bus/cpc/cpc_rom.cpp index c8514b6c3f2..86625aced56 100644 --- a/src/devices/bus/cpc/cpc_rom.cpp +++ b/src/devices/bus/cpc/cpc_rom.cpp @@ -1,7 +1,7 @@ // license:BSD-3-Clause // copyright-holders:Barry Rodewald /* - * cpc_rom.c + * cpc_rom.cpp * Amstrad CPC mountable ROM image device * */ @@ -18,7 +18,7 @@ SLOT_INTERFACE_EXTERN(cpc_exp_cards); //************************************************************************** // device machine config -static MACHINE_CONFIG_START( cpc_rom ) +MACHINE_CONFIG_MEMBER( cpc_rom_device::device_add_mconfig ) MCFG_CPC_ROMSLOT_ADD("rom1") MCFG_CPC_ROMSLOT_ADD("rom2") MCFG_CPC_ROMSLOT_ADD("rom3") @@ -38,11 +38,6 @@ static MACHINE_CONFIG_START( cpc_rom ) MACHINE_CONFIG_END -machine_config_constructor cpc_rom_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( cpc_rom ); -} - //************************************************************************** // LIVE DEVICE //************************************************************************** diff --git a/src/devices/bus/cpc/cpc_rom.h b/src/devices/bus/cpc/cpc_rom.h index 979134b60e8..0128dc79337 100644 --- a/src/devices/bus/cpc/cpc_rom.h +++ b/src/devices/bus/cpc/cpc_rom.h @@ -65,9 +65,6 @@ public: // construction/destruction cpc_rom_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; - uint8_t* base(uint8_t slot) { if(slot >=1 && slot <= 8) return m_rom[slot]->base(); else return nullptr; } protected: @@ -75,6 +72,9 @@ protected: 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_array m_rom; }; diff --git a/src/devices/bus/cpc/cpc_rs232.cpp b/src/devices/bus/cpc/cpc_rs232.cpp index b0c96d2ba31..f42c02ea43c 100644 --- a/src/devices/bus/cpc/cpc_rs232.cpp +++ b/src/devices/bus/cpc/cpc_rs232.cpp @@ -1,7 +1,7 @@ // license:BSD-3-Clause // copyright-holders:Barry Rodewald /* - * cpc_rs232.c + * cpc_rs232.cpp * * Created on: 22/04/2014 */ @@ -18,8 +18,22 @@ SLOT_INTERFACE_EXTERN(cpc_exp_cards); DEFINE_DEVICE_TYPE(CPC_RS232, cpc_rs232_device, "cpc_ser", "Pace RS232C interface") DEFINE_DEVICE_TYPE(CPC_RS232_AMS, cpc_ams_rs232_device, "cpc_serams", "Amstrad RS232C interface") +ROM_START( cpc_rs232 ) + ROM_REGION( 0x8000, "exp_rom", 0 ) + ROM_LOAD( "comstar1.rom", 0x0000, 0x4000, CRC(ddcade50) SHA1(d09ee0bd51a8e1cafc5107a75fed839dda3d21e5) ) + ROM_LOAD( "comstar2.rom", 0x4000, 0x4000, CRC(664e788c) SHA1(13d033f2d1cad70140deb903d787ba514f236a59) ) +ROM_END + +ROM_START( cpc_rs232_ams ) + ROM_REGION( 0x4000, "exp_rom", 0 ) + ROM_SYSTEM_BIOS( 0, "amstrad", "Amstrad RS232C interface (v1)" ) + ROMX_LOAD( "rs232101.rom", 0x0000, 0x2000, CRC(c6eb52b2) SHA1(8a7e0a1183fdde8d07bc8827a3e159ca3022f93b), ROM_BIOS(1) ) + ROM_SYSTEM_BIOS( 1, "mercitel", "Amstrad RS232C interface (v1) + Mercitel (v1.4)" ) + ROMX_LOAD( "rs232mercitel14.rom", 0x0000, 0x4000, CRC(8ffb114b) SHA1(145233fe8d4db9f5265eeac767d8ee8d45d14755), ROM_BIOS(2) ) +ROM_END + // device machine config -static MACHINE_CONFIG_START( cpc_rs232 ) +MACHINE_CONFIG_MEMBER( cpc_rs232_device::device_add_mconfig ) MCFG_DEVICE_ADD("pit", PIT8253, 0) MCFG_PIT8253_CLK0(2000000) MCFG_PIT8253_CLK1(2000000) @@ -48,25 +62,6 @@ static MACHINE_CONFIG_START( cpc_rs232 ) MACHINE_CONFIG_END -ROM_START( cpc_rs232 ) - ROM_REGION( 0x8000, "exp_rom", 0 ) - ROM_LOAD( "comstar1.rom", 0x0000, 0x4000, CRC(ddcade50) SHA1(d09ee0bd51a8e1cafc5107a75fed839dda3d21e5) ) - ROM_LOAD( "comstar2.rom", 0x4000, 0x4000, CRC(664e788c) SHA1(13d033f2d1cad70140deb903d787ba514f236a59) ) -ROM_END - -ROM_START( cpc_rs232_ams ) - ROM_REGION( 0x4000, "exp_rom", 0 ) - ROM_SYSTEM_BIOS( 0, "amstrad", "Amstrad RS232C interface (v1)" ) - ROMX_LOAD( "rs232101.rom", 0x0000, 0x2000, CRC(c6eb52b2) SHA1(8a7e0a1183fdde8d07bc8827a3e159ca3022f93b), ROM_BIOS(1) ) - ROM_SYSTEM_BIOS( 1, "mercitel", "Amstrad RS232C interface (v1) + Mercitel (v1.4)" ) - ROMX_LOAD( "rs232mercitel14.rom", 0x0000, 0x4000, CRC(8ffb114b) SHA1(145233fe8d4db9f5265eeac767d8ee8d45d14755), ROM_BIOS(2) ) -ROM_END - -machine_config_constructor cpc_rs232_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( cpc_rs232 ); -} - const tiny_rom_entry *cpc_rs232_device::device_rom_region() const { return ROM_NAME( cpc_rs232 ); diff --git a/src/devices/bus/cpc/cpc_rs232.h b/src/devices/bus/cpc/cpc_rs232.h index d6eb4c92d9b..56e7ccd8b4f 100644 --- a/src/devices/bus/cpc/cpc_rs232.h +++ b/src/devices/bus/cpc/cpc_rs232.h @@ -22,13 +22,6 @@ public: // construction/destruction cpc_rs232_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(pit_out0_w); - DECLARE_WRITE_LINE_MEMBER(pit_out1_w); - DECLARE_WRITE_LINE_MEMBER(pit_out2_w); - DECLARE_READ8_MEMBER(dart_r); DECLARE_WRITE8_MEMBER(dart_w); DECLARE_READ8_MEMBER(pit_r); @@ -42,11 +35,18 @@ protected: virtual void device_reset() override; virtual const tiny_rom_entry *device_rom_region() const override; + // optional information overrides + virtual void device_add_mconfig(machine_config &config) override; + required_device m_pit; required_device m_dart; required_device m_rs232; private: + DECLARE_WRITE_LINE_MEMBER(pit_out0_w); + DECLARE_WRITE_LINE_MEMBER(pit_out1_w); + DECLARE_WRITE_LINE_MEMBER(pit_out2_w); + cpc_expansion_slot_device *m_slot; }; diff --git a/src/devices/bus/cpc/cpc_ssa1.cpp b/src/devices/bus/cpc/cpc_ssa1.cpp index af699ebc2ae..3cfbd98d397 100644 --- a/src/devices/bus/cpc/cpc_ssa1.cpp +++ b/src/devices/bus/cpc/cpc_ssa1.cpp @@ -1,7 +1,7 @@ // license:BSD-3-Clause // copyright-holders:Barry Rodewald /* - * cpc_ssa1.c -- Amstrad SSA-1 Speech Synthesiser, dk'Tronics Speech Synthesiser + * cpc_ssa1.cpp -- Amstrad SSA-1 Speech Synthesiser, dk'Tronics Speech Synthesiser * * Created on: 16/07/2011 * @@ -115,7 +115,7 @@ const tiny_rom_entry *cpc_dkspeech_device::device_rom_region() const } // device machine config -static MACHINE_CONFIG_START( cpc_ssa1 ) +MACHINE_CONFIG_MEMBER( cpc_ssa1_device::device_add_mconfig ) MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_ADD("sp0256",SP0256,XTAL_3_12MHz) MCFG_SP0256_DATA_REQUEST_CB(WRITELINE(cpc_ssa1_device, lrq_cb)) @@ -131,7 +131,7 @@ static MACHINE_CONFIG_START( cpc_ssa1 ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( cpc_dkspeech ) +MACHINE_CONFIG_MEMBER( cpc_dkspeech_device::device_add_mconfig ) MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_ADD("sp0256",SP0256,XTAL_4MHz) // uses the CPC's clock from pin 50 of the expansion port MCFG_SP0256_DATA_REQUEST_CB(WRITELINE(cpc_dkspeech_device, lrq_cb)) @@ -147,15 +147,6 @@ static MACHINE_CONFIG_START( cpc_dkspeech ) MACHINE_CONFIG_END -machine_config_constructor cpc_ssa1_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( cpc_ssa1 ); -} - -machine_config_constructor cpc_dkspeech_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( cpc_dkspeech ); -} //************************************************************************** // LIVE DEVICE diff --git a/src/devices/bus/cpc/cpc_ssa1.h b/src/devices/bus/cpc/cpc_ssa1.h index da4aafa5a38..0fb2c7a0e87 100644 --- a/src/devices/bus/cpc/cpc_ssa1.h +++ b/src/devices/bus/cpc/cpc_ssa1.h @@ -56,10 +56,6 @@ public: // construction/destruction cpc_ssa1_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; - void set_lrq(uint8_t state) { m_lrq = state; } uint8_t get_lrq() { return m_lrq; } void set_sby(uint8_t state) { m_sby = state; } @@ -67,15 +63,20 @@ public: DECLARE_READ8_MEMBER(ssa1_r); DECLARE_WRITE8_MEMBER(ssa1_w); - DECLARE_WRITE_LINE_MEMBER(lrq_cb); - DECLARE_WRITE_LINE_MEMBER(sby_cb); 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_WRITE_LINE_MEMBER(lrq_cb); + DECLARE_WRITE_LINE_MEMBER(sby_cb); + cpc_expansion_slot_device *m_slot; uint8_t *m_rom; @@ -92,10 +93,6 @@ public: // construction/destruction cpc_dkspeech_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; - void set_lrq(uint8_t state) { m_lrq = state; } uint8_t get_lrq() { return m_lrq; } void set_sby(uint8_t state) { m_sby = state; } @@ -103,15 +100,20 @@ public: DECLARE_READ8_MEMBER(dkspeech_r); DECLARE_WRITE8_MEMBER(dkspeech_w); - DECLARE_WRITE_LINE_MEMBER(lrq_cb); - DECLARE_WRITE_LINE_MEMBER(sby_cb); 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_WRITE_LINE_MEMBER(lrq_cb); + DECLARE_WRITE_LINE_MEMBER(sby_cb); + cpc_expansion_slot_device *m_slot; uint8_t *m_rom; diff --git a/src/devices/bus/cpc/ddi1.cpp b/src/devices/bus/cpc/ddi1.cpp index 6a89e9a1690..0dc2de0604c 100644 --- a/src/devices/bus/cpc/ddi1.cpp +++ b/src/devices/bus/cpc/ddi1.cpp @@ -1,7 +1,7 @@ // license:BSD-3-Clause // copyright-holders:Barry Rodewald /* - * ddi1.c -- Amstrad DDI-1 Floppy Disk Drive interface + * ddi1.cpp -- Amstrad DDI-1 Floppy Disk Drive interface */ #include "emu.h" @@ -39,7 +39,7 @@ const tiny_rom_entry *cpc_ddi1_device::device_rom_region() const } // device machine config -static MACHINE_CONFIG_START( cpc_ddi1 ) +MACHINE_CONFIG_MEMBER( cpc_ddi1_device::device_add_mconfig ) MCFG_UPD765A_ADD("upd765", true, true) MCFG_FLOPPY_DRIVE_ADD("upd765:0", ddi1_floppies, "3ssdd", floppy_image_device::default_floppy_formats) MCFG_SOFTWARE_LIST_ADD("flop_list","cpc_flop") @@ -53,10 +53,6 @@ static MACHINE_CONFIG_START( cpc_ddi1 ) MACHINE_CONFIG_END -machine_config_constructor cpc_ddi1_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( cpc_ddi1 ); -} //************************************************************************** // LIVE DEVICE diff --git a/src/devices/bus/cpc/ddi1.h b/src/devices/bus/cpc/ddi1.h index 37d7cd32e1a..f45ea39e3de 100644 --- a/src/devices/bus/cpc/ddi1.h +++ b/src/devices/bus/cpc/ddi1.h @@ -22,21 +22,22 @@ public: // construction/destruction cpc_ddi1_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 void set_mapping(uint8_t type) override; - virtual WRITE_LINE_MEMBER( romen_w ) override { m_romen = state; } - DECLARE_WRITE8_MEMBER(motor_w); DECLARE_WRITE8_MEMBER(fdc_w); DECLARE_READ8_MEMBER(fdc_r); DECLARE_WRITE8_MEMBER(rombank_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; + virtual void set_mapping(uint8_t type) override; + virtual WRITE_LINE_MEMBER( romen_w ) override { m_romen = state; } + private: cpc_expansion_slot_device *m_slot; diff --git a/src/devices/bus/cpc/doubler.cpp b/src/devices/bus/cpc/doubler.cpp index 11e65f01111..e4073b93cf8 100644 --- a/src/devices/bus/cpc/doubler.cpp +++ b/src/devices/bus/cpc/doubler.cpp @@ -1,7 +1,7 @@ // license:BSD-3-Clause // copyright-holders:Barry Rodewald /* - * doubler.c -- Draysoft Doubler - external cassette interface for the 464 (works on 664/6128 with external cassette?), + * doubler.cpp -- Draysoft Doubler - external cassette interface for the 464 (works on 664/6128 with external cassette?), * intended for use in duplicating cassette software * */ @@ -16,7 +16,7 @@ DEFINE_DEVICE_TYPE(CPC_DOUBLER, cpc_doubler_device, "cpc_doubler", "Draysoft Doubler") -static MACHINE_CONFIG_START( cpc_doubler ) +MACHINE_CONFIG_MEMBER( cpc_doubler_device::device_add_mconfig ) MCFG_CASSETTE_ADD( "doubler_tape" ) MCFG_CASSETTE_FORMATS(cdt_cassette_formats) MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED) @@ -26,12 +26,6 @@ static MACHINE_CONFIG_START( cpc_doubler ) MACHINE_CONFIG_END -machine_config_constructor cpc_doubler_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( cpc_doubler ); -} - - //************************************************************************** // LIVE DEVICE //************************************************************************** diff --git a/src/devices/bus/cpc/doubler.h b/src/devices/bus/cpc/doubler.h index 03d75a16247..2cba51baaee 100644 --- a/src/devices/bus/cpc/doubler.h +++ b/src/devices/bus/cpc/doubler.h @@ -24,9 +24,6 @@ public: // construction/destruction cpc_doubler_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(ext_tape_r); protected: @@ -34,6 +31,9 @@ protected: virtual void device_start() override; virtual void device_reset() override; + // optional information overrides + virtual void device_add_mconfig(machine_config &config) override; + private: cpc_expansion_slot_device *m_slot; diff --git a/src/devices/bus/cpc/hd20.cpp b/src/devices/bus/cpc/hd20.cpp index 2917467d91f..7b3dbccaa7d 100644 --- a/src/devices/bus/cpc/hd20.cpp +++ b/src/devices/bus/cpc/hd20.cpp @@ -15,17 +15,13 @@ DEFINE_DEVICE_TYPE(CPC_HD20, cpc_hd20_device, "cpc_hd20", "Dobbertin HD20") -static MACHINE_CONFIG_START( cpc_hd20 ) +MACHINE_CONFIG_MEMBER( cpc_hd20_device::device_add_mconfig ) MCFG_DEVICE_ADD("hdc",ST11M_HDC,0) - MCFG_XTHDC_IRQ_HANDLER(WRITELINE(cpc_hd20_device,irq_w)) + MCFG_XTHDC_IRQ_HANDLER(WRITELINE(cpc_hd20_device, irq_w)) MCFG_HARDDISK_ADD("hdc:primary") // no pass-through (?) MACHINE_CONFIG_END -machine_config_constructor cpc_hd20_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( cpc_hd20 ); -} ROM_START( cpc_hd20 ) ROM_REGION( 0x4000, "exp_rom", 0 ) diff --git a/src/devices/bus/cpc/hd20.h b/src/devices/bus/cpc/hd20.h index e0dd933da73..a0379dbd831 100644 --- a/src/devices/bus/cpc/hd20.h +++ b/src/devices/bus/cpc/hd20.h @@ -26,20 +26,21 @@ public: // construction/destruction cpc_hd20_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(hdc_r); DECLARE_WRITE8_MEMBER(hdc_w); - DECLARE_WRITE_LINE_MEMBER(irq_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 const tiny_rom_entry *device_rom_region() const override; + private: + DECLARE_WRITE_LINE_MEMBER(irq_w); + cpc_expansion_slot_device *m_slot; required_device m_hdc; diff --git a/src/devices/bus/cpc/magicsound.cpp b/src/devices/bus/cpc/magicsound.cpp index 1accb16e228..5f44afedb9e 100644 --- a/src/devices/bus/cpc/magicsound.cpp +++ b/src/devices/bus/cpc/magicsound.cpp @@ -1,7 +1,7 @@ // license:BSD-3-Clause // copyright-holders:Barry Rodewald /* - * magicsound.c + * magicsound.cpp * * Magic Sound Board for the Aleste 520EX * @@ -20,18 +20,18 @@ DEFINE_DEVICE_TYPE(AL_MAGICSOUND, al_magicsound_device, "al_magicsound", "Aleste Magic Sound Board") -static MACHINE_CONFIG_START( al_magicsound ) +MACHINE_CONFIG_MEMBER( al_magicsound_device::device_add_mconfig ) MCFG_DEVICE_ADD( "dmac", AM9517A, XTAL_4MHz ) // CLK from expansion port // According to the schematics, the TC pin (EOP on western chips) is connected to NMI on the expansion port. // NMIs seem to occur too quickly when this is active, so either EOP is not triggered at the correct time, or // the K1810WT37 is different to the i8237/AM9517A //MCFG_I8237_OUT_EOP_CB(DEVWRITELINE("^", cpc_expansion_slot_device, nmi_w)) // MCFG_DEVCB_INVERT MCFG_I8237_OUT_HREQ_CB(DEVWRITELINE("dmac", am9517a_device, hack_w)) - MCFG_I8237_IN_MEMR_CB(READ8(al_magicsound_device,dma_read_byte)) - MCFG_I8237_OUT_IOW_0_CB(WRITE8(al_magicsound_device,dma_write_byte)) - MCFG_I8237_OUT_IOW_1_CB(WRITE8(al_magicsound_device,dma_write_byte)) - MCFG_I8237_OUT_IOW_2_CB(WRITE8(al_magicsound_device,dma_write_byte)) - MCFG_I8237_OUT_IOW_3_CB(WRITE8(al_magicsound_device,dma_write_byte)) + MCFG_I8237_IN_MEMR_CB(READ8(al_magicsound_device, dma_read_byte)) + MCFG_I8237_OUT_IOW_0_CB(WRITE8(al_magicsound_device, dma_write_byte)) + MCFG_I8237_OUT_IOW_1_CB(WRITE8(al_magicsound_device, dma_write_byte)) + MCFG_I8237_OUT_IOW_2_CB(WRITE8(al_magicsound_device, dma_write_byte)) + MCFG_I8237_OUT_IOW_3_CB(WRITE8(al_magicsound_device, dma_write_byte)) MCFG_I8237_OUT_DACK_0_CB(WRITELINE(al_magicsound_device, dack0_w)) MCFG_I8237_OUT_DACK_1_CB(WRITELINE(al_magicsound_device, dack1_w)) MCFG_I8237_OUT_DACK_2_CB(WRITELINE(al_magicsound_device, dack2_w)) @@ -43,17 +43,17 @@ static MACHINE_CONFIG_START( al_magicsound ) // Timer outputs to SAM0/1/2/3 are sample clocks for each sound channel, D/A0 is the low bit of the channel select. MCFG_DEVICE_ADD("timer1", PIT8254, 0) MCFG_PIT8253_CLK0(XTAL_4MHz) - MCFG_PIT8253_OUT0_HANDLER(WRITELINE(al_magicsound_device,sam0_w)) + MCFG_PIT8253_OUT0_HANDLER(WRITELINE(al_magicsound_device, sam0_w)) MCFG_PIT8253_CLK1(XTAL_4MHz) - MCFG_PIT8253_OUT1_HANDLER(WRITELINE(al_magicsound_device,sam1_w)) + MCFG_PIT8253_OUT1_HANDLER(WRITELINE(al_magicsound_device, sam1_w)) MCFG_PIT8253_CLK2(XTAL_4MHz) - MCFG_PIT8253_OUT2_HANDLER(WRITELINE(al_magicsound_device,sam2_w)) + MCFG_PIT8253_OUT2_HANDLER(WRITELINE(al_magicsound_device, sam2_w)) MCFG_DEVICE_ADD("timer2", PIT8254, 0) MCFG_PIT8253_CLK0(XTAL_4MHz) - MCFG_PIT8253_OUT0_HANDLER(WRITELINE(al_magicsound_device,sam3_w)) + MCFG_PIT8253_OUT0_HANDLER(WRITELINE(al_magicsound_device, sam3_w)) MCFG_PIT8253_CLK1(XTAL_4MHz) - MCFG_PIT8253_OUT1_HANDLER(WRITELINE(al_magicsound_device,da0_w)) + MCFG_PIT8253_OUT1_HANDLER(WRITELINE(al_magicsound_device, da0_w)) MCFG_PIT8253_CLK2(XTAL_4MHz) MCFG_SPEAKER_STANDARD_MONO("speaker") @@ -63,10 +63,6 @@ static MACHINE_CONFIG_START( al_magicsound ) // no pass-through(?) MACHINE_CONFIG_END -machine_config_constructor al_magicsound_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( al_magicsound ); -} //************************************************************************** // LIVE DEVICE diff --git a/src/devices/bus/cpc/magicsound.h b/src/devices/bus/cpc/magicsound.h index ccb11091988..b90bbf4e897 100644 --- a/src/devices/bus/cpc/magicsound.h +++ b/src/devices/bus/cpc/magicsound.h @@ -41,14 +41,21 @@ public: // construction/destruction al_magicsound_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(dmac_r); DECLARE_WRITE8_MEMBER(dmac_w); DECLARE_WRITE8_MEMBER(timer_w); DECLARE_WRITE8_MEMBER(volume_w); DECLARE_WRITE8_MEMBER(mapper_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: DECLARE_WRITE_LINE_MEMBER(da0_w); DECLARE_READ8_MEMBER(dma_read_byte); DECLARE_WRITE8_MEMBER(dma_write_byte); @@ -61,12 +68,6 @@ public: DECLARE_WRITE_LINE_MEMBER(sam2_w); DECLARE_WRITE_LINE_MEMBER(sam3_w); -protected: - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - -private: cpc_expansion_slot_device *m_slot; required_device m_dac; diff --git a/src/devices/bus/cpc/mface2.cpp b/src/devices/bus/cpc/mface2.cpp index 22b59ca366d..422d3dec6b7 100644 --- a/src/devices/bus/cpc/mface2.cpp +++ b/src/devices/bus/cpc/mface2.cpp @@ -1,7 +1,7 @@ // license:BSD-3-Clause // copyright-holders:Kevin Thacker, Barry Rodewald /* - * mface2.c -- Romantic Robot Multiface II expansion device for the Amstrad CPC/CPC+ + * mface2.cpp -- Romantic Robot Multiface II expansion device for the Amstrad CPC/CPC+ * * Created on: 31/07/2011 */ @@ -17,15 +17,6 @@ SLOT_INTERFACE_EXTERN(cpc_exp_cards); DEFINE_DEVICE_TYPE(CPC_MFACE2, cpc_multiface2_device, "cpc_mface2", "Multiface II") -// device machine config -static MACHINE_CONFIG_START( cpc_mface2 ) - // pass-through - MCFG_DEVICE_ADD("exp", CPC_EXPANSION_SLOT, 0) - MCFG_DEVICE_SLOT_INTERFACE(cpc_exp_cards, nullptr, false) - MCFG_CPC_EXPANSION_SLOT_OUT_IRQ_CB(DEVWRITELINE("^", cpc_expansion_slot_device, irq_w)) - MCFG_CPC_EXPANSION_SLOT_OUT_NMI_CB(DEVWRITELINE("^", cpc_expansion_slot_device, nmi_w)) - MCFG_CPC_EXPANSION_SLOT_OUT_ROMDIS_CB(DEVWRITELINE("^", cpc_expansion_slot_device, romdis_w)) // ROMDIS -MACHINE_CONFIG_END #if 0 DIRECT_UPDATE_MEMBER( cpc_multiface2_device::amstrad_default ) @@ -116,10 +107,15 @@ void cpc_multiface2_device::multiface_rethink_memory() } } -machine_config_constructor cpc_multiface2_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( cpc_mface2 ); -} +// device machine config +MACHINE_CONFIG_MEMBER( cpc_multiface2_device::device_add_mconfig ) + // pass-through + MCFG_DEVICE_ADD("exp", CPC_EXPANSION_SLOT, 0) + MCFG_DEVICE_SLOT_INTERFACE(cpc_exp_cards, nullptr, false) + MCFG_CPC_EXPANSION_SLOT_OUT_IRQ_CB(DEVWRITELINE("^", cpc_expansion_slot_device, irq_w)) + MCFG_CPC_EXPANSION_SLOT_OUT_NMI_CB(DEVWRITELINE("^", cpc_expansion_slot_device, nmi_w)) + MCFG_CPC_EXPANSION_SLOT_OUT_ROMDIS_CB(DEVWRITELINE("^", cpc_expansion_slot_device, romdis_w)) // ROMDIS +MACHINE_CONFIG_END void cpc_multiface2_device::check_button_state() { diff --git a/src/devices/bus/cpc/mface2.h b/src/devices/bus/cpc/mface2.h index de41dc97c15..ba230b917c6 100644 --- a/src/devices/bus/cpc/mface2.h +++ b/src/devices/bus/cpc/mface2.h @@ -39,21 +39,22 @@ public: // construction/destruction cpc_multiface2_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 ioport_constructor device_input_ports() const override; - virtual machine_config_constructor device_mconfig_additions() const override; - int multiface_hardware_enabled(); void multiface_rethink_memory(); void multiface_stop(); int multiface_io_write(uint16_t offset, uint8_t data); void check_button_state(); + 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 ioport_constructor device_input_ports() const override; + virtual void device_add_mconfig(machine_config &config) override; + private: cpc_expansion_slot_device *m_slot; diff --git a/src/devices/bus/cpc/playcity.cpp b/src/devices/bus/cpc/playcity.cpp index 92bd9168e25..11bbd2a6693 100644 --- a/src/devices/bus/cpc/playcity.cpp +++ b/src/devices/bus/cpc/playcity.cpp @@ -24,11 +24,11 @@ SLOT_INTERFACE_EXTERN(cpc_exp_cards); DEFINE_DEVICE_TYPE(CPC_PLAYCITY, cpc_playcity_device, "cpc_playcity", "PlayCity") // device machine config -static MACHINE_CONFIG_START( cpc_playcity ) +MACHINE_CONFIG_MEMBER( cpc_playcity_device::device_add_mconfig ) MCFG_DEVICE_ADD("ctc", Z80CTC, XTAL_4MHz) - MCFG_Z80CTC_ZC1_CB(WRITELINE(cpc_playcity_device,ctc_zc1_cb)) - MCFG_Z80CTC_ZC2_CB(DEVWRITELINE("ctc",z80ctc_device,trg3)) - MCFG_Z80CTC_INTR_CB(WRITELINE(cpc_playcity_device,ctc_intr_cb)) + MCFG_Z80CTC_ZC1_CB(WRITELINE(cpc_playcity_device, ctc_zc1_cb)) + MCFG_Z80CTC_ZC2_CB(DEVWRITELINE("ctc",z80ctc_device, trg3)) + MCFG_Z80CTC_INTR_CB(WRITELINE(cpc_playcity_device, ctc_intr_cb)) MCFG_SPEAKER_STANDARD_STEREO("lspeaker","rspeaker") MCFG_SOUND_ADD("ymz_1",YMZ294,XTAL_4MHz) // when timer is not set, operates at 4MHz (interally divided by 2, so equivalent to the ST) @@ -46,12 +46,6 @@ static MACHINE_CONFIG_START( cpc_playcity ) MACHINE_CONFIG_END -machine_config_constructor cpc_playcity_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( cpc_playcity ); -} - - //************************************************************************** // LIVE DEVICE //************************************************************************** diff --git a/src/devices/bus/cpc/playcity.h b/src/devices/bus/cpc/playcity.h index f7c2162051c..e01c055aee5 100644 --- a/src/devices/bus/cpc/playcity.h +++ b/src/devices/bus/cpc/playcity.h @@ -30,9 +30,6 @@ public: // construction/destruction cpc_playcity_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(ctc_r); DECLARE_WRITE8_MEMBER(ctc_w); DECLARE_WRITE8_MEMBER(ymz1_address_w); @@ -41,8 +38,6 @@ public: DECLARE_WRITE8_MEMBER(ymz2_data_w); DECLARE_READ8_MEMBER(ymz1_data_r); DECLARE_READ8_MEMBER(ymz2_data_r); - DECLARE_WRITE_LINE_MEMBER(ctc_zc1_cb) { if(state) { m_slot->nmi_w(1); m_slot->nmi_w(0); } } - DECLARE_WRITE_LINE_MEMBER(ctc_intr_cb) { m_slot->irq_w(state); } virtual WRITE_LINE_MEMBER(cursor_w) override { m_ctc->trg1(state); } @@ -51,7 +46,13 @@ 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(ctc_zc1_cb) { if(state) { m_slot->nmi_w(1); m_slot->nmi_w(0); } } + DECLARE_WRITE_LINE_MEMBER(ctc_intr_cb) { m_slot->irq_w(state); } + cpc_expansion_slot_device *m_slot; required_device m_ctc; diff --git a/src/devices/bus/cpc/smartwatch.cpp b/src/devices/bus/cpc/smartwatch.cpp index c5154b06394..eb3e9946401 100644 --- a/src/devices/bus/cpc/smartwatch.cpp +++ b/src/devices/bus/cpc/smartwatch.cpp @@ -19,15 +19,11 @@ DEFINE_DEVICE_TYPE(CPC_SMARTWATCH, cpc_smartwatch_device, "cpc_smartwatch", "Dobbertin Smartwatch") -static MACHINE_CONFIG_START( cpc_smartwatch ) +MACHINE_CONFIG_MEMBER( cpc_smartwatch_device::device_add_mconfig ) MCFG_DS1315_ADD("rtc") // no pass-through (?) MACHINE_CONFIG_END -machine_config_constructor cpc_smartwatch_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( cpc_smartwatch ); -} ROM_START( cpc_smartwatch ) ROM_REGION( 0x4000, "exp_rom", 0 ) diff --git a/src/devices/bus/cpc/smartwatch.h b/src/devices/bus/cpc/smartwatch.h index a555b802553..dbde5f58377 100644 --- a/src/devices/bus/cpc/smartwatch.h +++ b/src/devices/bus/cpc/smartwatch.h @@ -23,17 +23,18 @@ public: // construction/destruction cpc_smartwatch_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(rtc_w); DECLARE_READ8_MEMBER(rtc_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: cpc_expansion_slot_device *m_slot; diff --git a/src/devices/bus/cpc/symbfac2.cpp b/src/devices/bus/cpc/symbfac2.cpp index 87fa66ff541..3373a6eef6e 100644 --- a/src/devices/bus/cpc/symbfac2.cpp +++ b/src/devices/bus/cpc/symbfac2.cpp @@ -1,7 +1,7 @@ // license:BSD-3-Clause // copyright-holders:Barry Rodewald /* - * symbfac2.c + * symbfac2.cpp * SYMBiFACE II expansion device * - IDE * - RTC (Dallas DS1287A) @@ -27,13 +27,6 @@ DEFINE_DEVICE_TYPE(CPC_SYMBIFACE2, cpc_symbiface2_device, "cpc_symf2", "SYMBiFAC // DEVICE CONFIG INTERFACE //************************************************************************** -// device machine config -static MACHINE_CONFIG_START( cpc_symbiface2 ) - MCFG_ATA_INTERFACE_ADD("ide",ata_devices,"hdd",nullptr,false) - MCFG_DS12885_ADD("rtc") - MCFG_NVRAM_ADD_1FILL("nvram") - // no pass-through -MACHINE_CONFIG_END static INPUT_PORTS_START(cpc_symbiface2) PORT_START("sf2_mouse_x") @@ -57,11 +50,13 @@ static INPUT_PORTS_START(cpc_symbiface2) // PORT_PLAYER(1) INPUT_PORTS_END - -machine_config_constructor cpc_symbiface2_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( cpc_symbiface2 ); -} +// device machine config +MACHINE_CONFIG_MEMBER( cpc_symbiface2_device::device_add_mconfig ) + MCFG_ATA_INTERFACE_ADD("ide", ata_devices, "hdd", nullptr, false) + MCFG_DS12885_ADD("rtc") + MCFG_NVRAM_ADD_1FILL("nvram") + // no pass-through +MACHINE_CONFIG_END ioport_constructor cpc_symbiface2_device::device_input_ports() const { diff --git a/src/devices/bus/cpc/symbfac2.h b/src/devices/bus/cpc/symbfac2.h index 9144d8a6519..df490907a90 100644 --- a/src/devices/bus/cpc/symbfac2.h +++ b/src/devices/bus/cpc/symbfac2.h @@ -23,10 +23,6 @@ public: // construction/destruction cpc_symbiface2_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; - DECLARE_READ8_MEMBER(ide_cs0_r); DECLARE_WRITE8_MEMBER(ide_cs0_w); DECLARE_READ8_MEMBER(ide_cs1_r); @@ -54,6 +50,10 @@ 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; + private: cpc_expansion_slot_device *m_slot; required_device m_ide; diff --git a/src/devices/bus/dmv/k210.cpp b/src/devices/bus/dmv/k210.cpp index 4c6d019526d..c6d1301b3f5 100644 --- a/src/devices/bus/dmv/k210.cpp +++ b/src/devices/bus/dmv/k210.cpp @@ -14,29 +14,6 @@ ***************************************************************************/ -static MACHINE_CONFIG_START( dmv_k210 ) - MCFG_DEVICE_ADD("ppi8255", I8255, 0) - MCFG_I8255_IN_PORTA_CB(READ8(dmv_k210_device, porta_r)) - MCFG_I8255_IN_PORTB_CB(READ8(dmv_k210_device, portb_r)) - MCFG_I8255_IN_PORTC_CB(READ8(dmv_k210_device, portc_r)) - MCFG_I8255_OUT_PORTA_CB(WRITE8(dmv_k210_device, porta_w)) - MCFG_I8255_OUT_PORTB_CB(WRITE8(dmv_k210_device, portb_w)) - MCFG_I8255_OUT_PORTC_CB(WRITE8(dmv_k210_device, portc_w)) - - MCFG_CENTRONICS_ADD("centronics", centronics_devices, "printer") - MCFG_CENTRONICS_DATA_INPUT_BUFFER("cent_data_in") - MCFG_CENTRONICS_ACK_HANDLER(WRITELINE(dmv_k210_device, cent_ack_w)) - MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(dmv_k210_device, cent_busy_w)) - MCFG_CENTRONICS_SELECT_IN_HANDLER(WRITELINE(dmv_k210_device, cent_slct_w)) - MCFG_CENTRONICS_PERROR_HANDLER(WRITELINE(dmv_k210_device, cent_pe_w)) - MCFG_CENTRONICS_FAULT_HANDLER(WRITELINE(dmv_k210_device, cent_fault_w)) - MCFG_CENTRONICS_AUTOFD_HANDLER(WRITELINE(dmv_k210_device, cent_autofd_w)) - MCFG_CENTRONICS_INIT_HANDLER(WRITELINE(dmv_k210_device, cent_init_w)) - - MCFG_DEVICE_ADD("cent_data_in", INPUT_BUFFER, 0) - MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics") -MACHINE_CONFIG_END - //************************************************************************** // GLOBAL VARIABLES //************************************************************************** @@ -93,14 +70,31 @@ void dmv_k210_device::device_timer(emu_timer &timer, device_timer_id tid, int pa } //------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations +// device_add_mconfig - add device configuration //------------------------------------------------- -machine_config_constructor dmv_k210_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( dmv_k210 ); -} +MACHINE_CONFIG_MEMBER( dmv_k210_device::device_add_mconfig ) + MCFG_DEVICE_ADD("ppi8255", I8255, 0) + MCFG_I8255_IN_PORTA_CB(READ8(dmv_k210_device, porta_r)) + MCFG_I8255_IN_PORTB_CB(READ8(dmv_k210_device, portb_r)) + MCFG_I8255_IN_PORTC_CB(READ8(dmv_k210_device, portc_r)) + MCFG_I8255_OUT_PORTA_CB(WRITE8(dmv_k210_device, porta_w)) + MCFG_I8255_OUT_PORTB_CB(WRITE8(dmv_k210_device, portb_w)) + MCFG_I8255_OUT_PORTC_CB(WRITE8(dmv_k210_device, portc_w)) + + MCFG_CENTRONICS_ADD("centronics", centronics_devices, "printer") + MCFG_CENTRONICS_DATA_INPUT_BUFFER("cent_data_in") + MCFG_CENTRONICS_ACK_HANDLER(WRITELINE(dmv_k210_device, cent_ack_w)) + MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(dmv_k210_device, cent_busy_w)) + MCFG_CENTRONICS_SELECT_IN_HANDLER(WRITELINE(dmv_k210_device, cent_slct_w)) + MCFG_CENTRONICS_PERROR_HANDLER(WRITELINE(dmv_k210_device, cent_pe_w)) + MCFG_CENTRONICS_FAULT_HANDLER(WRITELINE(dmv_k210_device, cent_fault_w)) + MCFG_CENTRONICS_AUTOFD_HANDLER(WRITELINE(dmv_k210_device, cent_autofd_w)) + MCFG_CENTRONICS_INIT_HANDLER(WRITELINE(dmv_k210_device, cent_init_w)) + + MCFG_DEVICE_ADD("cent_data_in", INPUT_BUFFER, 0) + MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics") +MACHINE_CONFIG_END void dmv_k210_device::io_read(address_space &space, int ifsel, offs_t offset, uint8_t &data) { diff --git a/src/devices/bus/dmv/k210.h b/src/devices/bus/dmv/k210.h index dea7863f19a..dcc51a374ed 100644 --- a/src/devices/bus/dmv/k210.h +++ b/src/devices/bus/dmv/k210.h @@ -23,9 +23,20 @@ public: // construction/destruction dmv_k210_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; + void device_timer(emu_timer &timer, device_timer_id tid, int param, void *ptr) override; + // optional information overrides + virtual void device_add_mconfig(machine_config &config) override; + + // dmvcart_interface overrides + virtual void io_read(address_space &space, int ifsel, offs_t offset, uint8_t &data) override; + virtual void io_write(address_space &space, int ifsel, offs_t offset, uint8_t data) override; + +private: DECLARE_READ8_MEMBER(porta_r); DECLARE_READ8_MEMBER(portb_r); DECLARE_READ8_MEMBER(portc_r); @@ -41,17 +52,6 @@ public: DECLARE_WRITE_LINE_MEMBER(cent_autofd_w); DECLARE_WRITE_LINE_MEMBER(cent_init_w); -protected: - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - void device_timer(emu_timer &timer, device_timer_id tid, int param, void *ptr) override; - - // dmvcart_interface overrides - virtual void io_read(address_space &space, int ifsel, offs_t offset, uint8_t &data) override; - virtual void io_write(address_space &space, int ifsel, offs_t offset, uint8_t data) override; - -private: required_device m_ppi; required_device m_centronics; required_device m_cent_data_in; diff --git a/src/devices/bus/dmv/k220.cpp b/src/devices/bus/dmv/k220.cpp index a8da8d46fa2..c38145bf3d5 100644 --- a/src/devices/bus/dmv/k220.cpp +++ b/src/devices/bus/dmv/k220.cpp @@ -77,19 +77,6 @@ ROM_START( dmv_k220 ) ROM_REGION(0x0800, "ram", ROMREGION_ERASE) ROM_END -static MACHINE_CONFIG_START( dmv_k220 ) - MCFG_DEVICE_ADD("ppi8255", I8255, 0) - MCFG_I8255_OUT_PORTA_CB(WRITE8(dmv_k220_device, porta_w)) - MCFG_I8255_IN_PORTB_CB(IOPORT("SWITCH")) - MCFG_I8255_OUT_PORTC_CB(WRITE8(dmv_k220_device, portc_w)) - - MCFG_DEVICE_ADD("pit8253", PIT8253, 0) - MCFG_PIT8253_CLK0(XTAL_1MHz) // CLK1 - MCFG_PIT8253_OUT0_HANDLER(WRITELINE(dmv_k220_device, write_out0)) - MCFG_PIT8253_OUT1_HANDLER(WRITELINE(dmv_k220_device, write_out1)) - MCFG_PIT8253_OUT2_HANDLER(WRITELINE(dmv_k220_device, write_out2)) -MACHINE_CONFIG_END - static INPUT_PORTS_START( dmv_k220 ) PORT_START("SWITCH") PORT_DIPNAME( 0x01, 0x00, "Select 1" ) @@ -165,14 +152,21 @@ void dmv_k220_device::device_reset() } //------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations +// device_add_mconfig - add device configuration //------------------------------------------------- -machine_config_constructor dmv_k220_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( dmv_k220 ); -} +MACHINE_CONFIG_MEMBER( dmv_k220_device::device_add_mconfig ) + MCFG_DEVICE_ADD("ppi8255", I8255, 0) + MCFG_I8255_OUT_PORTA_CB(WRITE8(dmv_k220_device, porta_w)) + MCFG_I8255_IN_PORTB_CB(IOPORT("SWITCH")) + MCFG_I8255_OUT_PORTC_CB(WRITE8(dmv_k220_device, portc_w)) + + MCFG_DEVICE_ADD("pit8253", PIT8253, 0) + MCFG_PIT8253_CLK0(XTAL_1MHz) // CLK1 + MCFG_PIT8253_OUT0_HANDLER(WRITELINE(dmv_k220_device, write_out0)) + MCFG_PIT8253_OUT1_HANDLER(WRITELINE(dmv_k220_device, write_out1)) + MCFG_PIT8253_OUT2_HANDLER(WRITELINE(dmv_k220_device, write_out2)) +MACHINE_CONFIG_END //------------------------------------------------- // input_ports - device-specific input ports diff --git a/src/devices/bus/dmv/k220.h b/src/devices/bus/dmv/k220.h index fe71e2311da..85a3f717a19 100644 --- a/src/devices/bus/dmv/k220.h +++ b/src/devices/bus/dmv/k220.h @@ -23,27 +23,27 @@ public: // construction/destruction dmv_k220_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_WRITE8_MEMBER(porta_w); - DECLARE_WRITE8_MEMBER(portc_w); - DECLARE_WRITE_LINE_MEMBER(write_out0); - DECLARE_WRITE_LINE_MEMBER(write_out1); - DECLARE_WRITE_LINE_MEMBER(write_out2); - 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; + // dmvcart_interface overrides virtual bool read(offs_t offset, uint8_t &data) override; virtual bool write(offs_t offset, uint8_t data) override; private: + DECLARE_WRITE8_MEMBER(porta_w); + DECLARE_WRITE8_MEMBER(portc_w); + DECLARE_WRITE_LINE_MEMBER(write_out0); + DECLARE_WRITE_LINE_MEMBER(write_out1); + DECLARE_WRITE_LINE_MEMBER(write_out2); + required_device m_pit; required_device m_ppi; required_memory_region m_ram; diff --git a/src/devices/bus/dmv/k230.cpp b/src/devices/bus/dmv/k230.cpp index f48acb58ff1..48b5672f328 100644 --- a/src/devices/bus/dmv/k230.cpp +++ b/src/devices/bus/dmv/k230.cpp @@ -57,27 +57,6 @@ static ADDRESS_MAP_START(k235_io, AS_IO, 8, dmv_k230_device) AM_RANGE( 0x00, 0xff ) AM_READWRITE(io_r, io_w) ADDRESS_MAP_END -static MACHINE_CONFIG_START( dmv_k230 ) - MCFG_CPU_ADD("maincpu", I8088, XTAL_15MHz / 3) - MCFG_CPU_PROGRAM_MAP(k230_mem) - MCFG_CPU_IO_MAP(k230_io) -MACHINE_CONFIG_END - -static MACHINE_CONFIG_START( dmv_k234 ) - MCFG_CPU_ADD("maincpu", M68008, XTAL_16MHz / 2) - MCFG_CPU_PROGRAM_MAP(k234_mem) -MACHINE_CONFIG_END - -static MACHINE_CONFIG_START( dmv_k235 ) - MCFG_CPU_ADD("maincpu", V20, XTAL_15MHz / 3) - MCFG_CPU_PROGRAM_MAP(k230_mem) - MCFG_CPU_IO_MAP(k235_io) - MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("pic8259", pic8259_device, inta_cb) - - MCFG_PIC8259_ADD("pic8259", INPUTLINE("maincpu", 0), VCC, NOOP) -MACHINE_CONFIG_END - - static INPUT_PORTS_START( dmv_k235 ) PORT_START("DSW") PORT_DIPNAME( 0x01, 0x00, "K235 INT7" ) PORT_DIPLOCATION("S:1") @@ -180,24 +159,28 @@ void dmv_k234_device::device_reset() } //------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations +// device_add_mconfig - add device configuration //------------------------------------------------- -machine_config_constructor dmv_k230_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( dmv_k230 ); -} +MACHINE_CONFIG_MEMBER( dmv_k230_device::device_add_mconfig ) + MCFG_CPU_ADD("maincpu", I8088, XTAL_15MHz / 3) + MCFG_CPU_PROGRAM_MAP(k230_mem) + MCFG_CPU_IO_MAP(k230_io) +MACHINE_CONFIG_END -machine_config_constructor dmv_k234_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( dmv_k234 ); -} +MACHINE_CONFIG_MEMBER( dmv_k234_device::device_add_mconfig ) + MCFG_CPU_ADD("maincpu", M68008, XTAL_16MHz / 2) + MCFG_CPU_PROGRAM_MAP(k234_mem) +MACHINE_CONFIG_END -machine_config_constructor dmv_k235_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( dmv_k235 ); -} +MACHINE_CONFIG_MEMBER( dmv_k235_device::device_add_mconfig ) + MCFG_CPU_ADD("maincpu", V20, XTAL_15MHz / 3) + MCFG_CPU_PROGRAM_MAP(k230_mem) + MCFG_CPU_IO_MAP(k235_io) + MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("pic8259", pic8259_device, inta_cb) + + MCFG_PIC8259_ADD("pic8259", INPUTLINE("maincpu", 0), VCC, NOOP) +MACHINE_CONFIG_END //------------------------------------------------- // device_rom_region diff --git a/src/devices/bus/dmv/k230.h b/src/devices/bus/dmv/k230.h index 9e183b1c997..4fdee47a1c7 100644 --- a/src/devices/bus/dmv/k230.h +++ b/src/devices/bus/dmv/k230.h @@ -30,10 +30,6 @@ public: // construction/destruction dmv_k230_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(io_r); DECLARE_READ8_MEMBER(program_r); DECLARE_WRITE8_MEMBER(io_w); @@ -47,6 +43,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; + // dmvcart_interface overrides virtual void hold_w(int state) override; virtual void switch16_w(int state) override; @@ -91,7 +91,7 @@ public: 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; // device-level overrides virtual void device_start() override; @@ -118,7 +118,7 @@ public: 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; virtual ioport_constructor device_input_ports() const override; void timint_w(int state) override { m_pic->ir0_w(state); } diff --git a/src/devices/bus/dmv/k801.cpp b/src/devices/bus/dmv/k801.cpp index ff6dbbfc31d..f82a644654a 100644 --- a/src/devices/bus/dmv/k801.cpp +++ b/src/devices/bus/dmv/k801.cpp @@ -21,42 +21,6 @@ ***************************************************************************/ -static MACHINE_CONFIG_START( dmv_k801 ) - MCFG_DEVICE_ADD("epci", MC2661, XTAL_5_0688MHz) - MCFG_MC2661_TXD_HANDLER(DEVWRITELINE("rs232", rs232_port_device, write_txd)) - MCFG_MC2661_RTS_HANDLER(DEVWRITELINE("rs232", rs232_port_device, write_rts)) - MCFG_MC2661_DTR_HANDLER(DEVWRITELINE("rs232", rs232_port_device, write_dtr)) - MCFG_MC2661_RXRDY_HANDLER(WRITELINE(dmv_k801_device, epci_irq_w)) - MCFG_MC2661_TXRDY_HANDLER(WRITELINE(dmv_k801_device, epci_irq_w)) - - MCFG_RS232_PORT_ADD("rs232", default_rs232_devices, "printer") - MCFG_RS232_RXD_HANDLER(DEVWRITELINE("epci", mc2661_device, rx_w)) - MCFG_RS232_DCD_HANDLER(DEVWRITELINE("epci", mc2661_device, dcd_w)) - MCFG_RS232_DSR_HANDLER(DEVWRITELINE("epci", mc2661_device, dsr_w)) - MCFG_RS232_CTS_HANDLER(DEVWRITELINE("epci", mc2661_device, cts_w)) -MACHINE_CONFIG_END - -static MACHINE_CONFIG_START( dmv_k211 ) - MCFG_FRAGMENT_ADD( dmv_k801 ) - - MCFG_DEVICE_MODIFY("rs232") - MCFG_SLOT_DEFAULT_OPTION("null_modem") -MACHINE_CONFIG_END - -static MACHINE_CONFIG_START( dmv_k212 ) - MCFG_FRAGMENT_ADD( dmv_k801 ) - - MCFG_DEVICE_MODIFY("rs232") - MCFG_SLOT_DEFAULT_OPTION("printer") -MACHINE_CONFIG_END - -static MACHINE_CONFIG_START( dmv_k213 ) - MCFG_FRAGMENT_ADD( dmv_k801 ) - - MCFG_DEVICE_MODIFY("rs232") - MCFG_SLOT_DEFAULT_OPTION(nullptr) -MACHINE_CONFIG_END - static INPUT_PORTS_START( dmv_k801 ) PORT_START("DSW") PORT_DIPNAME( 0x0f, 0x00, "K801 IFSEL" ) PORT_DIPLOCATION("S:!4,S:!3,S:!2,S:!1") @@ -175,29 +139,44 @@ void dmv_k801_device::device_reset() } //------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations +// device_add_mconfig - add device configuration //------------------------------------------------- -machine_config_constructor dmv_k801_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( dmv_k801 ); -} +MACHINE_CONFIG_MEMBER( dmv_k801_device::device_add_mconfig ) + MCFG_DEVICE_ADD("epci", MC2661, XTAL_5_0688MHz) + MCFG_MC2661_TXD_HANDLER(DEVWRITELINE("rs232", rs232_port_device, write_txd)) + MCFG_MC2661_RTS_HANDLER(DEVWRITELINE("rs232", rs232_port_device, write_rts)) + MCFG_MC2661_DTR_HANDLER(DEVWRITELINE("rs232", rs232_port_device, write_dtr)) + MCFG_MC2661_RXRDY_HANDLER(WRITELINE(dmv_k801_device, epci_irq_w)) + MCFG_MC2661_TXRDY_HANDLER(WRITELINE(dmv_k801_device, epci_irq_w)) -machine_config_constructor dmv_k211_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( dmv_k211 ); -} + MCFG_RS232_PORT_ADD("rs232", default_rs232_devices, "printer") + MCFG_RS232_RXD_HANDLER(DEVWRITELINE("epci", mc2661_device, rx_w)) + MCFG_RS232_DCD_HANDLER(DEVWRITELINE("epci", mc2661_device, dcd_w)) + MCFG_RS232_DSR_HANDLER(DEVWRITELINE("epci", mc2661_device, dsr_w)) + MCFG_RS232_CTS_HANDLER(DEVWRITELINE("epci", mc2661_device, cts_w)) +MACHINE_CONFIG_END -machine_config_constructor dmv_k212_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( dmv_k212 ); -} +MACHINE_CONFIG_MEMBER( dmv_k211_device::device_add_mconfig ) + dmv_k801_device::device_add_mconfig(config); -machine_config_constructor dmv_k213_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( dmv_k213 ); -} + MCFG_DEVICE_MODIFY("rs232") + MCFG_SLOT_DEFAULT_OPTION("null_modem") +MACHINE_CONFIG_END + +MACHINE_CONFIG_MEMBER( dmv_k212_device::device_add_mconfig ) + dmv_k801_device::device_add_mconfig(config); + + MCFG_DEVICE_MODIFY("rs232") + MCFG_SLOT_DEFAULT_OPTION("printer") +MACHINE_CONFIG_END + +MACHINE_CONFIG_MEMBER( dmv_k213_device::device_add_mconfig ) + dmv_k801_device::device_add_mconfig(config); + + MCFG_DEVICE_MODIFY("rs232") + MCFG_SLOT_DEFAULT_OPTION(nullptr) +MACHINE_CONFIG_END //------------------------------------------------- // input_ports - device-specific input ports diff --git a/src/devices/bus/dmv/k801.h b/src/devices/bus/dmv/k801.h index cad9701e61e..cba10725e0a 100644 --- a/src/devices/bus/dmv/k801.h +++ b/src/devices/bus/dmv/k801.h @@ -24,12 +24,6 @@ public: // construction/destruction dmv_k801_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // optional information overrides - virtual ioport_constructor device_input_ports() const override; - virtual machine_config_constructor device_mconfig_additions() const override; - - DECLARE_WRITE_LINE_MEMBER(epci_irq_w); - protected: dmv_k801_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); @@ -37,13 +31,20 @@ protected: virtual void device_start() override; virtual void device_reset() override; + // optional information overrides + virtual ioport_constructor device_input_ports() const override; + virtual void device_add_mconfig(machine_config &config) override; + // dmvcart_interface overrides virtual void io_read(address_space &space, int ifsel, offs_t offset, uint8_t &data) override; virtual void io_write(address_space &space, int ifsel, offs_t offset, uint8_t data) override; -protected: required_device m_epci; required_ioport m_dsw; + +private: + DECLARE_WRITE_LINE_MEMBER(epci_irq_w); + dmvcart_slot_device * m_bus; }; @@ -57,13 +58,13 @@ public: // construction/destruction dmv_k211_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // optional information overrides - virtual ioport_constructor device_input_ports() const override; - virtual machine_config_constructor device_mconfig_additions() const override; - protected: dmv_k211_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // optional information overrides + virtual ioport_constructor device_input_ports() const override; + virtual void device_add_mconfig(machine_config &config) override; + // dmvcart_interface overrides virtual void io_read(address_space &space, int ifsel, offs_t offset, uint8_t &data) override; virtual void io_write(address_space &space, int ifsel, offs_t offset, uint8_t data) override; @@ -78,9 +79,10 @@ public: // construction/destruction dmv_k212_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); +protected: // optional information overrides virtual ioport_constructor device_input_ports() const override; - virtual machine_config_constructor device_mconfig_additions() const override; + virtual void device_add_mconfig(machine_config &config) override; }; // ======================> dmv_k213_device @@ -92,9 +94,10 @@ public: // construction/destruction dmv_k213_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); +protected: // optional information overrides virtual ioport_constructor device_input_ports() const override; - virtual machine_config_constructor device_mconfig_additions() const override; + virtual void device_add_mconfig(machine_config &config) override; }; diff --git a/src/devices/bus/dmv/k803.cpp b/src/devices/bus/dmv/k803.cpp index 144580e355a..faeb0cdcac5 100644 --- a/src/devices/bus/dmv/k803.cpp +++ b/src/devices/bus/dmv/k803.cpp @@ -14,11 +14,6 @@ IMPLEMENTATION ***************************************************************************/ -static MACHINE_CONFIG_START( dmv_k803 ) - MCFG_DEVICE_ADD("rtc", MM58167, XTAL_32_768kHz) - MCFG_MM58167_IRQ_CALLBACK(WRITELINE(dmv_k803_device, rtc_irq_w)) -MACHINE_CONFIG_END - static INPUT_PORTS_START( dmv_k803 ) PORT_START("DSW") PORT_DIPNAME( 0x0f, 0x09, "K803 IFSEL" ) PORT_DIPLOCATION("S:!4,S:!3,S:!2,S:!1") @@ -77,14 +72,13 @@ void dmv_k803_device::device_reset() } //------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations +// device_add_mconfig - add device configuration //------------------------------------------------- -machine_config_constructor dmv_k803_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( dmv_k803 ); -} +MACHINE_CONFIG_MEMBER( dmv_k803_device::device_add_mconfig ) + MCFG_DEVICE_ADD("rtc", MM58167, XTAL_32_768kHz) + MCFG_MM58167_IRQ_CALLBACK(WRITELINE(dmv_k803_device, rtc_irq_w)) +MACHINE_CONFIG_END //------------------------------------------------- // input_ports - device-specific input ports diff --git a/src/devices/bus/dmv/k803.h b/src/devices/bus/dmv/k803.h index 0446a8bbeb4..0e1e190e89f 100644 --- a/src/devices/bus/dmv/k803.h +++ b/src/devices/bus/dmv/k803.h @@ -22,23 +22,23 @@ public: // construction/destruction dmv_k803_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // optional information overrides - virtual ioport_constructor device_input_ports() const override; - virtual machine_config_constructor device_mconfig_additions() const override; - - DECLARE_WRITE_LINE_MEMBER(rtc_irq_w); - protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; + // optional information overrides + virtual ioport_constructor device_input_ports() const override; + virtual void device_add_mconfig(machine_config &config) override; + virtual void io_read(address_space &space, int ifsel, offs_t offset, uint8_t &data) override; virtual void io_write(address_space &space, int ifsel, offs_t offset, uint8_t data) override; void update_int(); private: + DECLARE_WRITE_LINE_MEMBER(rtc_irq_w); + required_device m_rtc; required_ioport m_dsw; dmvcart_slot_device * m_bus; diff --git a/src/devices/bus/dmv/k806.cpp b/src/devices/bus/dmv/k806.cpp index 8ecb46e1075..4c6f22d8d87 100644 --- a/src/devices/bus/dmv/k806.cpp +++ b/src/devices/bus/dmv/k806.cpp @@ -19,15 +19,6 @@ ROM_START( dmv_k806 ) ROM_LOAD( "dmv_mouse_8741a.bin", 0x0000, 0x0400, CRC(2163737a) SHA1(b82c14dba6c25cb1f60cf623989ca8c0c1ee4cc3)) ROM_END -static MACHINE_CONFIG_START( dmv_k806 ) - MCFG_CPU_ADD("mcu", I8741, XTAL_6MHz) - MCFG_MCS48_PORT_P1_IN_CB(READ8(dmv_k806_device, port1_r)) - MCFG_MCS48_PORT_P2_OUT_CB(WRITE8(dmv_k806_device, port2_w)) - MCFG_MCS48_PORT_T1_IN_CB(READLINE(dmv_k806_device, portt1_r)) - - MCFG_TIMER_DRIVER_ADD_PERIODIC("mouse_timer", dmv_k806_device, mouse_timer, attotime::from_hz(1000)) -MACHINE_CONFIG_END - static INPUT_PORTS_START( dmv_k806 ) PORT_START("JUMPERS") PORT_DIPNAME( 0x7f, 0x24, "K806 IFSEL" ) PORT_DIPLOCATION("J:!1,J:!2,J:!3,J:!4,J:!5,J:!6,J:!7") @@ -106,14 +97,17 @@ void dmv_k806_device::device_reset() } //------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations +// device_add_mconfig - add device configuration //------------------------------------------------- -machine_config_constructor dmv_k806_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( dmv_k806 ); -} +MACHINE_CONFIG_MEMBER( dmv_k806_device::device_add_mconfig ) + MCFG_CPU_ADD("mcu", I8741, XTAL_6MHz) + MCFG_MCS48_PORT_P1_IN_CB(READ8(dmv_k806_device, port1_r)) + MCFG_MCS48_PORT_P2_OUT_CB(WRITE8(dmv_k806_device, port2_w)) + MCFG_MCS48_PORT_T1_IN_CB(READLINE(dmv_k806_device, portt1_r)) + + MCFG_TIMER_DRIVER_ADD_PERIODIC("mouse_timer", dmv_k806_device, mouse_timer, attotime::from_hz(1000)) +MACHINE_CONFIG_END //------------------------------------------------- // input_ports - device-specific input ports diff --git a/src/devices/bus/dmv/k806.h b/src/devices/bus/dmv/k806.h index bcb41068f82..9a6687423b0 100644 --- a/src/devices/bus/dmv/k806.h +++ b/src/devices/bus/dmv/k806.h @@ -23,26 +23,26 @@ public: // construction/destruction dmv_k806_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 ioport_constructor device_input_ports() const override; - virtual machine_config_constructor device_mconfig_additions() const override; + virtual void device_add_mconfig(machine_config &config) override; + virtual void io_read(address_space &space, int ifsel, offs_t offset, uint8_t &data) override; + virtual void io_write(address_space &space, int ifsel, offs_t offset, uint8_t data) override; + +private: DECLARE_READ_LINE_MEMBER(portt1_r); DECLARE_READ8_MEMBER(port1_r); DECLARE_WRITE8_MEMBER(port2_w); TIMER_DEVICE_CALLBACK_MEMBER(mouse_timer); -protected: - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - - virtual void io_read(address_space &space, int ifsel, offs_t offset, uint8_t &data) override; - virtual void io_write(address_space &space, int ifsel, offs_t offset, uint8_t data) override; - -private: required_device m_mcu; required_ioport m_jumpers; required_ioport m_mouse_buttons; diff --git a/src/devices/bus/ecbbus/grip.cpp b/src/devices/bus/ecbbus/grip.cpp index 74207f1bbb9..7b437ccf8c5 100644 --- a/src/devices/bus/ecbbus/grip.cpp +++ b/src/devices/bus/ecbbus/grip.cpp @@ -451,11 +451,13 @@ void ecb_grip21_device::kb_w(uint8_t data) // MACHINE CONFIGURATION //************************************************************************** + //------------------------------------------------- -// MACHINE_CONFIG_START( grip ) +// device_add_mconfig - add device configuration //------------------------------------------------- -static MACHINE_CONFIG_START( grip ) + +MACHINE_CONFIG_MEMBER( ecb_grip21_device::device_add_mconfig ) // basic machine hardware MCFG_CPU_ADD(Z80_TAG, Z80, XTAL_16MHz/4) MCFG_Z80_DAISY_CHAIN(grip_daisy_chain) @@ -512,17 +514,6 @@ static MACHINE_CONFIG_START( grip ) MACHINE_CONFIG_END -//------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations -//------------------------------------------------- - -machine_config_constructor ecb_grip21_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( grip ); -} - - //************************************************************************** // INPUT PORTS //************************************************************************** diff --git a/src/devices/bus/ecbbus/grip.h b/src/devices/bus/ecbbus/grip.h index a261b22a557..6851bf755d9 100644 --- a/src/devices/bus/ecbbus/grip.h +++ b/src/devices/bus/ecbbus/grip.h @@ -36,11 +36,6 @@ public: // construction/destruction ecb_grip21_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_WRITE8_MEMBER( vol0_w ); DECLARE_WRITE8_MEMBER( vol1_w ); @@ -51,6 +46,22 @@ public: DECLARE_WRITE8_MEMBER( lrs_w ); DECLARE_READ8_MEMBER( cxstb_r ); DECLARE_WRITE8_MEMBER( cxstb_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; + virtual ioport_constructor device_input_ports() const override; + + // device_ecbbus_card_interface overrides + virtual uint8_t ecbbus_io_r(offs_t offset) override; + virtual void ecbbus_io_w(offs_t offset, uint8_t data) override; + +private: DECLARE_READ8_MEMBER( ppi_pa_r ); DECLARE_WRITE8_MEMBER( ppi_pa_w ); DECLARE_READ8_MEMBER( ppi_pb_r ); @@ -65,16 +76,6 @@ public: MC6845_UPDATE_ROW( crtc_update_row ); -protected: - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - - // device_ecbbus_card_interface overrides - virtual uint8_t ecbbus_io_r(offs_t offset) override; - virtual void ecbbus_io_w(offs_t offset, uint8_t data) override; - -private: required_device m_ppi; required_device m_sti; required_device m_crtc; diff --git a/src/devices/bus/econet/e01.cpp b/src/devices/bus/econet/e01.cpp index 760df651bc5..0a5f8eef283 100644 --- a/src/devices/bus/econet/e01.cpp +++ b/src/devices/bus/econet/e01.cpp @@ -169,7 +169,7 @@ WRITE_LINE_MEMBER( econet_e01_device::clk_en_w ) m_clk_en = state; } -FLOPPY_FORMATS_MEMBER( floppy_formats_afs ) +FLOPPY_FORMATS_MEMBER( econet_e01_device::floppy_formats_afs ) FLOPPY_AFS_FORMAT FLOPPY_FORMATS_END0 @@ -238,10 +238,10 @@ ADDRESS_MAP_END //------------------------------------------------- -// MACHINE_DRIVER( e01 ) +// device_add_mconfig - add device configuration //------------------------------------------------- -static MACHINE_CONFIG_START( e01 ) +MACHINE_CONFIG_MEMBER( econet_e01_device::device_add_mconfig ) // basic machine hardware MCFG_CPU_ADD(R65C102_TAG, M65C02, XTAL_8MHz/4) // Rockwell R65C102P3 MCFG_CPU_PROGRAM_MAP(e01_mem) @@ -291,17 +291,6 @@ static MACHINE_CONFIG_START( e01 ) MACHINE_CONFIG_END -//------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations -//------------------------------------------------- - -machine_config_constructor econet_e01_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( e01 ); -} - - //------------------------------------------------- // INPUT_PORTS( e01 ) //------------------------------------------------- diff --git a/src/devices/bus/econet/e01.h b/src/devices/bus/econet/e01.h index dd9eab8fc4f..20508313538 100644 --- a/src/devices/bus/econet/e01.h +++ b/src/devices/bus/econet/e01.h @@ -31,8 +31,6 @@ public: // construction/destruction econet_e01_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - DECLARE_FLOPPY_FORMATS(floppy_formats_afs); - DECLARE_READ8_MEMBER( read ); DECLARE_WRITE8_MEMBER( write ); DECLARE_READ8_MEMBER( ram_select_r ); @@ -49,15 +47,6 @@ public: DECLARE_WRITE8_MEMBER( rtc_address_w ); DECLARE_READ8_MEMBER( rtc_data_r ); DECLARE_WRITE8_MEMBER( rtc_data_w ); - DECLARE_WRITE_LINE_MEMBER( rtc_irq_w ); - DECLARE_WRITE_LINE_MEMBER( adlc_irq_w ); - DECLARE_WRITE_LINE_MEMBER( econet_data_w ); - DECLARE_WRITE_LINE_MEMBER( via_irq_w ); - DECLARE_WRITE_LINE_MEMBER( clk_en_w ); - DECLARE_WRITE_LINE_MEMBER( fdc_irq_w ); - DECLARE_WRITE_LINE_MEMBER( fdc_drq_w ); - DECLARE_WRITE_LINE_MEMBER( scsi_bsy_w ); - DECLARE_WRITE_LINE_MEMBER( scsi_req_w ); protected: enum @@ -75,13 +64,26 @@ 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; virtual ioport_constructor device_input_ports() const override; // device_econet_interface overrides virtual void econet_data(int state) override; virtual void econet_clk(int state) override; +private: + DECLARE_WRITE_LINE_MEMBER( rtc_irq_w ); + DECLARE_WRITE_LINE_MEMBER( adlc_irq_w ); + DECLARE_WRITE_LINE_MEMBER( econet_data_w ); + DECLARE_WRITE_LINE_MEMBER( via_irq_w ); + DECLARE_WRITE_LINE_MEMBER( clk_en_w ); + DECLARE_WRITE_LINE_MEMBER( fdc_irq_w ); + DECLARE_WRITE_LINE_MEMBER( fdc_drq_w ); + DECLARE_WRITE_LINE_MEMBER( scsi_bsy_w ); + DECLARE_WRITE_LINE_MEMBER( scsi_req_w ); + + DECLARE_FLOPPY_FORMATS(floppy_formats_afs); + required_device m_maincpu; required_device m_fdc; required_device m_adlc; diff --git a/src/devices/bus/electron/m2105.cpp b/src/devices/bus/electron/m2105.cpp index 8fbc0912ad5..4d00d0e3f56 100644 --- a/src/devices/bus/electron/m2105.cpp +++ b/src/devices/bus/electron/m2105.cpp @@ -51,10 +51,10 @@ ROM_END //------------------------------------------------- -// MACHINE_DRIVER( m2105 ) +// device_add_mconfig - add device configuration //------------------------------------------------- -static MACHINE_CONFIG_START( m2105 ) +MACHINE_CONFIG_MEMBER( electron_m2105_device::device_add_mconfig ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -98,17 +98,6 @@ static MACHINE_CONFIG_START( m2105 ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END - -//------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations -//------------------------------------------------- - -machine_config_constructor electron_m2105_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( m2105 ); -} - const tiny_rom_entry *electron_m2105_device::device_rom_region() const { return ROM_NAME( m2105 ); diff --git a/src/devices/bus/electron/m2105.h b/src/devices/bus/electron/m2105.h index 94ab1d8ec5f..fab765cca1c 100644 --- a/src/devices/bus/electron/m2105.h +++ b/src/devices/bus/electron/m2105.h @@ -32,17 +32,17 @@ public: // construction/destruction electron_m2105_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - DECLARE_WRITE_LINE_MEMBER(intrq_w); - - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - virtual const tiny_rom_entry *device_rom_region() const override; - 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: + DECLARE_WRITE_LINE_MEMBER(intrq_w); + required_memory_region m_exp_rom; required_device m_via6522_0; required_device m_via6522_1; diff --git a/src/devices/bus/electron/plus3.cpp b/src/devices/bus/electron/plus3.cpp index 16096324e70..8f1462135a1 100644 --- a/src/devices/bus/electron/plus3.cpp +++ b/src/devices/bus/electron/plus3.cpp @@ -31,7 +31,7 @@ DEFINE_DEVICE_TYPE(ELECTRON_PLUS3, electron_plus3_device, "electron_plus3", "Aco // MACHINE_DRIVER( plus3 ) //------------------------------------------------- -FLOPPY_FORMATS_MEMBER(floppy_formats) +FLOPPY_FORMATS_MEMBER(electron_plus3_device::floppy_formats) FLOPPY_ACORN_SSD_FORMAT, FLOPPY_ACORN_DSD_FORMAT, FLOPPY_ACORN_ADFS_OLD_FORMAT @@ -45,23 +45,6 @@ SLOT_INTERFACE_START(electron_floppies) SLOT_INTERFACE_END -MACHINE_CONFIG_START( plus3 ) - /* fdc */ - MCFG_WD1770_ADD("fdc", XTAL_16MHz / 2) - MCFG_FLOPPY_DRIVE_ADD("fdc:0", electron_floppies, "35dd", floppy_formats) - MCFG_SLOT_FIXED(true) - MCFG_FLOPPY_DRIVE_SOUND(true) - MCFG_FLOPPY_DRIVE_ADD("fdc:1", electron_floppies, nullptr, floppy_formats) - MCFG_FLOPPY_DRIVE_SOUND(true) - - /* software lists */ - MCFG_SOFTWARE_LIST_ADD("flop_ls", "electron_flop") - - /* pass-through */ - MCFG_ELECTRON_PASSTHRU_EXPANSION_SLOT_ADD(nullptr) -MACHINE_CONFIG_END - - ROM_START( plus3 ) // Bank 4 Disc ROM_REGION(0x4000, "exp_rom", 0) @@ -79,14 +62,24 @@ ROM_START( plus3 ) ROM_END //------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations +// device_add_mconfig - add device configuration //------------------------------------------------- -machine_config_constructor electron_plus3_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( plus3 ); -} +MACHINE_CONFIG_MEMBER( electron_plus3_device::device_add_mconfig ) + /* fdc */ + MCFG_WD1770_ADD("fdc", XTAL_16MHz / 2) + MCFG_FLOPPY_DRIVE_ADD("fdc:0", electron_floppies, "35dd", floppy_formats) + MCFG_SLOT_FIXED(true) + MCFG_FLOPPY_DRIVE_SOUND(true) + MCFG_FLOPPY_DRIVE_ADD("fdc:1", electron_floppies, nullptr, floppy_formats) + MCFG_FLOPPY_DRIVE_SOUND(true) + + /* software lists */ + MCFG_SOFTWARE_LIST_ADD("flop_ls", "electron_flop") + + /* pass-through */ + MCFG_ELECTRON_PASSTHRU_EXPANSION_SLOT_ADD(nullptr) +MACHINE_CONFIG_END const tiny_rom_entry *electron_plus3_device::device_rom_region() const { diff --git a/src/devices/bus/electron/plus3.h b/src/devices/bus/electron/plus3.h index 0fc49206f89..ef27f075ffc 100644 --- a/src/devices/bus/electron/plus3.h +++ b/src/devices/bus/electron/plus3.h @@ -25,12 +25,6 @@ public: // construction/destruction electron_plus3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - DECLARE_FLOPPY_FORMATS(floppy_formats); - - // 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(wd1770_status_r); DECLARE_WRITE8_MEMBER(wd1770_status_w); @@ -39,7 +33,13 @@ 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: + DECLARE_FLOPPY_FORMATS(floppy_formats); + required_memory_region m_exp_rom; required_device m_fdc; required_device m_floppy0; diff --git a/src/devices/bus/ep64/exdos.cpp b/src/devices/bus/ep64/exdos.cpp index 3219b255477..d69858dc395 100644 --- a/src/devices/bus/ep64/exdos.cpp +++ b/src/devices/bus/ep64/exdos.cpp @@ -99,10 +99,10 @@ SLOT_INTERFACE_END //------------------------------------------------- -// MACHINE_CONFIG_START( ep64_exdos ) +// device_add_mconfig - add device configuration //------------------------------------------------- -static MACHINE_CONFIG_START( ep64_exdos ) +MACHINE_CONFIG_MEMBER( ep64_exdos_device::device_add_mconfig ) MCFG_WD1770_ADD(WD1770_TAG, XTAL_8MHz) MCFG_FLOPPY_DRIVE_ADD(WD1770_TAG":0", ep64_exdos_floppies, "35dd", ep64_exdos_device::floppy_formats) @@ -112,18 +112,6 @@ static MACHINE_CONFIG_START( ep64_exdos ) MACHINE_CONFIG_END -//------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations -//------------------------------------------------- - -machine_config_constructor ep64_exdos_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( ep64_exdos ); -} - - - //************************************************************************** // LIVE DEVICE //************************************************************************** diff --git a/src/devices/bus/ep64/exdos.h b/src/devices/bus/ep64/exdos.h index 9cb002c7754..04e3ecf383b 100644 --- a/src/devices/bus/ep64/exdos.h +++ b/src/devices/bus/ep64/exdos.h @@ -30,21 +30,21 @@ public: // construction/destruction ep64_exdos_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( read ); DECLARE_WRITE8_MEMBER( write ); - 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; + private: + DECLARE_FLOPPY_FORMATS( floppy_formats ); + required_device m_fdc; required_device m_floppy0; required_device m_floppy1; diff --git a/src/devices/bus/epson_sio/pf10.cpp b/src/devices/bus/epson_sio/pf10.cpp index da8cb5463b5..16eb89c988a 100644 --- a/src/devices/bus/epson_sio/pf10.cpp +++ b/src/devices/bus/epson_sio/pf10.cpp @@ -56,15 +56,14 @@ const tiny_rom_entry *epson_pf10_device::device_rom_region() const //------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations +// device_add_mconfig - add device configuration //------------------------------------------------- static SLOT_INTERFACE_START( pf10_floppies ) SLOT_INTERFACE( "smd165", EPSON_SMD_165 ) SLOT_INTERFACE_END -static MACHINE_CONFIG_START( pf10 ) +MACHINE_CONFIG_MEMBER( epson_pf10_device::device_add_mconfig ) MCFG_CPU_ADD("maincpu", HD6303Y, XTAL_4_9152MHz) // HD63A03XF MCFG_CPU_PROGRAM_MAP(cpu_mem) MCFG_CPU_IO_MAP(cpu_io) @@ -78,11 +77,6 @@ static MACHINE_CONFIG_START( pf10 ) MCFG_EPSON_SIO_PIN(DEVWRITELINE(DEVICE_SELF, epson_pf10_device, pinc_w)) MACHINE_CONFIG_END -machine_config_constructor epson_pf10_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( pf10 ); -} - //************************************************************************** // LIVE DEVICE diff --git a/src/devices/bus/epson_sio/pf10.h b/src/devices/bus/epson_sio/pf10.h index 6aff101af70..282bbb874c1 100644 --- a/src/devices/bus/epson_sio/pf10.h +++ b/src/devices/bus/epson_sio/pf10.h @@ -29,10 +29,6 @@ public: // construction/destruction epson_pf10_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; - // floppy disk controller DECLARE_READ8_MEMBER( fdc_r ); DECLARE_WRITE8_MEMBER( fdc_w ); @@ -44,6 +40,21 @@ public: DECLARE_READ8_MEMBER( port2_r ); DECLARE_WRITE8_MEMBER( port2_w ); +protected: + // device-level overrides + 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; + + // optional information overrides + virtual const tiny_rom_entry *device_rom_region() const override; + virtual void device_add_mconfig(machine_config &config) override; + + // device_epson_sio_interface overrides + virtual void tx_w(int level) override; + virtual void pout_w(int level) override; + +private: // serial output from main cpu DECLARE_WRITE_LINE_MEMBER( hd6303_tx_w ); @@ -51,17 +62,7 @@ public: DECLARE_WRITE_LINE_MEMBER( rxc_w ); DECLARE_WRITE_LINE_MEMBER( pinc_w ); -protected: - // device-level overrides - 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; - // device_epson_sio_interface overrides - virtual void tx_w(int level) override; - virtual void pout_w(int level) override; - -private: required_device m_cpu; required_device m_fdc; required_device m_sio_output; diff --git a/src/devices/bus/epson_sio/tf20.cpp b/src/devices/bus/epson_sio/tf20.cpp index 9a3301ef8e9..49b56894bec 100644 --- a/src/devices/bus/epson_sio/tf20.cpp +++ b/src/devices/bus/epson_sio/tf20.cpp @@ -76,19 +76,18 @@ ioport_constructor epson_tf20_device::device_input_ports() const } //------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations +// device_add_mconfig - add device configuration //------------------------------------------------- static SLOT_INTERFACE_START( tf20_floppies ) SLOT_INTERFACE( "sd320", EPSON_SD_320 ) SLOT_INTERFACE_END -static MACHINE_CONFIG_START( tf20 ) +MACHINE_CONFIG_MEMBER( epson_tf20_device::device_add_mconfig ) MCFG_CPU_ADD("19b", Z80, XTAL_CR1 / 2) /* uPD780C */ MCFG_CPU_PROGRAM_MAP(cpu_mem) MCFG_CPU_IO_MAP(cpu_io) - MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE(DEVICE_SELF, epson_tf20_device,irq_callback) + MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE(DEVICE_SELF, epson_tf20_device, irq_callback) // 64k internal ram MCFG_RAM_ADD("ram") @@ -113,11 +112,6 @@ static MACHINE_CONFIG_START( tf20 ) MCFG_EPSON_SIO_PIN(DEVWRITELINE(DEVICE_SELF, epson_tf20_device, pinc_w)) MACHINE_CONFIG_END -machine_config_constructor epson_tf20_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( tf20 ); -} - //************************************************************************** // LIVE DEVICE diff --git a/src/devices/bus/epson_sio/tf20.h b/src/devices/bus/epson_sio/tf20.h index 31c1232c4bb..e509e6ffcaa 100644 --- a/src/devices/bus/epson_sio/tf20.h +++ b/src/devices/bus/epson_sio/tf20.h @@ -31,15 +31,27 @@ public: // construction/destruction epson_tf20_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( rom_disable_r ); DECLARE_READ8_MEMBER( upd765_tc_r ); DECLARE_WRITE8_MEMBER( fdc_control_w ); + +protected: + // device-level overrides + 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; + + // 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_epson_sio_interface overrides + virtual void tx_w(int level) override; + virtual void pout_w(int level) override; + +private: IRQ_CALLBACK_MEMBER( irq_callback ); DECLARE_WRITE_LINE_MEMBER( txda_w ); DECLARE_WRITE_LINE_MEMBER( dtra_w ); @@ -48,17 +60,6 @@ public: DECLARE_WRITE_LINE_MEMBER( rxc_w ); DECLARE_WRITE_LINE_MEMBER( pinc_w ); -protected: - // device-level overrides - 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; - - // device_epson_sio_interface overrides - virtual void tx_w(int level) override; - virtual void pout_w(int level) override; - -private: required_device m_cpu; required_device m_ram; required_device m_fdc; diff --git a/src/devices/bus/gamegear/smsctrladp.cpp b/src/devices/bus/gamegear/smsctrladp.cpp index a0335da6462..a2aa9f222dc 100644 --- a/src/devices/bus/gamegear/smsctrladp.cpp +++ b/src/devices/bus/gamegear/smsctrladp.cpp @@ -64,11 +64,6 @@ void sms_ctrl_adaptor_device::peripheral_w(uint8_t data) } -//------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations -//------------------------------------------------- - WRITE_LINE_MEMBER( sms_ctrl_adaptor_device::th_pin_w ) { m_port->th_pin_w(state); @@ -81,14 +76,13 @@ READ32_MEMBER( sms_ctrl_adaptor_device::pixel_r ) } -static MACHINE_CONFIG_START( sms_adp_slot ) +//------------------------------------------------- +// device_add_mconfig - add device configuration +//------------------------------------------------- + +MACHINE_CONFIG_MEMBER( sms_ctrl_adaptor_device::device_add_mconfig ) MCFG_SMS_CONTROL_PORT_ADD("ctrl", sms_control_port_devices, "joypad") MCFG_SMS_CONTROL_PORT_TH_INPUT_HANDLER(WRITELINE(sms_ctrl_adaptor_device, th_pin_w)) MCFG_SMS_CONTROL_PORT_PIXEL_HANDLER(READ32(sms_ctrl_adaptor_device, pixel_r)) MACHINE_CONFIG_END - -machine_config_constructor sms_ctrl_adaptor_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( sms_adp_slot ); -} diff --git a/src/devices/bus/gamegear/smsctrladp.h b/src/devices/bus/gamegear/smsctrladp.h index 8d139eb0371..a1c4294abde 100644 --- a/src/devices/bus/gamegear/smsctrladp.h +++ b/src/devices/bus/gamegear/smsctrladp.h @@ -31,19 +31,19 @@ public: // construction/destruction sms_ctrl_adaptor_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - DECLARE_WRITE_LINE_MEMBER(th_pin_w); - DECLARE_READ32_MEMBER(pixel_r); - protected: // device-level overrides virtual void device_start() override; - virtual machine_config_constructor device_mconfig_additions() const override; + virtual void device_add_mconfig(machine_config &config) override; // device_gg_ext_port_interface overrides virtual uint8_t peripheral_r() override; virtual void peripheral_w(uint8_t data) override; private: + DECLARE_WRITE_LINE_MEMBER(th_pin_w); + DECLARE_READ32_MEMBER(pixel_r); + required_device m_subctrl_port; }; diff --git a/src/devices/bus/gba/rom.cpp b/src/devices/bus/gba/rom.cpp index 3b3a2e6e20e..5d083f6479e 100644 --- a/src/devices/bus/gba/rom.cpp +++ b/src/devices/bus/gba/rom.cpp @@ -406,15 +406,10 @@ void gba_rom_wariotws_device::gpio_dev_write(uint16_t data, int gpio_dirs) Carts with Flash RAM -------------------------------------------------*/ -static MACHINE_CONFIG_START( panasonic_flash ) +MACHINE_CONFIG_MEMBER( gba_rom_flash_device::device_add_mconfig ) MCFG_PANASONIC_MN63F805MNP_ADD("flash") MACHINE_CONFIG_END -machine_config_constructor gba_rom_flash_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( panasonic_flash ); -} - READ32_MEMBER(gba_rom_flash_device::read_ram) { @@ -457,15 +452,10 @@ WRITE32_MEMBER(gba_rom_flash_device::write_ram) } } -static MACHINE_CONFIG_START( sanyo_flash ) +MACHINE_CONFIG_MEMBER( gba_rom_flash1m_device::device_add_mconfig ) MCFG_SANYO_LE26FV10N1TS_ADD("flash") MACHINE_CONFIG_END -machine_config_constructor gba_rom_flash1m_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( sanyo_flash ); -} - READ32_MEMBER(gba_rom_flash1m_device::read_ram) { diff --git a/src/devices/bus/gba/rom.h b/src/devices/bus/gba/rom.h index 118f075e416..7dc4c060f97 100644 --- a/src/devices/bus/gba/rom.h +++ b/src/devices/bus/gba/rom.h @@ -175,10 +175,7 @@ public: // construction/destruction gba_rom_flash_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; - - // reading and writing +// reading and writing virtual DECLARE_READ32_MEMBER(read_ram) override; virtual DECLARE_WRITE32_MEMBER(write_ram) override; @@ -187,6 +184,9 @@ protected: virtual void device_reset() override; + // device-level overrides + virtual void device_add_mconfig(machine_config &config) override; + //uint32_t m_flash_size; uint32_t m_flash_mask; required_device m_flash; @@ -221,9 +221,6 @@ public: // construction/destruction gba_rom_flash1m_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; - // reading and writing virtual DECLARE_READ32_MEMBER(read_ram) override; virtual DECLARE_WRITE32_MEMBER(write_ram) override; @@ -233,6 +230,9 @@ protected: virtual void device_reset() override; + // device-level overrides + virtual void device_add_mconfig(machine_config &config) override; + //uint32_t m_flash_size; uint32_t m_flash_mask; required_device m_flash; diff --git a/src/devices/bus/hp9845_io/98034.cpp b/src/devices/bus/hp9845_io/98034.cpp index 16a60a81b43..8936cf8900c 100644 --- a/src/devices/bus/hp9845_io/98034.cpp +++ b/src/devices/bus/hp9845_io/98034.cpp @@ -356,7 +356,12 @@ static ADDRESS_MAP_START(np_io_map , AS_IO , 8 , hp98034_io_card_device) AM_RANGE(7 , 7) AM_READ(switch_r) ADDRESS_MAP_END -static MACHINE_CONFIG_START(hp98034) +const tiny_rom_entry *hp98034_io_card_device::device_rom_region() const +{ + return ROM_NAME(hp98034); +} + +MACHINE_CONFIG_MEMBER(hp98034_io_card_device::device_add_mconfig) // Clock for NP is generated by a RC oscillator. Manual says its typical frequency // is around 2 MHz. MCFG_CPU_ADD("np" , HP_NANOPROCESSOR , 2000000) @@ -372,15 +377,5 @@ static MACHINE_CONFIG_START(hp98034) MCFG_IEEE488_ATN_CALLBACK(WRITELINE(hp98034_io_card_device , ieee488_ctrl_w)) MACHINE_CONFIG_END -const tiny_rom_entry *hp98034_io_card_device::device_rom_region() const -{ - return ROM_NAME(hp98034); -} - -machine_config_constructor hp98034_io_card_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME(hp98034); -} - // device type definition DEFINE_DEVICE_TYPE(HP98034_IO_CARD, hp98034_io_card_device, "hp98034", "HP98034 card") diff --git a/src/devices/bus/hp9845_io/98034.h b/src/devices/bus/hp9845_io/98034.h index 9d751a29568..f92d1326f00 100644 --- a/src/devices/bus/hp9845_io/98034.h +++ b/src/devices/bus/hp9845_io/98034.h @@ -24,17 +24,9 @@ public: hp98034_io_card_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual ~hp98034_io_card_device(); - // 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; - virtual DECLARE_READ16_MEMBER(reg_r) override; virtual DECLARE_WRITE16_MEMBER(reg_w) override; - DECLARE_WRITE8_MEMBER(dc_w); - DECLARE_READ8_MEMBER(dc_r); - DECLARE_WRITE8_MEMBER(hpib_data_w); DECLARE_WRITE8_MEMBER(hpib_ctrl_w); DECLARE_READ8_MEMBER(hpib_ctrl_r); @@ -45,15 +37,23 @@ public: DECLARE_WRITE8_MEMBER(mode_reg_clear_w); DECLARE_READ8_MEMBER(switch_r); - IRQ_CALLBACK_MEMBER(irq_callback); - - DECLARE_WRITE_LINE_MEMBER(ieee488_ctrl_w); - protected: virtual void device_start() override; virtual void device_reset() 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: + DECLARE_WRITE8_MEMBER(dc_w); + DECLARE_READ8_MEMBER(dc_r); + + IRQ_CALLBACK_MEMBER(irq_callback); + + DECLARE_WRITE_LINE_MEMBER(ieee488_ctrl_w); + required_device m_cpu; required_ioport m_sw1; required_device m_ieee488; diff --git a/src/devices/bus/hp9845_io/98035.cpp b/src/devices/bus/hp9845_io/98035.cpp index 8651230fd0c..4011e9b9aea 100644 --- a/src/devices/bus/hp9845_io/98035.cpp +++ b/src/devices/bus/hp9845_io/98035.cpp @@ -749,22 +749,17 @@ static ADDRESS_MAP_START(np_io_map , AS_IO , 8 , hp98035_io_card_device) AM_RANGE(0xe , 0xe) AM_READWRITE(clr_inten_r , clr_inten_w) ADDRESS_MAP_END -static MACHINE_CONFIG_START(hp98035) +const tiny_rom_entry *hp98035_io_card_device::device_rom_region() const +{ + return ROM_NAME(hp98035); +} + +MACHINE_CONFIG_MEMBER(hp98035_io_card_device::device_add_mconfig) MCFG_CPU_ADD("np" , HP_NANOPROCESSOR , XTAL_1MHz) MCFG_CPU_PROGRAM_MAP(np_program_map) MCFG_CPU_IO_MAP(np_io_map) MCFG_HP_NANO_DC_CHANGED(WRITE8(hp98035_io_card_device , dc_w)) MACHINE_CONFIG_END -const tiny_rom_entry *hp98035_io_card_device::device_rom_region() const -{ - return ROM_NAME(hp98035); -} - -machine_config_constructor hp98035_io_card_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME(hp98035); -} - // device type definition DEFINE_DEVICE_TYPE(HP98035_IO_CARD, hp98035_io_card_device, "hp98035", "HP98035 card") diff --git a/src/devices/bus/hp9845_io/98035.h b/src/devices/bus/hp9845_io/98035.h index 7bfa8a7db58..62a0d5a03de 100644 --- a/src/devices/bus/hp9845_io/98035.h +++ b/src/devices/bus/hp9845_io/98035.h @@ -24,11 +24,6 @@ public: hp98035_io_card_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual ~hp98035_io_card_device(); - // 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; - virtual DECLARE_READ16_MEMBER(reg_r) override; virtual DECLARE_WRITE16_MEMBER(reg_w) override; @@ -49,14 +44,19 @@ public: DECLARE_READ8_MEMBER(clr_inten_r); DECLARE_WRITE8_MEMBER(clr_inten_w); - DECLARE_WRITE8_MEMBER(dc_w); - protected: 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; + // 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: + DECLARE_WRITE8_MEMBER(dc_w); + required_device m_cpu; // Internal RAM & I/F