diff --git a/src/emu/sound/ay8910.c b/src/emu/sound/ay8910.c index c73717cb99f..39203cec47d 100644 --- a/src/emu/sound/ay8910.c +++ b/src/emu/sound/ay8910.c @@ -240,54 +240,6 @@ static void _AYWriteReg(struct AY8910 *PSG, int r, int v) /* AY8910 interface */ -static UINT8 ay8910_r(int which, offs_t offset) -{ - UINT8 ret; - struct AY8910 *PSG = sndti_token(SOUND_AY8910, which); - - if (offset & 0x01) - ret = ay8910_read_ym(PSG); - else - /* return whatever the chip returns for a write - when BC1 = 0 and BDIR = 0 */ - ret = 0x00; - - return ret; -} - - -READ8_HANDLER( AY8910_0_r ) { return ay8910_r(0, offset); } -READ8_HANDLER( AY8910_1_r ) { return ay8910_r(1, offset); } -READ8_HANDLER( AY8910_2_r ) { return ay8910_r(2, offset); } -READ8_HANDLER( AY8910_3_r ) { return ay8910_r(3, offset); } -READ8_HANDLER( AY8910_4_r ) { return ay8910_r(4, offset); } -READ16_HANDLER( AY8910_0_lsb_r ) { return ay8910_r(0, offset); } -READ16_HANDLER( AY8910_1_lsb_r ) { return ay8910_r(1, offset); } -READ16_HANDLER( AY8910_2_lsb_r ) { return ay8910_r(2, offset); } -READ16_HANDLER( AY8910_3_lsb_r ) { return ay8910_r(3, offset); } -READ16_HANDLER( AY8910_4_lsb_r ) { return ay8910_r(4, offset); } -READ16_HANDLER( AY8910_0_msb_r ) { return ay8910_r(0, offset) << 8; } -READ16_HANDLER( AY8910_1_msb_r ) { return ay8910_r(1, offset) << 8; } -READ16_HANDLER( AY8910_2_msb_r ) { return ay8910_r(2, offset) << 8; } -READ16_HANDLER( AY8910_3_msb_r ) { return ay8910_r(3, offset) << 8; } -READ16_HANDLER( AY8910_4_msb_r ) { return ay8910_r(4, offset) << 8; } - -READ8_HANDLER( AY8910_0_inv_a0_r ) { return ay8910_r(0, offset ^ 1); } -READ8_HANDLER( AY8910_1_inv_a0_r ) { return ay8910_r(1, offset ^ 1); } -READ8_HANDLER( AY8910_2_inv_a0_r ) { return ay8910_r(2, offset ^ 1); } -READ8_HANDLER( AY8910_3_inv_a0_r ) { return ay8910_r(3, offset ^ 1); } -READ8_HANDLER( AY8910_4_inv_a0_r ) { return ay8910_r(4, offset ^ 1); } -READ16_HANDLER( AY8910_0_lsb_inv_a0_r ) { return ay8910_r(0, offset ^ 1); } -READ16_HANDLER( AY8910_1_lsb_inv_a0_r ) { return ay8910_r(1, offset ^ 1); } -READ16_HANDLER( AY8910_2_lsb_inv_a0_r ) { return ay8910_r(2, offset ^ 1); } -READ16_HANDLER( AY8910_3_lsb_inv_a0_r ) { return ay8910_r(3, offset ^ 1); } -READ16_HANDLER( AY8910_4_lsb_inv_a0_r ) { return ay8910_r(4, offset ^ 1); } -READ16_HANDLER( AY8910_0_msb_inv_a0_r ) { return ay8910_r(0, offset ^ 1) << 8; } -READ16_HANDLER( AY8910_1_msb_inv_a0_r ) { return ay8910_r(1, offset ^ 1) << 8; } -READ16_HANDLER( AY8910_2_msb_inv_a0_r ) { return ay8910_r(2, offset ^ 1) << 8; } -READ16_HANDLER( AY8910_3_msb_inv_a0_r ) { return ay8910_r(3, offset ^ 1) << 8; } -READ16_HANDLER( AY8910_4_msb_inv_a0_r ) { return ay8910_r(4, offset ^ 1) << 8; } - READ8_HANDLER( AY8910_read_port_0_r ) { return ay8910_read_ym(sndti_token(SOUND_AY8910, 0)); } READ8_HANDLER( AY8910_read_port_1_r ) { return ay8910_read_ym(sndti_token(SOUND_AY8910, 1)); } READ8_HANDLER( AY8910_read_port_2_r ) { return ay8910_read_ym(sndti_token(SOUND_AY8910, 2)); } @@ -304,38 +256,6 @@ READ16_HANDLER( AY8910_read_port_2_msb_r ) { return ay8910_read_ym(sndti_token(S READ16_HANDLER( AY8910_read_port_3_msb_r ) { return ay8910_read_ym(sndti_token(SOUND_AY8910, 3)) << 8; } READ16_HANDLER( AY8910_read_port_4_msb_r ) { return ay8910_read_ym(sndti_token(SOUND_AY8910, 4)) << 8; } -WRITE8_HANDLER( AY8910_0_w ) { ay8910_write_ym(sndti_token(SOUND_AY8910, 0), offset & 1, data); } -WRITE8_HANDLER( AY8910_1_w ) { ay8910_write_ym(sndti_token(SOUND_AY8910, 1), offset & 1, data); } -WRITE8_HANDLER( AY8910_2_w ) { ay8910_write_ym(sndti_token(SOUND_AY8910, 2), offset & 1, data); } -WRITE8_HANDLER( AY8910_3_w ) { ay8910_write_ym(sndti_token(SOUND_AY8910, 3), offset & 1, data); } -WRITE8_HANDLER( AY8910_4_w ) { ay8910_write_ym(sndti_token(SOUND_AY8910, 4), offset & 1, data); } -WRITE16_HANDLER( AY8910_0_lsb_w ) { if (ACCESSING_LSB) ay8910_write_ym(sndti_token(SOUND_AY8910, 0), offset & 1, data & 0xff); } -WRITE16_HANDLER( AY8910_1_lsb_w ) { if (ACCESSING_LSB) ay8910_write_ym(sndti_token(SOUND_AY8910, 1), offset & 1, data & 0xff); } -WRITE16_HANDLER( AY8910_2_lsb_w ) { if (ACCESSING_LSB) ay8910_write_ym(sndti_token(SOUND_AY8910, 2), offset & 1, data & 0xff); } -WRITE16_HANDLER( AY8910_3_lsb_w ) { if (ACCESSING_LSB) ay8910_write_ym(sndti_token(SOUND_AY8910, 3), offset & 1, data & 0xff); } -WRITE16_HANDLER( AY8910_4_lsb_w ) { if (ACCESSING_LSB) ay8910_write_ym(sndti_token(SOUND_AY8910, 4), offset & 1, data & 0xff); } -WRITE16_HANDLER( AY8910_0_msb_w ) { if (ACCESSING_MSB) ay8910_write_ym(sndti_token(SOUND_AY8910, 0), offset & 1, data >> 8); } -WRITE16_HANDLER( AY8910_1_msb_w ) { if (ACCESSING_MSB) ay8910_write_ym(sndti_token(SOUND_AY8910, 0), offset & 1, data >> 8); } -WRITE16_HANDLER( AY8910_2_msb_w ) { if (ACCESSING_MSB) ay8910_write_ym(sndti_token(SOUND_AY8910, 0), offset & 1, data >> 8); } -WRITE16_HANDLER( AY8910_3_msb_w ) { if (ACCESSING_MSB) ay8910_write_ym(sndti_token(SOUND_AY8910, 0), offset & 1, data >> 8); } -WRITE16_HANDLER( AY8910_4_msb_w ) { if (ACCESSING_MSB) ay8910_write_ym(sndti_token(SOUND_AY8910, 0), offset & 1, data >> 8); } - -WRITE8_HANDLER( AY8910_0_inv_a0_w ) { ay8910_write_ym(sndti_token(SOUND_AY8910, 0), (offset & 1) ^ 1, data); } -WRITE8_HANDLER( AY8910_1_inv_a0_w ) { ay8910_write_ym(sndti_token(SOUND_AY8910, 1), (offset & 1) ^ 1, data); } -WRITE8_HANDLER( AY8910_2_inv_a0_w ) { ay8910_write_ym(sndti_token(SOUND_AY8910, 2), (offset & 1) ^ 1, data); } -WRITE8_HANDLER( AY8910_3_inv_a0_w ) { ay8910_write_ym(sndti_token(SOUND_AY8910, 3), (offset & 1) ^ 1, data); } -WRITE8_HANDLER( AY8910_4_inv_a0_w ) { ay8910_write_ym(sndti_token(SOUND_AY8910, 4), (offset & 1) ^ 1, data); } -WRITE16_HANDLER( AY8910_0_lsb_inv_a0_w ) { if (ACCESSING_LSB) ay8910_write_ym(sndti_token(SOUND_AY8910, 0), (offset & 1) ^ 1, data & 0xff); } -WRITE16_HANDLER( AY8910_1_lsb_inv_a0_w ) { if (ACCESSING_LSB) ay8910_write_ym(sndti_token(SOUND_AY8910, 1), (offset & 1) ^ 1, data & 0xff); } -WRITE16_HANDLER( AY8910_2_lsb_inv_a0_w ) { if (ACCESSING_LSB) ay8910_write_ym(sndti_token(SOUND_AY8910, 2), (offset & 1) ^ 1, data & 0xff); } -WRITE16_HANDLER( AY8910_3_lsb_inv_a0_w ) { if (ACCESSING_LSB) ay8910_write_ym(sndti_token(SOUND_AY8910, 3), (offset & 1) ^ 1, data & 0xff); } -WRITE16_HANDLER( AY8910_4_lsb_inv_a0_w ) { if (ACCESSING_LSB) ay8910_write_ym(sndti_token(SOUND_AY8910, 4), (offset & 1) ^ 1, data & 0xff); } -WRITE16_HANDLER( AY8910_0_msb_inv_a0_w ) { if (ACCESSING_MSB) ay8910_write_ym(sndti_token(SOUND_AY8910, 0), (offset & 1) ^ 1, data >> 8); } -WRITE16_HANDLER( AY8910_1_msb_inv_a0_w ) { if (ACCESSING_MSB) ay8910_write_ym(sndti_token(SOUND_AY8910, 0), (offset & 1) ^ 1, data >> 8); } -WRITE16_HANDLER( AY8910_2_msb_inv_a0_w ) { if (ACCESSING_MSB) ay8910_write_ym(sndti_token(SOUND_AY8910, 0), (offset & 1) ^ 1, data >> 8); } -WRITE16_HANDLER( AY8910_3_msb_inv_a0_w ) { if (ACCESSING_MSB) ay8910_write_ym(sndti_token(SOUND_AY8910, 0), (offset & 1) ^ 1, data >> 8); } -WRITE16_HANDLER( AY8910_4_msb_inv_a0_w ) { if (ACCESSING_MSB) ay8910_write_ym(sndti_token(SOUND_AY8910, 0), (offset & 1) ^ 1, data >> 8); } - WRITE8_HANDLER( AY8910_control_port_0_w ) { ay8910_write_ym(sndti_token(SOUND_AY8910, 0),0,data); } WRITE8_HANDLER( AY8910_control_port_1_w ) { ay8910_write_ym(sndti_token(SOUND_AY8910, 1),0,data); } WRITE8_HANDLER( AY8910_control_port_2_w ) { ay8910_write_ym(sndti_token(SOUND_AY8910, 2),0,data); } diff --git a/src/emu/sound/ay8910.h b/src/emu/sound/ay8910.h index 0401cb94401..e6b9fec4985 100644 --- a/src/emu/sound/ay8910.h +++ b/src/emu/sound/ay8910.h @@ -27,38 +27,6 @@ struct AY8910interface void AY8910_set_volume(int chip,int channel,int volume); -READ8_HANDLER( AY8910_0_r ); -READ8_HANDLER( AY8910_1_r ); -READ8_HANDLER( AY8910_2_r ); -READ8_HANDLER( AY8910_3_r ); -READ8_HANDLER( AY8910_4_r ); -READ16_HANDLER( AY8910_0_lsb_r ); -READ16_HANDLER( AY8910_1_lsb_r ); -READ16_HANDLER( AY8910_2_lsb_r ); -READ16_HANDLER( AY8910_3_lsb_r ); -READ16_HANDLER( AY8910_4_lsb_r ); -READ16_HANDLER( AY8910_0_msb_r ); -READ16_HANDLER( AY8910_1_msb_r ); -READ16_HANDLER( AY8910_2_msb_r ); -READ16_HANDLER( AY8910_3_msb_r ); -READ16_HANDLER( AY8910_4_msb_r ); - -READ8_HANDLER( AY8910_0_inv_a0_r ); -READ8_HANDLER( AY8910_1_inv_a0_r ); -READ8_HANDLER( AY8910_2_inv_a0_r ); -READ8_HANDLER( AY8910_3_inv_a0_r ); -READ8_HANDLER( AY8910_4_inv_a0_r ); -READ16_HANDLER( AY8910_0_lsb_inv_a0_r ); -READ16_HANDLER( AY8910_1_lsb_inv_a0_r ); -READ16_HANDLER( AY8910_2_lsb_inv_a0_r ); -READ16_HANDLER( AY8910_3_lsb_inv_a0_r ); -READ16_HANDLER( AY8910_4_lsb_inv_a0_r ); -READ16_HANDLER( AY8910_0_msb_inv_a0_r ); -READ16_HANDLER( AY8910_1_msb_inv_a0_r ); -READ16_HANDLER( AY8910_2_msb_inv_a0_r ); -READ16_HANDLER( AY8910_3_msb_inv_a0_r ); -READ16_HANDLER( AY8910_4_msb_inv_a0_r ); - READ8_HANDLER( AY8910_read_port_0_r ); READ8_HANDLER( AY8910_read_port_1_r ); READ8_HANDLER( AY8910_read_port_2_r ); @@ -75,38 +43,6 @@ READ16_HANDLER( AY8910_read_port_2_msb_r ); READ16_HANDLER( AY8910_read_port_3_msb_r ); READ16_HANDLER( AY8910_read_port_4_msb_r ); -WRITE8_HANDLER( AY8910_0_w ); -WRITE8_HANDLER( AY8910_1_w ); -WRITE8_HANDLER( AY8910_2_w ); -WRITE8_HANDLER( AY8910_3_w ); -WRITE8_HANDLER( AY8910_4_w ); -WRITE16_HANDLER( AY8910_0_lsb_w ); -WRITE16_HANDLER( AY8910_1_lsb_w ); -WRITE16_HANDLER( AY8910_2_lsb_w ); -WRITE16_HANDLER( AY8910_3_lsb_w ); -WRITE16_HANDLER( AY8910_4_lsb_w ); -WRITE16_HANDLER( AY8910_0_msb_w ); -WRITE16_HANDLER( AY8910_1_msb_w ); -WRITE16_HANDLER( AY8910_2_msb_w ); -WRITE16_HANDLER( AY8910_3_msb_w ); -WRITE16_HANDLER( AY8910_4_msb_w ); - -WRITE8_HANDLER( AY8910_0_inv_a0_w ); -WRITE8_HANDLER( AY8910_1_inv_a0_w ); -WRITE8_HANDLER( AY8910_2_inv_a0_w ); -WRITE8_HANDLER( AY8910_3_inv_a0_w ); -WRITE8_HANDLER( AY8910_4_inv_a0_w ); -WRITE16_HANDLER( AY8910_0_lsb_inv_a0_w ); -WRITE16_HANDLER( AY8910_1_lsb_inv_a0_w ); -WRITE16_HANDLER( AY8910_2_lsb_inv_a0_w ); -WRITE16_HANDLER( AY8910_3_lsb_inv_a0_w ); -WRITE16_HANDLER( AY8910_4_lsb_inv_a0_w ); -WRITE16_HANDLER( AY8910_0_msb_inv_a0_w ); -WRITE16_HANDLER( AY8910_1_msb_inv_a0_w ); -WRITE16_HANDLER( AY8910_2_msb_inv_a0_w ); -WRITE16_HANDLER( AY8910_3_msb_inv_a0_w ); -WRITE16_HANDLER( AY8910_4_msb_inv_a0_w ); - WRITE8_HANDLER( AY8910_control_port_0_w ); WRITE8_HANDLER( AY8910_control_port_1_w ); WRITE8_HANDLER( AY8910_control_port_2_w ); @@ -139,7 +75,6 @@ WRITE16_HANDLER( AY8910_write_port_2_msb_w ); WRITE16_HANDLER( AY8910_write_port_3_msb_w ); WRITE16_HANDLER( AY8910_write_port_4_msb_w ); - /*********** An interface for SSG of YM2203 ***********/ void *ay8910_start_ym(sound_type chip_type, int sndindex, int clock, int streams, diff --git a/src/mame/drivers/nyny.c b/src/mame/drivers/nyny.c index 763855af443..0355e30812a 100644 --- a/src/mame/drivers/nyny.c +++ b/src/mame/drivers/nyny.c @@ -537,8 +537,10 @@ static ADDRESS_MAP_START( nyny_audio_1_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0080, 0x0fff) AM_NOP AM_RANGE(0x1000, 0x1000) AM_MIRROR(0x0fff) AM_READWRITE(soundlatch_r, audio_1_answer_w) AM_RANGE(0x2000, 0x2000) AM_MIRROR(0x0fff) AM_READ(input_port_4_r) - AM_RANGE(0x3000, 0x3001) AM_MIRROR(0x0ffc) AM_READWRITE(AY8910_0_inv_a0_r, AY8910_0_inv_a0_w) - AM_RANGE(0x3002, 0x3003) AM_MIRROR(0x0ffc) AM_READWRITE(AY8910_1_inv_a0_r, AY8910_1_inv_a0_w) + AM_RANGE(0x3000, 0x3000) AM_MIRROR(0x0ffc) AM_READWRITE(AY8910_read_port_0_r, AY8910_write_port_0_w) + AM_RANGE(0x3001, 0x3001) AM_MIRROR(0x0ffc) AM_WRITE(AY8910_control_port_0_w) + AM_RANGE(0x3002, 0x3002) AM_MIRROR(0x0ffc) AM_READWRITE(AY8910_read_port_1_r, AY8910_write_port_1_w) + AM_RANGE(0x3003, 0x3003) AM_MIRROR(0x0ffc) AM_WRITE(AY8910_control_port_1_w) AM_RANGE(0x4000, 0x4fff) AM_NOP AM_RANGE(0x5000, 0x57ff) AM_MIRROR(0x0800) AM_ROM AM_RANGE(0x6000, 0x67ff) AM_MIRROR(0x0800) AM_ROM @@ -551,7 +553,8 @@ static ADDRESS_MAP_START( nyny_audio_2_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x007f) AM_RAM /* internal RAM */ AM_RANGE(0x0080, 0x0fff) AM_NOP AM_RANGE(0x1000, 0x1000) AM_MIRROR(0x0fff) AM_READ(soundlatch2_r) - AM_RANGE(0x2000, 0x2001) AM_MIRROR(0x0ffe) AM_READWRITE(AY8910_2_inv_a0_r, AY8910_2_inv_a0_w) + AM_RANGE(0x2000, 0x2000) AM_MIRROR(0x0ffe) AM_READWRITE(AY8910_read_port_2_r, AY8910_write_port_2_w) + AM_RANGE(0x2001, 0x2001) AM_MIRROR(0x0ffe) AM_WRITE(AY8910_control_port_2_w) AM_RANGE(0x3000, 0x6fff) AM_NOP AM_RANGE(0x7000, 0x77ff) AM_MIRROR(0x0800) AM_ROM ADDRESS_MAP_END diff --git a/src/mame/drivers/thief.c b/src/mame/drivers/thief.c index 274208a7ec2..55c6d546932 100644 --- a/src/mame/drivers/thief.c +++ b/src/mame/drivers/thief.c @@ -206,15 +206,16 @@ static ADDRESS_MAP_START( io_map, ADDRESS_SPACE_IO, 8 ) AM_RANGE(0x30, 0x30) AM_WRITE(thief_input_select_w) // 8255 AM_RANGE(0x31, 0x31) AM_READ(thief_io_r) // 8255 AM_RANGE(0x33, 0x33) AM_WRITE(tape_control_w) - AM_RANGE(0x40, 0x41) AM_READWRITE(AY8910_0_r, AY8910_0_w) - AM_RANGE(0x42, 0x43) AM_READWRITE(AY8910_1_r, AY8910_1_w) + AM_RANGE(0x40, 0x40) AM_WRITE(AY8910_control_port_0_w) + AM_RANGE(0x41, 0x41) AM_READWRITE(AY8910_read_port_0_r, AY8910_write_port_0_w) + AM_RANGE(0x42, 0x42) AM_WRITE(AY8910_control_port_1_w) + AM_RANGE(0x43, 0x43) AM_READWRITE(AY8910_read_port_1_r, AY8910_write_port_1_w) AM_RANGE(0x50, 0x50) AM_WRITE(thief_color_plane_w) AM_RANGE(0x60, 0x6f) AM_WRITE(thief_vtcsel_w) AM_RANGE(0x70, 0x7f) AM_WRITE(thief_color_map_w) ADDRESS_MAP_END - /**********************************************************/ static INPUT_PORTS_START( sharkatt )