summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/audio/atarijsa.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/audio/atarijsa.cpp')
-rw-r--r--src/mame/audio/atarijsa.cpp182
1 files changed, 80 insertions, 102 deletions
diff --git a/src/mame/audio/atarijsa.cpp b/src/mame/audio/atarijsa.cpp
index 86a3d08cd05..d9884fb67d5 100644
--- a/src/mame/audio/atarijsa.cpp
+++ b/src/mame/audio/atarijsa.cpp
@@ -157,84 +157,6 @@ static ADDRESS_MAP_START( jsa3_oki2_map, AS_0, 8, atari_jsa_iiis_device )
ADDRESS_MAP_END
-
-//**************************************************************************
-// MACHINE FRAGMENTS
-//**************************************************************************
-
-// Fully populated JSA-I, not used by anyone
-MACHINE_CONFIG_START( jsa_i_config )
-
- // basic machine hardware
- MCFG_CPU_ADD("cpu", M6502, JSA_MASTER_CLOCK/2)
- MCFG_CPU_PROGRAM_MAP(atarijsa1_map)
- MCFG_DEVICE_PERIODIC_INT_DEVICE("soundcomm", atari_sound_comm_device, sound_irq_gen, (double)JSA_MASTER_CLOCK/4/16/16/14)
-
- // sound hardware
- MCFG_ATARI_SOUND_COMM_ADD("soundcomm", "cpu", WRITELINE(atari_jsa_base_device, main_int_write_line))
-
- MCFG_YM2151_ADD("ym2151", JSA_MASTER_CLOCK)
- MCFG_YM2151_IRQ_HANDLER(DEVWRITELINE("soundcomm", atari_sound_comm_device, ym2151_irq_gen))
- MCFG_YM2151_PORT_WRITE_HANDLER(WRITE8(atari_jsa_base_device, ym2151_port_w))
- MCFG_MIXER_ROUTE(0, DEVICE_SELF_OWNER, 0.60, 0)
- MCFG_MIXER_ROUTE(1, DEVICE_SELF_OWNER, 0.60, 1)
-
- MCFG_SOUND_ADD("pokey", POKEY, JSA_MASTER_CLOCK/2)
- MCFG_MIXER_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 0.40, 0)
- MCFG_MIXER_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 0.40, 1)
-
- MCFG_SOUND_ADD("tms", TMS5220C, JSA_MASTER_CLOCK*2/11) // potentially JSA_MASTER_CLOCK/9 as well
- MCFG_MIXER_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 1.0, 0)
- MCFG_MIXER_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 1.0, 1)
-MACHINE_CONFIG_END
-
-
-// Fully populated JSA-II
-MACHINE_CONFIG_START( jsa_ii_config )
-
- // basic machine hardware
- MCFG_CPU_ADD("cpu", M6502, JSA_MASTER_CLOCK/2)
- MCFG_CPU_PROGRAM_MAP(atarijsa2_map)
- MCFG_DEVICE_PERIODIC_INT_DEVICE("soundcomm", atari_sound_comm_device, sound_irq_gen, (double)JSA_MASTER_CLOCK/4/16/16/14)
-
- // sound hardware
- MCFG_ATARI_SOUND_COMM_ADD("soundcomm", "cpu", WRITELINE(atari_jsa_base_device, main_int_write_line))
-
- MCFG_YM2151_ADD("ym2151", JSA_MASTER_CLOCK)
- MCFG_YM2151_IRQ_HANDLER(DEVWRITELINE("soundcomm", atari_sound_comm_device, ym2151_irq_gen))
- MCFG_YM2151_PORT_WRITE_HANDLER(WRITE8(atari_jsa_base_device, ym2151_port_w))
- MCFG_MIXER_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 0.60, 0)
-
- MCFG_OKIM6295_ADD("oki1", JSA_MASTER_CLOCK/3, PIN7_HIGH)
- MCFG_MIXER_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 0.75, 0)
-MACHINE_CONFIG_END
-
-
-// Fully populated JSA-III
-MACHINE_CONFIG_DERIVED( jsa_iii_config, jsa_ii_config )
-
- // basic machine hardware
- MCFG_CPU_MODIFY("cpu")
- MCFG_CPU_PROGRAM_MAP(atarijsa3_map)
-
- MCFG_DEVICE_MODIFY("oki1")
- MCFG_DEVICE_ADDRESS_MAP(AS_0, jsa3_oki1_map)
-MACHINE_CONFIG_END
-
-
-// Fully populated JSA_IIIs
-MACHINE_CONFIG_DERIVED( jsa_iiis_config, jsa_iii_config )
-
- MCFG_DEVICE_MODIFY("ym2151")
- MCFG_MIXER_ROUTE(1, DEVICE_SELF_OWNER, 0.60, 1)
-
- MCFG_OKIM6295_ADD("oki2", JSA_MASTER_CLOCK/3, PIN7_HIGH)
- MCFG_MIXER_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 0.75, 1)
- MCFG_DEVICE_ADDRESS_MAP(AS_0, jsa3_oki2_map)
-MACHINE_CONFIG_END
-
-
-
//**************************************************************************
// I/O PORT DEFINITIONS
//**************************************************************************
@@ -767,14 +689,34 @@ WRITE8_MEMBER( atari_jsa_i_device::pokey_w )
//-------------------------------------------------
-// device_mconfig_additions - return a pointer to
-// the device's machine fragment
+// device_add_mconfig - add device configuration
//-------------------------------------------------
-machine_config_constructor atari_jsa_i_device::device_mconfig_additions() const
-{
- return MACHINE_CONFIG_NAME( jsa_i_config );
-}
+// Fully populated JSA-I, not used by anyone
+MACHINE_CONFIG_MEMBER( atari_jsa_i_device::device_add_mconfig )
+
+ // basic machine hardware
+ MCFG_CPU_ADD("cpu", M6502, JSA_MASTER_CLOCK/2)
+ MCFG_CPU_PROGRAM_MAP(atarijsa1_map)
+ MCFG_DEVICE_PERIODIC_INT_DEVICE("soundcomm", atari_sound_comm_device, sound_irq_gen, (double)JSA_MASTER_CLOCK/4/16/16/14)
+
+ // sound hardware
+ MCFG_ATARI_SOUND_COMM_ADD("soundcomm", "cpu", WRITELINE(atari_jsa_base_device, main_int_write_line))
+
+ MCFG_YM2151_ADD("ym2151", JSA_MASTER_CLOCK)
+ MCFG_YM2151_IRQ_HANDLER(DEVWRITELINE("soundcomm", atari_sound_comm_device, ym2151_irq_gen))
+ MCFG_YM2151_PORT_WRITE_HANDLER(WRITE8(atari_jsa_base_device, ym2151_port_w))
+ MCFG_MIXER_ROUTE(0, DEVICE_SELF_OWNER, 0.60, 0)
+ MCFG_MIXER_ROUTE(1, DEVICE_SELF_OWNER, 0.60, 1)
+
+ MCFG_SOUND_ADD("pokey", POKEY, JSA_MASTER_CLOCK/2)
+ MCFG_MIXER_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 0.40, 0)
+ MCFG_MIXER_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 0.40, 1)
+
+ MCFG_SOUND_ADD("tms", TMS5220C, JSA_MASTER_CLOCK*2/11) // potentially JSA_MASTER_CLOCK/9 as well
+ MCFG_MIXER_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 1.0, 0)
+ MCFG_MIXER_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 1.0, 1)
+MACHINE_CONFIG_END
//-------------------------------------------------
@@ -877,14 +819,28 @@ READ8_MEMBER( atari_jsa_ii_device::rdio_r )
//-------------------------------------------------
-// device_mconfig_additions - return a pointer to
-// the device's machine fragment
+// device_add_mconfig - add device configuration
//-------------------------------------------------
-machine_config_constructor atari_jsa_ii_device::device_mconfig_additions() const
-{
- return MACHINE_CONFIG_NAME( jsa_ii_config );
-}
+// Fully populated JSA-II
+MACHINE_CONFIG_MEMBER( atari_jsa_ii_device::device_add_mconfig )
+
+ // basic machine hardware
+ MCFG_CPU_ADD("cpu", M6502, JSA_MASTER_CLOCK/2)
+ MCFG_CPU_PROGRAM_MAP(atarijsa2_map)
+ MCFG_DEVICE_PERIODIC_INT_DEVICE("soundcomm", atari_sound_comm_device, sound_irq_gen, (double)JSA_MASTER_CLOCK/4/16/16/14)
+
+ // sound hardware
+ MCFG_ATARI_SOUND_COMM_ADD("soundcomm", "cpu", WRITELINE(atari_jsa_base_device, main_int_write_line))
+
+ MCFG_YM2151_ADD("ym2151", JSA_MASTER_CLOCK)
+ MCFG_YM2151_IRQ_HANDLER(DEVWRITELINE("soundcomm", atari_sound_comm_device, ym2151_irq_gen))
+ MCFG_YM2151_PORT_WRITE_HANDLER(WRITE8(atari_jsa_base_device, ym2151_port_w))
+ MCFG_MIXER_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 0.60, 0)
+
+ MCFG_OKIM6295_ADD("oki1", JSA_MASTER_CLOCK/3, PIN7_HIGH)
+ MCFG_MIXER_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 0.75, 0)
+MACHINE_CONFIG_END
//-------------------------------------------------
@@ -945,14 +901,29 @@ READ8_MEMBER( atari_jsa_iii_device::rdio_r )
//-------------------------------------------------
-// device_mconfig_additions - return a pointer to
-// the device's machine fragment
+// device_add_mconfig - add device configuration
//-------------------------------------------------
-machine_config_constructor atari_jsa_iii_device::device_mconfig_additions() const
-{
- return MACHINE_CONFIG_NAME( jsa_iii_config );
-}
+ // Fully populated JSA-III
+MACHINE_CONFIG_MEMBER( atari_jsa_iii_device::device_add_mconfig )
+
+ // basic machine hardware
+ MCFG_CPU_ADD("cpu", M6502, JSA_MASTER_CLOCK/2)
+ MCFG_CPU_PROGRAM_MAP(atarijsa3_map)
+ MCFG_DEVICE_PERIODIC_INT_DEVICE("soundcomm", atari_sound_comm_device, sound_irq_gen, (double)JSA_MASTER_CLOCK/4/16/16/14)
+
+ // sound hardware
+ MCFG_ATARI_SOUND_COMM_ADD("soundcomm", "cpu", WRITELINE(atari_jsa_base_device, main_int_write_line))
+
+ MCFG_YM2151_ADD("ym2151", JSA_MASTER_CLOCK)
+ MCFG_YM2151_IRQ_HANDLER(DEVWRITELINE("soundcomm", atari_sound_comm_device, ym2151_irq_gen))
+ MCFG_YM2151_PORT_WRITE_HANDLER(WRITE8(atari_jsa_base_device, ym2151_port_w))
+ MCFG_MIXER_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 0.60, 0)
+
+ MCFG_OKIM6295_ADD("oki1", JSA_MASTER_CLOCK/3, PIN7_HIGH)
+ MCFG_DEVICE_ADDRESS_MAP(AS_0, jsa3_oki1_map)
+ MCFG_MIXER_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 0.75, 0)
+MACHINE_CONFIG_END
//-------------------------------------------------
@@ -982,11 +953,18 @@ atari_jsa_iiis_device::atari_jsa_iiis_device(const machine_config &mconfig, cons
//-------------------------------------------------
-// device_mconfig_additions - return a pointer to
-// the device's machine fragment
+// device_add_mconfig - add device configuration
//-------------------------------------------------
-machine_config_constructor atari_jsa_iiis_device::device_mconfig_additions() const
-{
- return MACHINE_CONFIG_NAME( jsa_iiis_config );
-}
+// Fully populated JSA_IIIs
+MACHINE_CONFIG_MEMBER( atari_jsa_iiis_device::device_add_mconfig )
+
+ atari_jsa_iii_device::device_add_mconfig(config);
+
+ MCFG_DEVICE_MODIFY("ym2151")
+ MCFG_MIXER_ROUTE(1, DEVICE_SELF_OWNER, 0.60, 1)
+
+ MCFG_OKIM6295_ADD("oki2", JSA_MASTER_CLOCK/3, PIN7_HIGH)
+ MCFG_MIXER_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 0.75, 1)
+ MCFG_DEVICE_ADDRESS_MAP(AS_0, jsa3_oki2_map)
+MACHINE_CONFIG_END