summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Andrew Gardner <andrew-gardner@users.noreply.github.com>2008-09-07 20:33:53 +0000
committer Andrew Gardner <andrew-gardner@users.noreply.github.com>2008-09-07 20:33:53 +0000
commit9af15fd27ff74bae235ce3add87b235ea3edb1df (patch)
treeeb44998b9f2986ff3c508d682470e55cccbe140f
parentc538e495b8e457e346ee70a65a316b6ae2a15844 (diff)
Part 9 of "The big IO_MAP merge of 2008". (Andrew Gardner)
* Because twinadv (snowbros.c) had a crash introduced in 127u1, I wasn't able to test the results of the automated IO_MAP merge operation. It's a simple map though, so I don't expect any difficulties. I apologize for not having the time to fix the bug myself (mantis : 02184).
-rw-r--r--src/mame/drivers/megasys1.c16
-rw-r--r--src/mame/drivers/mitchell.c58
-rw-r--r--src/mame/drivers/scramble.c44
-rw-r--r--src/mame/drivers/snowbros.c46
-rw-r--r--src/mame/drivers/suna8.c83
-rw-r--r--src/mame/drivers/tnzs.c23
6 files changed, 78 insertions, 192 deletions
diff --git a/src/mame/drivers/megasys1.c b/src/mame/drivers/megasys1.c
index 1ed626b3637..e7d52772d6c 100644
--- a/src/mame/drivers/megasys1.c
+++ b/src/mame/drivers/megasys1.c
@@ -528,24 +528,15 @@ static ADDRESS_MAP_START( sound_writemem_z80, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xf000, 0xf000) AM_WRITE(SMH_NOP) /* ?? */
ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x00) AM_READ(ym2203_status_port_0_r)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( sound_writeport, ADDRESS_SPACE_IO, 8 )
+static ADDRESS_MAP_START( sound_io_map, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x00) AM_WRITE(ym2203_control_port_0_w)
+ AM_RANGE(0x00, 0x00) AM_READWRITE(ym2203_status_port_0_r, ym2203_control_port_0_w)
AM_RANGE(0x01, 0x01) AM_WRITE(ym2203_write_port_0_w)
ADDRESS_MAP_END
-
-
-
static const gfx_layout tilelayout =
{
8,8,
@@ -783,7 +774,7 @@ static MACHINE_DRIVER_START( system_Z )
MDRV_CPU_ADD("audio", Z80, 3000000) /* OSC 12MHz divided by 4 ??? */
MDRV_CPU_PROGRAM_MAP(sound_readmem_z80,sound_writemem_z80)
- MDRV_CPU_IO_MAP(sound_readport,sound_writeport)
+ MDRV_CPU_IO_MAP(sound_io_map,0)
/* video hardware */
MDRV_SCREEN_ADD("main", RASTER)
@@ -4093,3 +4084,4 @@ GAME( 1993, chimerab, 0, system_C, chimerab, chimerab, ROT0, "
GAME( 1993, cybattlr, 0, system_C, cybattlr, cybattlr, ROT90, "Jaleco", "Cybattler", 0 )
GAME( 1993, hayaosi1, 0, system_B_hayaosi1, hayaosi1, hayaosi1, ROT0, "Jaleco", "Hayaoshi Quiz Ouza Ketteisen - The King Of Quiz", GAME_IMPERFECT_GRAPHICS )
GAME( 1993, peekaboo, 0, system_D, peekaboo, peekaboo, ROT0, "Jaleco", "Peek-a-Boo!", 0 )
+
diff --git a/src/mame/drivers/mitchell.c b/src/mame/drivers/mitchell.c
index c299f9fc4d6..9084f7faab6 100644
--- a/src/mame/drivers/mitchell.c
+++ b/src/mame/drivers/mitchell.c
@@ -384,31 +384,23 @@ static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xe000, 0xffff) AM_WRITE(SMH_RAM)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( readport, ADDRESS_SPACE_IO, 8 )
+static ADDRESS_MAP_START( io_map, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x02) AM_READ(input_r) /* Super Pang needs a kludge to initialize EEPROM.
- The Mahjong games and Block Block need special input treatment */
- AM_RANGE(0x03, 0x03) AM_READ(input_port_12_r) /* mgakuen only */
- AM_RANGE(0x04, 0x04) AM_READ(input_port_13_r) /* mgakuen only */
- AM_RANGE(0x05, 0x05) AM_READ(pang_port5_r)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x00) AM_WRITE(pang_gfxctrl_w) /* Palette bank, layer enable, coin counters, more */
+ AM_RANGE(0x00, 0x00) AM_WRITE(pang_gfxctrl_w) /* Palette bank, layer enable, coin counters, more */
+ AM_RANGE(0x00, 0x02) AM_READ(input_r) /* Super Pang needs a kludge to initialize EEPROM.
+ The Mahjong games and Block Block need special input treatment */
AM_RANGE(0x01, 0x01) AM_WRITE(input_w)
- AM_RANGE(0x02, 0x02) AM_WRITE(pang_bankswitch_w) /* Code bank register */
- AM_RANGE(0x03, 0x03) AM_WRITE(ym2413_data_port_0_w)
- AM_RANGE(0x04, 0x04) AM_WRITE(ym2413_register_port_0_w)
- AM_RANGE(0x05, 0x05) AM_WRITE(okim6295_data_0_w)
- AM_RANGE(0x06, 0x06) AM_WRITE(SMH_NOP) /* watchdog? irq ack? */
- AM_RANGE(0x07, 0x07) AM_WRITE(pang_video_bank_w) /* Video RAM bank register */
+ AM_RANGE(0x02, 0x02) AM_WRITE(pang_bankswitch_w) /* Code bank register */
+ AM_RANGE(0x03, 0x03) AM_READWRITE(input_port_12_r, ym2413_data_port_0_w) /* mgakuen only */
+ AM_RANGE(0x04, 0x04) AM_READWRITE(input_port_13_r, ym2413_register_port_0_w) /* mgakuen only */
+ AM_RANGE(0x05, 0x05) AM_READWRITE(pang_port5_r, okim6295_data_0_w)
+ AM_RANGE(0x06, 0x06) AM_WRITE(SMH_NOP) /* watchdog? irq ack? */
+ AM_RANGE(0x07, 0x07) AM_WRITE(pang_video_bank_w) /* Video RAM bank register */
AM_RANGE(0x08, 0x08) AM_WRITE(eeprom_cs_w)
AM_RANGE(0x10, 0x10) AM_WRITE(eeprom_clock_w)
AM_RANGE(0x18, 0x18) AM_WRITE(eeprom_serial_w)
ADDRESS_MAP_END
-
/* spangbl */
static ADDRESS_MAP_START( spangb_memmap, ADDRESS_SPACE_PROGRAM, 8 )
@@ -487,24 +479,17 @@ static WRITE8_HANDLER(mstworld_sound_w)
extern WRITE8_HANDLER( mstworld_gfxctrl_w );
extern WRITE8_HANDLER( mstworld_video_bank_w );
-static ADDRESS_MAP_START( mstworld_readport, ADDRESS_SPACE_IO, 8 )
+static ADDRESS_MAP_START( mstworld_io_map, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0") /* coins */
- AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1") /* p1 */
- AM_RANGE(0x02, 0x02) AM_READ_PORT("IN2") /* p2 */
- AM_RANGE(0x03, 0x03) AM_READ_PORT("DSW1") /* dips? */
+ AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0") AM_WRITE(mstworld_gfxctrl_w) /* Palette bank, layer enable, coin counters, more */
+ AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1")
+ AM_RANGE(0x02, 0x02) AM_READ_PORT("IN2") AM_WRITE(pang_bankswitch_w) /* Code bank register */
+ AM_RANGE(0x03, 0x03) AM_READ_PORT("DSW1") AM_WRITE(mstworld_sound_w) /* write to sound cpu */
AM_RANGE(0x04, 0x04) AM_READ_PORT("DSW2") /* dips? */
AM_RANGE(0x05, 0x05) AM_READ_PORT("DSW0") /* special? */
AM_RANGE(0x06, 0x06) AM_READ_PORT("DSW3") /* dips? */
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( mstworld_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x00) AM_WRITE(mstworld_gfxctrl_w) /* Palette bank, layer enable, coin counters, more */
- AM_RANGE(0x02, 0x02) AM_WRITE(pang_bankswitch_w) /* Code bank register */
- AM_RANGE(0x03, 0x03) AM_WRITE(mstworld_sound_w) /* write to sound cpu */
- AM_RANGE(0x06, 0x06) AM_WRITE(SMH_NOP) /* watchdog? irq ack? */
- AM_RANGE(0x07, 0x07) AM_WRITE(mstworld_video_bank_w) /* Video RAM bank register */
+ AM_RANGE(0x06, 0x06) AM_WRITE(SMH_NOP) /* watchdog? irq ack? */
+ AM_RANGE(0x07, 0x07) AM_WRITE(mstworld_video_bank_w) /* Video RAM bank register */
ADDRESS_MAP_END
/**** End Monsters World ****/
@@ -1133,7 +1118,7 @@ static MACHINE_DRIVER_START( mgakuen )
/* basic machine hardware */
MDRV_CPU_ADD("main", Z80, 6000000) /* ??? */
MDRV_CPU_PROGRAM_MAP(mgakuen_readmem,mgakuen_writemem)
- MDRV_CPU_IO_MAP(readport,writeport)
+ MDRV_CPU_IO_MAP(io_map,0)
MDRV_CPU_VBLANK_INT_HACK(irq0_line_hold,2) /* ??? one extra irq seems to be needed for music (see input5_r) */
/* video hardware */
@@ -1167,7 +1152,7 @@ static MACHINE_DRIVER_START( pang )
/* basic machine hardware */
MDRV_CPU_ADD("main",Z80, 8000000) /* (verified on pcb) */
MDRV_CPU_PROGRAM_MAP(readmem,writemem)
- MDRV_CPU_IO_MAP(readport,writeport)
+ MDRV_CPU_IO_MAP(io_map,0)
MDRV_CPU_VBLANK_INT_HACK(irq0_line_hold,2) /* ??? one extra irq seems to be needed for music (see input5_r) */
MDRV_NVRAM_HANDLER(mitchell)
@@ -1266,7 +1251,7 @@ static MACHINE_DRIVER_START( mstworld )
MDRV_CPU_ADD("main", Z80, 6000000*4)
MDRV_CPU_PROGRAM_MAP(readmem,writemem)
- MDRV_CPU_IO_MAP(mstworld_readport,mstworld_writeport)
+ MDRV_CPU_IO_MAP(mstworld_io_map,0)
MDRV_CPU_VBLANK_INT("main", irq0_line_hold)
MDRV_CPU_ADD("audio", Z80,6000000) /* 6 MHz? */
@@ -1300,7 +1285,7 @@ static MACHINE_DRIVER_START( marukin )
/* basic machine hardware */
MDRV_CPU_ADD("main", Z80, 8000000) /* Super Pang says 8MHZ ORIGINAL BOARD */
MDRV_CPU_PROGRAM_MAP(readmem,writemem)
- MDRV_CPU_IO_MAP(readport,writeport)
+ MDRV_CPU_IO_MAP(io_map,0)
MDRV_CPU_VBLANK_INT_HACK(irq0_line_hold,2) /* ??? one extra irq seems to be needed for music (see input5_r) */
MDRV_NVRAM_HANDLER(mitchell)
@@ -2234,3 +2219,4 @@ GAME( 1991, block, 0, pang, block, block, ROT270, "Capcom", "
GAME( 1991, blockj, block, pang, block, block, ROT270, "Capcom", "Block Block (Japan 910910)", 0 )
GAME( 1991, blockjoy, block, pang, blockjoy, block, ROT270, "Capcom", "Block Block (World 911106 Joystick)", 0 )
GAME( 1991, blockbl, block, pang, block, blockbl, ROT270, "bootleg", "Block Block (bootleg)", 0 )
+
diff --git a/src/mame/drivers/scramble.c b/src/mame/drivers/scramble.c
index 184042fca03..1724b00c3fe 100644
--- a/src/mame/drivers/scramble.c
+++ b/src/mame/drivers/scramble.c
@@ -408,31 +408,19 @@ static ADDRESS_MAP_START( ad2083_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xe800, 0xebff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( triplep_readport, ADDRESS_SPACE_IO, 8 )
+static ADDRESS_MAP_START( triplep_io_map, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x01, 0x01) AM_READ(ay8910_read_port_0_r)
+ AM_RANGE(0x00, 0x00) AM_WRITE(ay8910_write_port_0_w)
+ AM_RANGE(0x01, 0x01) AM_READWRITE(ay8910_read_port_0_r, ay8910_control_port_0_w)
AM_RANGE(0x02, 0x02) AM_READ(triplep_pip_r)
AM_RANGE(0x03, 0x03) AM_READ(triplep_pap_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( triplep_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x00) AM_WRITE(ay8910_write_port_0_w)
- AM_RANGE(0x01, 0x01) AM_WRITE(ay8910_control_port_0_w)
-ADDRESS_MAP_END
-
-
-static ADDRESS_MAP_START( hotshock_sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x20, 0x20) AM_READ(ay8910_read_port_0_r)
- AM_RANGE(0x40, 0x40) AM_READ(ay8910_read_port_1_r)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( hotshock_sound_writeport, ADDRESS_SPACE_IO, 8 )
+static ADDRESS_MAP_START( hotshock_sound_io_map, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x10) AM_WRITE(ay8910_control_port_0_w)
- AM_RANGE(0x20, 0x20) AM_WRITE(ay8910_write_port_0_w)
- AM_RANGE(0x40, 0x40) AM_WRITE(ay8910_write_port_1_w)
+ AM_RANGE(0x20, 0x20) AM_READWRITE(ay8910_read_port_0_r, ay8910_write_port_0_w)
+ AM_RANGE(0x40, 0x40) AM_READWRITE(ay8910_read_port_1_r, ay8910_write_port_1_w)
AM_RANGE(0x80, 0x80) AM_WRITE(ay8910_control_port_1_w)
ADDRESS_MAP_END
@@ -1845,21 +1833,14 @@ static ADDRESS_MAP_START( scramble_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x9000, 0x9fff) AM_WRITE(scramble_filter_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( scramble_sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x20, 0x20) AM_READ(ay8910_read_port_0_r)
- AM_RANGE(0x80, 0x80) AM_READ(ay8910_read_port_1_r)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( scramble_sound_writeport, ADDRESS_SPACE_IO, 8 )
+static ADDRESS_MAP_START( scramble_sound_io_map, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x10) AM_WRITE(ay8910_control_port_0_w)
- AM_RANGE(0x20, 0x20) AM_WRITE(ay8910_write_port_0_w)
+ AM_RANGE(0x20, 0x20) AM_READWRITE(ay8910_read_port_0_r, ay8910_write_port_0_w)
AM_RANGE(0x40, 0x40) AM_WRITE(ay8910_control_port_1_w)
- AM_RANGE(0x80, 0x80) AM_WRITE(ay8910_write_port_1_w)
+ AM_RANGE(0x80, 0x80) AM_READWRITE(ay8910_read_port_1_r, ay8910_write_port_1_w)
ADDRESS_MAP_END
-
static MACHINE_DRIVER_START( scramble )
/* basic machine hardware */
@@ -1868,7 +1849,7 @@ static MACHINE_DRIVER_START( scramble )
MDRV_CPU_ADD("audio", Z80, 14318000/8) /* 1.78975 MHz */
MDRV_CPU_PROGRAM_MAP(scramble_sound_readmem,scramble_sound_writemem)
- MDRV_CPU_IO_MAP(scramble_sound_readport,scramble_sound_writeport)
+ MDRV_CPU_IO_MAP(scramble_sound_io_map,0)
MDRV_MACHINE_RESET(scramble)
@@ -2083,7 +2064,7 @@ static MACHINE_DRIVER_START( hotshock )
MDRV_DEVICE_REMOVE( "ppi8255_1", PPI8255 )
MDRV_CPU_MODIFY("audio")
- MDRV_CPU_IO_MAP(hotshock_sound_readport,hotshock_sound_writeport)
+ MDRV_CPU_IO_MAP(hotshock_sound_io_map,0)
MDRV_MACHINE_RESET(galaxold)
@@ -2133,7 +2114,7 @@ static MACHINE_DRIVER_START( triplep )
/* basic machine hardware */
MDRV_IMPORT_FROM(scramble)
MDRV_CPU_MODIFY("main")
- MDRV_CPU_IO_MAP(triplep_readport,triplep_writeport)
+ MDRV_CPU_IO_MAP(triplep_io_map,0)
MDRV_CPU_REMOVE("audio")
@@ -2999,3 +2980,4 @@ GAME( 1983, cavelon, 0, cavelon, cavelon, cavelon, ROT90, "Jetsof
GAME( 198?, mimonscr, mimonkey, mimonscr, mimonscr, mimonscr, ROT90, "bootleg", "Mighty Monkey (bootleg on Scramble hardware)", GAME_SUPPORTS_SAVE )
GAME( 1983, ad2083, 0, ad2083, ad2083, ad2083, ROT90, "Midcoin", "A. D. 2083", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE)
GAME( 1981, turpins, turtles, turpins, turpins, 0, ROT90, "[Sega] (bootleg)", "Turpin (bootleg on Scramble hardware)", GAME_NO_SOUND | GAME_SUPPORTS_SAVE ) // haven't hooked up the sound CPU yet
+
diff --git a/src/mame/drivers/snowbros.c b/src/mame/drivers/snowbros.c
index b696dd1b40d..e6efc738e2c 100644
--- a/src/mame/drivers/snowbros.c
+++ b/src/mame/drivers/snowbros.c
@@ -194,17 +194,11 @@ static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x8000, 0x87ff) AM_WRITE(SMH_RAM)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_readport, ADDRESS_SPACE_IO, 8 )
+static ADDRESS_MAP_START( sound_io_map, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x02, 0x02) AM_READ(ym3812_status_port_0_r)
- AM_RANGE(0x04, 0x04) AM_READ(soundlatch_r)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x02, 0x02) AM_WRITE(ym3812_control_port_0_w)
+ AM_RANGE(0x02, 0x02) AM_READWRITE(ym3812_status_port_0_r, ym3812_control_port_0_w)
AM_RANGE(0x03, 0x03) AM_WRITE(ym3812_write_port_0_w)
- AM_RANGE(0x04, 0x04) AM_WRITE(soundlatch_w) /* goes back to the main CPU, checked during boot */
+ AM_RANGE(0x04, 0x04) AM_READWRITE(soundlatch_r, soundlatch_w) /* goes back to the main CPU, checked during boot */
ADDRESS_MAP_END
/* Winter Bobble - bootleg GFX chip */
@@ -270,17 +264,11 @@ static ADDRESS_MAP_START( honeydol_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xe010, 0xe010) AM_WRITE(okim6295_data_0_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( honeydol_sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x02, 0x02) AM_READ(ym3812_status_port_0_r) // not connected?
- AM_RANGE(0x04, 0x04) AM_READ(soundlatch_r)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( honeydol_sound_writeport, ADDRESS_SPACE_IO, 8 )
+static ADDRESS_MAP_START( honeydol_sound_io_map, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x02, 0x02) AM_WRITE(ym3812_control_port_0_w) // not connected?
- AM_RANGE(0x03, 0x03) AM_WRITE(ym3812_write_port_0_w) // not connected?
- AM_RANGE(0x04, 0x04) AM_WRITE(soundlatch_w) /* goes back to the main CPU, checked during boot */
+ AM_RANGE(0x02, 0x02) AM_READWRITE(ym3812_status_port_0_r, ym3812_control_port_0_w) // not connected?
+ AM_RANGE(0x03, 0x03) AM_WRITE(ym3812_write_port_0_w) // not connected?
+ AM_RANGE(0x04, 0x04) AM_READWRITE(soundlatch_r, soundlatch_w) /* goes back to the main CPU, checked during boot */
ADDRESS_MAP_END
/* Twin Adventure */
@@ -340,17 +328,11 @@ static WRITE8_HANDLER( twinadv_oki_bank_w )
okim6295_set_bank_base(0, bank * 0x40000);
}
-static ADDRESS_MAP_START( twinadv_sound_readport, ADDRESS_SPACE_IO, 8 )
+static ADDRESS_MAP_START( twinadv_sound_io_map, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x02, 0x02) AM_READ(soundlatch_r)
- AM_RANGE(0x06, 0x06) AM_READ(okim6295_status_0_r)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( twinadv_sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x02, 0x02) AM_WRITE(soundlatch_w) // back to 68k?
+ AM_RANGE(0x02, 0x02) AM_READWRITE(soundlatch_r, soundlatch_w) // back to 68k?
AM_RANGE(0x04, 0x04) AM_WRITE(twinadv_oki_bank_w) // oki bank?
- AM_RANGE(0x06, 0x06) AM_WRITE(okim6295_data_0_w)
+ AM_RANGE(0x06, 0x06) AM_READWRITE(okim6295_status_0_r, okim6295_data_0_w)
ADDRESS_MAP_END
@@ -1559,7 +1541,7 @@ static MACHINE_DRIVER_START( snowbros )
MDRV_CPU_ADD("sound", Z80, 6000000) /* 6 MHz - confirmed */
MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem)
- MDRV_CPU_IO_MAP(sound_readport,sound_writeport)
+ MDRV_CPU_IO_MAP(sound_io_map,0)
/* video hardware */
MDRV_SCREEN_ADD("main", RASTER)
@@ -1655,7 +1637,7 @@ static MACHINE_DRIVER_START( honeydol )
MDRV_CPU_ADD("sound", Z80, 4000000)
MDRV_CPU_PROGRAM_MAP(honeydol_sound_readmem,honeydol_sound_writemem)
- MDRV_CPU_IO_MAP(honeydol_sound_readport,honeydol_sound_writeport)
+ MDRV_CPU_IO_MAP(honeydol_sound_io_map,0)
/* video hardware */
MDRV_SCREEN_ADD("main", RASTER)
@@ -1694,7 +1676,7 @@ static MACHINE_DRIVER_START( twinadv )
MDRV_CPU_ADD("sound", Z80, 4000000)
MDRV_CPU_PROGRAM_MAP(twinadv_sound_readmem,twinadv_sound_writemem)
- MDRV_CPU_IO_MAP(twinadv_sound_readport,twinadv_sound_writeport)
+ MDRV_CPU_IO_MAP(twinadv_sound_io_map,0)
MDRV_CPU_VBLANK_INT("main", irq0_line_hold)
/* video hardware */
@@ -2781,3 +2763,5 @@ GAME( 1999, moremorp, 0, semiprot, moremore, moremorp, ROT0, "SemiCom / E
GAME( 2002, 4in1boot, 0, _4in1, 4in1boot, 4in1boot, ROT0, "K1 Soft", "Puzzle King (includes bootleg of Snow Bros.)" , 0)
GAME( 2002, snowbro3, snowbros, snowbro3, snowbroj, snowbro3, ROT0, "Syrmex (bootleg/hack)", "Snow Brothers 3 - Magical Adventure", GAME_IMPERFECT_SOUND ) // its basically snowbros code?...
GAME( 1993, finalttr, 0, finalttr, finalttr, 0, ROT0, "Jeil Computer System", "Final Tetris", 0 )
+
+
diff --git a/src/mame/drivers/suna8.c b/src/mame/drivers/suna8.c
index e23503be206..1a720f51516 100644
--- a/src/mame/drivers/suna8.c
+++ b/src/mame/drivers/suna8.c
@@ -554,16 +554,12 @@ static ADDRESS_MAP_START( hardhead_writemem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xe000, 0xffff) AM_WRITE(suna8_spriteram_w) AM_BASE(&spriteram ) // Sprites
ADDRESS_MAP_END
-static ADDRESS_MAP_START( hardhead_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x00) AM_READ(SMH_NOP ) // ? IRQ Ack
-ADDRESS_MAP_END
-static ADDRESS_MAP_START( hardhead_writeport, ADDRESS_SPACE_IO, 8 )
+static ADDRESS_MAP_START( hardhead_io_map, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_GLOBAL_MASK(0xff)
+ AM_RANGE(0x00, 0x00) AM_READ(SMH_NOP ) // ? IRQ Ack
ADDRESS_MAP_END
-
/***************************************************************************
Rough Ranger
***************************************************************************/
@@ -629,16 +625,12 @@ static ADDRESS_MAP_START( rranger_writemem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xe000, 0xffff) AM_WRITE(suna8_spriteram_w) AM_BASE(&spriteram ) // Sprites
ADDRESS_MAP_END
-static ADDRESS_MAP_START( rranger_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x00) AM_READ(SMH_NOP ) // ? IRQ Ack
-ADDRESS_MAP_END
-static ADDRESS_MAP_START( rranger_writeport, ADDRESS_SPACE_IO, 8 )
+static ADDRESS_MAP_START( rranger_io_map, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_GLOBAL_MASK(0xff)
+ AM_RANGE(0x00, 0x00) AM_READ(SMH_NOP ) // ? IRQ Ack
ADDRESS_MAP_END
-
/***************************************************************************
Brick Zone
***************************************************************************/
@@ -720,14 +712,6 @@ static ADDRESS_MAP_START( brickzn_writemem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xe000, 0xffff) AM_WRITE(suna8_banked_spriteram_w ) // Sprites (Banked)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( brickzn_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_GLOBAL_MASK(0xff)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( brickzn_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_GLOBAL_MASK(0xff)
-ADDRESS_MAP_END
-
/***************************************************************************
Hard Head 2
@@ -895,14 +879,6 @@ static ADDRESS_MAP_START( starfigh_writemem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xe000, 0xffff) AM_WRITE(suna8_banked_spriteram_w ) // Sprites (Banked)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( starfigh_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_GLOBAL_MASK(0xff)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( starfigh_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_GLOBAL_MASK(0xff)
-ADDRESS_MAP_END
-
/***************************************************************************
Spark Man
@@ -1021,17 +997,13 @@ static ADDRESS_MAP_START( hardhead_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xa003, 0xa003) AM_WRITE(ay8910_write_port_0_w )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( hardhead_sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x01, 0x01) AM_READ(SMH_NOP ) // ? IRQ Ack
-ADDRESS_MAP_END
-static ADDRESS_MAP_START( hardhead_sound_writeport, ADDRESS_SPACE_IO, 8 )
+static ADDRESS_MAP_START( hardhead_sound_io_map, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_GLOBAL_MASK(0xff)
+ AM_RANGE(0x01, 0x01) AM_READ(SMH_NOP ) // ? IRQ Ack
ADDRESS_MAP_END
-
/***************************************************************************
Rough Ranger
***************************************************************************/
@@ -1052,14 +1024,6 @@ static ADDRESS_MAP_START( rranger_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xa003, 0xa003) AM_WRITE(ym2203_write_port_1_w )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( rranger_sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_GLOBAL_MASK(0xff)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( rranger_sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_GLOBAL_MASK(0xff)
-ADDRESS_MAP_END
-
/***************************************************************************
Brick Zone
@@ -1081,14 +1045,6 @@ static ADDRESS_MAP_START( brickzn_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xf000, 0xf000) AM_WRITE(soundlatch2_w ) // To PCM CPU
ADDRESS_MAP_END
-static ADDRESS_MAP_START( brickzn_sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_GLOBAL_MASK(0xff)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( brickzn_sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_GLOBAL_MASK(0xff)
-ADDRESS_MAP_END
-
/* PCM Z80 , 4 DACs (4 bits per sample), NO RAM !! */
@@ -1105,16 +1061,12 @@ static WRITE8_HANDLER( brickzn_pcm_w )
dac_signed_data_w( offset, (data & 0xf) * 0x11 );
}
-static ADDRESS_MAP_START( brickzn_pcm_readport, ADDRESS_SPACE_IO, 8 )
+
+static ADDRESS_MAP_START( brickzn_pcm_io_map, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(soundlatch2_r ) // From Sound CPU
+ AM_RANGE(0x00, 0x03) AM_WRITE(brickzn_pcm_w ) // 4 x DAC
ADDRESS_MAP_END
-static ADDRESS_MAP_START( brickzn_pcm_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x03) AM_WRITE(brickzn_pcm_w ) // 4 x DAC
-ADDRESS_MAP_END
-
-
/***************************************************************************
@@ -1554,12 +1506,12 @@ static MACHINE_DRIVER_START( hardhead )
/* basic machine hardware */
MDRV_CPU_ADD("main", Z80, 24000000 / 4) /* ? */
MDRV_CPU_PROGRAM_MAP(hardhead_readmem,hardhead_writemem)
- MDRV_CPU_IO_MAP(hardhead_readport,hardhead_writeport)
+ MDRV_CPU_IO_MAP(hardhead_io_map,0)
MDRV_CPU_VBLANK_INT("main", irq0_line_hold) /* No NMI */
MDRV_CPU_ADD("audio", Z80, 24000000 / 4) /* ? */
MDRV_CPU_PROGRAM_MAP(hardhead_sound_readmem,hardhead_sound_writemem)
- MDRV_CPU_IO_MAP(hardhead_sound_readport,hardhead_sound_writeport)
+ MDRV_CPU_IO_MAP(hardhead_sound_io_map,0)
MDRV_CPU_VBLANK_INT_HACK(irq0_line_hold,4) /* No NMI */
/* video hardware */
@@ -1608,12 +1560,11 @@ static MACHINE_DRIVER_START( rranger )
/* basic machine hardware */
MDRV_CPU_ADD("main", Z80, 24000000 / 4) /* ? */
MDRV_CPU_PROGRAM_MAP(rranger_readmem,rranger_writemem)
- MDRV_CPU_IO_MAP(rranger_readport,rranger_writeport)
+ MDRV_CPU_IO_MAP(rranger_io_map,0)
MDRV_CPU_VBLANK_INT("main", irq0_line_hold) /* IRQ & NMI ! */
MDRV_CPU_ADD("audio", Z80, 24000000 / 4) /* ? */
MDRV_CPU_PROGRAM_MAP(rranger_sound_readmem,rranger_sound_writemem)
- MDRV_CPU_IO_MAP(rranger_sound_readport,rranger_sound_writeport)
MDRV_CPU_VBLANK_INT_HACK(irq0_line_hold,4) /* NMI = retn */
/* video hardware */
@@ -1665,17 +1616,15 @@ static MACHINE_DRIVER_START( brickzn )
/* basic machine hardware */
MDRV_CPU_ADD("main", Z80, 24000000 / 4) /* SUNA PROTECTION BLOCK */
MDRV_CPU_PROGRAM_MAP(brickzn_readmem,brickzn_writemem)
- MDRV_CPU_IO_MAP(brickzn_readport,brickzn_writeport)
// MDRV_CPU_VBLANK_INT_HACK(brickzn_interrupt, 2)
MDRV_CPU_VBLANK_INT("main", irq0_line_hold) // nmi breaks ramtest but is needed!
MDRV_CPU_ADD("sound", Z80, 24000000 / 4) /* Z0840006PSC */
MDRV_CPU_PROGRAM_MAP(brickzn_sound_readmem,brickzn_sound_writemem)
- MDRV_CPU_IO_MAP(brickzn_sound_readport,brickzn_sound_writeport)
MDRV_CPU_ADD("pcm", Z80, 24000000 / 4) /* Z0840006PSC */
MDRV_CPU_PROGRAM_MAP(brickzn_pcm_readmem,brickzn_pcm_writemem)
- MDRV_CPU_IO_MAP(brickzn_pcm_readport,brickzn_pcm_writeport)
+ MDRV_CPU_IO_MAP(brickzn_pcm_io_map,0)
/* video hardware */
MDRV_SCREEN_ADD("main", RASTER)
@@ -1768,13 +1717,12 @@ static MACHINE_DRIVER_START( starfigh )
/* basic machine hardware */
MDRV_CPU_ADD("main", Z80, 24000000 / 4) /* ? */
MDRV_CPU_PROGRAM_MAP(starfigh_readmem,starfigh_writemem)
- MDRV_CPU_IO_MAP(starfigh_readport,starfigh_writeport)
MDRV_CPU_VBLANK_INT_HACK(brickzn_interrupt,2) /* IRQ & NMI */
/* The sound section is identical to that of hardhead */
MDRV_CPU_ADD("audio", Z80, 24000000 / 4) /* ? */
MDRV_CPU_PROGRAM_MAP(hardhead_sound_readmem,hardhead_sound_writemem)
- MDRV_CPU_IO_MAP(hardhead_sound_readport,hardhead_sound_writeport)
+ MDRV_CPU_IO_MAP(hardhead_sound_io_map,0)
MDRV_CPU_VBLANK_INT_HACK(irq0_line_hold,4) /* No NMI */
/* video hardware */
@@ -1832,7 +1780,7 @@ static MACHINE_DRIVER_START( sparkman )
MDRV_CPU_ADD("audio", Z80, 24000000 / 4) /* ? */
MDRV_CPU_PROGRAM_MAP(hardhead_sound_readmem,hardhead_sound_writemem)
- MDRV_CPU_IO_MAP(hardhead_sound_readport,hardhead_sound_writeport)
+ MDRV_CPU_IO_MAP(hardhead_sound_io_map,0)
MDRV_CPU_VBLANK_INT_HACK(irq0_line_hold,4) /* No NMI */
/* video hardware */
@@ -2412,3 +2360,4 @@ GAME( 1989, sparkman, 0, sparkman, sparkman, sparkman, ROT0, "SunA", "
GAME( 1990, starfigh, 0, starfigh, hardhea2, starfigh, ROT90, "SunA", "Star Fighter (v1)", GAME_NOT_WORKING )
GAME( 1992, brickzn, 0, brickzn, brickzn, brickzn, ROT90, "SunA", "Brick Zone (v5.0)", GAME_NOT_WORKING )
GAME( 1992, brickzn3, brickzn, brickzn, brickzn, brickzn3, ROT90, "SunA", "Brick Zone (v4.0)", GAME_NOT_WORKING )
+
diff --git a/src/mame/drivers/tnzs.c b/src/mame/drivers/tnzs.c
index 35a22e8465d..01ee92935fc 100644
--- a/src/mame/drivers/tnzs.c
+++ b/src/mame/drivers/tnzs.c
@@ -511,16 +511,11 @@ static ADDRESS_MAP_START( kabukiz_cpu2_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xe000, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( tnzsb_readport, ADDRESS_SPACE_IO, 8 )
+static ADDRESS_MAP_START( tnzsb_io_map, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x00) AM_READ(ym2203_status_port_0_r)
- AM_RANGE(0x02, 0x02) AM_READ(soundlatch_r)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( tnzsb_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x00) AM_WRITE(ym2203_control_port_0_w)
+ AM_RANGE(0x00, 0x00) AM_READWRITE(ym2203_status_port_0_r, ym2203_control_port_0_w)
AM_RANGE(0x01, 0x01) AM_WRITE(ym2203_write_port_0_w)
+ AM_RANGE(0x02, 0x02) AM_READ(soundlatch_r)
ADDRESS_MAP_END
@@ -534,17 +529,14 @@ static ADDRESS_MAP_START( i8742_writemem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0800, 0x08ff) AM_WRITE(SMH_RAM) /* Internal i8742 RAM */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( i8742_readport, ADDRESS_SPACE_IO, 8 )
+static ADDRESS_MAP_START( i8742_io_map, ADDRESS_SPACE_IO, 8 )
+ AM_RANGE(0x02, 0x02) AM_WRITE(tnzs_port2_w)
AM_RANGE(I8X41_p1, I8X41_p1) AM_READ(tnzs_port1_r)
AM_RANGE(I8X41_p2, I8X41_p2) AM_READ(tnzs_port2_r)
AM_RANGE(I8X41_t0, I8X41_t0) AM_READ_PORT("COIN1")
AM_RANGE(I8X41_t1, I8X41_t1) AM_READ_PORT("COIN2")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( i8742_writeport, ADDRESS_SPACE_IO, 8 )
- AM_RANGE(0x02, 0x02) AM_WRITE(tnzs_port2_w)
-ADDRESS_MAP_END
-
static WRITE8_HANDLER( jpopnics_palette_w )
{
@@ -1471,7 +1463,7 @@ static MACHINE_DRIVER_START( tnzs )
MDRV_CPU_ADD("mcu", I8X41,12000000/2) /* 400KHz ??? - Main board Crystal is 12MHz */
MDRV_CPU_PROGRAM_MAP(i8742_readmem,i8742_writemem)
- MDRV_CPU_IO_MAP(i8742_readport,i8742_writeport)
+ MDRV_CPU_IO_MAP(i8742_io_map,0)
MDRV_CPU_CONFIG( i8042_config )
MDRV_INTERLEAVE(100)
@@ -1597,7 +1589,7 @@ static MACHINE_DRIVER_START( tnzsb )
MDRV_CPU_ADD("audio", Z80, XTAL_12MHz/2) /* verified on pcb */
MDRV_CPU_PROGRAM_MAP(tnzsb_cpu2_map,0)
- MDRV_CPU_IO_MAP(tnzsb_readport,tnzsb_writeport)
+ MDRV_CPU_IO_MAP(tnzsb_io_map,0)
MDRV_INTERLEAVE(100)
@@ -2436,3 +2428,4 @@ GAME( 1988, kabukiz, 0, kabukiz, kabukiz, kabukiz, ROT0, "Taito Cor
GAME( 1988, kabukizj, kabukiz, kabukiz, kabukiz, kabukiz, ROT0, "Taito Corporation", "Kabuki-Z (Japan)", 0 )
GAME( 1989, insectx, 0, insectx, insectx, insectx, ROT0, "Taito Corporation Japan", "Insector X (World)", 0 )
GAME( 1992, jpopnics, 0, jpopnics, jpopnics, 0, ROT0, "Nics", "Jumping Pop (Nics, Korean bootleg of Plump Pop)", GAME_IMPERFECT_GRAPHICS )
+