From 1a17348787ccc6d8f49a1d7c62e9ada426e23414 Mon Sep 17 00:00:00 2001 From: Zsolt Vasvari Date: Tue, 22 Jan 2008 01:19:59 +0000 Subject: [PATCH] - Added read/write handlers for the "natural" hook-ups of an AY-8910 chip - Modified a couple of drivers to use the new handlers - Added crystals for NYNY and Red Alert --- src/emu/drivers/xtal.h | 2 + src/emu/sound/ay8910.c | 80 ++++++++++++++++++++++++++++++++++++++++ src/emu/sound/ay8910.h | 65 ++++++++++++++++++++++++++++++++ src/mame/drivers/nyny.c | 15 +++----- src/mame/drivers/thief.c | 22 ++++------- 5 files changed, 160 insertions(+), 24 deletions(-) diff --git a/src/emu/drivers/xtal.h b/src/emu/drivers/xtal.h index 648bc628d89..34809d96b6d 100644 --- a/src/emu/drivers/xtal.h +++ b/src/emu/drivers/xtal.h @@ -61,10 +61,12 @@ enum XTAL_10_595MHz = 10595000, /* Mad Alien */ XTAL_11MHz = 11000000, /* Mario I8039 sound */ XTAL_11_0592MHz = 11059200, /* Lethal Justice */ + XTAL_11_2MHz = 11200000, /* New York, New York */ XTAL_11_289MHz = 11289000, /* Vanguard */ XTAL_12MHz = 12000000, XTAL_12_096MHz = 12096000, /* Some early 80's Atari games */ XTAL_12_288MHz = 12288000, /* Sega Model 3 digital audio board */ + XTAL_12_5MHz = 12500000, /* Red Alert audio board */ XTAL_13_3MHz = 13300000, /* BMC bowling */ XTAL_13_33056MHz = 13330560, /* Taito L */ XTAL_13_4MHz = 13400000, /* TNK3, Ikari Warriors h/w */ diff --git a/src/emu/sound/ay8910.c b/src/emu/sound/ay8910.c index 39203cec47d..c73717cb99f 100644 --- a/src/emu/sound/ay8910.c +++ b/src/emu/sound/ay8910.c @@ -240,6 +240,54 @@ 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)); } @@ -256,6 +304,38 @@ 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 e6b9fec4985..0401cb94401 100644 --- a/src/emu/sound/ay8910.h +++ b/src/emu/sound/ay8910.h @@ -27,6 +27,38 @@ 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 ); @@ -43,6 +75,38 @@ 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 ); @@ -75,6 +139,7 @@ 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 4971117f18f..763855af443 100644 --- a/src/mame/drivers/nyny.c +++ b/src/mame/drivers/nyny.c @@ -73,12 +73,12 @@ -#define MAIN_CPU_MASTER_CLOCK (11200000) +#define MAIN_CPU_MASTER_CLOCK (XTAL_11_2MHz) #define PIXEL_CLOCK (MAIN_CPU_MASTER_CLOCK / 2) #define CRTC_CLOCK (MAIN_CPU_MASTER_CLOCK / 16) -#define AUDIO_1_MASTER_CLOCK (4000000) +#define AUDIO_1_MASTER_CLOCK (XTAL_4MHz) #define AUDIO_CPU_1_CLOCK (AUDIO_1_MASTER_CLOCK) -#define AUDIO_2_MASTER_CLOCK (4000000) +#define AUDIO_2_MASTER_CLOCK (XTAL_4MHz) #define AUDIO_CPU_2_CLOCK (AUDIO_2_MASTER_CLOCK) @@ -537,10 +537,8 @@ 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, 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(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(0x4000, 0x4fff) AM_NOP AM_RANGE(0x5000, 0x57ff) AM_MIRROR(0x0800) AM_ROM AM_RANGE(0x6000, 0x67ff) AM_MIRROR(0x0800) AM_ROM @@ -553,8 +551,7 @@ 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, 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(0x2000, 0x2001) AM_MIRROR(0x0ffe) AM_READWRITE(AY8910_2_inv_a0_r, AY8910_2_inv_a0_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 b445a952455..274208a7ec2 100644 --- a/src/mame/drivers/thief.c +++ b/src/mame/drivers/thief.c @@ -199,23 +199,15 @@ static ADDRESS_MAP_START( thief_writemem, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0xe0c0, 0xe0c0) AM_WRITE(thief_context_bank_w) ADDRESS_MAP_END -static ADDRESS_MAP_START( readport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x31, 0x31) AM_READ(thief_io_r) // 8255 - AM_RANGE(0x41, 0x41) AM_READ(AY8910_read_port_0_r) - AM_RANGE(0x43, 0x43) AM_READ(AY8910_read_port_1_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writeport, ADDRESS_SPACE_IO, 8 ) +static ADDRESS_MAP_START( io_map, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) AM_RANGE(0x00, 0x00) AM_WRITE(MWA8_NOP) /* watchdog */ AM_RANGE(0x10, 0x10) AM_WRITE(thief_video_control_w) 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, 0x40) AM_WRITE(AY8910_control_port_0_w) - AM_RANGE(0x41, 0x41) AM_WRITE(AY8910_write_port_0_w) - AM_RANGE(0x42, 0x42) AM_WRITE(AY8910_control_port_1_w) - AM_RANGE(0x43, 0x43) AM_WRITE(AY8910_write_port_1_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(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) @@ -470,7 +462,7 @@ static MACHINE_DRIVER_START( sharkatt ) /* basic machine hardware */ MDRV_CPU_ADD(Z80, 4000000) /* 4 MHz? */ MDRV_CPU_PROGRAM_MAP(sharkatt_readmem,sharkatt_writemem) - MDRV_CPU_IO_MAP(readport,writeport) + MDRV_CPU_IO_MAP(io_map,0) MDRV_CPU_VBLANK_INT(thief_interrupt,1) MDRV_SCREEN_REFRESH_RATE(60) @@ -506,7 +498,7 @@ static MACHINE_DRIVER_START( thief ) /* basic machine hardware */ MDRV_CPU_ADD(Z80, 4000000) /* 4 MHz? */ MDRV_CPU_PROGRAM_MAP(thief_readmem,thief_writemem) - MDRV_CPU_IO_MAP(readport,writeport) + MDRV_CPU_IO_MAP(io_map,0) MDRV_CPU_VBLANK_INT(thief_interrupt,1) MDRV_SCREEN_REFRESH_RATE(60) @@ -542,7 +534,7 @@ static MACHINE_DRIVER_START( natodef ) /* basic machine hardware */ MDRV_CPU_ADD(Z80, 4000000) /* 4 MHz? */ MDRV_CPU_PROGRAM_MAP(thief_readmem,thief_writemem) - MDRV_CPU_IO_MAP(readport,writeport) + MDRV_CPU_IO_MAP(io_map,0) MDRV_CPU_VBLANK_INT(thief_interrupt,1) MDRV_SCREEN_REFRESH_RATE(60)