summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/mrflea.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/mrflea.c')
-rw-r--r--src/mame/drivers/mrflea.c83
1 files changed, 24 insertions, 59 deletions
diff --git a/src/mame/drivers/mrflea.c b/src/mame/drivers/mrflea.c
index 6c379a0f291..a77fa59112d 100644
--- a/src/mame/drivers/mrflea.c
+++ b/src/mame/drivers/mrflea.c
@@ -49,10 +49,7 @@ static int mrflea_main;
static int mrflea_status;
-static int mrflea_select0;
static int mrflea_select1;
-static int mrflea_select2;
-static int mrflea_select3;
extern WRITE8_HANDLER( mrflea_gfx_bank_w );
extern WRITE8_HANDLER( mrflea_videoram_w );
@@ -182,68 +179,18 @@ ADDRESS_MAP_END
/*******************************************************/
-static WRITE8_HANDLER( mrflea_select0_w ){
- mrflea_select0 = data;
-}
-
static WRITE8_HANDLER( mrflea_select1_w ){
mrflea_select1 = data;
}
-static WRITE8_HANDLER( mrflea_select2_w ){
- mrflea_select2 = data;
-}
-
-static WRITE8_HANDLER( mrflea_select3_w ){
- mrflea_select3 = data;
-}
-
-/*******************************************************/
-
-static READ8_HANDLER( mrflea_input0_r )
-{
- if( mrflea_select0 == 0x0f ) return input_port_read(space->machine, "IN0");
- if( mrflea_select0 == 0x0e ) return input_port_read(space->machine, "IN1");
- return 0x00;
-}
-
static READ8_HANDLER( mrflea_input1_r )
{
return 0x00;
}
-static READ8_HANDLER( mrflea_input2_r )
-{
- if( mrflea_select2 == 0x0f ) return input_port_read(space->machine, "DSW1");
- if( mrflea_select2 == 0x0e ) return input_port_read(space->machine, "DSW2");
- return 0x00;
-}
-
-static READ8_HANDLER( mrflea_input3_r )
-{
- return 0x00;
-}
-
-/*******************************************************/
-
-static WRITE8_HANDLER( mrflea_data0_w ){
- ay8910_control_port_0_w( space, offset, mrflea_select0 );
- ay8910_write_port_0_w( space, offset, data );
-}
-
static WRITE8_HANDLER( mrflea_data1_w ){
}
-static WRITE8_HANDLER( mrflea_data2_w ){
- ay8910_control_port_1_w( space, offset, mrflea_select2 );
- ay8910_write_port_1_w( space, offset, data );
-}
-
-static WRITE8_HANDLER( mrflea_data3_w ){
- ay8910_control_port_2_w( space, offset, mrflea_select3 );
- ay8910_write_port_2_w( space, offset, data );
-}
-
static ADDRESS_MAP_START( inout_io_map, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(SMH_NOP) /* watchdog */
@@ -253,18 +200,34 @@ static ADDRESS_MAP_START( inout_io_map, ADDRESS_SPACE_IO, 8 )
AM_RANGE(0x21, 0x21) AM_WRITE(mrflea_main_w)
AM_RANGE(0x22, 0x22) AM_READ(mrflea_io_status_r)
AM_RANGE(0x23, 0x23) AM_WRITE(SMH_NOP) /* 0xb4,0x09,0x05 */
- AM_RANGE(0x40, 0x40) AM_READWRITE(mrflea_input0_r, mrflea_data0_w)
- AM_RANGE(0x41, 0x41) AM_WRITE(mrflea_select0_w)
+ AM_RANGE(0x40, 0x40) AM_DEVREAD(SOUND, "ay1", ay8910_r)
+ AM_RANGE(0x40, 0x41) AM_DEVWRITE(SOUND, "ay1", ay8910_data_address_w)
AM_RANGE(0x42, 0x42) AM_READWRITE(mrflea_input1_r, mrflea_data1_w)
AM_RANGE(0x43, 0x43) AM_WRITE(mrflea_select1_w)
- AM_RANGE(0x44, 0x44) AM_READWRITE(mrflea_input2_r, mrflea_data2_w)
- AM_RANGE(0x45, 0x45) AM_WRITE(mrflea_select2_w)
- AM_RANGE(0x46, 0x46) AM_READWRITE(mrflea_input3_r, mrflea_data3_w)
- AM_RANGE(0x47, 0x47) AM_WRITE(mrflea_select3_w)
+ AM_RANGE(0x44, 0x44) AM_DEVREAD(SOUND, "ay2", ay8910_r)
+ AM_RANGE(0x44, 0x45) AM_DEVWRITE(SOUND, "ay2", ay8910_data_address_w)
+ AM_RANGE(0x46, 0x46) AM_DEVREAD(SOUND, "ay3", ay8910_r)
+ AM_RANGE(0x46, 0x47) AM_DEVWRITE(SOUND, "ay3", ay8910_data_address_w)
ADDRESS_MAP_END
/*******************************************************/
+static const ay8910_interface mrflea_ay8910_interface_0 =
+{
+ AY8910_LEGACY_OUTPUT,
+ AY8910_DEFAULT_LOADS,
+ DEVCB_INPUT_PORT("IN1"),
+ DEVCB_INPUT_PORT("IN0")
+};
+
+static const ay8910_interface mrflea_ay8910_interface_1 =
+{
+ AY8910_LEGACY_OUTPUT,
+ AY8910_DEFAULT_LOADS,
+ DEVCB_INPUT_PORT("DSW1"),
+ DEVCB_INPUT_PORT("DSW0")
+};
+
static MACHINE_DRIVER_START( mrflea )
/* basic machine hardware */
@@ -298,9 +261,11 @@ static MACHINE_DRIVER_START( mrflea )
MDRV_SPEAKER_STANDARD_MONO("mono")
MDRV_SOUND_ADD("ay1", AY8910, 2000000)
+ MDRV_SOUND_CONFIG(mrflea_ay8910_interface_0)
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MDRV_SOUND_ADD("ay2", AY8910, 2000000)
+ MDRV_SOUND_CONFIG(mrflea_ay8910_interface_1)
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MDRV_SOUND_ADD("ay3", AY8910, 2000000)