summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/emu/cpu/mips/psx.c3
-rw-r--r--src/emu/cpu/tms7000/tms7000.c2
-rw-r--r--src/emu/debug/debugcmd.c2
-rw-r--r--src/emu/memory.c311
-rw-r--r--src/emu/memory.h255
-rw-r--r--src/emu/validity.c28
-rw-r--r--src/emu/video/generic.c2
-rw-r--r--src/mame/audio/dcs.c6
-rw-r--r--src/mame/audio/exidy440.c6
-rw-r--r--src/mame/audio/jedi.c16
-rw-r--r--src/mame/audio/mcr.c2
-rw-r--r--src/mame/audio/redalert.c2
-rw-r--r--src/mame/drivers/alg.c2
-rw-r--r--src/mame/drivers/arcadia.c4
-rw-r--r--src/mame/drivers/astrocde.c2
-rw-r--r--src/mame/drivers/bfm_sc1.c2
-rw-r--r--src/mame/drivers/canyon.c2
-rw-r--r--src/mame/drivers/cave.c22
-rw-r--r--src/mame/drivers/cball.c2
-rw-r--r--src/mame/drivers/cclimber.c4
-rw-r--r--src/mame/drivers/cischeat.c12
-rw-r--r--src/mame/drivers/cloud9.c2
-rw-r--r--src/mame/drivers/cojag.c2
-rw-r--r--src/mame/drivers/contra.c2
-rw-r--r--src/mame/drivers/cosmic.c2
-rw-r--r--src/mame/drivers/cps1.c2
-rw-r--r--src/mame/drivers/cps3.c4
-rw-r--r--src/mame/drivers/cshooter.c4
-rw-r--r--src/mame/drivers/cubocd32.c2
-rw-r--r--src/mame/drivers/cyberbal.c4
-rw-r--r--src/mame/drivers/ddenlovr.c8
-rw-r--r--src/mame/drivers/ddrible.c1
-rw-r--r--src/mame/drivers/deco32.c4
-rw-r--r--src/mame/drivers/deco_mlc.c4
-rw-r--r--src/mame/drivers/dgpix.c4
-rw-r--r--src/mame/drivers/dmndrby.c2
-rw-r--r--src/mame/drivers/dynax.c38
-rw-r--r--src/mame/drivers/enigma2.c12
-rw-r--r--src/mame/drivers/eolith.c2
-rw-r--r--src/mame/drivers/espial.c2
-rw-r--r--src/mame/drivers/exidy440.c4
-rw-r--r--src/mame/drivers/exprraid.c2
-rw-r--r--src/mame/drivers/f1gp.c4
-rw-r--r--src/mame/drivers/fantland.c10
-rw-r--r--src/mame/drivers/fastfred.c17
-rw-r--r--src/mame/drivers/finalizr.c4
-rw-r--r--src/mame/drivers/firefox.c4
-rw-r--r--src/mame/drivers/firetrk.c34
-rw-r--r--src/mame/drivers/fitfight.c2
-rw-r--r--src/mame/drivers/flstory.c10
-rw-r--r--src/mame/drivers/flyball.c2
-rw-r--r--src/mame/drivers/foodf.c2
-rw-r--r--src/mame/drivers/fromanc2.c2
-rw-r--r--src/mame/drivers/funkyjet.c2
-rw-r--r--src/mame/drivers/fuukifg2.c4
-rw-r--r--src/mame/drivers/fuukifg3.c4
-rw-r--r--src/mame/drivers/gaelco.c6
-rw-r--r--src/mame/drivers/gaelco2.c6
-rw-r--r--src/mame/drivers/gal3.c158
-rw-r--r--src/mame/drivers/galaga.c16
-rw-r--r--src/mame/drivers/galaxian.c28
-rw-r--r--src/mame/drivers/galaxold.c16
-rw-r--r--src/mame/drivers/galivan.c2
-rw-r--r--src/mame/drivers/galpani2.c4
-rw-r--r--src/mame/drivers/galpani3.c8
-rw-r--r--src/mame/drivers/galspnbl.c4
-rw-r--r--src/mame/drivers/ginganin.c2
-rw-r--r--src/mame/drivers/glass.c2
-rw-r--r--src/mame/drivers/goindol.c4
-rw-r--r--src/mame/drivers/goldstar.c96
-rw-r--r--src/mame/drivers/gotya.c2
-rw-r--r--src/mame/drivers/gyruss.c2
-rw-r--r--src/mame/drivers/higemaru.c2
-rw-r--r--src/mame/drivers/himesiki.c4
-rw-r--r--src/mame/drivers/homedata.c2
-rw-r--r--src/mame/drivers/hshavoc.c2
-rw-r--r--src/mame/drivers/hyhoo.c2
-rw-r--r--src/mame/drivers/hyprduel.c8
-rw-r--r--src/mame/drivers/igs017.c2
-rw-r--r--src/mame/drivers/ikki.c2
-rw-r--r--src/mame/drivers/imolagp.c14
-rw-r--r--src/mame/drivers/inufuku.c2
-rw-r--r--src/mame/drivers/irobot.c2
-rw-r--r--src/mame/drivers/itech32.c13
-rw-r--r--src/mame/drivers/itech8.c4
-rw-r--r--src/mame/drivers/jack.c2
-rw-r--r--src/mame/drivers/jackal.c2
-rw-r--r--src/mame/drivers/jalmah.c2
-rw-r--r--src/mame/drivers/jchan.c4
-rw-r--r--src/mame/drivers/jedi.c34
-rw-r--r--src/mame/drivers/jongkyo.c4
-rw-r--r--src/mame/drivers/junofrst.c2
-rw-r--r--src/mame/drivers/kaneko16.c22
-rw-r--r--src/mame/drivers/kickgoal.c6
-rw-r--r--src/mame/drivers/konamigv.c2
-rw-r--r--src/mame/drivers/konamigx.c2
-rw-r--r--src/mame/drivers/kyugo.c2
-rw-r--r--src/mame/drivers/ladybug.c6
-rw-r--r--src/mame/drivers/lasso.c18
-rw-r--r--src/mame/drivers/lastfght.c2
-rw-r--r--src/mame/drivers/legionna.c2
-rw-r--r--src/mame/drivers/liberatr.c16
-rw-r--r--src/mame/drivers/lockon.c4
-rw-r--r--src/mame/drivers/looping.c4
-rw-r--r--src/mame/drivers/lordgun.c36
-rw-r--r--src/mame/drivers/m10.c12
-rw-r--r--src/mame/drivers/m52.c4
-rw-r--r--src/mame/drivers/m57.c2
-rw-r--r--src/mame/drivers/m72.c10
-rw-r--r--src/mame/drivers/m79amb.c2
-rw-r--r--src/mame/drivers/m92.c2
-rw-r--r--src/mame/drivers/madalien.c16
-rw-r--r--src/mame/drivers/mainevt.c2
-rw-r--r--src/mame/drivers/mappy.c16
-rw-r--r--src/mame/drivers/megadriv.c2
-rw-r--r--src/mame/drivers/megaplay.c2
-rw-r--r--src/mame/drivers/meijinsn.c2
-rw-r--r--src/mame/drivers/metro.c10
-rw-r--r--src/mame/drivers/mgolf.c2
-rw-r--r--src/mame/drivers/mhavoc.c6
-rw-r--r--src/mame/drivers/midas.c2
-rw-r--r--src/mame/drivers/midvunit.c2
-rw-r--r--src/mame/drivers/mquake.c2
-rw-r--r--src/mame/drivers/mrdo.c2
-rw-r--r--src/mame/drivers/mrflea.c2
-rw-r--r--src/mame/drivers/ms32.c2
-rw-r--r--src/mame/drivers/multfish.c2
-rw-r--r--src/mame/drivers/munchmo.c2
-rw-r--r--src/mame/drivers/mustache.c2
-rw-r--r--src/mame/drivers/mystston.c6
-rw-r--r--src/mame/drivers/namcond1.c2
-rw-r--r--src/mame/drivers/namcos1.c2
-rw-r--r--src/mame/drivers/namcos11.c5
-rw-r--r--src/mame/drivers/namcos12.c4
-rw-r--r--src/mame/drivers/namcos22.c20
-rw-r--r--src/mame/drivers/namcos23.c4
-rw-r--r--src/mame/drivers/namcos86.c1
-rw-r--r--src/mame/drivers/nemesis.c2
-rw-r--r--src/mame/drivers/nmg5.c4
-rw-r--r--src/mame/drivers/nmk16.c16
-rw-r--r--src/mame/drivers/nss.c2
-rw-r--r--src/mame/drivers/othunder.c2
-rw-r--r--src/mame/drivers/pacland.c6
-rw-r--r--src/mame/drivers/pacman.c90
-rw-r--r--src/mame/drivers/pengo.c4
-rw-r--r--src/mame/drivers/plygonet.c2
-rw-r--r--src/mame/drivers/polepos.c6
-rw-r--r--src/mame/drivers/poolshrk.c6
-rw-r--r--src/mame/drivers/portrait.c2
-rw-r--r--src/mame/drivers/ppmast93.c4
-rw-r--r--src/mame/drivers/psikyo.c2
-rw-r--r--src/mame/drivers/psychic5.c4
-rw-r--r--src/mame/drivers/qix.c2
-rw-r--r--src/mame/drivers/quantum.c4
-rw-r--r--src/mame/drivers/quasar.c2
-rw-r--r--src/mame/drivers/quizpun2.c4
-rw-r--r--src/mame/drivers/raiden.c4
-rw-r--r--src/mame/drivers/rallyx.c4
-rw-r--r--src/mame/drivers/realbrk.c22
-rw-r--r--src/mame/drivers/redalert.c32
-rw-r--r--src/mame/drivers/rmhaihai.c8
-rw-r--r--src/mame/drivers/route16.c2
-rw-r--r--src/mame/drivers/royalmah.c26
-rw-r--r--src/mame/drivers/safarir.c4
-rw-r--r--src/mame/drivers/sbasketb.c2
-rw-r--r--src/mame/drivers/scobra.c2
-rw-r--r--src/mame/drivers/scramble.c2
-rw-r--r--src/mame/drivers/sderby.c18
-rw-r--r--src/mame/drivers/seattle.c2
-rw-r--r--src/mame/drivers/segac2.c2
-rw-r--r--src/mame/drivers/segamsys.c6
-rw-r--r--src/mame/drivers/segaorun.c22
-rw-r--r--src/mame/drivers/segas16b.c90
-rw-r--r--src/mame/drivers/segas18.c54
-rw-r--r--src/mame/drivers/seicross.c2
-rw-r--r--src/mame/drivers/seta.c18
-rw-r--r--src/mame/drivers/seta2.c4
-rw-r--r--src/mame/drivers/shangkid.c4
-rw-r--r--src/mame/drivers/silkroad.c2
-rw-r--r--src/mame/drivers/simpl156.c10
-rw-r--r--src/mame/drivers/skydiver.c10
-rw-r--r--src/mame/drivers/skykid.c6
-rw-r--r--src/mame/drivers/skylncr.c92
-rw-r--r--src/mame/drivers/snesb.c4
-rw-r--r--src/mame/drivers/spaceg.c6
-rw-r--r--src/mame/drivers/speglsht.c2
-rw-r--r--src/mame/drivers/spool99.c2
-rw-r--r--src/mame/drivers/srmp5.c8
-rw-r--r--src/mame/drivers/srumbler.c14
-rw-r--r--src/mame/drivers/ssf2md.c4
-rw-r--r--src/mame/drivers/ssv.c78
-rw-r--r--src/mame/drivers/stactics.c8
-rw-r--r--src/mame/drivers/stadhero.c4
-rw-r--r--src/mame/drivers/starwars.c2
-rw-r--r--src/mame/drivers/strnskil.c2
-rw-r--r--src/mame/drivers/suna8.c12
-rw-r--r--src/mame/drivers/suprnova.c2
-rw-r--r--src/mame/drivers/suprslam.c2
-rw-r--r--src/mame/drivers/system16.c18
-rw-r--r--src/mame/drivers/tagteam.c4
-rw-r--r--src/mame/drivers/tail2nos.c2
-rw-r--r--src/mame/drivers/taito_o.c2
-rw-r--r--src/mame/drivers/taitoair.c2
-rw-r--r--src/mame/drivers/taitogn.c2
-rw-r--r--src/mame/drivers/taitosj.c44
-rw-r--r--src/mame/drivers/tank8.c8
-rw-r--r--src/mame/drivers/tankbust.c7
-rw-r--r--src/mame/drivers/taotaido.c2
-rw-r--r--src/mame/drivers/targeth.c4
-rw-r--r--src/mame/drivers/tatsumi.c6
-rw-r--r--src/mame/drivers/taxidrvr.c18
-rw-r--r--src/mame/drivers/tbowl.c6
-rw-r--r--src/mame/drivers/tceptor.c12
-rw-r--r--src/mame/drivers/tecmo.c6
-rw-r--r--src/mame/drivers/tecmosys.c12
-rw-r--r--src/mame/drivers/tempest.c4
-rw-r--r--src/mame/drivers/tetrisp2.c18
-rw-r--r--src/mame/drivers/thedeep.c2
-rw-r--r--src/mame/drivers/thepit.c2
-rw-r--r--src/mame/drivers/thief.c5
-rw-r--r--src/mame/drivers/tigeroad.c2
-rw-r--r--src/mame/drivers/tmaster.c8
-rw-r--r--src/mame/drivers/tmnt.c4
-rw-r--r--src/mame/drivers/tnzs.c8
-rw-r--r--src/mame/drivers/toaplan2.c4
-rw-r--r--src/mame/drivers/toki.c7
-rw-r--r--src/mame/drivers/tp84.c16
-rw-r--r--src/mame/drivers/trackfld.c6
-rw-r--r--src/mame/drivers/travrusa.c2
-rw-r--r--src/mame/drivers/triplhnt.c10
-rw-r--r--src/mame/drivers/truco.c4
-rw-r--r--src/mame/drivers/trvquest.c2
-rw-r--r--src/mame/drivers/tsamurai.c6
-rw-r--r--src/mame/drivers/tubep.c8
-rw-r--r--src/mame/drivers/tugboat.c5
-rw-r--r--src/mame/drivers/tumbleb.c26
-rw-r--r--src/mame/drivers/tumblep.c10
-rw-r--r--src/mame/drivers/tunhunt.c21
-rw-r--r--src/mame/drivers/tutankhm.c2
-rw-r--r--src/mame/drivers/twin16.c4
-rw-r--r--src/mame/drivers/unico.c28
-rw-r--r--src/mame/drivers/upscope.c2
-rw-r--r--src/mame/drivers/vaportra.c4
-rw-r--r--src/mame/drivers/vastar.c12
-rw-r--r--src/mame/drivers/vball.c2
-rw-r--r--src/mame/drivers/vegas.c16
-rw-r--r--src/mame/drivers/vicdual.c2
-rw-r--r--src/mame/drivers/videopin.c2
-rw-r--r--src/mame/drivers/vigilant.c4
-rw-r--r--src/mame/drivers/vmetal.c4
-rw-r--r--src/mame/drivers/vulgus.c2
-rw-r--r--src/mame/drivers/warriorb.c2
-rw-r--r--src/mame/drivers/wecleman.c4
-rw-r--r--src/mame/drivers/wgp.c6
-rw-r--r--src/mame/drivers/williams.c26
-rw-r--r--src/mame/drivers/wiz.c2
-rw-r--r--src/mame/drivers/wolfpack.c2
-rw-r--r--src/mame/drivers/wrally.c4
-rw-r--r--src/mame/drivers/xexex.c2
-rw-r--r--src/mame/drivers/xmen.c35
-rw-r--r--src/mame/drivers/yunsun16.c12
-rw-r--r--src/mame/drivers/yunsung8.c2
-rw-r--r--src/mame/drivers/zaccaria.c2
-rw-r--r--src/mame/drivers/zn.c10
-rw-r--r--src/mame/drivers/zodiack.c2
-rw-r--r--src/mame/machine/atari.c4
-rw-r--r--src/mame/machine/midtunit.c2
-rw-r--r--src/mame/machine/scramble.c8
-rw-r--r--src/mame/machine/seicop.c8
-rw-r--r--src/mame/machine/tnzs.c2
-rw-r--r--src/mame/machine/williams.c4
-rw-r--r--src/mame/video/combatsc.c2
-rw-r--r--src/mame/video/qix.c14
-rw-r--r--src/mame/video/taitoic.c4
274 files changed, 1547 insertions, 1429 deletions
diff --git a/src/emu/cpu/mips/psx.c b/src/emu/cpu/mips/psx.c
index 296c2a98333..d5bbf621008 100644
--- a/src/emu/cpu/mips/psx.c
+++ b/src/emu/cpu/mips/psx.c
@@ -1311,7 +1311,8 @@ static void mips_update_scratchpad( const address_space *space )
}
else if( ( psxcpu->biu & BIU_DS ) == 0 )
{
- memory_install_readwrite32_handler( space, 0x1f800000, 0x1f8003ff, 0, 0, psx_berr_r, (write32_space_func)SMH_NOP );
+ memory_install_read32_handler( space, 0x1f800000, 0x1f8003ff, 0, 0, psx_berr_r );
+ memory_nop_write( space, 0x1f800000, 0x1f8003ff, 0, 0 );
}
else
{
diff --git a/src/emu/cpu/tms7000/tms7000.c b/src/emu/cpu/tms7000/tms7000.c
index 356fa39a36e..5ccbb01d07c 100644
--- a/src/emu/cpu/tms7000/tms7000.c
+++ b/src/emu/cpu/tms7000/tms7000.c
@@ -135,7 +135,7 @@ static WRITE8_HANDLER( tms70x0_pf_w );
static ADDRESS_MAP_START(tms7000_mem, ADDRESS_SPACE_PROGRAM, 8)
AM_RANGE(0x0000, 0x007f) AM_READWRITE(tms7000_internal_r, tms7000_internal_w) /* tms7000 internal RAM */
- AM_RANGE(0x0080, 0x00ff) AM_READWRITE(SMH_NOP, SMH_NOP) /* reserved */
+ AM_RANGE(0x0080, 0x00ff) AM_NOP /* reserved */
AM_RANGE(0x0100, 0x01ff) AM_READWRITE(tms70x0_pf_r, tms70x0_pf_w) /* tms7000 internal I/O ports */
ADDRESS_MAP_END
diff --git a/src/emu/debug/debugcmd.c b/src/emu/debug/debugcmd.c
index be32ca0317f..e6ddc3d9311 100644
--- a/src/emu/debug/debugcmd.c
+++ b/src/emu/debug/debugcmd.c
@@ -1786,7 +1786,7 @@ static void execute_cheatinit(running_machine *machine, int ref, int params, con
cheat_region[region_count].offset = memory_address_to_byte(space, entry->addrstart) & space->bytemask;
cheat_region[region_count].endoffset = memory_address_to_byte(space, entry->addrend) & space->bytemask;
cheat_region[region_count].share = entry->share;
- cheat_region[region_count].disabled = (entry->write.shandler8 == SMH_RAM) ? FALSE : TRUE;
+ cheat_region[region_count].disabled = (entry->write.type == AMH_RAM) ? FALSE : TRUE;
/* disable double share regions */
if (entry->share != 0)
diff --git a/src/emu/memory.c b/src/emu/memory.c
index 9982175aa4f..a7aac8c8f8d 100644
--- a/src/emu/memory.c
+++ b/src/emu/memory.c
@@ -156,6 +156,20 @@ enum _read_or_write
};
typedef enum _read_or_write read_or_write;
+/* static data access handler constants */
+enum
+{
+ STATIC_INVALID = 0, /* invalid - should never be used */
+ STATIC_BANK1 = 1, /* first memory bank */
+ STATIC_BANKMAX = 122, /* last memory bank */
+ STATIC_RAM, /* RAM - reads/writes map to dynamic banks */
+ STATIC_ROM, /* ROM - reads = RAM; writes = UNMAP */
+ STATIC_NOP, /* NOP - reads = unmapped value; writes = no-op */
+ STATIC_UNMAP, /* unmapped - same as NOP except we log errors */
+ STATIC_WATCHPOINT, /* watchpoint - used internally */
+ STATIC_COUNT /* total number of static handlers */
+};
+
/***************************************************************************
@@ -169,7 +183,6 @@ typedef enum _read_or_write read_or_write;
/* helper macros */
#define HANDLER_IS_RAM(h) ((FPTR)(h) == STATIC_RAM)
#define HANDLER_IS_ROM(h) ((FPTR)(h) == STATIC_ROM)
-#define HANDLER_IS_NOP(h) ((FPTR)(h) == STATIC_NOP)
#define HANDLER_IS_BANK(h) ((FPTR)(h) >= STATIC_BANK1 && (FPTR)(h) <= STATIC_BANKMAX)
#define HANDLER_IS_STATIC(h) ((FPTR)(h) < STATIC_COUNT)
@@ -210,7 +223,7 @@ struct _bank_info
UINT8 index; /* array index for this handler */
UINT8 read; /* is this bank used for reads? */
UINT8 write; /* is this bank used for writes? */
- void * handler; /* SMH_BANK(n) handler for this bank */
+ void * handler; /* handler for this bank */
bank_reference * reflist; /* linked list of address spaces referencing this bank */
offs_t bytestart; /* byte-adjusted start offset */
offs_t byteend; /* byte-adjusted end offset */
@@ -316,6 +329,7 @@ const char *const address_space_names[ADDRESS_SPACES] = { "program", "data", "I/
static void memory_init_spaces(running_machine *machine);
static void memory_init_preflight(running_machine *machine);
static void memory_init_populate(running_machine *machine);
+static void memory_init_map_entry(address_space *space, const address_map_entry *entry, read_or_write readorwrite);
static void memory_init_allocate(running_machine *machine);
static void memory_init_locate(running_machine *machine);
static void memory_exit(running_machine *machine);
@@ -814,10 +828,10 @@ void address_map_free(address_map *map)
{
address_map_entry *entry = map->entrylist;
map->entrylist = entry->next;
- if (entry->read_devtag_string != NULL)
- astring_free(entry->read_devtag_string);
- if (entry->write_devtag_string != NULL)
- astring_free(entry->write_devtag_string);
+ if (entry->read.derived_tag != NULL)
+ astring_free(entry->read.derived_tag);
+ if (entry->write.derived_tag != NULL)
+ astring_free(entry->write.derived_tag);
if (entry->region_string != NULL)
astring_free(entry->region_string);
free(entry);
@@ -1396,6 +1410,22 @@ void _memory_install_bank_handler(const address_space *space, offs_t addrstart,
}
+/*-------------------------------------------------
+ _memory_unmap - unmap a section of address
+ space
+-------------------------------------------------*/
+
+void _memory_unmap(const address_space *space, offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, UINT8 unmap_read, UINT8 unmap_write, UINT8 quiet)
+{
+ address_space *spacerw = (address_space *)space;
+
+ if (unmap_read)
+ space_map_range(spacerw, ROW_READ, space->dbits, 0, addrstart, addrend, addrmask, addrmirror, (genf *)(quiet ? STATIC_NOP : STATIC_UNMAP), spacerw, "unmapped");
+ if (unmap_write)
+ space_map_range(spacerw, ROW_WRITE, space->dbits, 0, addrstart, addrend, addrmask, addrmirror, (genf *)(quiet ? STATIC_NOP : STATIC_UNMAP), spacerw, "unmapped");
+}
+
+
/***************************************************************************
DEBUGGER HELPERS
@@ -1676,7 +1706,7 @@ static void memory_init_preflight(running_machine *machine)
adjust_addresses(space, &entry->bytestart, &entry->byteend, &entry->bytemask, &entry->bytemirror);
/* if this is a ROM handler without a specified region, attach it to the implicit region */
- if (space->spacenum == ADDRESS_SPACE_0 && HANDLER_IS_ROM(entry->read.generic) && entry->region == NULL)
+ if (space->spacenum == ADDRESS_SPACE_0 && entry->read.type == AMH_ROM && entry->region == NULL)
{
/* make sure it fits within the memory region before doing so, however */
if (entry->byteend < regionsize)
@@ -1735,96 +1765,95 @@ static void memory_init_populate(running_machine *machine)
while (last_entry != space->map->entrylist)
{
const address_map_entry *entry;
- read_handler rhandler;
- write_handler whandler;
/* find the entry before the last one we processed */
for (entry = space->map->entrylist; entry->next != last_entry; entry = entry->next) ;
last_entry = entry;
- rhandler = entry->read;
- whandler = entry->write;
-
- /* if we have a read port tag, look it up */
- if (entry->read_porttag != NULL)
- {
- const input_port_config *port = input_port_by_tag(&machine->portlist, entry->read_porttag);
- int bits = (entry->read_bits == 0) ? space->dbits : entry->read_bits;
- genf *handler = NULL;
-
- if (port == NULL)
- fatalerror("Non-existent port referenced: '%s'\n", entry->read_porttag);
- switch (bits)
- {
- case 8: handler = (genf *)input_port_read8; break;
- case 16: handler = (genf *)input_port_read16; break;
- case 32: handler = (genf *)input_port_read32; break;
- case 64: handler = (genf *)input_port_read64; break;
- }
- space_map_range_private(space, ROW_READ, bits, entry->read_mask, entry->addrstart, entry->addrend, entry->addrmask, entry->addrmirror, handler, (void *)port, entry->read_porttag);
- }
-
- /* if we have a write port tag, look it up */
- if (entry->write_porttag != NULL)
- {
- const input_port_config *port = input_port_by_tag(&machine->portlist, entry->write_porttag);
- int bits = (entry->write_bits == 0) ? space->dbits : entry->write_bits;
- genf *handler = NULL;
+
+ /* map both read and write halves */
+ memory_init_map_entry(space, entry, ROW_READ);
+ memory_init_map_entry(space, entry, ROW_WRITE);
+ }
+ }
+}
- if (port == NULL)
- fatalerror("Non-existent port referenced: '%s'\n", entry->write_porttag);
- switch (bits)
- {
- case 8: handler = (genf *)input_port_write8; break;
- case 16: handler = (genf *)input_port_write16; break;
- case 32: handler = (genf *)input_port_write32; break;
- case 64: handler = (genf *)input_port_write64; break;
- }
- space_map_range_private(space, ROW_WRITE, bits, entry->write_mask, entry->addrstart, entry->addrend, entry->addrmask, entry->addrmirror, handler, (void *)port, entry->write_porttag);
- }
- /* if we have a read bank tag, look it up */
- if (entry->read_banktag != NULL)
- {
- void *handler = bank_find_or_allocate(space, entry->read_banktag, entry->addrstart, entry->addrend, ROW_READ);
- space_map_range_private(space, ROW_READ, space->dbits, entry->read_mask, entry->addrstart, entry->addrend, entry->addrmask, entry->addrmirror, handler, space, entry->read_banktag);
- }
+/*-------------------------------------------------
+ memory_init_map_entry - map a single read or
+ write entry based on information from an
+ address map entry
+-------------------------------------------------*/
- /* if we have a write bank tag, look it up */
- if (entry->write_banktag != NULL)
- {
- void *handler = bank_find_or_allocate(space, entry->write_banktag, entry->addrstart, entry->addrend, ROW_WRITE);
- space_map_range_private(space, ROW_WRITE, space->dbits, entry->write_mask, entry->addrstart, entry->addrend, entry->addrmask, entry->addrmirror, handler, space, entry->write_banktag);
- }
+static void memory_init_map_entry(address_space *space, const address_map_entry *entry, read_or_write readorwrite)
+{
+ const map_handler_data *handler = (readorwrite == ROW_READ) ? &entry->read : &entry->write;
+ int bits = (handler->bits != 0) ? handler->bits : space->dbits;
+ genf *funcptr = handler->handler.generic;
+ const char *name = handler->name;
+ void *object = space;
- /* install the read handler if present */
- if (rhandler.generic != NULL)
- {
- int bits = (entry->read_bits == 0) ? space->dbits : entry->read_bits;
- void *object = space;
- if (entry->read_devtag != NULL)
- {
- object = (void *)device_list_find_by_tag(&machine->config->devicelist, entry->read_devtag);
- if (object == NULL)
- fatalerror("Unidentified object in memory map: tag=%s\n", entry->read_devtag);
- }
- space_map_range_private(space, ROW_READ, bits, entry->read_mask, entry->addrstart, entry->addrend, entry->addrmask, entry->addrmirror, rhandler.generic, object, entry->read_name);
- }
+ /* based on the handler type, alter the bits, name, funcptr, and object */
+ switch (handler->type)
+ {
+ case AMH_NONE:
+ return;
+
+ case AMH_RAM:
+ bits = space->dbits;
+ name = "RAM";
+ funcptr = (genf *)STATIC_RAM;
+ break;
+
+ case AMH_ROM:
+ bits = space->dbits;
+ name = "ROM";
+ funcptr = (genf *)STATIC_ROM;
+ break;
+
+ case AMH_NOP:
+ bits = space->dbits;
+ name = "nop";
+ funcptr = (genf *)STATIC_NOP;
+ break;
+
+ case AMH_UNMAP:
+ bits = space->dbits;
+ name = "unmapped";
+ funcptr = (genf *)STATIC_NOP;
+ break;
- /* install the write handler if present */
- if (whandler.generic != NULL)
- {
- int bits = (entry->write_bits == 0) ? space->dbits : entry->write_bits;
- void *object = space;
- if (entry->write_devtag != NULL)
- {
- object = (void *)device_list_find_by_tag(&machine->config->devicelist, entry->write_devtag);
- if (object == NULL)
- fatalerror("Unidentified object in memory map: tag=%s\n", entry->write_devtag);
- }
- space_map_range_private(space, ROW_WRITE, bits, entry->write_mask, entry->addrstart, entry->addrend, entry->addrmask, entry->addrmirror, whandler.generic, object, entry->write_name);
- }
+ case AMH_DEVICE_HANDLER:
+ object = (void *)device_list_find_by_tag(&space->machine->config->devicelist, handler->tag);
+ if (object == NULL)
+ fatalerror("Non-existent device '%s' referenced in memory map\n", handler->tag);
+ break;
+
+ case AMH_HANDLER:
+ break;
+
+ case AMH_PORT:
+ name = handler->tag;
+ switch (bits)
+ {
+ case 8: funcptr = (readorwrite == ROW_READ) ? (genf *)input_port_read8 : (genf *)input_port_write8; break;
+ case 16: funcptr = (readorwrite == ROW_READ) ? (genf *)input_port_read16 : (genf *)input_port_write16; break;
+ case 32: funcptr = (readorwrite == ROW_READ) ? (genf *)input_port_read32 : (genf *)input_port_write32; break;
+ case 64: funcptr = (readorwrite == ROW_READ) ? (genf *)input_port_read64 : (genf *)input_port_write64; break;
}
- }
+ object = (void *)input_port_by_tag(&space->machine->portlist, handler->tag);
+ if (object == NULL)
+ fatalerror("Non-existent port '%s' referenced in memory map\n", handler->tag);
+ break;
+
+ case AMH_BANK:
+ bits = space->dbits;
+ name = handler->tag;
+ funcptr = (genf *)bank_find_or_allocate(space, handler->tag, entry->addrstart, entry->addrend, readorwrite);
+ break;
+ }
+
+ /* do the actual mapping */
+ space_map_range_private(space, readorwrite, bits, handler->mask, entry->addrstart, entry->addrend, entry->addrmask, entry->addrmirror, funcptr, object, name);
}
@@ -2064,10 +2093,9 @@ static void memory_exit(running_machine *machine)
fatalerror("%s: %s included a mismatched address map (%s %d) for an existing map with %s %d!\n", driver->source_file, driver->name, #field, tmap.field, #field, map->field); \
} while (0)
-
-#define check_entry_handler(handler) do { \
- if (entry->handler.generic != NULL && entry->handler.generic != (genf *)SMH_RAM) \
- fatalerror("%s: %s AM_RANGE(0x%x, 0x%x) %s handler already set!\n", driver->source_file, driver->name, entry->addrstart, entry->addrend, #handler); \
+#define check_entry_handler(row) do { \
+ if (entry->row.type != AMH_NONE) \
+ fatalerror("%s: %s AM_RANGE(0x%x, 0x%x) %s handler already set!\n", driver->source_file, driver->name, entry->addrstart, entry->addrend, #row); \
} while (0)
#define check_entry_field(field) do { \
@@ -2156,59 +2184,62 @@ static void map_detokenize(address_map *map, const game_driver *driver, const ch
case ADDRMAP_TOKEN_READ:
check_entry_handler(read);
TOKEN_UNGET_UINT32(tokens);
- TOKEN_GET_UINT32_UNPACK3(tokens, entrytype, 8, entry->read_bits, 8, entry->read_mask, 8);
- entry->read = TOKEN_GET_PTR(tokens, read);
- entry->read_name = TOKEN_GET_STRING(tokens);
+ TOKEN_GET_UINT32_UNPACK4(tokens, entrytype, 8, entry->read.type, 8, entry->read.bits, 8, entry->read.mask, 8);
+ if (entry->read.type == AMH_HANDLER || entry->read.type == AMH_DEVICE_HANDLER)
+ {
+ entry->read.handler.read = TOKEN_GET_PTR(tokens, read);
+ entry->read.name = TOKEN_GET_STRING(tokens);
+ }
+ if (entry->read.type == AMH_DEVICE_HANDLER || entry->read.type == AMH_PORT || entry->read.type == AMH_BANK)
+ {
+ if (entry->read.derived_tag == NULL)
+ entry->read.derived_tag = astring_alloc();
+ entry->read.tag = device_inherit_tag(entry->read.derived_tag, devtag, TOKEN_GET_STRING(tokens));
+ }
break;
case ADDRMAP_TOKEN_WRITE:
check_entry_handler(write);
TOKEN_UNGET_UINT32(tokens);
- TOKEN_GET_UINT32_UNPACK3(tokens, entrytype, 8, entry->write_bits, 8, entry->write_mask, 8);
- entry->write = TOKEN_GET_PTR(tokens, write);
- entry->write_name = TOKEN_GET_STRING(tokens);
+ TOKEN_GET_UINT32_UNPACK4(tokens, entrytype, 8, entry->write.type, 8, entry->write.bits, 8, entry->write.mask, 8);
+ if (entry->write.type == AMH_HANDLER || entry->write.type == AMH_DEVICE_HANDLER)
+ {
+ entry->write.handler.write = TOKEN_GET_PTR(tokens, write);
+ entry->write.name = TOKEN_GET_STRING(tokens);
+ }
+ if (entry->write.type == AMH_DEVICE_HANDLER || entry->write.type == AMH_PORT || entry->write.type == AMH_BANK)
+ {
+ if (entry->write.derived_tag == NULL)
+ entry->write.derived_tag = astring_alloc();
+ entry->write.tag = device_inherit_tag(entry->write.derived_tag, devtag, TOKEN_GET_STRING(tokens));
+ }
break;
- case ADDRMAP_TOKEN_DEVICE_READ:
+ case ADDRMAP_TOKEN_READWRITE:
check_entry_handler(read);
- TOKEN_UNGET_UINT32(tokens);
- TOKEN_GET_UINT32_UNPACK3(tokens, entrytype, 8, entry->read_bits, 8, entry->read_mask, 8);
- entry->read = TOKEN_GET_PTR(tokens, read);
- entry->read_name = TOKEN_GET_STRING(tokens);
- if (entry->read_devtag_string == NULL)
- entry->read_devtag_string = astring_alloc();
- entry->read_devtag = device_inherit_tag(entry->read_devtag_string, devtag, TOKEN_GET_STRING(tokens));
- break;
-
- case ADDRMAP_TOKEN_DEVICE_WRITE:
check_entry_handler(write);
TOKEN_UNGET_UINT32(tokens);
- TOKEN_GET_UINT32_UNPACK3(tokens, entrytype, 8, entry->write_bits, 8, entry->write_mask, 8);
- entry->write = TOKEN_GET_PTR(tokens, write);
- entry->write_name = TOKEN_GET_STRING(tokens);
- if (entry->write_devtag_string == NULL)
- entry->write_devtag_string = astring_alloc();
- entry->write_devtag = device_inherit_tag(entry->write_devtag_string, devtag, TOKEN_GET_STRING(tokens));
- break;
-
- case ADDRMAP_TOKEN_READ_PORT:
- check_entry_field(read_porttag);
- entry->read_porttag = TOKEN_GET_STRING(tokens);
- break;
-
- case ADDRMAP_TOKEN_WRITE_PORT:
- check_entry_field(write_porttag);
- entry->write_porttag = TOKEN_GET_STRING(tokens);
- break;
-
- case ADDRMAP_TOKEN_READ_BANK:
- check_entry_field(read_banktag);
- entry->read_banktag = TOKEN_GET_STRING(tokens);
- break;
-
- case ADDRMAP_TOKEN_WRITE_BANK:
- check_entry_field(write_banktag);
- entry->write_banktag = TOKEN_GET_STRING(tokens);
+ TOKEN_GET_UINT32_UNPACK4(tokens, entrytype, 8, entry->read.type, 8, entry->read.bits, 8, entry->read.mask, 8);
+ entry->write.type = entry->read.type;
+ entry->write.bits = entry->read.bits;
+ entry->write.mask = entry->read.mask;
+ if (entry->read.type == AMH_HANDLER || entry->read.type == AMH_DEVICE_HANDLER)
+ {
+ entry->read.handler.read = TOKEN_GET_PTR(tokens, read);
+ entry->read.name = TOKEN_GET_STRING(tokens);
+ entry->write.handler.write = TOKEN_GET_PTR(tokens, write);
+ entry->write.name = TOKEN_GET_STRING(tokens);
+ }
+ if (entry->read.type == AMH_DEVICE_HANDLER || entry->read.type == AMH_PORT || entry->read.type == AMH_BANK)
+ {
+ const char *basetag = TOKEN_GET_STRING(tokens);
+ if (entry->read.derived_tag == NULL)
+ entry->read.derived_tag = astring_alloc();
+ entry->read.tag = device_inherit_tag(entry->read.derived_tag, devtag, basetag);
+ if (entry->write.derived_tag == NULL)
+ entry->write.derived_tag = astring_alloc();
+ entry->write.tag = device_inherit_tag(entry->write.derived_tag, devtag, basetag);
+ }
break;
case ADDRMAP_TOKEN_REGION:
@@ -2288,7 +2319,7 @@ static void space_map_range_private(address_space *space, read_or_write readorwr
{
/* translate ROM to RAM/UNMAP here */
if (HANDLER_IS_ROM(handler))
- handler = (readorwrite == ROW_WRITE) ? (genf *)STATIC_UNMAP : (genf *)SMH_RAM;
+ handler = (readorwrite == ROW_WRITE) ? (genf *)STATIC_UNMAP : (genf *)STATIC_RAM;
/* assign banks for RAM/ROM areas */
if (HANDLER_IS_RAM(handler))
@@ -2423,12 +2454,12 @@ static int space_needs_backing_store(const address_space *space, const address_m
return TRUE;
/* if we're writing to any sort of bank or RAM, then yes, we do need backing */
- if (entry->write_banktag != NULL || (FPTR)entry->write.generic == STATIC_RAM)
+ if (entry->write.type == AMH_BANK || entry->write.type == AMH_RAM)
return TRUE;
/* if we're reading from RAM or from ROM outside of address space 0 or its region, then yes, we do need backing */
- if ((FPTR)entry->read.generic == STATIC_RAM ||
- ((FPTR)entry->read.generic == STATIC_ROM && (space->spacenum != ADDRESS_SPACE_0 || entry->addrstart >= memory_region_length(space->machine, space->cpu->tag))))
+ if (entry->read.type == AMH_RAM ||
+ (entry->read.type == AMH_ROM && (space->spacenum != ADDRESS_SPACE_0 || entry->addrstart >= memory_region_length(space->machine, space->cpu->tag))))
return TRUE;
/* all other cases don't need backing */
@@ -2444,7 +2475,7 @@ static int space_needs_backing_store(const address_space *space, const address_m
/*-------------------------------------------------
bank_find_or_allocate - allocate a new
bank, or find an existing one, and return the
- SMH_BANK(n) handler
+ read/write handler
-------------------------------------------------*/
void *bank_find_or_allocate(const address_space *space, const char *tag, offs_t bytestart, offs_t byteend, read_or_write readorwrite)
@@ -2495,7 +2526,7 @@ void *bank_find_or_allocate(const address_space *space, const char *tag, offs_t
/* populate it */
bank->index = banknum;
- bank->handler = SMH_BANK(banknum);
+ bank->handler = (void *)(FPTR)(STATIC_BANK1 + banknum - 1);
bank->bytestart = bytestart;
bank->byteend = byteend;
bank->curentry = MAX_BANK_ENTRIES;
diff --git a/src/emu/memory.h b/src/emu/memory.h
index 92844f7fd27..79bdd6ec527 100644
--- a/src/emu/memory.h
+++ b/src/emu/memory.h
@@ -35,21 +35,20 @@ enum
};
-/* static data access handler constants */
-enum
+/* address map handler types */
+enum _map_handler_type
{
- STATIC_INVALID = 0, /* invalid - should never be used */
- STATIC_BANK1 = 1, /* first memory bank */
- /* entries 1-96 are for fixed banks 1-96 specified by the driver */
- /* entries 97-122 are for dynamically allocated internal banks */
- STATIC_BANKMAX = 122, /* last memory bank */
- STATIC_RAM, /* RAM - reads/writes map to dynamic banks */
- STATIC_ROM, /* ROM - reads = RAM; writes = UNMAP */
- STATIC_NOP, /* NOP - reads = unmapped value; writes = no-op */
- STATIC_UNMAP, /* unmapped - same as NOP except we log errors */
- STATIC_WATCHPOINT, /* watchpoint - used internally */
- STATIC_COUNT /* total number of static handlers */
+ AMH_NONE = 0,
+ AMH_RAM,
+ AMH_ROM,
+ AMH_NOP,
+ AMH_UNMAP,
+ AMH_HANDLER,
+ AMH_DEVICE_HANDLER,
+ AMH_PORT,
+ AMH_BANK
};
+typedef enum _map_handler_type map_handler_type;
/* address map tokens */
@@ -69,12 +68,7 @@ enum
ADDRMAP_TOKEN_MIRROR,
ADDRMAP_TOKEN_READ,
ADDRMAP_TOKEN_WRITE,
- ADDRMAP_TOKEN_DEVICE_READ,
- ADDRMAP_TOKEN_DEVICE_WRITE,
- ADDRMAP_TOKEN_READ_PORT,
- ADDRMAP_TOKEN_WRITE_PORT,
- ADDRMAP_TOKEN_READ_BANK,
- ADDRMAP_TOKEN_WRITE_BANK,
+ ADDRMAP_TOKEN_READWRITE,
ADDRMAP_TOKEN_REGION,
ADDRMAP_TOKEN_SHARE,
ADDRMAP_TOKEN_BASEPTR,
@@ -211,33 +205,33 @@ union _memory_handler
};
+/* address map handler data */
+typedef struct _map_handler_data map_handler_data;
+struct _map_handler_data
+{
+ map_handler_type type; /* type of the handler */
+ UINT8 bits; /* width of the handler in bits, or 0 for default */
+ UINT8 mask; /* mask for which lanes apply */
+ memory_handler handler; /* a memory handler */
+ const char * name; /* name of the handler */
+ const char * tag; /* tag pointing to a reference */
+ astring * derived_tag; /* string used to hold derived names */
+};
+
+
/* address_map_entry is a linked list element describing one address range in a map */
typedef struct _address_map_entry address_map_entry;
struct _address_map_entry
{
address_map_entry * next; /* pointer to the next entry */
- astring * read_devtag_string; /* string used to hold derived names */
- astring * write_devtag_string;/* string used to hold derived names */
astring * region_string; /* string used to hold derived names */
offs_t addrstart; /* start address */
offs_t addrend; /* end address */
offs_t addrmirror; /* mirror bits */
offs_t addrmask; /* mask bits */
- read_handler read; /* read handler callback */
- UINT8 read_bits; /* bits for the read handler callback (0=default, 1=8, 2=16, 3=32) */
- UINT8 read_mask; /* mask bits indicating which subunits to process */
- const char * read_name; /* read handler callback name */
- const char * read_devtag; /* read tag for the relevant device */
- const char * read_porttag; /* tag for input port reading */
- const char * write_porttag; /* tag for output port writing */
- const char * read_banktag; /* tag for bank reading */
- const char * write_banktag; /* tag for bank writing */
- write_handler write; /* write handler callback */
- UINT8 write_bits; /* bits for the write handler callback (0=default, 1=8, 2=16, 3=32) */
- UINT8 write_mask; /* mask bits indicating which subunits to process */
- const char * write_name; /* write handler callback name */
- const char * write_devtag; /* read tag for the relevant device */
+ map_handler_data read; /* data for read handler */
+ map_handler_data write; /* data for write handler */
UINT32 share; /* index of a shared memory block */
void ** baseptr; /* receives pointer to memory (optional) */
size_t * sizeptr; /* receives size of area in bytes (optional) */
@@ -448,14 +442,6 @@ union _addrmap64_token
#define WRITE64_DEVICE_HANDLER(name) void name(ATTR_UNUSED const device_config *device, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT64 data, ATTR_UNUSED UINT64 mem_mask)
-/* static memory handler (SMH) macros that can be used in place of read/write handlers */
-#define SMH_RAM ((void *)STATIC_RAM)
-#define SMH_ROM ((void *)STATIC_ROM)
-#define SMH_NOP ((void *)STATIC_NOP)
-#define SMH_UNMAP ((void *)STATIC_UNMAP)
-#define SMH_BANK(n) ((void *)(FPTR)(STATIC_BANK1 + (n) - 1))
-
-
/* helper macro for merging data with the memory mask */
#define COMBINE_DATA(varptr) (*(varptr) = (*(varptr) & ~mem_mask) | (data & mem_mask))
@@ -508,6 +494,10 @@ union _addrmap64_token
_memory_install_port_handler(space, start, end, mask, mirror, rtag, NULL)
#define memory_install_read_bank_handler(space, start, end, mask, mirror, rtag) \
_memory_install_bank_handler(space, start, end, mask, mirror, rtag, NULL)
+#define memory_unmap_read(space, start, end, mask, mirror) \
+ _memory_unmap(space, start, end, mask, mirror, TRUE, FALSE, FALSE)
+#define memory_nop_read(space, start, end, mask, mirror) \
+ _memory_unmap(space, start, end, mask, mirror, TRUE, FALSE, TRUE)
/* wrappers for dynamic write handler installation */
#define memory_install_write_handler(space, start, end, mask, mirror, whandler) \
@@ -536,6 +526,10 @@ union _addrmap64_token
_memory_install_port_handler(space, start, end, mask, mirror, NULL, wtag)
#define memory_install_write_bank_handler(space, start, end, mask, mirror, wtag) \
_memory_install_bank_handler(space, start, end, mask, mirror, NULL, wtag)
+#define memory_unmap_write(space, start, end, mask, mirror) \
+ _memory_unmap(space, start, end, mask, mirror, FALSE, TRUE, FALSE)
+#define memory_nop_write(space, start, end, mask, mirror) \
+ _memory_unmap(space, start, end, mask, mirror, FALSE, TRUE, TRUE)
/* wrappers for dynamic read/write handler installation */
#define memory_install_readwrite_handler(space, start, end, mask, mirror, rhandler, whandler) \
@@ -564,6 +558,10 @@ union _addrmap64_token
_memory_install_port_handler(space, start, end, mask, mirror, rtag, wtag)
#define memory_install_readwrite_bank_handler(space, start, end, mask, mirror, tag) \
_memory_install_bank_handler(space, start, end, mask, mirror, tag, tag)
+#define memory_unmap_readwrite(space, start, end, mask, mirror) \
+ _memory_unmap(space, start, end, mask, mirror, TRUE, TRUE, FALSE)
+#define memory_nop_readwrite(space, start, end, mask, mirror) \
+ _memory_unmap(space, start, end, mask, mirror, TRUE, TRUE, TRUE)
/* macros for accessing bytes and words within larger chunks */
@@ -669,110 +667,214 @@ union _addrmap64_token
#define AM_MIRROR(_mirror) \
TOKEN_UINT64_PACK2(ADDRMAP_TOKEN_MIRROR, 8, _mirror, 32),
+
+/* space reads */
#define AM_READ(_handler) \
- TOKEN_UINT32_PACK3(ADDRMAP_TOKEN_READ, 8, 0, 8, 0, 8), \
+ TOKEN_UINT32_PACK4(ADDRMAP_TOKEN_READ, 8, AMH_HANDLER, 8, 0, 8, 0, 8), \
TOKEN_PTR(sread, _handler), \
TOKEN_STRING(#_handler),
#define AM_READ8(_handler, _unitmask) \
- TOKEN_UINT32_PACK3(ADDRMAP_TOKEN_READ, 8, 8, 8, UNITMASK8(_unitmask), 8), \
+ TOKEN_UINT32_PACK4(ADDRMAP_TOKEN_READ, 8, AMH_HANDLER, 8, 8, 8, UNITMASK8(_unitmask), 8), \
TOKEN_PTR(sread8, _handler), \
TOKEN_STRING(#_handler),
#define AM_READ16(_handler, _unitmask) \
- TOKEN_UINT32_PACK3(ADDRMAP_TOKEN_READ, 8, 16, 8, UNITMASK16(_unitmask), 8), \
+ TOKEN_UINT32_PACK4(ADDRMAP_TOKEN_READ, 8, AMH_HANDLER, 8, 16, 8, UNITMASK16(_unitmask), 8), \
TOKEN_PTR(sread16, _handler), \
TOKEN_STRING(#_handler),
#define AM_READ32(_handler, _unitmask) \
- TOKEN_UINT32_PACK3(ADDRMAP_TOKEN_READ, 8, 32, 8, UNITMASK32(_unitmask), 8), \
+ TOKEN_UINT32_PACK4(ADDRMAP_TOKEN_READ, 8, AMH_HANDLER, 8, 32, 8, UNITMASK32(_unitmask), 8), \
TOKEN_PTR(sread32, _handler), \
TOKEN_STRING(#_handler),
+
+/* space writes */
#define AM_WRITE(_handler) \
- TOKEN_UINT32_PACK3(ADDRMAP_TOKEN_WRITE, 8, 0, 8, 0, 8), \
+ TOKEN_UINT32_PACK4(ADDRMAP_TOKEN_WRITE, 8, AMH_HANDLER, 8, 0, 8, 0, 8), \
TOKEN_PTR(swrite, _handler), \
TOKEN_STRING(#_handler),
#define AM_WRITE8(_handler, _unitmask) \
- TOKEN_UINT32_PACK3(ADDRMAP_TOKEN_WRITE, 8, 8, 8, UNITMASK8(_unitmask), 8), \
+ TOKEN_UINT32_PACK4(ADDRMAP_TOKEN_WRITE, 8, AMH_HANDLER, 8, 8, 8, UNITMASK8(_unitmask), 8), \
TOKEN_PTR(swrite8, _handler), \
TOKEN_STRING(#_handler),
#define AM_WRITE16(_handler, _unitmask) \
- TOKEN_UINT32_PACK3(ADDRMAP_TOKEN_WRITE, 8, 16, 8, UNITMASK16(_unitmask), 8), \
+ TOKEN_UINT32_PACK4(ADDRMAP_TOKEN_WRITE, 8, AMH_HANDLER, 8, 16, 8, UNITMASK16(_unitmask), 8), \
TOKEN_PTR(swrite16, _handler), \
TOKEN_STRING(#_handler),
#define AM_WRITE32(_handler, _unitmask) \
- TOKEN_UINT32_PACK3(ADDRMAP_TOKEN_WRITE, 8, 32, 8, UNITMASK32(_unitmask), 8), \
+ TOKEN_UINT32_PACK4(ADDRMAP_TOKEN_WRITE, 8, AMH_HANDLER, 8, 32, 8, UNITMASK32(_unitmask), 8), \
TOKEN_PTR(swrite32, _handler), \
TOKEN_STRING(#_handler),
+
+/* space reads/writes */
+#define AM_READWRITE(_rhandler, _whandler) \
+ TOKEN_UINT32_PACK4(ADDRMAP_TOKEN_READWRITE, 8, AMH_HANDLER, 8, 0, 8, 0, 8), \
+ TOKEN_PTR(sread, _rhandler), \
+ TOKEN_STRING(#_rhandler), \
+ TOKEN_PTR(swrite, _whandler), \
+ TOKEN_STRING(#_whandler),
+
+#define AM_READWRITE8(_rhandler, _whandler, _unitmask) \
+ TOKEN_UINT32_PACK4(ADDRMAP_TOKEN_READWRITE, 8, AMH_HANDLER, 8, 8, 8, UNITMASK8(_unitmask), 8), \
+ TOKEN_PTR(sread8, _rhandler), \
+ TOKEN_STRING(#_rhandler), \
+ TOKEN_PTR(swrite8, _whandler), \
+ TOKEN_STRING(#_whandler),
+
+#define AM_READWRITE16(_rhandler, _whandler, _unitmask) \
+ TOKEN_UINT32_PACK4(ADDRMAP_TOKEN_READWRITE, 8, AMH_HANDLER, 8, 16, 8, UNITMASK16(_unitmask), 8), \
+ TOKEN_PTR(sread16, _rhandler), \
+ TOKEN_STRING(#_rhandler), \
+ TOKEN_PTR(swrite16, _whandler), \
+ TOKEN_STRING(#_whandler),
+
+#define AM_READWRITE32(_rhandler, _whandler, _unitmask) \
+ TOKEN_UINT32_PACK4(ADDRMAP_TOKEN_READWRITE, 8, AMH_HANDLER, 8, 32, 8, UNITMASK32(_unitmask), 8), \
+ TOKEN_PTR(sread32, _rhandler), \
+ TOKEN_STRING(#_rhandler), \
+ TOKEN_PTR(swrite32, _whandler), \
+ TOKEN_STRING(#_whandler),
+
+
+/* device reads */
#define AM_DEVREAD(_tag, _handler) \
- TOKEN_UINT32_PACK3(ADDRMAP_TOKEN_DEVICE_READ, 8, 0, 8, 0, 8), \
+ TOKEN_UINT32_PACK4(ADDRMAP_TOKEN_READ, 8, AMH_DEVICE_HANDLER, 8, 0, 8, 0, 8), \
TOKEN_PTR(dread, _handler), \
TOKEN_STRING(#_handler), \
TOKEN_STRING(_tag),
#define AM_DEVREAD8(_tag, _handler, _unitmask) \
- TOKEN_UINT32_PACK3(ADDRMAP_TOKEN_DEVICE_READ, 8, 8, 8, UNITMASK8(_unitmask), 8), \
+ TOKEN_UINT32_PACK4(ADDRMAP_TOKEN_READ, 8, AMH_DEVICE_HANDLER, 8, 8, 8, UNITMASK8(_unitmask), 8), \
TOKEN_PTR(dread8, _handler), \
TOKEN_STRING(#_handler), \
TOKEN_STRING(_tag),
#define AM_DEVREAD16(_tag, _handler, _unitmask) \
- TOKEN_UINT32_PACK3(ADDRMAP_TOKEN_DEVICE_READ, 8, 16, 8, UNITMASK16(_unitmask), 8), \
+ TOKEN_UINT32_PACK4(ADDRMAP_TOKEN_READ, 8, AMH_DEVICE_HANDLER, 8, 16, 8, UNITMASK16(_unitmask), 8), \
TOKEN_PTR(dread16, _handler), \
TOKEN_STRING(#_handler), \
TOKEN_STRING(_tag),
#define AM_DEVREAD32(_tag, _handler, _unitmask) \
- TOKEN_UINT32_PACK3(ADDRMAP_TOKEN_DEVICE_READ, 8, 32, 8, UNITMASK32(_unitmask), 8), \
+ TOKEN_UINT32_PACK4(ADDRMAP_TOKEN_READ, 8, AMH_DEVICE_HANDLER, 8, 32, 8, UNITMASK32(_unitmask), 8), \
TOKEN_PTR(dread32, _handler), \
TOKEN_STRING(#_handler), \
TOKEN_STRING(_tag),
+
+/* device writes */
#define AM_DEVWRITE(_tag, _handler) \
- TOKEN_UINT32_PACK3(ADDRMAP_TOKEN_DEVICE_WRITE, 8, 0, 8, 0, 8), \
+ TOKEN_UINT32_PACK4(ADDRMAP_TOKEN_WRITE, 8, AMH_DEVICE_HANDLER, 8, 0, 8, 0, 8), \
TOKEN_PTR(dwrite, _handler), \
TOKEN_STRING(#_handler), \
TOKEN_STRING(_tag),
#define AM_DEVWRITE8(_tag, _handler, _unitmask) \
- TOKEN_UINT32_PACK3(ADDRMAP_TOKEN_DEVICE_WRITE, 8, 8, 8, UNITMASK8(_unitmask), 8), \
+ TOKEN_UINT32_PACK4(ADDRMAP_TOKEN_WRITE, 8, AMH_DEVICE_HANDLER, 8, 8, 8, UNITMASK8(_unitmask), 8), \
TOKEN_PTR(dwrite8, _handler), \
TOKEN_STRING(#_handler), \
TOKEN_STRING(_tag),
#define AM_DEVWRITE16(_tag, _handler, _unitmask) \
- TOKEN_UINT32_PACK3(ADDRMAP_TOKEN_DEVICE_WRITE, 8, 16, 8, UNITMASK16(_unitmask), 8), \
+ TOKEN_UINT32_PACK4(ADDRMAP_TOKEN_WRITE, 8, AMH_DEVICE_HANDLER, 8, 16, 8, UNITMASK16(_unitmask), 8), \
TOKEN_PTR(dwrite16, _handler), \
TOKEN_STRING(#_handler), \
TOKEN_STRING(_tag),
#define AM_DEVWRITE32(_tag, _handler, _unitmask) \
- TOKEN_UINT32_PACK3(ADDRMAP_TOKEN_DEVICE_WRITE, 8, 32, 8, UNITMASK32(_unitmask), 8), \
+ TOKEN_UINT32_PACK4(ADDRMAP_TOKEN_WRITE, 8, AMH_DEVICE_HANDLER, 8, 32, 8, UNITMASK32(_unitmask), 8), \
TOKEN_PTR(dwrite32, _handler), \
TOKEN_STRING(#_handler), \
TOKEN_STRING(_tag),
+
+/* device reads/writes */
+#define AM_DEVREADWRITE(_tag, _rhandler, _whandler) \
+ TOKEN_UINT32_PACK4(ADDRMAP_TOKEN_READWRITE, 8, AMH_DEVICE_HANDLER, 8, 0, 8, 0, 8), \
+ TOKEN_PTR(dread, _rhandler), \
+ TOKEN_STRING(#_rhandler), \
+ TOKEN_PTR(dwrite, _whandler), \
+ TOKEN_STRING(#_whandler), \
+ TOKEN_STRING(_tag),
+
+#define AM_DEVREADWRITE8(_tag, _rhandler, _whandler, _unitmask) \
+ TOKEN_UINT32_PACK4(ADDRMAP_TOKEN_READWRITE, 8, AMH_DEVICE_HANDLER, 8, 8, 8, UNITMASK8(_unitmask), 8), \
+ TOKEN_PTR(dread8, _rhandler), \
+ TOKEN_STRING(#_rhandler), \
+ TOKEN_PTR(dwrite8, _whandler), \
+ TOKEN_STRING(#_whandler), \
+ TOKEN_STRING(_tag),
+
+#define AM_DEVREADWRITE16(_tag, _rhandler, _whandler, _unitmask) \
+ TOKEN_UINT32_PACK4(ADDRMAP_TOKEN_READWRITE, 8, AMH_DEVICE_HANDLER, 8, 16, 8, UNITMASK16(_unitmask), 8), \
+ TOKEN_PTR(dread16, _rhandler), \
+ TOKEN_STRING(#_rhandler), \
+ TOKEN_PTR(dwrite16, _whandler), \
+ TOKEN_STRING(#_whandler), \
+ TOKEN_STRING(_tag),
+
+#define AM_DEVREADWRITE32(_tag, _rhandler, _whandler, _unitmask) \
+ TOKEN_UINT32_PACK4(ADDRMAP_TOKEN_READWRITE, 8, AMH_DEVICE_HANDLER, 8, 32, 8, UNITMASK32(_unitmask), 8), \
+ TOKEN_PTR(dread32, _rhandler), \
+ TOKEN_STRING(#_rhandler), \
+ TOKEN_PTR(dwrite32, _whandler), \
+ TOKEN_STRING(#_whandler), \
+ TOKEN_STRING(_tag),
+
+
+/* special-case accesses */
+#define AM_ROM \
+ TOKEN_UINT32_PACK4(ADDRMAP_TOKEN_READ, 8, AMH_ROM, 8, 0, 8, 0, 8),
+
+#define AM_READONLY \
+ TOKEN_UINT32_PACK4(ADDRMAP_TOKEN_READ, 8, AMH_RAM, 8, 0, 8, 0, 8),
+
+#define AM_WRITEONLY \
+ TOKEN_UINT32_PACK4(ADDRMAP_TOKEN_WRITE, 8, AMH_RAM, 8, 0, 8, 0, 8),
+
+#define AM_RAM \
+ TOKEN_UINT32_PACK4(ADDRMAP_TOKEN_READWRITE, 8, AMH_RAM, 8, 0, 8, 0, 8),
+
+#define AM_UNMAP \
+ TOKEN_UINT32_PACK4(ADDRMAP_TOKEN_READWRITE, 8, AMH_UNMAP, 8, 0, 8, 0, 8),
+
+#define AM_NOP \
+ TOKEN_UINT32_PACK4(ADDRMAP_TOKEN_READWRITE, 8, AMH_NOP, 8, 0, 8, 0, 8),
+
+#define AM_READNOP \
+ TOKEN_UINT32_PACK4(ADDRMAP_TOKEN_READ, 8, AMH_NOP, 8, 0, 8, 0, 8),
+
+#define AM_WRITENOP \
+ TOKEN_UINT32_PACK4(ADDRMAP_TOKEN_WRITE, 8, AMH_NOP, 8, 0, 8, 0, 8),
+
+
+/* port accesses */
#define AM_READ_PORT(_tag) \
- TOKEN_UINT32_PACK3(ADDRMAP_TOKEN_READ_PORT, 8, 0, 8, 0, 8), \
+ TOKEN_UINT32_PACK4(ADDRMAP_TOKEN_READ, 8, AMH_PORT, 8, 0, 8, 0, 8), \
TOKEN_STRING(_tag),
#define AM_WRITE_PORT(_tag) \
- TOKEN_UINT32_PACK3(ADDRMAP_TOKEN_WRITE_PORT, 8, 0, 8, 0, 8), \
+ TOKEN_UINT32_PACK4(ADDRMAP_TOKEN_WRITE, 8, AMH_PORT, 8, 0, 8, 0, 8), \
TOKEN_STRING(_tag),
+
+/* bank accesses */
#define AM_READ_BANK(_tag) \
- TOKEN_UINT32_PACK3(ADDRMAP_TOKEN_READ_BANK, 8, 0, 8, 0, 8), \
+ TOKEN_UINT32_PACK4(ADDRMAP_TOKEN_READ, 8, AMH_BANK, 8, 0, 8, 0, 8), \
TOKEN_STRING(_tag),
#define AM_WRITE_BANK(_tag) \
- TOKEN_UINT32_PACK3(ADDRMAP_TOKEN_WRITE_BANK, 8, 0, 8, 0, 8), \
+ TOKEN_UINT32_PACK4(ADDRMAP_TOKEN_WRITE, 8, AMH_BANK, 8, 0, 8, 0, 8), \
TOKEN_STRING(_tag),
+
+/* attributes for accesses */
#define AM_REGION(_tag, _offs) \
TOKEN_UINT64_PACK2(ADDRMAP_TOKEN_REGION, 8, _offs, 32), \
TOKEN_STRING(_tag),
@@ -802,28 +904,12 @@ union _addrmap64_token
/* common shortcuts */
-#define AM_READWRITE(_read,_write) AM_READ(_read) AM_WRITE(_write)
-#define AM_READWRITE8(_read,_write,_mask) AM_READ8(_read,_mask) AM_WRITE8(_write,_mask)
-#define AM_READWRITE16(_read,_write,_mask) AM_READ16(_read,_mask) AM_WRITE16(_write,_mask)
-#define AM_READWRITE32(_read,_write,_mask) AM_READ32(_read,_mask) AM_WRITE32(_write,_mask)
-
-#define AM_DEVREADWRITE(_tag,_read,_write) AM_DEVREAD(_tag,_read) AM_DEVWRITE(_tag,_write)
-#define AM_DEVREADWRITE8(_tag,_read,_write,_mask) AM_DEVREAD8(_tag,_read,_mask) AM_DEVWRITE8(_tag,_write,_mask)
-#define AM_DEVREADWRITE16(_tag,_read,_write,_mask) AM_DEVREAD16(_tag,_read,_mask) AM_DEVWRITE16(_tag,_write,_mask)
-#define AM_DEVREADWRITE32(_tag,_read,_write,_mask) AM_DEVREAD32(_tag,_read,_mask) AM_DEVWRITE32(_tag,_write,_mask)
-
-#define AM_ROM AM_READ(SMH_ROM)
#define AM_ROMBANK(_bank) AM_READ_BANK(_bank)
-
-#define AM_RAM AM_READWRITE(SMH_RAM, SMH_RAM)
#define AM_RAMBANK(_bank) AM_READ_BANK(_bank) AM_WRITE_BANK(_bank)
-#define AM_RAM_WRITE(_write) AM_READWRITE(SMH_RAM, _write)
-#define AM_WRITEONLY AM_WRITE(SMH_RAM)
-
-#define AM_UNMAP AM_READWRITE(SMH_UNMAP, SMH_UNMAP)
-#define AM_NOP AM_READWRITE(SMH_NOP, SMH_NOP)
-#define AM_READNOP AM_READ(SMH_NOP)
-#define AM_WRITENOP AM_WRITE(SMH_NOP)
+#define AM_RAM_READ(_read) AM_READ(_read) AM_WRITEONLY
+#define AM_RAM_WRITE(_write) AM_READONLY AM_WRITE(_write)
+#define AM_RAM_DEVREAD(_tag, _read) AM_DEVREAD(_tag, _read) AM_WRITEONLY
+#define AM_RAM_DEVWRITE(_tag, _write) AM_READONLY AM_DEVWRITE(_tag, _write)
#define AM_BASE_SIZE_MEMBER(_struct, _base, _size) AM_BASE_MEMBER(_struct, _base) AM_SIZE_MEMBER(_struct, _size)
#define AM_BASE_SIZE_GENERIC(_member) AM_BASE_GENERIC(_member) AM_SIZE_GENERIC(_member)
@@ -939,6 +1025,9 @@ void _memory_install_port_handler(const address_space *space, offs_t addrstart,
/* install a new bank handler into the given address space */
void _memory_install_bank_handler(const address_space *space, offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, const char *rtag, const char *wtag) ATTR_NONNULL(1);
+/* unmap a section of address space */
+void _memory_unmap(const address_space *space, offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, UINT8 unmap_read, UINT8 unmap_write, UINT8 quiet) ATTR_NONNULL(1);
+
/* ----- debugger helpers ----- */
diff --git a/src/emu/validity.c b/src/emu/validity.c
index 7bb79ae4b3e..37374c22604 100644
--- a/src/emu/validity.c
+++ b/src/emu/validity.c
@@ -1325,7 +1325,7 @@ static int validate_devices(int drivnum, const machine_config *config, const inp
}
/* if this is a program space, auto-assign implicit ROM entries */
- if ((FPTR)entry->read.generic == STATIC_ROM && entry->region == NULL)
+ if (entry->read.type == AMH_ROM && entry->region == NULL)
{
entry->region = device->tag;
entry->rgnoffs = entry->addrstart;
@@ -1362,30 +1362,26 @@ static int validate_devices(int drivnum, const machine_config *config, const inp
}
/* make sure all devices exist */
- if (entry->read_devtag != NULL && device_list_find_by_tag(&config->devicelist, entry->read_devtag) == NULL)
+ if ((entry->read.type == AMH_DEVICE_HANDLER && entry->read.tag != NULL && device_list_find_by_tag(&config->devicelist, entry->read.tag) == NULL) ||
+ (entry->write.type == AMH_DEVICE_HANDLER && entry->write.tag != NULL && device_list_find_by_tag(&config->devicelist, entry->write.tag) == NULL))
{
- mame_printf_error("%s: %s device '%s' %s space memory map entry references nonexistant device '%s'\n", driver->source_file, driver->name, device->tag, address_space_names[spacenum], entry->read_devtag);
- error = TRUE;
- }
- if (entry->write_devtag != NULL && device_list_find_by_tag(&config->devicelist, entry->write_devtag) == NULL)
- {
- mame_printf_error("%s: %s device '%s' %s space memory map entry references nonexistant device '%s'\n", driver->source_file, driver->name, device->tag, address_space_names[spacenum], entry->write_devtag);
+ mame_printf_error("%s: %s device '%s' %s space memory map entry references nonexistant device '%s'\n", driver->source_file, driver->name, device->tag, address_space_names[spacenum], entry->write.tag);
error = TRUE;
}
/* make sure ports exist */
- if (entry->read_porttag != NULL && input_port_by_tag(portlist, entry->read_porttag) == NULL)
+ if ((entry->read.type == AMH_PORT && entry->read.tag != NULL && input_port_by_tag(portlist, entry->read.tag) == NULL) ||
+ (entry->write.type == AMH_PORT && entry->write.tag != NULL && input_port_by_tag(portlist, entry->write.tag) == NULL))
{
- mame_printf_error("%s: %s device '%s' %s space memory map entry references nonexistant port tag '%s'\n", driver->source_file, driver->name, device->tag, address_space_names[spacenum], entry->read_porttag);
+ mame_printf_error("%s: %s device '%s' %s space memory map entry references nonexistant port tag '%s'\n", driver->source_file, driver->name, device->tag, address_space_names[spacenum], entry->read.tag);
error = TRUE;
}
- /* make sure ports exist */
- if (entry->write_porttag != NULL && input_port_by_tag(portlist, entry->write_porttag) == NULL)
- {
- mame_printf_error("%s: %s device '%s' %s space memory map entry references nonexistant port tag '%s'\n", driver->source_file, driver->name, device->tag, address_space_names[spacenum], entry->write_porttag);
- error = TRUE;
- }
+ /* validate bank tags */
+ if (entry->read.type == AMH_BANK)
+ error |= validate_tag(driver, "bank", entry->read.tag);
+ if (entry->write.type == AMH_BANK)
+ error |= validate_tag(driver, "bank", entry->write.tag);
}
/* release the address map */
diff --git a/src/emu/video/generic.c b/src/emu/video/generic.c
index 379e0fdf5fc..8993215fc76 100644
--- a/src/emu/video/generic.c
+++ b/src/emu/video/generic.c
@@ -307,7 +307,7 @@ equal to the size of normal spriteram.
Spriteram size _must_ be declared in the memory map:
- { 0x120000, 0x1207ff, SMH_BANK(2), &spriteram, &spriteram_size },
+ AM_RANGE(0x120000, 0x1207ff) AM_RAMBANK("sprites") AM_BASE_SIZE_GENERIC(spriteram)
Then the video driver must draw the sprites from the buffered_spriteram
pointer. The function buffer_spriteram_w() is used to simulate hardware
diff --git a/src/mame/audio/dcs.c b/src/mame/audio/dcs.c
index b1118089e84..552ca87d114 100644
--- a/src/mame/audio/dcs.c
+++ b/src/mame/audio/dcs.c
@@ -1114,8 +1114,8 @@ static void sdrc_remap_memory(running_machine *machine)
/* if SRAM disabled, clean it out */
if (SDRC_SM_EN == 0)
{
- memory_install_readwrite32_handler(dcs.program, 0x0800, 0x3fff, 0, 0, (read32_space_func)SMH_UNMAP, (write32_space_func)SMH_UNMAP);
- memory_install_readwrite16_handler(dcs.data, 0x0800, 0x37ff, 0, 0, (read16_space_func)SMH_UNMAP, (write16_space_func)SMH_UNMAP);
+ memory_unmap_readwrite(dcs.program, 0x0800, 0x3fff, 0, 0);
+ memory_unmap_readwrite(dcs.data, 0x0800, 0x37ff, 0, 0);
}
/* otherwise, map the SRAM */
@@ -1140,7 +1140,7 @@ static void sdrc_remap_memory(running_machine *machine)
/* map 1: nothing from 0800-17ff, alternate RAM at 1800-27ff, same RAM at 2800-37ff */
else
{
- memory_install_readwrite16_handler(dcs.data, 0x0800, 0x17ff, 0, 0, (read16_space_func)SMH_UNMAP, (write16_space_func)SMH_UNMAP);
+ memory_unmap_readwrite(dcs.data, 0x0800, 0x17ff, 0, 0);
memory_install_readwrite_bank_handler(dcs.data, 0x1800, 0x27ff, 0, 0, "bank23");
memory_install_readwrite_bank_handler(dcs.data, 0x2800, 0x37ff, 0, 0, "bank24");
memory_set_bankptr(machine, "bank23", dcs_sram + 0x3000);
diff --git a/src/mame/audio/exidy440.c b/src/mame/audio/exidy440.c
index 93596678f77..ffd973d3469 100644
--- a/src/mame/audio/exidy440.c
+++ b/src/mame/audio/exidy440.c
@@ -895,10 +895,10 @@ static ADDRESS_MAP_START( exidy440_audio_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x7fff) AM_NOP
AM_RANGE(0x8000, 0x801f) AM_MIRROR(0x03e0) AM_READWRITE(m6844_r, m6844_w) AM_BASE(&m6844_data)
AM_RANGE(0x8400, 0x840f) AM_MIRROR(0x03f0) AM_RAM_WRITE(sound_volume_w) AM_BASE(&sound_volume)
- AM_RANGE(0x8800, 0x8800) AM_MIRROR(0x03ff) AM_READWRITE(sound_command_r, SMH_NOP)
+ AM_RANGE(0x8800, 0x8800) AM_MIRROR(0x03ff) AM_READ(sound_command_r) AM_WRITENOP
AM_RANGE(0x8c00, 0x93ff) AM_NOP
- AM_RANGE(0x9400, 0x9403) AM_MIRROR(0x03fc) AM_READWRITE(SMH_NOP, SMH_RAM) AM_BASE(&sound_banks)
- AM_RANGE(0x9800, 0x9800) AM_MIRROR(0x03ff) AM_READWRITE(SMH_NOP, sound_interrupt_clear_w)
+ AM_RANGE(0x9400, 0x9403) AM_MIRROR(0x03fc) AM_READNOP AM_WRITEONLY AM_BASE(&sound_banks)
+ AM_RANGE(0x9800, 0x9800) AM_MIRROR(0x03ff) AM_READNOP AM_WRITE(sound_interrupt_clear_w)
AM_RANGE(0x9c00, 0x9fff) AM_NOP
AM_RANGE(0xa000, 0xbfff) AM_RAM
AM_RANGE(0xc000, 0xdfff) AM_NOP
diff --git a/src/mame/audio/jedi.c b/src/mame/audio/jedi.c
index b9c2bfcbc00..9dc14e2430d 100644
--- a/src/mame/audio/jedi.c
+++ b/src/mame/audio/jedi.c
@@ -179,15 +179,15 @@ static ADDRESS_MAP_START( audio_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0810, 0x081f) AM_MIRROR(0x07c0) AM_DEVREADWRITE("pokey2", pokey_r, pokey_w)
AM_RANGE(0x0820, 0x082f) AM_MIRROR(0x07c0) AM_DEVREADWRITE("pokey3", pokey_r, pokey_w)
AM_RANGE(0x0830, 0x083f) AM_MIRROR(0x07c0) AM_DEVREADWRITE("pokey4", pokey_r, pokey_w)
- AM_RANGE(0x1000, 0x1000) AM_MIRROR(0x00ff) AM_READWRITE(SMH_NOP, irq_ack_w)
- AM_RANGE(0x1100, 0x1100) AM_MIRROR(0x00ff) AM_READWRITE(SMH_NOP, SMH_RAM) AM_BASE_MEMBER(jedi_state, speech_data)
- AM_RANGE(0x1200, 0x13ff) AM_READWRITE(SMH_NOP, speech_strobe_w)
- AM_RANGE(0x1400, 0x1400) AM_MIRROR(0x00ff) AM_READWRITE(SMH_NOP, audio_ack_latch_w)
- AM_RANGE(0x1500, 0x1500) AM_MIRROR(0x00ff) AM_READWRITE(SMH_NOP, speech_reset_w)
+ AM_RANGE(0x1000, 0x1000) AM_MIRROR(0x00ff) AM_READNOP AM_WRITE(irq_ack_w)
+ AM_RANGE(0x1100, 0x1100) AM_MIRROR(0x00ff) AM_READNOP AM_WRITEONLY AM_BASE_MEMBER(jedi_state, speech_data)
+ AM_RANGE(0x1200, 0x13ff) AM_READNOP AM_WRITE(speech_strobe_w)
+ AM_RANGE(0x1400, 0x1400) AM_MIRROR(0x00ff) AM_READNOP AM_WRITE(audio_ack_latch_w)
+ AM_RANGE(0x1500, 0x1500) AM_MIRROR(0x00ff) AM_READNOP AM_WRITE(speech_reset_w)
AM_RANGE(0x1600, 0x17ff) AM_NOP
- AM_RANGE(0x1800, 0x1800) AM_MIRROR(0x03ff) AM_READWRITE(audio_latch_r, SMH_NOP)
- AM_RANGE(0x1c00, 0x1c00) AM_MIRROR(0x03fe) AM_READWRITE(speech_ready_r, SMH_NOP)
- AM_RANGE(0x1c01, 0x1c01) AM_MIRROR(0x03fe) AM_RAM_WRITE(SMH_NOP) AM_BASE_MEMBER(jedi_state, audio_comm_stat)
+ AM_RANGE(0x1800, 0x1800) AM_MIRROR(0x03ff) AM_READ(audio_latch_r) AM_WRITENOP
+ AM_RANGE(0x1c00, 0x1c00) AM_MIRROR(0x03fe) AM_READ(speech_ready_r) AM_WRITENOP
+ AM_RANGE(0x1c01, 0x1c01) AM_MIRROR(0x03fe) AM_READONLY AM_WRITENOP AM_BASE_MEMBER(jedi_state, audio_comm_stat)
AM_RANGE(0x2000, 0x7fff) AM_NOP
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/mame/audio/mcr.c b/src/mame/audio/mcr.c
index 9db9f8bd6ea..d8bdb6c9a38 100644
--- a/src/mame/audio/mcr.c
+++ b/src/mame/audio/mcr.c
@@ -459,7 +459,7 @@ static ADDRESS_MAP_START( ssio_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xb000, 0xb000) AM_MIRROR(0x0ffc) AM_DEVWRITE("ssio.2", ay8910_address_w)
AM_RANGE(0xb001, 0xb001) AM_MIRROR(0x0ffc) AM_DEVREAD("ssio.2", ay8910_r)
AM_RANGE(0xb002, 0xb002) AM_MIRROR(0x0ffc) AM_DEVWRITE("ssio.2", ay8910_data_w)
- AM_RANGE(0xc000, 0xcfff) AM_READWRITE(SMH_NOP, ssio_status_w)
+ AM_RANGE(0xc000, 0xcfff) AM_READNOP AM_WRITE(ssio_status_w)
AM_RANGE(0xd000, 0xdfff) AM_WRITENOP /* low bit controls yellow LED */
AM_RANGE(0xe000, 0xefff) AM_READ(ssio_irq_clear)
AM_RANGE(0xf000, 0xffff) AM_READ_PORT("SSIO.DIP") /* 6 DIP switches */
diff --git a/src/mame/audio/redalert.c b/src/mame/audio/redalert.c
index 37ae35fd9c0..5bea5325733 100644
--- a/src/mame/audio/redalert.c
+++ b/src/mame/audio/redalert.c
@@ -193,7 +193,7 @@ static ADDRESS_MAP_START( redalert_voice_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x7fff) AM_NOP
AM_RANGE(0x8000, 0x83ff) AM_MIRROR(0x3c00) AM_RAM
- AM_RANGE(0xc000, 0xc000) AM_MIRROR(0x3fff) AM_READWRITE(soundlatch2_r, SMH_NOP)
+ AM_RANGE(0xc000, 0xc000) AM_MIRROR(0x3fff) AM_READ(soundlatch2_r) AM_WRITENOP
ADDRESS_MAP_END
diff --git a/src/mame/drivers/alg.c b/src/mame/drivers/alg.c
index 0ca9868a20c..867266eca9a 100644
--- a/src/mame/drivers/alg.c
+++ b/src/mame/drivers/alg.c
@@ -210,7 +210,7 @@ static WRITE8_DEVICE_HANDLER( alg_cia_0_porta_w )
else
/* overlay enabled, map Amiga system ROM on 0x000000 */
- memory_install_write16_handler(space, 0x000000, 0x07ffff, 0, 0, (write16_space_func)SMH_UNMAP);
+ memory_unmap_write(space, 0x000000, 0x07ffff, 0, 0);
}
diff --git a/src/mame/drivers/arcadia.c b/src/mame/drivers/arcadia.c
index dc89b7a7eef..b7044ddc78a 100644
--- a/src/mame/drivers/arcadia.c
+++ b/src/mame/drivers/arcadia.c
@@ -75,7 +75,7 @@ static WRITE16_HANDLER( arcadia_multibios_change_game )
if (data == 0)
memory_install_read_bank_handler(space, 0x800000, 0x97ffff, 0, 0, "bank2");
else
- memory_install_read16_handler(space, 0x800000, 0x97ffff, 0, 0, (read16_space_func)SMH_NOP);
+ memory_nop_read(space, 0x800000, 0x97ffff, 0, 0);
}
@@ -107,7 +107,7 @@ static WRITE8_DEVICE_HANDLER( arcadia_cia_0_porta_w )
else
/* overlay enabled, map Amiga system ROM on 0x000000 */
- memory_install_write16_handler(cputag_get_address_space(device->machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x000000, 0x07ffff, 0, 0, (write16_space_func)SMH_UNMAP);
+ memory_unmap_write(cputag_get_address_space(device->machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x000000, 0x07ffff, 0, 0);
/* bit 2 = Power Led on Amiga */
set_led_status(device->machine, 0, (data & 2) ? 0 : 1);
diff --git a/src/mame/drivers/astrocde.c b/src/mame/drivers/astrocde.c
index 9572118bc27..b7de066ecc7 100644
--- a/src/mame/drivers/astrocde.c
+++ b/src/mame/drivers/astrocde.c
@@ -448,7 +448,7 @@ static WRITE8_HANDLER( profpac_banksw_w )
memory_set_bankptr(space->machine, "bank2", memory_region(space->machine, "user2") + 0x4000 * bank);
}
else
- memory_install_read8_handler(space, 0x4000, 0x7fff, 0, 0, (read8_space_func)SMH_UNMAP);
+ memory_unmap_read(space, 0x4000, 0x7fff, 0, 0);
}
}
diff --git a/src/mame/drivers/bfm_sc1.c b/src/mame/drivers/bfm_sc1.c
index 293a0df90e8..8d0d887977a 100644
--- a/src/mame/drivers/bfm_sc1.c
+++ b/src/mame/drivers/bfm_sc1.c
@@ -798,7 +798,7 @@ static ADDRESS_MAP_START( memmap, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x4000, 0x5FFF) AM_ROM // 8k ROM
AM_RANGE(0x6000, 0x7FFF) AM_ROMBANK("bank1") // 8k paged ROM (4 pages)
- AM_RANGE(0x8000, 0xFFFF) AM_RAM AM_WRITE(watchdog_w) // 32k ROM
+ AM_RANGE(0x8000, 0xFFFF) AM_RAM_WRITE(watchdog_w) // 32k ROM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/canyon.c b/src/mame/drivers/canyon.c
index 8b1b737951d..cf2a8b55341 100644
--- a/src/mame/drivers/canyon.c
+++ b/src/mame/drivers/canyon.c
@@ -115,7 +115,7 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0680, 0x0683) AM_WRITE(canyon_led_w)
AM_RANGE(0x0700, 0x0703) AM_DEVWRITE("discrete", canyon_attract_w)
AM_RANGE(0x0800, 0x0bff) AM_RAM_WRITE(canyon_videoram_w) AM_BASE_MEMBER(canyon_state, videoram)
- AM_RANGE(0x1000, 0x17ff) AM_READWRITE(canyon_switches_r, SMH_NOP) /* sloppy code writes here */
+ AM_RANGE(0x1000, 0x17ff) AM_READ(canyon_switches_r) AM_WRITENOP /* sloppy code writes here */
AM_RANGE(0x1800, 0x1fff) AM_READ(canyon_options_r)
AM_RANGE(0x2000, 0x3fff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/cave.c b/src/mame/drivers/cave.c
index 41377f3fdb5..63cc5f41f67 100644
--- a/src/mame/drivers/cave.c
+++ b/src/mame/drivers/cave.c
@@ -471,7 +471,7 @@ static ADDRESS_MAP_START( dfeveron_map, ADDRESS_SPACE_PROGRAM, 16 )
/**/AM_RANGE(0x500000, 0x507fff) AM_RAM_WRITE(cave_vram_0_w) AM_BASE(&cave_vram_0) // Layer 0
/**/AM_RANGE(0x600000, 0x607fff) AM_RAM_WRITE(cave_vram_1_w) AM_BASE(&cave_vram_1) // Layer 1
/**/AM_RANGE(0x708000, 0x708fff) AM_RAM AM_BASE_GENERIC(paletteram) AM_SIZE(&cave_paletteram_size) // Palette
-/**/AM_RANGE(0x710000, 0x710bff) AM_READ(SMH_RAM) // ?
+/**/AM_RANGE(0x710000, 0x710bff) AM_READONLY // ?
AM_RANGE(0x710c00, 0x710fff) AM_RAM // ?
AM_RANGE(0x800000, 0x800007) AM_READ(cave_irq_cause_r) // IRQ Cause
AM_RANGE(0x800000, 0x80007f) AM_WRITEONLY AM_BASE(&cave_videoregs) // Video Regs
@@ -543,13 +543,13 @@ static ADDRESS_MAP_START( donpachi_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x200000, 0x207fff) AM_RAM_WRITE(cave_vram_1_w) AM_BASE(&cave_vram_1) // Layer 1
AM_RANGE(0x300000, 0x307fff) AM_RAM_WRITE(cave_vram_0_w) AM_BASE(&cave_vram_0) // Layer 0
AM_RANGE(0x400000, 0x407fff) AM_RAM_WRITE(cave_vram_2_8x8_w) AM_BASE(&cave_vram_2) // Layer 2
- AM_RANGE(0x500000, 0x507fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) // Sprites
+ AM_RANGE(0x500000, 0x507fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) // Sprites
AM_RANGE(0x508000, 0x50ffff) AM_RAM AM_BASE(&cave_spriteram16_2) // Sprites?
/**/AM_RANGE(0x600000, 0x600005) AM_RAM AM_BASE(&cave_vctrl_1) // Layer 1 Control
/**/AM_RANGE(0x700000, 0x700005) AM_RAM AM_BASE(&cave_vctrl_0) // Layer 0 Control
/**/AM_RANGE(0x800000, 0x800005) AM_RAM AM_BASE(&cave_vctrl_2) // Layer 2 Control
- AM_RANGE(0x900000, 0x90007f) AM_READWRITE(donpachi_videoregs_r, SMH_RAM) AM_BASE(&cave_videoregs) // Video Regs
-/**/AM_RANGE(0xa08000, 0xa08fff) AM_RAM AM_BASE_GENERIC(paletteram) AM_SIZE(&cave_paletteram_size) // Palette
+ AM_RANGE(0x900000, 0x90007f) AM_RAM_READ(donpachi_videoregs_r) AM_BASE(&cave_videoregs) // Video Regs
+/**/AM_RANGE(0xa08000, 0xa08fff) AM_RAM AM_BASE_GENERIC(paletteram) AM_SIZE(&cave_paletteram_size) // Palette
AM_RANGE(0xb00000, 0xb00003) AM_DEVREADWRITE8("oki1", okim6295_r, okim6295_w, 0x00ff) // M6295
AM_RANGE(0xb00010, 0xb00013) AM_DEVREADWRITE8("oki2", okim6295_r, okim6295_w, 0x00ff) //
AM_RANGE(0xb00020, 0xb0002f) AM_WRITE(NMK112_okibank_lsb_w) //
@@ -737,15 +737,15 @@ static CUSTOM_INPUT( korokoro_hopper_r )
static ADDRESS_MAP_START( korokoro_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM
-// AM_RANGE(0x100000, 0x107fff) AM_READ(SMH_RAM) // Layer 0
+// AM_RANGE(0x100000, 0x107fff) AM_READONLY // Layer 0
AM_RANGE(0x100000, 0x107fff) AM_WRITE(cave_vram_0_w) AM_BASE(&cave_vram_0) // Layer 0
-// AM_RANGE(0x140000, 0x140005) AM_READ(SMH_RAM) // Layer 0 Control
+// AM_RANGE(0x140000, 0x140005) AM_READONLY // Layer 0 Control
AM_RANGE(0x140000, 0x140005) AM_WRITEONLY AM_BASE(&cave_vctrl_0) // Layer 0 Control
-// AM_RANGE(0x180000, 0x187fff) AM_READ(SMH_RAM) // Sprites
+// AM_RANGE(0x180000, 0x187fff) AM_READONLY // Sprites
AM_RANGE(0x180000, 0x187fff) AM_WRITEONLY AM_BASE_SIZE_GENERIC(spriteram) // Sprites
AM_RANGE(0x1c0000, 0x1c0007) AM_READ(cave_irq_cause_r) // IRQ Cause
AM_RANGE(0x1c0000, 0x1c007f) AM_WRITEONLY AM_BASE(&cave_videoregs) // Video Regs
-// AM_RANGE(0x200000, 0x207fff) AM_READ(SMH_RAM) // Palette
+// AM_RANGE(0x200000, 0x207fff) AM_READONLY // Palette
AM_RANGE(0x200000, 0x207fff) AM_WRITEONLY AM_BASE_GENERIC(paletteram) AM_SIZE(&cave_paletteram_size) // Palette
// AM_RANGE(0x240000, 0x240003) AM_DEVREAD8( "ymz", ymz280b_r, 0x00ff) // YMZ280
AM_RANGE(0x240000, 0x240003) AM_DEVWRITE8( "ymz", ymz280b_w, 0x00ff) // YMZ280
@@ -849,16 +849,16 @@ static ADDRESS_MAP_START( pwrinst2_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x400000, 0x40ffff) AM_RAM // RAM
AM_RANGE(0x500000, 0x500001) AM_READ_PORT("IN0") // Inputs
AM_RANGE(0x500002, 0x500003) AM_READ_PORT("IN1") //
- AM_RANGE(0x600000, 0x6fffff) AM_ROM AM_REGION("user1", 0) // extra data ROM space
+ AM_RANGE(0x600000, 0x6fffff) AM_ROM AM_REGION("user1", 0) // extra data ROM space
AM_RANGE(0x700000, 0x700001) AM_WRITE(cave_eeprom_msb_w) // EEPROM
AM_RANGE(0x800000, 0x807fff) AM_RAM_WRITE(cave_vram_2_w) AM_BASE(&cave_vram_2) // Layer 2
AM_RANGE(0x880000, 0x887fff) AM_RAM_WRITE(cave_vram_0_w) AM_BASE(&cave_vram_0) // Layer 0
AM_RANGE(0x900000, 0x907fff) AM_RAM_WRITE(cave_vram_1_w) AM_BASE(&cave_vram_1) // Layer 1
AM_RANGE(0x980000, 0x987fff) AM_RAM_WRITE(cave_vram_3_8x8_w) AM_BASE(&cave_vram_3) // Layer 3
- AM_RANGE(0xa00000, 0xa07fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) // Sprites
+ AM_RANGE(0xa00000, 0xa07fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) // Sprites
AM_RANGE(0xa08000, 0xa0ffff) AM_RAM AM_BASE(&cave_spriteram16_2) // Sprites?
AM_RANGE(0xa10000, 0xa1ffff) AM_RAM // Sprites?
- AM_RANGE(0xa80000, 0xa8007f) AM_READWRITE(donpachi_videoregs_r, SMH_RAM) AM_BASE(&cave_videoregs) // Video Regs
+ AM_RANGE(0xa80000, 0xa8007f) AM_RAM_READ(donpachi_videoregs_r) AM_BASE(&cave_videoregs) // Video Regs
/**/AM_RANGE(0xb00000, 0xb00005) AM_RAM_WRITE(pwrinst2_vctrl_2_w) AM_BASE(&cave_vctrl_2) // Layer 2 Control
/**/AM_RANGE(0xb80000, 0xb80005) AM_RAM_WRITE(pwrinst2_vctrl_0_w) AM_BASE(&cave_vctrl_0) // Layer 0 Control
/**/AM_RANGE(0xc00000, 0xc00005) AM_RAM_WRITE(pwrinst2_vctrl_1_w) AM_BASE(&cave_vctrl_1) // Layer 1 Control
diff --git a/src/mame/drivers/cball.c b/src/mame/drivers/cball.c
index 74844ffadfc..cbd1970f210 100644
--- a/src/mame/drivers/cball.c
+++ b/src/mame/drivers/cball.c
@@ -125,7 +125,7 @@ static ADDRESS_MAP_START( cpu_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x03ff) AM_READ(cball_wram_r) AM_MASK(0x7f)
- AM_RANGE(0x0400, 0x07ff) AM_READ(SMH_RAM)
+ AM_RANGE(0x0400, 0x07ff) AM_READONLY
AM_RANGE(0x1001, 0x1001) AM_READ_PORT("1001")
AM_RANGE(0x1003, 0x1003) AM_READ_PORT("1003")
AM_RANGE(0x1020, 0x1020) AM_READ_PORT("1020")
diff --git a/src/mame/drivers/cclimber.c b/src/mame/drivers/cclimber.c
index 18baa3ee4d1..3eae9d94cec 100644
--- a/src/mame/drivers/cclimber.c
+++ b/src/mame/drivers/cclimber.c
@@ -304,7 +304,7 @@ static ADDRESS_MAP_START( cannonb_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0x6000, 0x6bff) AM_RAM
AM_RANGE(0x8000, 0x83ff) AM_RAM
- AM_RANGE(0x8800, 0x88ff) AM_READWRITE(SMH_NOP, SMH_RAM) AM_BASE(&cclimber_bigsprite_videoram) /* must not return what's written (game will reset after coin insert if it returns 0xff)*/
+ AM_RANGE(0x8800, 0x88ff) AM_READNOP AM_WRITEONLY AM_BASE(&cclimber_bigsprite_videoram) /* must not return what's written (game will reset after coin insert if it returns 0xff)*/
// AM_RANGE(0x8900, 0x8bff) AM_WRITEONLY /* not used, but initialized */
AM_RANGE(0x9000, 0x93ff) AM_MIRROR(0x0400) AM_RAM AM_BASE(&cclimber_videoram)
/* 9800-9bff and 9c00-9fff share the same RAM, interleaved */
@@ -337,7 +337,7 @@ static ADDRESS_MAP_START( swimmer_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xa004, 0xa004) AM_WRITEONLY AM_BASE(&swimmer_palettebank)
AM_RANGE(0xa800, 0xa800) AM_READ_PORT("P1") AM_WRITE(swimmer_sh_soundlatch_w)
AM_RANGE(0xb000, 0xb000) AM_READ_PORT("DSW1")
- AM_RANGE(0xb800, 0xb800) AM_READ_PORT("DSW2") AM_WRITE(SMH_RAM) AM_BASE(&swimmer_background_color)
+ AM_RANGE(0xb800, 0xb800) AM_READ_PORT("DSW2") AM_WRITEONLY AM_BASE(&swimmer_background_color)
AM_RANGE(0xb880, 0xb880) AM_READ_PORT("SYSTEM")
AM_RANGE(0xc000, 0xc7ff) AM_RAM /* ??? used by Guzzler */
AM_RANGE(0xe000, 0xffff) AM_ROM /* Guzzler only */
diff --git a/src/mame/drivers/cischeat.c b/src/mame/drivers/cischeat.c
index 493afb24834..45b8fc92486 100644
--- a/src/mame/drivers/cischeat.c
+++ b/src/mame/drivers/cischeat.c
@@ -239,7 +239,7 @@ static ADDRESS_MAP_START( bigrun_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x09c000, 0x09ffff) AM_WRITE(bigrun_paletteram16_w) AM_BASE_GENERIC(paletteram) // Palettes
AM_RANGE(0x0f0000, 0x0fffff) AM_RAM AM_BASE(&megasys1_ram) // RAM
- AM_RANGE(0x100000, 0x13ffff) AM_READWRITE(rom_1_r, SMH_ROM) // ROM
+ AM_RANGE(0x100000, 0x13ffff) AM_READ(rom_1_r) // ROM
ADDRESS_MAP_END
@@ -300,7 +300,7 @@ static ADDRESS_MAP_START( cischeat_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x0b8000, 0x0bffff) AM_RAM_WRITE(cischeat_paletteram16_w) AM_BASE_GENERIC(paletteram) // Palettes
AM_RANGE(0x0f0000, 0x0fffff) AM_RAM AM_BASE(&megasys1_ram) // RAM
- AM_RANGE(0x100000, 0x17ffff) AM_READWRITE(rom_1_r, SMH_ROM) // ROM
+ AM_RANGE(0x100000, 0x17ffff) AM_READ(rom_1_r) // ROM
ADDRESS_MAP_END
@@ -354,7 +354,7 @@ static ADDRESS_MAP_START( f1gpstar_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x0b8000, 0x0bffff) AM_RAM_WRITE(f1gpstar_paletteram16_w) AM_BASE_GENERIC(paletteram) // Palettes
AM_RANGE(0x0f0000, 0x0fffff) AM_RAM AM_BASE(&megasys1_ram) // RAM
- AM_RANGE(0x100000, 0x17ffff) AM_READWRITE(rom_1_r, SMH_ROM) // ROM
+ AM_RANGE(0x100000, 0x17ffff) AM_READ(rom_1_r) // ROM
ADDRESS_MAP_END
@@ -380,7 +380,7 @@ static ADDRESS_MAP_START( f1gpstr2_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x0b8000, 0x0bffff) AM_RAM_WRITE(f1gpstar_paletteram16_w) AM_BASE_GENERIC(paletteram) // Palettes
AM_RANGE(0x0f0000, 0x0fffff) AM_RAM AM_BASE(&megasys1_ram) // RAM
- AM_RANGE(0x100000, 0x17ffff) AM_READWRITE(rom_1_r, SMH_ROM) // ROM
+ AM_RANGE(0x100000, 0x17ffff) AM_READ(rom_1_r) // ROM
ADDRESS_MAP_END
@@ -639,7 +639,7 @@ static ADDRESS_MAP_START( cischeat_map2, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x080000, 0x0807ff) AM_RAM AM_BASE(&cischeat_roadram[0]) // Road RAM
AM_RANGE(0x0c0000, 0x0c3fff) AM_RAM // RAM
AM_RANGE(0x100000, 0x100001) AM_WRITENOP // watchdog
- AM_RANGE(0x200000, 0x23ffff) AM_READWRITE(rom_2_r, SMH_ROM) // ROM
+ AM_RANGE(0x200000, 0x23ffff) AM_READ(rom_2_r) // ROM
ADDRESS_MAP_END
static ADDRESS_MAP_START( cischeat_map3, ADDRESS_SPACE_PROGRAM, 16 )
@@ -648,7 +648,7 @@ static ADDRESS_MAP_START( cischeat_map3, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x080000, 0x0807ff) AM_RAM AM_BASE(&cischeat_roadram[1]) // Road RAM
AM_RANGE(0x0c0000, 0x0c3fff) AM_RAM // RAM
AM_RANGE(0x100000, 0x100001) AM_WRITENOP // watchdog
- AM_RANGE(0x200000, 0x23ffff) AM_READWRITE(rom_3_r, SMH_ROM) // ROM
+ AM_RANGE(0x200000, 0x23ffff) AM_READ(rom_3_r) // ROM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/cloud9.c b/src/mame/drivers/cloud9.c
index 8452a8e6cff..02546d6fb4b 100644
--- a/src/mame/drivers/cloud9.c
+++ b/src/mame/drivers/cloud9.c
@@ -319,7 +319,7 @@ static ADDRESS_MAP_START( cloud9_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x5900, 0x5903) AM_MIRROR(0x007c) AM_READ(leta_r)
AM_RANGE(0x5a00, 0x5a0f) AM_MIRROR(0x00f0) AM_DEVREADWRITE("pokey1", pokey_r, pokey_w)
AM_RANGE(0x5b00, 0x5b0f) AM_MIRROR(0x00f0) AM_DEVREADWRITE("pokey2", pokey_r, pokey_w)
- AM_RANGE(0x5c00, 0x5cff) AM_MIRROR(0x0300) AM_READWRITE(nvram_r, SMH_RAM) AM_BASE(&nvram_stage) AM_SIZE_GENERIC(nvram)
+ AM_RANGE(0x5c00, 0x5cff) AM_MIRROR(0x0300) AM_RAM_READ(nvram_r) AM_BASE(&nvram_stage) AM_SIZE_GENERIC(nvram)
AM_RANGE(0x6000, 0xffff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/cojag.c b/src/mame/drivers/cojag.c
index f12beb1c069..5e43983b0db 100644
--- a/src/mame/drivers/cojag.c
+++ b/src/mame/drivers/cojag.c
@@ -13,7 +13,7 @@
* Freeze
To do:
- * map out unused RAM per-game via SMH_NOP/SMH_NOP
+ * map out unused RAM per-game via memory_nop_read/write
Note: There is believed to be a 68020 version of Maximum Force
(not confirmed or dumped)
diff --git a/src/mame/drivers/contra.c b/src/mame/drivers/contra.c
index 25ccc2d37c7..1fe9f7be2e7 100644
--- a/src/mame/drivers/contra.c
+++ b/src/mame/drivers/contra.c
@@ -89,7 +89,7 @@ static ADDRESS_MAP_START( contra_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x1000, 0x1fff) AM_RAM
- AM_RANGE(0x2000, 0x5fff) AM_READ(SMH_RAM)
+ AM_RANGE(0x2000, 0x5fff) AM_READONLY
AM_RANGE(0x2000, 0x23ff) AM_WRITE(contra_fg_cram_w) AM_BASE(&contra_fg_cram)
AM_RANGE(0x2400, 0x27ff) AM_WRITE(contra_fg_vram_w) AM_BASE(&contra_fg_vram)
AM_RANGE(0x2800, 0x2bff) AM_WRITE(contra_text_cram_w) AM_BASE(&contra_text_cram)
diff --git a/src/mame/drivers/cosmic.c b/src/mame/drivers/cosmic.c
index b2c51088678..be2332a61a9 100644
--- a/src/mame/drivers/cosmic.c
+++ b/src/mame/drivers/cosmic.c
@@ -1620,7 +1620,7 @@ static DRIVER_INIT( nomnlnd )
{
const device_config *dac = devtag_get_device(machine, "dac");
memory_install_read8_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x5000, 0x5001, 0, 0, nomnlnd_port_0_1_r);
- memory_install_write8_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x4800, 0x4800, 0, 0, (write8_space_func)SMH_NOP);
+ memory_nop_write(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x4800, 0x4800, 0, 0);
memory_install_write8_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x4807, 0x4807, 0, 0, cosmic_background_enable_w);
memory_install_write8_device_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), dac, 0x480a, 0x480a, 0, 0, dac_w);
}
diff --git a/src/mame/drivers/cps1.c b/src/mame/drivers/cps1.c
index 1ae0677a56d..fb39cd74ea0 100644
--- a/src/mame/drivers/cps1.c
+++ b/src/mame/drivers/cps1.c
@@ -8617,7 +8617,7 @@ static DRIVER_INIT( sf2ue )
{
/* This specific version of SF2 has the CPS-B custom mapped at a different address. */
/* The mapping is handled by a PAL on the B-board */
- memory_install_readwrite16_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x800140, 0x80017f, 0, 0, (read16_space_func)SMH_UNMAP, (write16_space_func)SMH_UNMAP);
+ memory_unmap_readwrite(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x800140, 0x80017f, 0, 0);
memory_install_readwrite16_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x8001c0, 0x8001ff, 0, 0, cps1_cps_b_r, cps1_cps_b_w);
DRIVER_INIT_CALL(cps1);
diff --git a/src/mame/drivers/cps3.c b/src/mame/drivers/cps3.c
index 126389157e5..bf355cdea06 100644
--- a/src/mame/drivers/cps3.c
+++ b/src/mame/drivers/cps3.c
@@ -2139,8 +2139,8 @@ static ADDRESS_MAP_START( cps3_map, ADDRESS_SPACE_PROGRAM, 32 )
AM_RANGE(0x03000000, 0x030003ff) AM_RAM // 'FRAM' (SFIII memory test mode ONLY)
-// AM_RANGE(0x04000000, 0x0407dfff) AM_RAM AM_BASE(&cps3_spriteram)//AM_WRITE(SMH_RAM) // Sprite RAM (jojoba tests this size)
- AM_RANGE(0x04000000, 0x0407ffff) AM_RAM AM_BASE(&cps3_spriteram)//AM_WRITE(SMH_RAM) // Sprite RAM
+// AM_RANGE(0x04000000, 0x0407dfff) AM_RAM AM_BASE(&cps3_spriteram)//AM_WRITEONLY // Sprite RAM (jojoba tests this size)
+ AM_RANGE(0x04000000, 0x0407ffff) AM_RAM AM_BASE(&cps3_spriteram)//AM_WRITEONLY // Sprite RAM
AM_RANGE(0x04080000, 0x040bffff) AM_READWRITE(cps3_colourram_r, cps3_colourram_w) AM_BASE(&cps3_colourram) // Colour RAM (jojoba tests this size) 0x20000 colours?!
diff --git a/src/mame/drivers/cshooter.c b/src/mame/drivers/cshooter.c
index 1f5fbab5960..f8f94544f33 100644
--- a/src/mame/drivers/cshooter.c
+++ b/src/mame/drivers/cshooter.c
@@ -257,8 +257,8 @@ static READ8_HANDLER(pal_r)
static ADDRESS_MAP_START( cshooter_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x7fff) AM_ROM
- AM_RANGE(0x8000, 0xafff) AM_READ_BANK("bank1") AM_WRITE(SMH_RAM)
- AM_RANGE(0xb000, 0xb0ff) AM_READ(SMH_RAM) // sound related ?
+ AM_RANGE(0x8000, 0xafff) AM_READ_BANK("bank1") AM_WRITEONLY
+ AM_RANGE(0xb000, 0xb0ff) AM_READONLY // sound related ?
AM_RANGE(0xc000, 0xc1ff) AM_WRITE(pal_w) AM_READ(pal_r) AM_BASE_GENERIC(paletteram)
AM_RANGE(0xc200, 0xc200) AM_READ_PORT("IN0")
AM_RANGE(0xc201, 0xc201) AM_READ_PORT("IN1")
diff --git a/src/mame/drivers/cubocd32.c b/src/mame/drivers/cubocd32.c
index 7eff7d79a3f..10c0a76eeed 100644
--- a/src/mame/drivers/cubocd32.c
+++ b/src/mame/drivers/cubocd32.c
@@ -354,7 +354,7 @@ static WRITE32_HANDLER( aga_overlay_w )
memory_install_write_bank_handler(space, 0x000000, 0x1fffff, 0, 0, "bank1");
else
/* overlay enabled, map Amiga system ROM on 0x000000 */
- memory_install_write32_handler(space, 0x000000, 0x1fffff, 0, 0, (write32_space_func)SMH_UNMAP);
+ memory_unmap_write(space, 0x000000, 0x1fffff, 0, 0);
}
}
diff --git a/src/mame/drivers/cyberbal.c b/src/mame/drivers/cyberbal.c
index 637a717b1ed..fcb8c446d78 100644
--- a/src/mame/drivers/cyberbal.c
+++ b/src/mame/drivers/cyberbal.c
@@ -146,7 +146,7 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0xff6000, 0xff6fff) AM_RAM_WRITE(atarigen_alpha_w) AM_SHARE(8) AM_BASE(&atarigen_alpha)
AM_RANGE(0xff7000, 0xff77ff) AM_RAM_WRITE(atarimo_0_spriteram_w) AM_SHARE(9) AM_BASE(&atarimo_0_spriteram)
AM_RANGE(0xff7800, 0xff9fff) AM_RAM AM_SHARE(10)
- AM_RANGE(0xffa000, 0xffbfff) AM_RAM_WRITE(SMH_NOP) AM_SHARE(11)
+ AM_RANGE(0xffa000, 0xffbfff) AM_READONLY AM_WRITENOP AM_SHARE(11)
AM_RANGE(0xffc000, 0xffffff) AM_RAM AM_SHARE(12)
ADDRESS_MAP_END
@@ -174,7 +174,7 @@ static ADDRESS_MAP_START( extra_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0xff7000, 0xff77ff) AM_RAM_WRITE(atarimo_0_spriteram_w) AM_SHARE(9)
AM_RANGE(0xff7800, 0xff9fff) AM_RAM AM_SHARE(10)
AM_RANGE(0xffa000, 0xffbfff) AM_RAM AM_SHARE(11)
- AM_RANGE(0xffc000, 0xffffff) AM_RAM_WRITE(SMH_NOP) AM_SHARE(12)
+ AM_RANGE(0xffc000, 0xffffff) AM_READONLY AM_WRITENOP AM_SHARE(12)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/ddenlovr.c b/src/mame/drivers/ddenlovr.c
index b7a9bc68751..7621947ca70 100644
--- a/src/mame/drivers/ddenlovr.c
+++ b/src/mame/drivers/ddenlovr.c
@@ -1710,11 +1710,11 @@ static WRITE16_HANDLER( ddenlvrk_protection2_w )
static ADDRESS_MAP_START( ddenlvrk_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM
- AM_RANGE(0x100000, 0x100001) AM_READWRITE(ddenlvrk_protection1_r, SMH_RAM) AM_BASE(&ddenlvrk_protection1)
+ AM_RANGE(0x100000, 0x100001) AM_RAM_READ(ddenlvrk_protection1_r) AM_BASE(&ddenlvrk_protection1)
AM_RANGE(0x200000, 0x200001) AM_READWRITE(ddenlvrk_protection2_r, ddenlvrk_protection2_w) AM_BASE(&ddenlvrk_protection2)
AM_RANGE(0xd00000, 0xd003ff) AM_WRITE(ddenlovr_palette_w) // Palette
-// AM_RANGE(0xd01000, 0xd017ff) SMH_RAM) // ? B0 on startup, then 00
+// AM_RANGE(0xd01000, 0xd017ff) AM_RAM // ? B0 on startup, then 00
AM_RANGE(0xe00040, 0xe00047) AM_WRITE(ddenlovr16_palette_base_w)
AM_RANGE(0xe00048, 0xe0004f) AM_WRITE(ddenlovr16_palette_mask_w)
@@ -1752,7 +1752,7 @@ static ADDRESS_MAP_START( ddenlovr_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x300000, 0x300001) AM_DEVWRITE("oki", ddenlovr_oki_bank_w)
AM_RANGE(0xd00000, 0xd003ff) AM_WRITE(ddenlovr_palette_w) // Palette
-// AM_RANGE(0xd01000, 0xd017ff) SMH_RAM) // ? B0 on startup, then 00
+// AM_RANGE(0xd01000, 0xd017ff) AM_RAM // ? B0 on startup, then 00
AM_RANGE(0xe00040, 0xe00047) AM_WRITE(ddenlovr16_palette_base_w)
AM_RANGE(0xe00048, 0xe0004f) AM_WRITE(ddenlovr16_palette_mask_w)
@@ -8649,7 +8649,7 @@ static DRIVER_INIT( rongrong )
version of the game might be a bootleg with the protection
patched. (both sets need this)
*/
- memory_install_read8_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x60d4, 0x60d4, 0, 0, (read8_space_func)SMH_NOP);
+ memory_nop_read(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x60d4, 0x60d4, 0, 0);
}
/***************************************************************************
diff --git a/src/mame/drivers/ddrible.c b/src/mame/drivers/ddrible.c
index 1ec4bc16ae8..8ec59422d7b 100644
--- a/src/mame/drivers/ddrible.c
+++ b/src/mame/drivers/ddrible.c
@@ -124,7 +124,6 @@ static ADDRESS_MAP_START( cpu0_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x7000, 0x7fff) AM_RAM AM_BASE_MEMBER(ddrible_state, spriteram_2) /* Object RAM 2 */
AM_RANGE(0x8000, 0x8000) AM_WRITE(ddrible_bankswitch_w) /* bankswitch control */
AM_RANGE(0x8000, 0x9fff) AM_ROMBANK("bank1") /* banked ROM */
- AM_RANGE(0x8000, 0xffff) AM_WRITE(SMH_ROM) /* ROM */
AM_RANGE(0xa000, 0xffff) AM_ROM /* ROM */
ADDRESS_MAP_END
diff --git a/src/mame/drivers/deco32.c b/src/mame/drivers/deco32.c
index 57415151dec..337a812b621 100644
--- a/src/mame/drivers/deco32.c
+++ b/src/mame/drivers/deco32.c
@@ -720,7 +720,7 @@ static ADDRESS_MAP_START( fghthist_map, ADDRESS_SPACE_PROGRAM, 32 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( fghthsta_memmap, ADDRESS_SPACE_PROGRAM, 32 )
- AM_RANGE(0x000000, 0x0fffff) AM_ROM AM_WRITE(SMH_ROM)
+ AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x11ffff) AM_RAM AM_BASE(&deco32_ram)
AM_RANGE(0x140000, 0x140003) AM_WRITENOP /* VBL irq ack */
AM_RANGE(0x150000, 0x150003) AM_WRITE(fghthist_eeprom_w) /* Volume port/Eprom */
@@ -803,7 +803,7 @@ static ADDRESS_MAP_START( lockload_map, ADDRESS_SPACE_PROGRAM, 32 )
AM_RANGE(0x128000, 0x12800f) AM_READWRITE(deco32_irq_controller_r, deco32_irq_controller_w)
AM_RANGE(0x130000, 0x131fff) AM_RAM_WRITE(deco32_buffered_palette_w) AM_BASE_GENERIC(paletteram)
- AM_RANGE(0x138000, 0x138003) AM_READWRITE(SMH_RAM, SMH_NOP) //palette dma complete in bit 0x8? ack? return 0 else tight loop
+ AM_RANGE(0x138000, 0x138003) AM_READONLY AM_WRITENOP //palette dma complete in bit 0x8? ack? return 0 else tight loop
AM_RANGE(0x138008, 0x13800b) AM_WRITE(deco32_palette_dma_w)
AM_RANGE(0x170000, 0x170007) AM_READ(lockload_gun_mirror_r) /* Not on Dragongun */
diff --git a/src/mame/drivers/deco_mlc.c b/src/mame/drivers/deco_mlc.c
index befc20336bf..bb7ae01f061 100644
--- a/src/mame/drivers/deco_mlc.c
+++ b/src/mame/drivers/deco_mlc.c
@@ -273,8 +273,8 @@ static ADDRESS_MAP_START( decomlc_map, ADDRESS_SPACE_PROGRAM, 32 )
AM_RANGE(0x0200078, 0x020007f) AM_READ(test2_r) AM_MIRROR(0xff000000)
AM_RANGE(0x0200000, 0x020007f) AM_WRITE(mlc_irq_w) AM_BASE(&irq_ram) AM_MIRROR(0xff000000)
AM_RANGE(0x0200080, 0x02000ff) AM_RAM AM_BASE(&mlc_clip_ram) AM_MIRROR(0xff000000)
- AM_RANGE(0x0204000, 0x0206fff) AM_READWRITE(mlc_spriteram_r, SMH_RAM) AM_BASE_SIZE_GENERIC(spriteram) AM_MIRROR(0xff000000)
- AM_RANGE(0x0280000, 0x029ffff) AM_READWRITE(mlc_vram_r, SMH_RAM) AM_BASE(&mlc_vram) AM_MIRROR(0xff000000)
+ AM_RANGE(0x0204000, 0x0206fff) AM_RAM_READ(mlc_spriteram_r) AM_BASE_SIZE_GENERIC(spriteram) AM_MIRROR(0xff000000)
+ AM_RANGE(0x0280000, 0x029ffff) AM_RAM_READ(mlc_vram_r) AM_BASE(&mlc_vram) AM_MIRROR(0xff000000)
AM_RANGE(0x0300000, 0x0307fff) AM_RAM_WRITE(avengrs_palette_w) AM_BASE_GENERIC(paletteram) AM_MIRROR(0xff000000)
AM_RANGE(0x0400000, 0x0400003) AM_READ_PORT("INPUTS") AM_MIRROR(0xff000000)
AM_RANGE(0x0440000, 0x044001f) AM_READ(test3_r) AM_MIRROR(0xff000000)
diff --git a/src/mame/drivers/dgpix.c b/src/mame/drivers/dgpix.c
index 94e37216ffe..4958a51f1fb 100644
--- a/src/mame/drivers/dgpix.c
+++ b/src/mame/drivers/dgpix.c
@@ -566,7 +566,7 @@ static DRIVER_INIT( xfiles )
rom[BYTE4_XOR_BE(0x3aa933)] = 0;
// protection related ?
-// memory_install_read32_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0xf0c8b440, 0xf0c8b447, 0, 0, (read32_space_func)SMH_NOP );
+// memory_nop_read(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0xf0c8b440, 0xf0c8b447, 0, 0);
flash_roms = 2;
}
@@ -586,7 +586,7 @@ static DRIVER_INIT( kdynastg )
rom[BYTE4_XOR_BE(0x3a45c9)] = 0;
// protection related ?
-// memory_install_read32_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x12341234, 0x12341243, 0, 0, (read32_space_func)SMH_NOP );
+// memory_nop_read(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x12341234, 0x12341243, 0, 0);
flash_roms = 4;
}
diff --git a/src/mame/drivers/dmndrby.c b/src/mame/drivers/dmndrby.c
index b2304a704e2..bb3407791d3 100644
--- a/src/mame/drivers/dmndrby.c
+++ b/src/mame/drivers/dmndrby.c
@@ -123,7 +123,7 @@ static ADDRESS_MAP_START( memmap, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xc803, 0xc803) AM_READ_PORT("DSW2")
AM_RANGE(0xca00, 0xca00) AM_WRITENOP//(vblank_irq_w) //???
AM_RANGE(0xca01, 0xca01) AM_WRITENOP //watchdog
- AM_RANGE(0xca02, 0xca02) AM_RAM AM_WRITE(dderby_sound_w)
+ AM_RANGE(0xca02, 0xca02) AM_RAM_WRITE(dderby_sound_w)
AM_RANGE(0xca03, 0xca03) AM_WRITENOP//(timer_irq_w) //???
AM_RANGE(0xcc00, 0xcc05) AM_RAM AM_BASE(&scroll_ram)
AM_RANGE(0xce08, 0xce1f) AM_RAM AM_BASE(&sprite_ram) // horse sprites
diff --git a/src/mame/drivers/dynax.c b/src/mame/drivers/dynax.c
index 1cc05bc14d2..b41cda795bd 100644
--- a/src/mame/drivers/dynax.c
+++ b/src/mame/drivers/dynax.c
@@ -542,8 +542,8 @@ static ADDRESS_MAP_START( hanamai_io_map, ADDRESS_SPACE_IO, 8 )
AM_RANGE( 0x77, 0x77 ) AM_WRITE ( hanamai_layer_half_w ) // half of the interleaved layer to write to
AM_RANGE( 0x78, 0x79 ) AM_DEVREADWRITE("ymsnd", ym2203_r, ym2203_w ) // 2 x DSW
AM_RANGE( 0x7a, 0x7b ) AM_DEVWRITE ( "aysnd", ay8910_address_data_w ) // AY8910
-// AM_RANGE( 0x7c, 0x7c ) AM_WRITE ( SMH_NOP ) // CRT Controller
-// AM_RANGE( 0x7d, 0x7d ) AM_WRITE ( SMH_NOP ) //
+// AM_RANGE( 0x7c, 0x7c ) AM_WRITENOP // CRT Controller
+// AM_RANGE( 0x7d, 0x7d ) AM_WRITENOP //
AM_RANGE( 0x7e, 0x7e ) AM_WRITE ( dynax_blit_romregion_w ) // Blitter ROM bank
ADDRESS_MAP_END
@@ -551,8 +551,8 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( hnoridur_io_map, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE( 0x01, 0x07 ) AM_WRITE ( dynax_blitter_rev2_w ) // Blitter
-// AM_RANGE( 0x10, 0x10 ) AM_WRITE ( SMH_NOP ) // CRT Controller
-// AM_RANGE( 0x11, 0x11 ) AM_WRITE ( SMH_NOP ) // CRT Controller
+// AM_RANGE( 0x10, 0x10 ) AM_WRITENOP // CRT Controller
+// AM_RANGE( 0x11, 0x11 ) AM_WRITENOP // CRT Controller
AM_RANGE( 0x20, 0x20 ) AM_WRITE ( hanamai_keyboard_w ) // keyboard row select
AM_RANGE( 0x21, 0x21 ) AM_READ_PORT ( "COINS" ) // Coins
AM_RANGE( 0x22, 0x22 ) AM_READ ( hanamai_keyboard_1_r ) // P2
@@ -577,7 +577,7 @@ static ADDRESS_MAP_START( hnoridur_io_map, ADDRESS_SPACE_IO, 8 )
AM_RANGE( 0x50, 0x50 ) AM_WRITE ( dynax_extra_scrollx_w ) // screen scroll X
AM_RANGE( 0x51, 0x51 ) AM_WRITE ( dynax_extra_scrolly_w ) // screen scroll Y
AM_RANGE( 0x54, 0x54 ) AM_WRITE ( hnoridur_rombank_w ) // BANK ROM Select
- AM_RANGE( 0x55, 0x55 ) AM_WRITE ( SMH_NOP ) // ? VBlank IRQ Ack
+ AM_RANGE( 0x55, 0x55 ) AM_WRITENOP // ? VBlank IRQ Ack
AM_RANGE( 0x56, 0x56 ) AM_WRITE ( dynax_vblank_ack_w ) // VBlank IRQ Ack
AM_RANGE( 0x57, 0x57 ) AM_READ ( ret_ff ) // ?
AM_RANGE( 0x60, 0x60 ) AM_WRITE ( dynax_flipscreen_w ) // Flip Screen
@@ -632,8 +632,8 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( hjingi_io_map, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE( 0x01, 0x07 ) AM_WRITE ( dynax_blitter_rev2_w ) // Blitter
-// AM_RANGE( 0x10, 0x10 ) AM_WRITE ( SMH_NOP ) // CRT Controller
-// AM_RANGE( 0x11, 0x11 ) AM_WRITE ( SMH_NOP ) // CRT Controller
+// AM_RANGE( 0x10, 0x10 ) AM_WRITENOP // CRT Controller
+// AM_RANGE( 0x11, 0x11 ) AM_WRITENOP // CRT Controller
AM_RANGE( 0x20, 0x20 ) AM_WRITE ( hanamai_keyboard_w ) // keyboard row select
AM_RANGE( 0x21, 0x21 ) AM_READ_PORT ( "COINS" ) // Coins
@@ -810,8 +810,8 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( mcnpshnt_io_map, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE( 0x01, 0x07 ) AM_WRITE ( dynax_blitter_rev2_w ) // Blitter
-// AM_RANGE( 0x10, 0x10 ) AM_WRITE ( SMH_NOP ) // CRT Controller
-// AM_RANGE( 0x11, 0x11 ) AM_WRITE ( SMH_NOP ) // CRT Controller
+// AM_RANGE( 0x10, 0x10 ) AM_WRITENOP // CRT Controller
+// AM_RANGE( 0x11, 0x11 ) AM_WRITENOP // CRT Controller
AM_RANGE( 0x20, 0x20 ) AM_WRITE ( hanamai_keyboard_w ) // keyboard row select
AM_RANGE( 0x21, 0x21 ) AM_READ_PORT ( "COINS" ) // Coins
AM_RANGE( 0x22, 0x22 ) AM_READ ( hanamai_keyboard_1_r ) // P2
@@ -849,8 +849,8 @@ static ADDRESS_MAP_START( sprtmtch_io_map, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE( 0x01, 0x07 ) AM_WRITE ( dynax_blitter_rev2_w ) // Blitter
AM_RANGE( 0x10, 0x11 ) AM_DEVREADWRITE("ymsnd", ym2203_r, ym2203_w ) // 2 x DSW
-// AM_RANGE( 0x12, 0x12 ) AM_WRITE ( SMH_NOP ) // CRT Controller
-// AM_RANGE( 0x13, 0x13 ) AM_WRITE ( SMH_NOP ) // CRT Controller
+// AM_RANGE( 0x12, 0x12 ) AM_WRITENOP // CRT Controller
+// AM_RANGE( 0x13, 0x13 ) AM_WRITENOP // CRT Controller
AM_RANGE( 0x20, 0x20 ) AM_READ_PORT ( "P1" ) // P1
AM_RANGE( 0x21, 0x21 ) AM_READ_PORT ( "P2" ) // P2
AM_RANGE( 0x22, 0x22 ) AM_READ_PORT ( "COINS" ) // Coins
@@ -886,8 +886,8 @@ static ADDRESS_MAP_START( mjfriday_io_map, ADDRESS_SPACE_IO, 8 )
AM_RANGE( 0x15, 0x15 ) AM_WRITE ( dynax_coincounter_1_w ) //
AM_RANGE( 0x16, 0x17 ) AM_WRITE ( mjdialq2_layer_enable_w ) // Layers Enable
AM_RANGE( 0x41, 0x47 ) AM_WRITE ( dynax_blitter_rev2_w ) // Blitter
-// AM_RANGE( 0x50, 0x50 ) AM_WRITE ( SMH_NOP ) // CRT Controller
-// AM_RANGE( 0x51, 0x51 ) AM_WRITE ( SMH_NOP ) // CRT Controller
+// AM_RANGE( 0x50, 0x50 ) AM_WRITENOP // CRT Controller
+// AM_RANGE( 0x51, 0x51 ) AM_WRITENOP // CRT Controller
AM_RANGE( 0x60, 0x60 ) AM_WRITE ( hanamai_keyboard_w ) // keyboard row select
AM_RANGE( 0x61, 0x61 ) AM_READ_PORT ( "COINS" ) // Coins
AM_RANGE( 0x62, 0x62 ) AM_READ ( hanamai_keyboard_1_r ) // P2
@@ -895,7 +895,7 @@ static ADDRESS_MAP_START( mjfriday_io_map, ADDRESS_SPACE_IO, 8 )
AM_RANGE( 0x64, 0x64 ) AM_READ_PORT ( "DSW0" ) // DSW
AM_RANGE( 0x67, 0x67 ) AM_READ_PORT ( "DSW1" ) // DSW
AM_RANGE( 0x70, 0x71 ) AM_DEVWRITE ( "ymsnd", ym2413_w ) //
-// AM_RANGE( 0x80, 0x80 ) AM_WRITE ( SMH_NOP ) // IRQ ack?
+// AM_RANGE( 0x80, 0x80 ) AM_WRITENOP // IRQ ack?
ADDRESS_MAP_END
@@ -913,7 +913,7 @@ static ADDRESS_MAP_START( nanajign_io_map, ADDRESS_SPACE_IO, 8 )
AM_RANGE( 0x14, 0x14 ) AM_READ_PORT ( "DSW0" ) // DSW1
AM_RANGE( 0x15, 0x15 ) AM_READ_PORT ( "DSW1" ) // DSW2
AM_RANGE( 0x16, 0x16 ) AM_READ_PORT ( "DSW2" ) // DSW3
-// AM_RANGE( 0x20, 0x21 ) AM_WRITE ( SMH_NOP ) // CRT Controller
+// AM_RANGE( 0x20, 0x21 ) AM_WRITENOP // CRT Controller
AM_RANGE( 0x31, 0x37 ) AM_WRITE ( dynax_blitter_rev2_w ) // Blitter
AM_RANGE( 0x40, 0x40 ) AM_WRITE ( dynax_coincounter_0_w ) // Coin Counter
AM_RANGE( 0x50, 0x50 ) AM_WRITE ( dynax_flipscreen_w ) // Flip Screen
@@ -974,7 +974,7 @@ static WRITE8_HANDLER( jantouki_rombank_w )
static ADDRESS_MAP_START( jantouki_io_map, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_GLOBAL_MASK(0xff)
-// AM_RANGE( 0x40, 0x41 ) AM_WRITE ( SMH_NOP ) // CRT Controller
+// AM_RANGE( 0x40, 0x41 ) AM_WRITENOP // CRT Controller
AM_RANGE( 0x48, 0x48 ) AM_WRITE ( jantouki_rombank_w ) // BANK ROM Select
AM_RANGE( 0x49, 0x49 ) AM_WRITE ( jantouki_soundlatch_w ) // To Sound CPU
AM_RANGE( 0x4a, 0x4a ) AM_READ ( jantouki_soundlatch_ack_r ) // Soundlatch status
@@ -1073,8 +1073,8 @@ static ADDRESS_MAP_START( mjelctrn_io_map, ADDRESS_SPACE_IO, 8 )
AM_RANGE( 0x08, 0x08 ) AM_DEVWRITE( "aysnd", ay8910_data_w ) // AY8910
AM_RANGE( 0x0a, 0x0a ) AM_DEVWRITE( "aysnd", ay8910_address_w ) //
AM_RANGE( 0x11, 0x12 ) AM_WRITE ( mjelctrn_blitter_ack_w ) //?
-// AM_RANGE( 0x20, 0x20 ) AM_WRITE ( SMH_NOP ) // CRT Controller
-// AM_RANGE( 0x21, 0x21 ) AM_WRITE ( SMH_NOP ) // CRT Controller
+// AM_RANGE( 0x20, 0x20 ) AM_WRITENOP // CRT Controller
+// AM_RANGE( 0x21, 0x21 ) AM_WRITENOP // CRT Controller
AM_RANGE( 0x40, 0x40 ) AM_WRITE ( dynax_coincounter_0_w ) // Coin Counters
AM_RANGE( 0x41, 0x41 ) AM_WRITE ( dynax_coincounter_1_w ) //
AM_RANGE( 0x60, 0x60 ) AM_WRITE ( dynax_extra_scrollx_w ) // screen scroll X
@@ -1503,7 +1503,7 @@ static ADDRESS_MAP_START( tenkai_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE( 0x10068, 0x10068 ) AM_WRITE( yarunara_layer_half2_w ) //
AM_RANGE( 0x1006c, 0x1006c ) AM_WRITE( tenkai_6c_w ) // ?
AM_RANGE( 0x10070, 0x10070 ) AM_WRITE( tenkai_70_w ) // ?
- AM_RANGE( 0x1007c, 0x1007c ) AM_WRITE( SMH_NOP ) // IRQ Ack? (0,2)
+ AM_RANGE( 0x1007c, 0x1007c ) AM_WRITENOP // IRQ Ack? (0,2)
AM_RANGE( 0x100c0, 0x100c0 ) AM_WRITE( tenkai_ipsel_w )
AM_RANGE( 0x100c1, 0x100c1 ) AM_WRITE( tenkai_ip_w )
AM_RANGE( 0x100c2, 0x100c3 ) AM_READ ( tenkai_ip_r )
diff --git a/src/mame/drivers/enigma2.c b/src/mame/drivers/enigma2.c
index a508db1bc9b..c1d2c4d17a7 100644
--- a/src/mame/drivers/enigma2.c
+++ b/src/mame/drivers/enigma2.c
@@ -442,13 +442,13 @@ static ADDRESS_MAP_START( engima2_main_cpu_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x1fff) AM_ROM AM_WRITENOP
AM_RANGE(0x2000, 0x3fff) AM_MIRROR(0x4000) AM_RAM AM_BASE_MEMBER(enigma2_state, videoram)
AM_RANGE(0x4000, 0x4fff) AM_ROM AM_WRITENOP
- AM_RANGE(0x5000, 0x57ff) AM_READWRITE(dip_switch_r, SMH_NOP)
+ AM_RANGE(0x5000, 0x57ff) AM_READ(dip_switch_r) AM_WRITENOP
AM_RANGE(0x5800, 0x5800) AM_MIRROR(0x07f8) AM_NOP
AM_RANGE(0x5801, 0x5801) AM_MIRROR(0x07f8) AM_READ_PORT("IN0") AM_WRITENOP
AM_RANGE(0x5802, 0x5802) AM_MIRROR(0x07f8) AM_READ_PORT("IN1") AM_WRITENOP
- AM_RANGE(0x5803, 0x5803) AM_MIRROR(0x07f8) AM_READWRITE(SMH_NOP, sound_data_w)
+ AM_RANGE(0x5803, 0x5803) AM_MIRROR(0x07f8) AM_READNOP AM_WRITE(sound_data_w)
AM_RANGE(0x5804, 0x5804) AM_MIRROR(0x07f8) AM_NOP
- AM_RANGE(0x5805, 0x5805) AM_MIRROR(0x07f8) AM_READWRITE(SMH_NOP, enigma2_flip_screen_w)
+ AM_RANGE(0x5805, 0x5805) AM_MIRROR(0x07f8) AM_READNOP AM_WRITE(enigma2_flip_screen_w)
AM_RANGE(0x5806, 0x5807) AM_MIRROR(0x07f8) AM_NOP
ADDRESS_MAP_END
@@ -457,7 +457,7 @@ static ADDRESS_MAP_START( engima2a_main_cpu_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x1fff) AM_ROM AM_WRITENOP
AM_RANGE(0x2000, 0x3fff) AM_MIRROR(0x4000) AM_RAM AM_BASE_MEMBER(enigma2_state, videoram)
AM_RANGE(0x4000, 0x4fff) AM_ROM AM_WRITENOP
- AM_RANGE(0x5000, 0x57ff) AM_READWRITE(dip_switch_r, SMH_NOP)
+ AM_RANGE(0x5000, 0x57ff) AM_READ(dip_switch_r) AM_WRITENOP
AM_RANGE(0x5800, 0x5fff) AM_NOP
ADDRESS_MAP_END
@@ -467,9 +467,9 @@ static ADDRESS_MAP_START( engima2a_main_cpu_io_map, ADDRESS_SPACE_IO, 8 )
AM_RANGE(0x00, 0x00) AM_NOP
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN0") AM_WRITENOP
AM_RANGE(0x02, 0x02) AM_READ_PORT("IN1") AM_WRITENOP
- AM_RANGE(0x03, 0x03) AM_READWRITE(SMH_NOP, sound_data_w)
+ AM_RANGE(0x03, 0x03) AM_READNOP AM_WRITE(sound_data_w)
AM_RANGE(0x04, 0x04) AM_NOP
- AM_RANGE(0x05, 0x05) AM_READWRITE(SMH_NOP, enigma2_flip_screen_w)
+ AM_RANGE(0x05, 0x05) AM_READNOP AM_WRITE(enigma2_flip_screen_w)
AM_RANGE(0x06, 0x07) AM_NOP
ADDRESS_MAP_END
diff --git a/src/mame/drivers/eolith.c b/src/mame/drivers/eolith.c
index e49e2579c75..c419fa567dd 100644
--- a/src/mame/drivers/eolith.c
+++ b/src/mame/drivers/eolith.c
@@ -1029,7 +1029,7 @@ static DRIVER_INIT( hidctch2 )
static DRIVER_INIT( hidctch3 )
{
- memory_install_write32_handler(cputag_get_address_space(machine, "cpu", ADDRESS_SPACE_PROGRAM), 0xfc200000, 0xfc200003, 0, 0, (write32_space_func)SMH_NOP); // this generates pens vibration
+ memory_nop_write(cputag_get_address_space(machine, "cpu", ADDRESS_SPACE_PROGRAM), 0xfc200000, 0xfc200003, 0, 0); // this generates pens vibration
// It is not clear why the first reads are needed too
diff --git a/src/mame/drivers/espial.c b/src/mame/drivers/espial.c
index a1618bda5bc..33bf31f3c34 100644
--- a/src/mame/drivers/espial.c
+++ b/src/mame/drivers/espial.c
@@ -95,7 +95,7 @@ static ADDRESS_MAP_START( espial_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x7100, 0x7100) AM_WRITE(zodiac_master_interrupt_enable_w)
AM_RANGE(0x7200, 0x7200) AM_WRITE(espial_flipscreen_w)
AM_RANGE(0x8000, 0x801f) AM_RAM AM_BASE_MEMBER(espial_state, spriteram_1)
- AM_RANGE(0x8020, 0x803f) AM_READ(SMH_RAM)
+ AM_RANGE(0x8020, 0x803f) AM_READONLY
AM_RANGE(0x8400, 0x87ff) AM_RAM_WRITE(espial_videoram_w) AM_BASE_MEMBER(espial_state, videoram)
AM_RANGE(0x8800, 0x880f) AM_WRITEONLY AM_BASE_MEMBER(espial_state, spriteram_3)
AM_RANGE(0x8c00, 0x8fff) AM_RAM_WRITE(espial_attributeram_w) AM_BASE_MEMBER(espial_state, attributeram)
diff --git a/src/mame/drivers/exidy440.c b/src/mame/drivers/exidy440.c
index 38de43cc66f..4d420e1cb16 100644
--- a/src/mame/drivers/exidy440.c
+++ b/src/mame/drivers/exidy440.c
@@ -479,10 +479,10 @@ static ADDRESS_MAP_START( exidy440_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x2c00, 0x2dff) AM_READWRITE(exidy440_paletteram_r, exidy440_paletteram_w)
AM_RANGE(0x2e00, 0x2e1f) AM_RAM_WRITE(sound_command_w)
AM_RANGE(0x2e20, 0x2e3f) AM_READWRITE(exidy440_input_port_3_r, exidy440_input_port_3_w)
- AM_RANGE(0x2e40, 0x2e5f) AM_READWRITE(SMH_NOP, exidy440_coin_counter_w) /* read: clear coin counters I/O2 */
+ AM_RANGE(0x2e40, 0x2e5f) AM_READNOP AM_WRITE(exidy440_coin_counter_w) /* read: clear coin counters I/O2 */
AM_RANGE(0x2e60, 0x2e7f) AM_READ_PORT("IN1") AM_WRITENOP
AM_RANGE(0x2e80, 0x2e9f) AM_READ_PORT("IN2") AM_WRITENOP
- AM_RANGE(0x2ea0, 0x2ebf) AM_READWRITE(sound_command_ack_r, SMH_NOP)
+ AM_RANGE(0x2ea0, 0x2ebf) AM_READ(sound_command_ack_r) AM_WRITENOP
AM_RANGE(0x2ec0, 0x2eff) AM_NOP
AM_RANGE(0x3000, 0x3fff) AM_RAM
AM_RANGE(0x4000, 0x7fff) AM_READ_BANK("bank1") AM_WRITE(bankram_w)
diff --git a/src/mame/drivers/exprraid.c b/src/mame/drivers/exprraid.c
index d5e00a3693f..983c4ac081d 100644
--- a/src/mame/drivers/exprraid.c
+++ b/src/mame/drivers/exprraid.c
@@ -18,7 +18,7 @@ Main CPU: ( DECO CPU-16 )
2100-2100 Sound latch write
2800-2801 Protection
3800-3800 VBlank ( bootleg 1 only )
-4000-ffff SMH_ROM
+4000-ffff ROM
ffc0-ffc0 VBlank ( bootleg 2 only )
Sound Cpu: ( 6809 )
diff --git a/src/mame/drivers/f1gp.c b/src/mame/drivers/f1gp.c
index 91f2ddf81b9..793ee5b4f46 100644
--- a/src/mame/drivers/f1gp.c
+++ b/src/mame/drivers/f1gp.c
@@ -115,7 +115,7 @@ static ADDRESS_MAP_START( f1gp_cpu1_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0xfff006, 0xfff007) AM_READ_PORT("DSW2")
AM_RANGE(0xfff008, 0xfff009) AM_READ(command_pending_r)
AM_RANGE(0xfff008, 0xfff009) AM_WRITE(sound_command_w)
- AM_RANGE(0xfff040, 0xfff05f) AM_WRITE(SMH_RAM) AM_BASE(&K053936_0_ctrl)
+ AM_RANGE(0xfff040, 0xfff05f) AM_WRITEONLY AM_BASE(&K053936_0_ctrl)
AM_RANGE(0xfff050, 0xfff051) AM_READ_PORT("DSW3")
ADDRESS_MAP_END
@@ -135,7 +135,7 @@ static ADDRESS_MAP_START( f1gp2_cpu1_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0xfff006, 0xfff007) AM_READ_PORT("DSW2")
AM_RANGE(0xfff008, 0xfff009) AM_READWRITE(command_pending_r, sound_command_w)
AM_RANGE(0xfff00a, 0xfff00b) AM_READ_PORT("DSW3")
- AM_RANGE(0xfff020, 0xfff02f) AM_WRITE(SMH_RAM) AM_BASE(&K053936_0_ctrl)
+ AM_RANGE(0xfff020, 0xfff02f) AM_WRITEONLY AM_BASE(&K053936_0_ctrl)
AM_RANGE(0xfff044, 0xfff047) AM_WRITE(f1gp_fgscroll_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/fantland.c b/src/mame/drivers/fantland.c
index 15fdc850b04..f7268d22ec8 100644
--- a/src/mame/drivers/fantland.c
+++ b/src/mame/drivers/fantland.c
@@ -125,7 +125,7 @@ static ADDRESS_MAP_START( fantland_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE( 0x00000, 0x07fff ) AM_RAM
AM_RANGE( 0x08000, 0x7ffff ) AM_ROM
- AM_RANGE( 0xa2000, 0xa21ff ) AM_READWRITE( SMH_RAM, paletteram16_xRRRRRGGGGGBBBBB_word_w ) AM_BASE_GENERIC( paletteram )
+ AM_RANGE( 0xa2000, 0xa21ff ) AM_RAM_WRITE( paletteram16_xRRRRRGGGGGBBBBB_word_w ) AM_BASE_GENERIC( paletteram )
AM_RANGE( 0xa3000, 0xa3001 ) AM_READ_PORT("a3000") AM_WRITE( fantland_nmi_enable_16_w )
AM_RANGE( 0xa3002, 0xa3003 ) AM_READ_PORT("a3002") AM_WRITE( fantland_soundlatch_16_w )
@@ -145,7 +145,7 @@ static ADDRESS_MAP_START( galaxygn_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE( 0x00000, 0x07fff ) AM_RAM
AM_RANGE( 0x10000, 0x2ffff ) AM_ROM
- AM_RANGE( 0x52000, 0x521ff ) AM_READWRITE( SMH_RAM, paletteram_xRRRRRGGGGGBBBBB_le_w ) AM_BASE_GENERIC( paletteram )
+ AM_RANGE( 0x52000, 0x521ff ) AM_RAM_WRITE( paletteram_xRRRRRGGGGGBBBBB_le_w ) AM_BASE_GENERIC( paletteram )
AM_RANGE( 0x53000, 0x53000 ) AM_READ_PORT("P1") AM_WRITE( fantland_nmi_enable_w )
AM_RANGE( 0x53001, 0x53001 ) AM_READ_PORT("P2")
@@ -239,7 +239,7 @@ static ADDRESS_MAP_START( borntofi_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE( 0x00000, 0x07fff ) AM_RAM
AM_RANGE( 0x10000, 0x2ffff ) AM_ROM
- AM_RANGE( 0x52000, 0x521ff ) AM_READWRITE( SMH_RAM, paletteram_xRRRRRGGGGGBBBBB_le_w ) AM_BASE_GENERIC( paletteram )
+ AM_RANGE( 0x52000, 0x521ff ) AM_RAM_WRITE( paletteram_xRRRRRGGGGGBBBBB_le_w ) AM_BASE_GENERIC( paletteram )
AM_RANGE( 0x53000, 0x53001 ) AM_READWRITE( borntofi_inputs_r, borntofi_nmi_enable_w )
AM_RANGE( 0x53002, 0x53002 ) AM_READ_PORT( "DSW" ) AM_WRITE( fantland_soundlatch_w )
AM_RANGE( 0x53003, 0x53003 ) AM_READ_PORT( "Controls" )
@@ -421,8 +421,8 @@ static ADDRESS_MAP_START( wheelrun_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0xa000, 0xa001) AM_DEVREADWRITE("ymsnd", ym3526_r, ym3526_w )
- AM_RANGE(0xb000, 0xb000) AM_WRITE( SMH_NOP ) // on a car crash / hit
- AM_RANGE(0xc000, 0xc000) AM_WRITE( SMH_NOP ) // ""
+ AM_RANGE(0xb000, 0xb000) AM_WRITENOP // on a car crash / hit
+ AM_RANGE(0xc000, 0xc000) AM_WRITENOP // ""
AM_RANGE(0xd000, 0xd000) AM_READ( soundlatch_r ) // during NMI
ADDRESS_MAP_END
diff --git a/src/mame/drivers/fastfred.c b/src/mame/drivers/fastfred.c
index 323b89744be..a259e5fad2a 100644
--- a/src/mame/drivers/fastfred.c
+++ b/src/mame/drivers/fastfred.c
@@ -186,7 +186,7 @@ static ADDRESS_MAP_START( jumpcoas_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xd040, 0xd05f) AM_RAM AM_BASE(&fastfred_spriteram) AM_SIZE(&fastfred_spriteram_size)
AM_RANGE(0xd060, 0xd3ff) AM_RAM
AM_RANGE(0xd800, 0xdbff) AM_MIRROR(0x400) AM_RAM_WRITE(fastfred_videoram_w) AM_BASE(&fastfred_videoram)
- AM_RANGE(0xe000, 0xe000) AM_WRITE(SMH_RAM) AM_BASE(&fastfred_background_color)
+ AM_RANGE(0xe000, 0xe000) AM_WRITEONLY AM_BASE(&fastfred_background_color)
AM_RANGE(0xe800, 0xe800) AM_READ_PORT("DSW1")
AM_RANGE(0xe801, 0xe801) AM_READ_PORT("DSW2")
AM_RANGE(0xe802, 0xe802) AM_READ_PORT("BUTTONS")
@@ -202,7 +202,7 @@ static ADDRESS_MAP_START( jumpcoas_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xf116, 0xf116) AM_WRITE(fastfred_flip_screen_x_w)
AM_RANGE(0xf117, 0xf117) AM_WRITE(fastfred_flip_screen_y_w)
//AM_RANGE(0xf800, 0xf800) AM_READ(watchdog_reset_r) // Why doesn't this work???
- AM_RANGE(0xf800, 0xf801) AM_DEVREADWRITE("ay8910.1", SMH_NOP, ay8910_address_data_w)
+ AM_RANGE(0xf800, 0xf801) AM_READNOP AM_DEVWRITE("ay8910.1", ay8910_address_data_w)
ADDRESS_MAP_END
@@ -230,14 +230,14 @@ static ADDRESS_MAP_START( imago_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xf007, 0xf007) AM_WRITE(fastfred_flip_screen_y_w)
AM_RANGE(0xf400, 0xf400) AM_WRITENOP // writes 0 or 2
AM_RANGE(0xf401, 0xf401) AM_WRITE(imago_sprites_bank_w)
- AM_RANGE(0xf800, 0xf800) AM_READWRITE(SMH_NOP, soundlatch_w)
+ AM_RANGE(0xf800, 0xf800) AM_READNOP AM_WRITE(soundlatch_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x2000, 0x23ff) AM_RAM
AM_RANGE(0x3000, 0x3000) AM_READWRITE(soundlatch_r, interrupt_enable_w)
- AM_RANGE(0x4000, 0x4000) AM_WRITE(SMH_RAM) // Reset PSG's
+ AM_RANGE(0x4000, 0x4000) AM_WRITEONLY // Reset PSG's
AM_RANGE(0x5000, 0x5001) AM_DEVWRITE("ay8910.1", ay8910_address_data_w)
AM_RANGE(0x6000, 0x6001) AM_DEVWRITE("ay8910.2", ay8910_address_data_w)
AM_RANGE(0x7000, 0x7000) AM_READNOP // only for Imago, read but not used
@@ -965,19 +965,22 @@ static DRIVER_INIT( flyboyb )
static DRIVER_INIT( fastfred )
{
- memory_install_readwrite8_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0xc800, 0xcfff, 0, 0, fastfred_custom_io_r, (write8_space_func)SMH_NOP);
+ memory_install_read8_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0xc800, 0xcfff, 0, 0, fastfred_custom_io_r);
+ memory_nop_write(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0xc800, 0xcfff, 0, 0);
fastfred_hardware_type = 1;
}
static DRIVER_INIT( jumpcoas )
{
- memory_install_readwrite8_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0xc800, 0xcfff, 0, 0, jumpcoas_custom_io_r, (write8_space_func)SMH_NOP);
+ memory_install_read8_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0xc800, 0xcfff, 0, 0, jumpcoas_custom_io_r);
+ memory_nop_write(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0xc800, 0xcfff, 0, 0);
fastfred_hardware_type = 0;
}
static DRIVER_INIT( boggy84 )
{
- memory_install_readwrite8_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0xc800, 0xcfff, 0, 0, jumpcoas_custom_io_r, (write8_space_func)SMH_NOP);
+ memory_install_read8_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0xc800, 0xcfff, 0, 0, jumpcoas_custom_io_r);
+ memory_nop_write(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0xc800, 0xcfff, 0, 0);
fastfred_hardware_type = 2;
}
diff --git a/src/mame/drivers/finalizr.c b/src/mame/drivers/finalizr.c
index 3da423769d5..eddcad38d4d 100644
--- a/src/mame/drivers/finalizr.c
+++ b/src/mame/drivers/finalizr.c
@@ -101,10 +101,10 @@ static WRITE8_HANDLER( i8039_T0_w )
}
static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0001, 0x0001) AM_WRITE(SMH_RAM) AM_BASE_MEMBER(finalizr_state, scroll)
+ AM_RANGE(0x0001, 0x0001) AM_WRITEONLY AM_BASE_MEMBER(finalizr_state, scroll)
AM_RANGE(0x0003, 0x0003) AM_WRITE(finalizr_videoctrl_w)
AM_RANGE(0x0004, 0x0004) AM_WRITE(finalizr_flipscreen_w)
-// AM_RANGE(0x0020, 0x003f) AM_WRITE(SMH_RAM) AM_BASE_MEMBER(finalizr_state, scroll)
+// AM_RANGE(0x0020, 0x003f) AM_WRITEONLY AM_BASE_MEMBER(finalizr_state, scroll)
AM_RANGE(0x0800, 0x0800) AM_READ_PORT("DSW3")
AM_RANGE(0x0808, 0x0808) AM_READ_PORT("DSW2")
AM_RANGE(0x0810, 0x0810) AM_READ_PORT("SYSTEM")
diff --git a/src/mame/drivers/firefox.c b/src/mame/drivers/firefox.c
index e8f47c58951..c608d0e82e6 100644
--- a/src/mame/drivers/firefox.c
+++ b/src/mame/drivers/firefox.c
@@ -452,9 +452,9 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8)
AM_RANGE(0x0000, 0x0fff) AM_RAM
AM_RANGE(0x1000, 0x1fff) AM_RAM_WRITE(tileram_w) AM_BASE(&tileram)
AM_RANGE(0x2000, 0x27ff) AM_RAM AM_BASE_GENERIC(spriteram)
- AM_RANGE(0x2800, 0x2aff) AM_READWRITE(SMH_RAM, sprite_palette_w) AM_BASE(&sprite_palette)
+ AM_RANGE(0x2800, 0x2aff) AM_RAM_WRITE(sprite_palette_w) AM_BASE(&sprite_palette)
AM_RANGE(0x2b00, 0x2b00) AM_MIRROR(0x04ff) AM_WRITE(firefox_objram_bank_w)
- AM_RANGE(0x2c00, 0x2eff) AM_READWRITE(SMH_RAM, tile_palette_w) AM_BASE(&tile_palette)
+ AM_RANGE(0x2c00, 0x2eff) AM_RAM_WRITE(tile_palette_w) AM_BASE(&tile_palette)
AM_RANGE(0x3000, 0x3fff) AM_ROMBANK("bank1")
AM_RANGE(0x4000, 0x40ff) AM_READWRITE(nvram_r, nvram_w) /* NOVRAM */
AM_RANGE(0x4100, 0x4100) AM_MIRROR(0x00f8) AM_READ_PORT("rdin0") /* RDIN0 */
diff --git a/src/mame/drivers/firetrk.c b/src/mame/drivers/firetrk.c
index 38cc86f5485..5d0914a1d46 100644
--- a/src/mame/drivers/firetrk.c
+++ b/src/mame/drivers/firetrk.c
@@ -323,23 +323,23 @@ static ADDRESS_MAP_START( firetrk_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_GLOBAL_MASK(0x3fff)
AM_RANGE(0x0000, 0x00ff) AM_MIRROR(0x0700) AM_RAM AM_BASE(&firetrk_alpha_num_ram)
AM_RANGE(0x0800, 0x08ff) AM_MIRROR(0x0700) AM_RAM AM_BASE(&firetrk_playfield_ram)
- AM_RANGE(0x1000, 0x1000) AM_MIRROR(0x001f) AM_WRITE(SMH_RAM) AM_BASE(&firetrk_scroll_y)
- AM_RANGE(0x1020, 0x1020) AM_MIRROR(0x001f) AM_WRITE(SMH_RAM) AM_BASE(&firetrk_scroll_x)
+ AM_RANGE(0x1000, 0x1000) AM_MIRROR(0x001f) AM_WRITEONLY AM_BASE(&firetrk_scroll_y)
+ AM_RANGE(0x1020, 0x1020) AM_MIRROR(0x001f) AM_WRITEONLY AM_BASE(&firetrk_scroll_x)
AM_RANGE(0x1040, 0x1040) AM_MIRROR(0x001f) AM_WRITE(crash_reset_w)
AM_RANGE(0x1060, 0x1060) AM_MIRROR(0x001f) AM_DEVWRITE("discrete", firetrk_skid_reset_w)
- AM_RANGE(0x1080, 0x1080) AM_MIRROR(0x001f) AM_WRITE(SMH_RAM) AM_BASE(&firetrk_car_rot)
+ AM_RANGE(0x1080, 0x1080) AM_MIRROR(0x001f) AM_WRITEONLY AM_BASE(&firetrk_car_rot)
AM_RANGE(0x10a0, 0x10a0) AM_MIRROR(0x001f) AM_WRITE(steer_reset_w)
AM_RANGE(0x10c0, 0x10c0) AM_MIRROR(0x001f) AM_WRITE(watchdog_reset_w)
AM_RANGE(0x10e0, 0x10e0) AM_MIRROR(0x001f) AM_WRITE(blink_on_w) AM_BASE(&firetrk_blink)
AM_RANGE(0x1400, 0x1400) AM_MIRROR(0x001f) AM_DEVWRITE("discrete", firetrk_motor_snd_w)
AM_RANGE(0x1420, 0x1420) AM_MIRROR(0x001f) AM_DEVWRITE("discrete", firetrk_crash_snd_w)
AM_RANGE(0x1440, 0x1440) AM_MIRROR(0x001f) AM_DEVWRITE("discrete", firetrk_skid_snd_w)
- AM_RANGE(0x1460, 0x1460) AM_MIRROR(0x001f) AM_WRITE(SMH_RAM) AM_BASE(&firetrk_drone_x)
- AM_RANGE(0x1480, 0x1480) AM_MIRROR(0x001f) AM_WRITE(SMH_RAM) AM_BASE(&firetrk_drone_y)
- AM_RANGE(0x14a0, 0x14a0) AM_MIRROR(0x001f) AM_WRITE(SMH_RAM) AM_BASE(&firetrk_drone_rot)
+ AM_RANGE(0x1460, 0x1460) AM_MIRROR(0x001f) AM_WRITEONLY AM_BASE(&firetrk_drone_x)
+ AM_RANGE(0x1480, 0x1480) AM_MIRROR(0x001f) AM_WRITEONLY AM_BASE(&firetrk_drone_y)
+ AM_RANGE(0x14a0, 0x14a0) AM_MIRROR(0x001f) AM_WRITEONLY AM_BASE(&firetrk_drone_rot)
AM_RANGE(0x14c0, 0x14c0) AM_MIRROR(0x001f) AM_WRITE(firetrk_output_w)
AM_RANGE(0x14e0, 0x14e0) AM_MIRROR(0x001f) AM_DEVWRITE("discrete", firetrk_xtndply_w)
- AM_RANGE(0x1800, 0x1807) AM_MIRROR(0x03f8) AM_READWRITE(firetrk_input_r, SMH_NOP)
+ AM_RANGE(0x1800, 0x1807) AM_MIRROR(0x03f8) AM_READ(firetrk_input_r) AM_WRITENOP
AM_RANGE(0x1c00, 0x1c03) AM_MIRROR(0x03fc) AM_READ(firetrk_dip_r)
AM_RANGE(0x2000, 0x3fff) AM_ROM
ADDRESS_MAP_END
@@ -348,11 +348,11 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( superbug_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_GLOBAL_MASK(0x1fff)
AM_RANGE(0x0000, 0x00ff) AM_RAM
- AM_RANGE(0x0100, 0x0100) AM_MIRROR(0x001f) AM_WRITE(SMH_RAM) AM_BASE(&firetrk_scroll_y)
- AM_RANGE(0x0120, 0x0120) AM_MIRROR(0x001f) AM_WRITE(SMH_RAM) AM_BASE(&firetrk_scroll_x)
+ AM_RANGE(0x0100, 0x0100) AM_MIRROR(0x001f) AM_WRITEONLY AM_BASE(&firetrk_scroll_y)
+ AM_RANGE(0x0120, 0x0120) AM_MIRROR(0x001f) AM_WRITEONLY AM_BASE(&firetrk_scroll_x)
AM_RANGE(0x0140, 0x0140) AM_MIRROR(0x001f) AM_WRITE(crash_reset_w)
AM_RANGE(0x0160, 0x0160) AM_MIRROR(0x001f) AM_DEVWRITE("discrete", firetrk_skid_reset_w)
- AM_RANGE(0x0180, 0x0180) AM_MIRROR(0x001f) AM_WRITE(SMH_RAM) AM_BASE(&firetrk_car_rot)
+ AM_RANGE(0x0180, 0x0180) AM_MIRROR(0x001f) AM_WRITEONLY AM_BASE(&firetrk_car_rot)
AM_RANGE(0x01a0, 0x01a0) AM_MIRROR(0x001f) AM_WRITE(steer_reset_w)
AM_RANGE(0x01c0, 0x01c0) AM_MIRROR(0x001f) AM_WRITE(watchdog_reset_w)
AM_RANGE(0x01e0, 0x01e0) AM_MIRROR(0x001f) AM_WRITE(blink_on_w) AM_BASE(&firetrk_blink)
@@ -373,23 +373,23 @@ static ADDRESS_MAP_START( montecar_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_GLOBAL_MASK(0x3fff)
AM_RANGE(0x0000, 0x00ff) AM_MIRROR(0x0700) AM_RAM AM_BASE(&firetrk_alpha_num_ram)
AM_RANGE(0x0800, 0x08ff) AM_MIRROR(0x0700) AM_RAM AM_BASE(&firetrk_playfield_ram)
- AM_RANGE(0x1000, 0x1000) AM_MIRROR(0x001f) AM_WRITE(SMH_RAM) AM_BASE(&firetrk_scroll_y)
- AM_RANGE(0x1020, 0x1020) AM_MIRROR(0x001f) AM_WRITE(SMH_RAM) AM_BASE(&firetrk_scroll_x)
+ AM_RANGE(0x1000, 0x1000) AM_MIRROR(0x001f) AM_WRITEONLY AM_BASE(&firetrk_scroll_y)
+ AM_RANGE(0x1020, 0x1020) AM_MIRROR(0x001f) AM_WRITEONLY AM_BASE(&firetrk_scroll_x)
AM_RANGE(0x1040, 0x1040) AM_MIRROR(0x001f) AM_WRITE(montecar_drone_reset_w)
AM_RANGE(0x1060, 0x1060) AM_MIRROR(0x001f) AM_WRITE(montecar_car_reset_w)
- AM_RANGE(0x1080, 0x1080) AM_MIRROR(0x001f) AM_WRITE(SMH_RAM) AM_BASE(&firetrk_car_rot)
+ AM_RANGE(0x1080, 0x1080) AM_MIRROR(0x001f) AM_WRITEONLY AM_BASE(&firetrk_car_rot)
AM_RANGE(0x10a0, 0x10a0) AM_MIRROR(0x001f) AM_WRITE(steer_reset_w)
AM_RANGE(0x10c0, 0x10c0) AM_MIRROR(0x001f) AM_WRITE(watchdog_reset_w)
AM_RANGE(0x10e0, 0x10e0) AM_MIRROR(0x001f) AM_DEVWRITE("discrete", montecar_skid_reset_w)
AM_RANGE(0x1400, 0x1400) AM_MIRROR(0x001f) AM_DEVWRITE("discrete", firetrk_motor_snd_w)
AM_RANGE(0x1420, 0x1420) AM_MIRROR(0x001f) AM_DEVWRITE("discrete", firetrk_crash_snd_w)
AM_RANGE(0x1440, 0x1440) AM_MIRROR(0x001f) AM_DEVWRITE("discrete", firetrk_skid_snd_w)
- AM_RANGE(0x1460, 0x1460) AM_MIRROR(0x001f) AM_WRITE(SMH_RAM) AM_BASE(&firetrk_drone_x)
- AM_RANGE(0x1480, 0x1480) AM_MIRROR(0x001f) AM_WRITE(SMH_RAM) AM_BASE(&firetrk_drone_y)
- AM_RANGE(0x14a0, 0x14a0) AM_MIRROR(0x001f) AM_WRITE(SMH_RAM) AM_BASE(&firetrk_drone_rot)
+ AM_RANGE(0x1460, 0x1460) AM_MIRROR(0x001f) AM_WRITEONLY AM_BASE(&firetrk_drone_x)
+ AM_RANGE(0x1480, 0x1480) AM_MIRROR(0x001f) AM_WRITEONLY AM_BASE(&firetrk_drone_y)
+ AM_RANGE(0x14a0, 0x14a0) AM_MIRROR(0x001f) AM_WRITEONLY AM_BASE(&firetrk_drone_rot)
AM_RANGE(0x14c0, 0x14c0) AM_MIRROR(0x001f) AM_WRITE(montecar_output_1_w)
AM_RANGE(0x14e0, 0x14e0) AM_MIRROR(0x001f) AM_WRITE(montecar_output_2_w)
- AM_RANGE(0x1800, 0x1807) AM_MIRROR(0x03f8) AM_READWRITE(montecar_input_r, SMH_NOP)
+ AM_RANGE(0x1800, 0x1807) AM_MIRROR(0x03f8) AM_READ(montecar_input_r) AM_WRITENOP
AM_RANGE(0x1c00, 0x1c03) AM_MIRROR(0x03fc) AM_READ(montecar_dip_r)
AM_RANGE(0x2000, 0x3fff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/fitfight.c b/src/mame/drivers/fitfight.c
index be787b2c960..34aa8511b06 100644
--- a/src/mame/drivers/fitfight.c
+++ b/src/mame/drivers/fitfight.c
@@ -198,7 +198,7 @@ static ADDRESS_MAP_START( bbprot_main_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0xb08000, 0xb0bfff) AM_RAM_WRITE(fof_mid_tileram_w) AM_BASE_MEMBER(fitfight_state, fof_mid_tileram)
AM_RANGE(0xb0c000, 0xb0ffff) AM_RAM_WRITE(fof_txt_tileram_w) AM_BASE_MEMBER(fitfight_state, fof_txt_tileram)
- AM_RANGE(0xc00000, 0xc00fff) AM_READ(SMH_RAM)
+ AM_RANGE(0xc00000, 0xc00fff) AM_READONLY
AM_RANGE(0xc00000, 0xc03fff) AM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0xd00000, 0xd007ff) AM_RAM AM_BASE_MEMBER(fitfight_state, spriteram)
diff --git a/src/mame/drivers/flstory.c b/src/mame/drivers/flstory.c
index 7e25893c5a5..a5038a5f17f 100644
--- a/src/mame/drivers/flstory.c
+++ b/src/mame/drivers/flstory.c
@@ -88,7 +88,7 @@ static ADDRESS_MAP_START( flstory_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xd804, 0xd804) AM_READ_PORT("P1")
AM_RANGE(0xd805, 0xd805) AM_READ(flstory_mcu_status_r)
AM_RANGE(0xd806, 0xd806) AM_READ_PORT("P2")
-// AM_RANGE(0xda00, 0xda00) AM_WRITE(SMH_RAM)
+// AM_RANGE(0xda00, 0xda00) AM_WRITEONLY
AM_RANGE(0xdc00, 0xdc9f) AM_RAM AM_BASE_SIZE_MEMBER(flstory_state, spriteram, spriteram_size)
AM_RANGE(0xdca0, 0xdcbf) AM_RAM_WRITE(flstory_scrlram_w) AM_BASE_MEMBER(flstory_state, scrlram)
AM_RANGE(0xdcc0, 0xdcff) AM_RAM /* unknown */
@@ -114,7 +114,7 @@ static ADDRESS_MAP_START( onna34ro_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xd804, 0xd804) AM_READ_PORT("P1")
AM_RANGE(0xd805, 0xd805) AM_READ(onna34ro_mcu_status_r)
AM_RANGE(0xd806, 0xd806) AM_READ_PORT("P2")
-// AM_RANGE(0xda00, 0xda00) AM_WRITE(SMH_RAM)
+// AM_RANGE(0xda00, 0xda00) AM_WRITEONLY
AM_RANGE(0xdc00, 0xdc9f) AM_RAM AM_BASE_SIZE_MEMBER(flstory_state, spriteram, spriteram_size)
AM_RANGE(0xdca0, 0xdcbf) AM_RAM_WRITE(flstory_scrlram_w) AM_BASE_MEMBER(flstory_state, scrlram)
AM_RANGE(0xdcc0, 0xdcff) AM_RAM /* unknown */
@@ -137,7 +137,7 @@ static ADDRESS_MAP_START( victnine_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xc800, 0xcfff) AM_RAM /* unknown */
AM_RANGE(0xd000, 0xd000) AM_READWRITE(victnine_mcu_r, victnine_mcu_w)
AM_RANGE(0xd001, 0xd001) AM_WRITENOP /* watchdog? */
- AM_RANGE(0xd002, 0xd002) AM_READWRITE(SMH_NOP, SMH_NOP) /* unknown read & coin lock out? */
+ AM_RANGE(0xd002, 0xd002) AM_NOP /* unknown read & coin lock out? */
AM_RANGE(0xd400, 0xd400) AM_READWRITE(from_snd_r, sound_command_w)
AM_RANGE(0xd401, 0xd401) AM_READ(snd_flag_r)
AM_RANGE(0xd403, 0xd403) AM_READNOP /* unknown */
@@ -149,7 +149,7 @@ static ADDRESS_MAP_START( victnine_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xd805, 0xd805) AM_READ_PORT("EXTRA_P1") /* also mcu */
AM_RANGE(0xd806, 0xd806) AM_READ_PORT("P2")
AM_RANGE(0xd807, 0xd807) AM_READ_PORT("EXTRA_P2")
-// AM_RANGE(0xda00, 0xda00) AM_WRITE(SMH_RAM)
+// AM_RANGE(0xda00, 0xda00) AM_WRITEONLY
AM_RANGE(0xdc00, 0xdc9f) AM_RAM AM_BASE_SIZE_MEMBER(flstory_state, spriteram, spriteram_size)
AM_RANGE(0xdca0, 0xdcbf) AM_RAM_WRITE(flstory_scrlram_w) AM_BASE_MEMBER(flstory_state, scrlram)
AM_RANGE(0xdce0, 0xdce0) AM_READWRITE(victnine_gfxctrl_r, victnine_gfxctrl_w)
@@ -239,7 +239,7 @@ static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xcc00, 0xcc00) AM_DEVWRITE("msm", sound_control_0_w)
AM_RANGE(0xce00, 0xce00) AM_DEVWRITE("msm", sound_control_1_w)
AM_RANGE(0xd800, 0xd800) AM_READWRITE(soundlatch_r, to_main_w)
- AM_RANGE(0xda00, 0xda00) AM_READWRITE(SMH_NOP, nmi_enable_w) /* unknown read*/
+ AM_RANGE(0xda00, 0xda00) AM_READNOP AM_WRITE(nmi_enable_w) /* unknown read*/
AM_RANGE(0xdc00, 0xdc00) AM_WRITE(nmi_disable_w)
AM_RANGE(0xde00, 0xde00) AM_READNOP AM_DEVWRITE("dac", dac_w) /* signed 8-bit DAC & unknown read */
AM_RANGE(0xe000, 0xefff) AM_ROM /* space for diagnostics ROM */
diff --git a/src/mame/drivers/flyball.c b/src/mame/drivers/flyball.c
index 570a2370f20..adde5f61713 100644
--- a/src/mame/drivers/flyball.c
+++ b/src/mame/drivers/flyball.c
@@ -252,7 +252,7 @@ static ADDRESS_MAP_START( flyball_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0900, 0x0900) AM_WRITE(flyball_potmask_w)
AM_RANGE(0x0a00, 0x0a07) AM_WRITE(flyball_misc_w)
AM_RANGE(0x0b00, 0x0b00) AM_READ(flyball_input_r)
- AM_RANGE(0x0d00, 0x0eff) AM_WRITE(SMH_RAM) AM_BASE_MEMBER(flyball_state, playfield_ram)
+ AM_RANGE(0x0d00, 0x0eff) AM_WRITEONLY AM_BASE_MEMBER(flyball_state, playfield_ram)
AM_RANGE(0x1000, 0x1fff) AM_ROM AM_BASE_MEMBER(flyball_state, rombase) /* program */
ADDRESS_MAP_END
diff --git a/src/mame/drivers/foodf.c b/src/mame/drivers/foodf.c
index d7474ac3bf0..18aa21a5ad7 100644
--- a/src/mame/drivers/foodf.c
+++ b/src/mame/drivers/foodf.c
@@ -220,7 +220,7 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x018000, 0x018fff) AM_MIRROR(0x3e3000) AM_RAM
AM_RANGE(0x01c000, 0x01c0ff) AM_MIRROR(0x3e3f00) AM_RAM AM_BASE_GENERIC(spriteram)
AM_RANGE(0x800000, 0x8007ff) AM_MIRROR(0x03f800) AM_RAM_WRITE(atarigen_playfield_w) AM_BASE(&atarigen_playfield)
- AM_RANGE(0x900000, 0x9001ff) AM_MIRROR(0x03fe00) AM_READWRITE(nvram_r, SMH_RAM) AM_BASE_SIZE_GENERIC(nvram)
+ AM_RANGE(0x900000, 0x9001ff) AM_MIRROR(0x03fe00) AM_RAM_READ(nvram_r) AM_BASE_SIZE_GENERIC(nvram)
AM_RANGE(0x940000, 0x940007) AM_MIRROR(0x023ff8) AM_READ(analog_r)
AM_RANGE(0x944000, 0x944007) AM_MIRROR(0x023ff8) AM_WRITE(analog_w)
AM_RANGE(0x948000, 0x948001) AM_MIRROR(0x023ffe) AM_READ_PORT("SYSTEM") AM_WRITE(digital_w)
diff --git a/src/mame/drivers/fromanc2.c b/src/mame/drivers/fromanc2.c
index 4f2b3adff3f..458157b8190 100644
--- a/src/mame/drivers/fromanc2.c
+++ b/src/mame/drivers/fromanc2.c
@@ -387,7 +387,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( fromanc2_sound_io_map, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x00) AM_READWRITE(soundlatch_r, SMH_NOP) // snd cmd (1P) / ?
+ AM_RANGE(0x00, 0x00) AM_READ(soundlatch_r) AM_WRITENOP // snd cmd (1P) / ?
AM_RANGE(0x04, 0x04) AM_READ(soundlatch2_r) // snd cmd (2P)
AM_RANGE(0x08, 0x0b) AM_DEVREADWRITE("ymsnd", ym2610_r, ym2610_w)
AM_RANGE(0x0c, 0x0c) AM_READ(fromanc2_sndcpu_nmi_clr)
diff --git a/src/mame/drivers/funkyjet.c b/src/mame/drivers/funkyjet.c
index d7e858692be..9c0d427f131 100644
--- a/src/mame/drivers/funkyjet.c
+++ b/src/mame/drivers/funkyjet.c
@@ -110,7 +110,7 @@ static ADDRESS_MAP_START( funkyjet_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x180000, 0x1807ff) AM_READWRITE(deco16_146_funkyjet_prot_r, deco16_146_funkyjet_prot_w) AM_BASE(&deco16_prot_ram)
AM_RANGE(0x184000, 0x184001) AM_WRITENOP
AM_RANGE(0x188000, 0x188001) AM_WRITENOP
- AM_RANGE(0x300000, 0x30000f) AM_WRITE(SMH_RAM) AM_BASE(&deco16_pf12_control)
+ AM_RANGE(0x300000, 0x30000f) AM_WRITEONLY AM_BASE(&deco16_pf12_control)
AM_RANGE(0x320000, 0x321fff) AM_RAM_WRITE(deco16_pf1_data_w) AM_BASE(&deco16_pf1_data)
AM_RANGE(0x322000, 0x323fff) AM_RAM_WRITE(deco16_pf2_data_w) AM_BASE(&deco16_pf2_data)
AM_RANGE(0x340000, 0x340bff) AM_RAM AM_BASE(&deco16_pf1_rowscroll)
diff --git a/src/mame/drivers/fuukifg2.c b/src/mame/drivers/fuukifg2.c
index 764554ec4da..0a4c47d27d9 100644
--- a/src/mame/drivers/fuukifg2.c
+++ b/src/mame/drivers/fuukifg2.c
@@ -130,9 +130,9 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( fuuki16_sound_io_map, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(fuuki16_sound_rombank_w) // ROM Bank
- AM_RANGE(0x11, 0x11) AM_READWRITE(soundlatch_r, SMH_NOP) // From Main CPU / ? To Main CPU ?
+ AM_RANGE(0x11, 0x11) AM_READ(soundlatch_r) AM_WRITENOP // From Main CPU / ? To Main CPU ?
AM_RANGE(0x20, 0x20) AM_DEVWRITE("oki", fuuki16_oki_banking_w) // Oki Banking
- AM_RANGE(0x30, 0x30) AM_WRITE(SMH_NOP) // ? In the NMI routine
+ AM_RANGE(0x30, 0x30) AM_WRITENOP // ? In the NMI routine
AM_RANGE(0x40, 0x41) AM_DEVWRITE("ym1", ym2203_w)
AM_RANGE(0x50, 0x51) AM_DEVREADWRITE("ym2", ym3812_r, ym3812_w)
AM_RANGE(0x60, 0x60) AM_DEVREAD("oki", okim6295_r) // M6295
diff --git a/src/mame/drivers/fuukifg3.c b/src/mame/drivers/fuukifg3.c
index 6f425168abc..8dc12b3e58e 100644
--- a/src/mame/drivers/fuukifg3.c
+++ b/src/mame/drivers/fuukifg3.c
@@ -255,9 +255,9 @@ static ADDRESS_MAP_START( fuuki32_map, ADDRESS_SPACE_PROGRAM, 32 )
AM_RANGE(0x903fe0, 0x903fff) AM_READWRITE(snd_020_r, snd_020_w) // Shared with Z80
// AM_RANGE(0x903fe0, 0x903fe3) AM_READ(fuuki32_sound_command_r) // Shared with Z80
-// AM_RANGE(0x903fe4, 0x903fff) AM_READ(SMH_RAM) // ??
+// AM_RANGE(0x903fe4, 0x903fff) AM_READONLY // ??
- AM_RANGE(0xa00000, 0xa00003) AM_WRITE(SMH_RAM) AM_BASE_MEMBER(fuuki32_state, tilebank)
+ AM_RANGE(0xa00000, 0xa00003) AM_WRITEONLY AM_BASE_MEMBER(fuuki32_state, tilebank)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/gaelco.c b/src/mame/drivers/gaelco.c
index 7d6092409d6..cdf62623a79 100644
--- a/src/mame/drivers/gaelco.c
+++ b/src/mame/drivers/gaelco.c
@@ -142,7 +142,7 @@ static ADDRESS_MAP_START( maniacsq_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x000000, 0x0fffff) AM_ROM /* ROM */
AM_RANGE(0x100000, 0x101fff) AM_RAM_WRITE(gaelco_vram_w) AM_BASE_MEMBER(gaelco_state, videoram) /* Video RAM */
AM_RANGE(0x102000, 0x103fff) AM_RAM /* Screen RAM */
- AM_RANGE(0x108000, 0x108007) AM_WRITE(SMH_RAM) AM_BASE_MEMBER(gaelco_state, vregs) /* Video Registers */
+ AM_RANGE(0x108000, 0x108007) AM_WRITEONLY AM_BASE_MEMBER(gaelco_state, vregs) /* Video Registers */
// AM_RANGE(0x10800c, 0x10800d) AM_WRITE(watchdog_reset_w) /* INT 6 ACK/Watchdog timer */
AM_RANGE(0x200000, 0x2007ff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram) /* Palette */
AM_RANGE(0x440000, 0x440fff) AM_RAM AM_BASE_MEMBER(gaelco_state, spriteram) /* Sprite RAM */
@@ -159,7 +159,7 @@ static ADDRESS_MAP_START( squash_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x000000, 0x0fffff) AM_ROM /* ROM */
AM_RANGE(0x100000, 0x101fff) AM_RAM_WRITE(gaelco_vram_encrypted_w) AM_BASE_MEMBER(gaelco_state, videoram) /* Video RAM */
AM_RANGE(0x102000, 0x103fff) AM_RAM_WRITE(gaelco_encrypted_w) AM_BASE_MEMBER(gaelco_state, screen) /* Screen RAM */
- AM_RANGE(0x108000, 0x108007) AM_WRITE(SMH_RAM) AM_BASE_MEMBER(gaelco_state, vregs) /* Video Registers */
+ AM_RANGE(0x108000, 0x108007) AM_WRITEONLY AM_BASE_MEMBER(gaelco_state, vregs) /* Video Registers */
// AM_RANGE(0x10800c, 0x10800d) AM_WRITE(watchdog_reset_w) /* INT 6 ACK/Watchdog timer */
AM_RANGE(0x200000, 0x2007ff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram) /* Palette */
AM_RANGE(0x440000, 0x440fff) AM_RAM AM_BASE_MEMBER(gaelco_state, spriteram) /* Sprite RAM */
@@ -176,7 +176,7 @@ static ADDRESS_MAP_START( thoop_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x000000, 0x0fffff) AM_ROM /* ROM */
AM_RANGE(0x100000, 0x101fff) AM_RAM_WRITE(thoop_vram_encrypted_w) AM_BASE_MEMBER(gaelco_state, videoram) /* Video RAM */
AM_RANGE(0x102000, 0x103fff) AM_RAM_WRITE(thoop_encrypted_w) AM_BASE_MEMBER(gaelco_state, screen) /* Screen RAM */
- AM_RANGE(0x108000, 0x108007) AM_WRITE(SMH_RAM) AM_BASE_MEMBER(gaelco_state, vregs) /* Video Registers */
+ AM_RANGE(0x108000, 0x108007) AM_WRITEONLY AM_BASE_MEMBER(gaelco_state, vregs) /* Video Registers */
// AM_RANGE(0x10800c, 0x10800d) AM_WRITE(watchdog_reset_w) /* INT 6 ACK/Watchdog timer */
AM_RANGE(0x200000, 0x2007ff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram) /* Palette */
AM_RANGE(0x440000, 0x440fff) AM_RAM AM_BASE_MEMBER(gaelco_state, spriteram) /* Sprite RAM */
diff --git a/src/mame/drivers/gaelco2.c b/src/mame/drivers/gaelco2.c
index b95cd116ead..94c3907c8a3 100644
--- a/src/mame/drivers/gaelco2.c
+++ b/src/mame/drivers/gaelco2.c
@@ -219,8 +219,8 @@ static ADDRESS_MAP_START( bang_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x202890, 0x2028ff) AM_DEVREADWRITE("gaelco", gaelcosnd_r, gaelcosnd_w) AM_BASE(&gaelco_sndregs) /* Sound Registers */
AM_RANGE(0x200000, 0x20ffff) AM_RAM_WRITE(gaelco2_vram_w) AM_BASE_SIZE_GENERIC(spriteram) /* Video RAM */
AM_RANGE(0x210000, 0x211fff) AM_RAM_WRITE(gaelco2_palette_w) AM_BASE_GENERIC(paletteram) /* Palette */
- AM_RANGE(0x218004, 0x218009) AM_READ(SMH_RAM) /* Video Registers */
- AM_RANGE(0x218004, 0x218007) AM_WRITE(SMH_RAM) AM_BASE(&gaelco2_vregs) /* Video Registers */
+ AM_RANGE(0x218004, 0x218009) AM_READONLY /* Video Registers */
+ AM_RANGE(0x218004, 0x218007) AM_WRITEONLY AM_BASE(&gaelco2_vregs) /* Video Registers */
AM_RANGE(0x218008, 0x218009) AM_WRITENOP /* CLR INT Video */
AM_RANGE(0x300000, 0x300001) AM_READ_PORT("P1")
AM_RANGE(0x300002, 0x300003) AM_READNOP /* Random number generator? */
@@ -643,7 +643,7 @@ static ADDRESS_MAP_START( touchgo_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x300004, 0x300005) AM_READ_PORT("IN2") /* COINSW + Input 3P */
AM_RANGE(0x300006, 0x300007) AM_READ_PORT("IN3") /* SERVICESW + Input 4P */
AM_RANGE(0x500000, 0x50001f) AM_WRITE(touchgo_coin_w) /* Coin counters */
- AM_RANGE(0xfefffa, 0xfefffb) AM_READWRITE(dallas_kludge_r, SMH_RAM) /* DS5002FP related patch */
+ AM_RANGE(0xfefffa, 0xfefffb) AM_RAM_READ(dallas_kludge_r) /* DS5002FP related patch */
AM_RANGE(0xfe0000, 0xfeffff) AM_RAM /* Work RAM */
ADDRESS_MAP_END
diff --git a/src/mame/drivers/gal3.c b/src/mame/drivers/gal3.c
index 665af4dd08c..9b316b1d549 100644
--- a/src/mame/drivers/gal3.c
+++ b/src/mame/drivers/gal3.c
@@ -365,14 +365,14 @@ static ADDRESS_MAP_START( cpu_mst_map, ADDRESS_SPACE_PROGRAM, 32 )
/// AM_RANGE(0x40000000, 0x4000ffff) AM_WRITE() //
AM_RANGE(0x44000000, 0x44000003) AM_READ_PORT("DSW_CPU_mst" )
AM_RANGE(0x44800000, 0x44800003) AM_READ(led_mst_r) AM_WRITE(led_mst_w) //LEDs
- AM_RANGE(0x48000000, 0x48000003) AM_READ(SMH_NOP) //irq1 v-blank ack
+ AM_RANGE(0x48000000, 0x48000003) AM_READNOP //irq1 v-blank ack
AM_RANGE(0x4c000000, 0x4c000003) AM_READNOP //irq3 ack
AM_RANGE(0x60000000, 0x60007fff) AM_READ(shareram0_r) AM_WRITE(shareram0_w) AM_BASE(&mpSharedRAM0) //CRAM
AM_RANGE(0x60010000, 0x60017fff) AM_READ(shareram0_r) AM_WRITE(shareram0_w) //Mirror
- AM_RANGE(0x80000000, 0x8007ffff) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) //512K Local RAM
+ AM_RANGE(0x80000000, 0x8007ffff) AM_RAM //512K Local RAM
/// AM_RANGE(0xc0000000, 0xc000000b) AM_WRITENOP //upload?
AM_RANGE(0xc000000c, 0xc000000f) AM_READNOP //irq2 ack
-/// AM_RANGE(0xd8000000, 0xd800000f) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) // protection or 68681?
+/// AM_RANGE(0xd8000000, 0xd800000f) AM_RAM // protection or 68681?
AM_RANGE(0xf2800000, 0xf2800fff) AM_READWRITE(rso_r, rso_w) //RSO PCB
ADDRESS_MAP_END
@@ -381,14 +381,14 @@ static ADDRESS_MAP_START( cpu_slv_map, ADDRESS_SPACE_PROGRAM, 32 )
/// AM_RANGE(0x40000000, 0x4000ffff) AM_WRITE() //
AM_RANGE(0x44000000, 0x44000003) AM_READ_PORT("DSW_CPU_slv" )
AM_RANGE(0x44800000, 0x44800003) AM_READ(led_slv_r) AM_WRITE(led_slv_w) //LEDs
- AM_RANGE(0x48000000, 0x48000003) AM_READ(SMH_NOP) //irq1 ack
+ AM_RANGE(0x48000000, 0x48000003) AM_READNOP //irq1 ack
/// AM_RANGE(0x50000000, 0x50000003) AM_READ() AM_WRITE()
/// AM_RANGE(0x54000000, 0x54000003) AM_READ() AM_WRITE()
AM_RANGE(0x60000000, 0x60007fff) AM_READ(shareram0_r) AM_WRITE(shareram0_w)
AM_RANGE(0x60010000, 0x60017fff) AM_READ(shareram0_r) AM_WRITE(shareram0_w)
- AM_RANGE(0x80000000, 0x8007ffff) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) //512K Local RAM
+ AM_RANGE(0x80000000, 0x8007ffff) AM_RAM //512K Local RAM
- AM_RANGE(0xf1200000, 0xf120ffff) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) //DSP RAM
+ AM_RANGE(0xf1200000, 0xf120ffff) AM_RAM //DSP RAM
/// AM_RANGE(0xf1400000, 0xf1400003) AM_WRITE(pointram_control_w)
/// AM_RANGE(0xf1440000, 0xf1440003) AM_READWRITE(pointram_data_r,pointram_data_w)
/// AM_RANGE(0x440002, 0x47ffff) AM_WRITENOP /* (frame buffer?) */
@@ -398,96 +398,96 @@ static ADDRESS_MAP_START( cpu_slv_map, ADDRESS_SPACE_PROGRAM, 32 )
AM_RANGE(0xf1740000, 0xf175ffff) AM_READWRITE(paletteram32_r,paletteram32_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0xf1760000, 0xf1760003) AM_READWRITE(namcos21_video_enable_r,namcos21_video_enable_w)
- AM_RANGE(0xf2200000, 0xf220ffff) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM)
- AM_RANGE(0xf2700000, 0xf270ffff) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) //AM_READWRITE(namco_obj16_r,namco_obj16_w)
- AM_RANGE(0xf2720000, 0xf2720007) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) //AM_READWRITE(namco_spritepos16_r,namco_spritepos16_w)
- AM_RANGE(0xf2740000, 0xf275ffff) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) //AM_READWRITE(paletteram16_r,paletteram16_w) AM_BASE_GENERIC(paletteram)
- AM_RANGE(0xf2760000, 0xf2760003) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) //AM_READWRITE(namcos21_video_enable_r,namcos21_video_enable_w)
+ AM_RANGE(0xf2200000, 0xf220ffff) AM_RAM
+ AM_RANGE(0xf2700000, 0xf270ffff) AM_RAM //AM_READWRITE(namco_obj16_r,namco_obj16_w)
+ AM_RANGE(0xf2720000, 0xf2720007) AM_RAM //AM_READWRITE(namco_spritepos16_r,namco_spritepos16_w)
+ AM_RANGE(0xf2740000, 0xf275ffff) AM_RAM //AM_READWRITE(paletteram16_r,paletteram16_w) AM_BASE_GENERIC(paletteram)
+ AM_RANGE(0xf2760000, 0xf2760003) AM_RAM //AM_READWRITE(namcos21_video_enable_r,namcos21_video_enable_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( rs_cpu_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
- AM_RANGE(0x100000, 0x10ffff) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) //64K working RAM
+ AM_RANGE(0x100000, 0x10ffff) AM_RAM //64K working RAM
/// AM_RANGE(0x180000, 0x183fff) AM_RAM //Nvram
- AM_RANGE(0x1c0000, 0x1c0001) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) //148?
- AM_RANGE(0x1c2000, 0x1c2001) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) //?
- AM_RANGE(0x1c4000, 0x1c4001) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) //?
- AM_RANGE(0x1c6000, 0x1c6001) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) //?
- AM_RANGE(0x1c8000, 0x1c8001) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) //?
- AM_RANGE(0x1ca000, 0x1ca001) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) //?
- AM_RANGE(0x1cc000, 0x1cc001) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) //?
- AM_RANGE(0x1ce000, 0x1ce001) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) //?
- AM_RANGE(0x1d2000, 0x1d2001) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) //?
- AM_RANGE(0x1d4000, 0x1d4001) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) //?
- AM_RANGE(0x1d6000, 0x1d6001) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) //?
- AM_RANGE(0x1de000, 0x1de001) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) //?
- AM_RANGE(0x1e4000, 0x1e4001) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) //?
- AM_RANGE(0x1e6000, 0x1e6001) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) //?
-
- AM_RANGE(0x200000, 0x200001) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) //?
-
- AM_RANGE(0x2c0000, 0x2c0001) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) //?
- AM_RANGE(0x2c0800, 0x2c0801) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) //?
- AM_RANGE(0x2c1000, 0x2c1001) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) //?
- AM_RANGE(0x2c1800, 0x2c1801) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) //?
- AM_RANGE(0x2c2000, 0x2c2001) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) //?
- AM_RANGE(0x2c2800, 0x2c2801) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) //?
- AM_RANGE(0x2c3000, 0x2c3001) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) //?
- AM_RANGE(0x2c3800, 0x2c3801) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) //?
- AM_RANGE(0x2c4000, 0x2c4001) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) //?
-
- AM_RANGE(0x300000, 0x300fff) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) AM_BASE(&rsoSharedRAM) //shared RAM
-
- AM_RANGE(0x400000, 0x400017) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) //MC68681?
- AM_RANGE(0x480000, 0x480017) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) //?
- AM_RANGE(0x500000, 0x500017) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) //?
- AM_RANGE(0x580000, 0x580017) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) //?
- AM_RANGE(0x600000, 0x600017) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) //?
- AM_RANGE(0x680000, 0x680017) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) //?
-
- AM_RANGE(0x800000, 0x80000f) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) //?
- AM_RANGE(0x840000, 0x843fff) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) //8 bit, 139 SCI RAM?
- AM_RANGE(0x880000, 0x88000f) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) //?
- AM_RANGE(0x8c0000, 0x8c3fff) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) //8 bit
- AM_RANGE(0x900000, 0x90000f) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) //?
- AM_RANGE(0x940000, 0x943fff) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) //8 bit
- AM_RANGE(0x980000, 0x98000f) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) //?
- AM_RANGE(0x9c0000, 0x9c3fff) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) //8 bit
- AM_RANGE(0xa00000, 0xa0000f) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) //?
- AM_RANGE(0xa40000, 0xa43fff) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) //8 bit
- AM_RANGE(0xa80000, 0xa8000f) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) //?
- AM_RANGE(0xac0000, 0xac3fff) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) //8 bit
- AM_RANGE(0xb00000, 0xb0000f) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) //?
- AM_RANGE(0xb40000, 0xb43fff) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) //8 bit
- AM_RANGE(0xb80000, 0xb8000f) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) //?
- AM_RANGE(0xbc0000, 0xbc3fff) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) //8 bit
- AM_RANGE(0xc00000, 0xc0000f) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) //?
- AM_RANGE(0xc40000, 0xc43fff) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) //8 bit
-
-/// AM_RANGE(0xc44000, 0xffffff) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) /////////////
+ AM_RANGE(0x1c0000, 0x1c0001) AM_RAM //148?
+ AM_RANGE(0x1c2000, 0x1c2001) AM_RAM //?
+ AM_RANGE(0x1c4000, 0x1c4001) AM_RAM //?
+ AM_RANGE(0x1c6000, 0x1c6001) AM_RAM //?
+ AM_RANGE(0x1c8000, 0x1c8001) AM_RAM //?
+ AM_RANGE(0x1ca000, 0x1ca001) AM_RAM //?
+ AM_RANGE(0x1cc000, 0x1cc001) AM_RAM //?
+ AM_RANGE(0x1ce000, 0x1ce001) AM_RAM //?
+ AM_RANGE(0x1d2000, 0x1d2001) AM_RAM //?
+ AM_RANGE(0x1d4000, 0x1d4001) AM_RAM //?
+ AM_RANGE(0x1d6000, 0x1d6001) AM_RAM //?
+ AM_RANGE(0x1de000, 0x1de001) AM_RAM //?
+ AM_RANGE(0x1e4000, 0x1e4001) AM_RAM //?
+ AM_RANGE(0x1e6000, 0x1e6001) AM_RAM //?
+
+ AM_RANGE(0x200000, 0x200001) AM_RAM //?
+
+ AM_RANGE(0x2c0000, 0x2c0001) AM_RAM //?
+ AM_RANGE(0x2c0800, 0x2c0801) AM_RAM //?
+ AM_RANGE(0x2c1000, 0x2c1001) AM_RAM //?
+ AM_RANGE(0x2c1800, 0x2c1801) AM_RAM //?
+ AM_RANGE(0x2c2000, 0x2c2001) AM_RAM //?
+ AM_RANGE(0x2c2800, 0x2c2801) AM_RAM //?
+ AM_RANGE(0x2c3000, 0x2c3001) AM_RAM //?
+ AM_RANGE(0x2c3800, 0x2c3801) AM_RAM //?
+ AM_RANGE(0x2c4000, 0x2c4001) AM_RAM //?
+
+ AM_RANGE(0x300000, 0x300fff) AM_RAM AM_BASE(&rsoSharedRAM) //shared RAM
+
+ AM_RANGE(0x400000, 0x400017) AM_RAM //MC68681?
+ AM_RANGE(0x480000, 0x480017) AM_RAM //?
+ AM_RANGE(0x500000, 0x500017) AM_RAM //?
+ AM_RANGE(0x580000, 0x580017) AM_RAM //?
+ AM_RANGE(0x600000, 0x600017) AM_RAM //?
+ AM_RANGE(0x680000, 0x680017) AM_RAM //?
+
+ AM_RANGE(0x800000, 0x80000f) AM_RAM //?
+ AM_RANGE(0x840000, 0x843fff) AM_RAM //8 bit, 139 SCI RAM?
+ AM_RANGE(0x880000, 0x88000f) AM_RAM //?
+ AM_RANGE(0x8c0000, 0x8c3fff) AM_RAM //8 bit
+ AM_RANGE(0x900000, 0x90000f) AM_RAM //?
+ AM_RANGE(0x940000, 0x943fff) AM_RAM //8 bit
+ AM_RANGE(0x980000, 0x98000f) AM_RAM //?
+ AM_RANGE(0x9c0000, 0x9c3fff) AM_RAM //8 bit
+ AM_RANGE(0xa00000, 0xa0000f) AM_RAM //?
+ AM_RANGE(0xa40000, 0xa43fff) AM_RAM //8 bit
+ AM_RANGE(0xa80000, 0xa8000f) AM_RAM //?
+ AM_RANGE(0xac0000, 0xac3fff) AM_RAM //8 bit
+ AM_RANGE(0xb00000, 0xb0000f) AM_RAM //?
+ AM_RANGE(0xb40000, 0xb43fff) AM_RAM //8 bit
+ AM_RANGE(0xb80000, 0xb8000f) AM_RAM //?
+ AM_RANGE(0xbc0000, 0xbc3fff) AM_RAM //8 bit
+ AM_RANGE(0xc00000, 0xc0000f) AM_RAM //?
+ AM_RANGE(0xc40000, 0xc43fff) AM_RAM //8 bit
+
+/// AM_RANGE(0xc44000, 0xffffff) AM_RAM /////////////
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_cpu_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
- AM_RANGE(0x080000, 0x08ffff) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM)
-/// AM_RANGE(0x0c0000, 0x0cffff) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) //00, 20, 30, 40, 50
-/// AM_RANGE(0x100000, 0x10000f) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM)
- AM_RANGE(0x110000, 0x113fff) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM)
-/// AM_RANGE(0x120000, 0x120003) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) //2ieme byte
-/// AM_RANGE(0x200000, 0x20017f) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) //C140
+ AM_RANGE(0x080000, 0x08ffff) AM_RAM
+/// AM_RANGE(0x0c0000, 0x0cffff) AM_RAM //00, 20, 30, 40, 50
+/// AM_RANGE(0x100000, 0x10000f) AM_RAM
+ AM_RANGE(0x110000, 0x113fff) AM_RAM
+/// AM_RANGE(0x120000, 0x120003) AM_RAM //2ieme byte
+/// AM_RANGE(0x200000, 0x20017f) AM_RAM //C140
AM_RANGE(0x200000, 0x2037ff) AM_DEVREADWRITE8("c140_16a", c140_r, c140_w, 0x00ff) //C140///////////
-/// AM_RANGE(0x201000, 0x20117f) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) //C140
-/// AM_RANGE(0x202000, 0x20217f) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) //C140
-/// AM_RANGE(0x203000, 0x20317f) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) //C140
+/// AM_RANGE(0x201000, 0x20117f) AM_RAM //C140
+/// AM_RANGE(0x202000, 0x20217f) AM_RAM //C140
+/// AM_RANGE(0x203000, 0x20317f) AM_RAM //C140
AM_RANGE(0x204000, 0x2047ff) AM_DEVREADWRITE8("c140_16g", c140_r, c140_w, 0x00ff) //C140
-/// AM_RANGE(0x090000, 0xffffff) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM)
+/// AM_RANGE(0x090000, 0xffffff) AM_RAM
ADDRESS_MAP_END
static ADDRESS_MAP_START( psn_b1_cpu_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
- AM_RANGE(0x040000, 0xffffff) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM)
+ AM_RANGE(0x040000, 0xffffff) AM_RAM
ADDRESS_MAP_END
static INPUT_PORTS_START( gal3 )
diff --git a/src/mame/drivers/galaga.c b/src/mame/drivers/galaga.c
index 7109bdcc92d..af065ba1963 100644
--- a/src/mame/drivers/galaga.c
+++ b/src/mame/drivers/galaga.c
@@ -950,7 +950,7 @@ static ADDRESS_MAP_START( bosco_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x8000, 0x8fff) AM_READWRITE(bosco_videoram_r, bosco_videoram_w) AM_BASE(&bosco_videoram) /* + sprite registers */
AM_RANGE(0x9000, 0x90ff) AM_DEVREADWRITE("06xx_1", namco_06xx_data_r, namco_06xx_data_w)
AM_RANGE(0x9100, 0x9100) AM_DEVREADWRITE("06xx_1", namco_06xx_ctrl_r, namco_06xx_ctrl_w)
- AM_RANGE(0x9800, 0x980f) AM_WRITE(SMH_RAM) AM_SHARE(2) AM_BASE(&bosco_radarattr)
+ AM_RANGE(0x9800, 0x980f) AM_WRITEONLY AM_SHARE(2) AM_BASE(&bosco_radarattr)
AM_RANGE(0x9810, 0x9810) AM_WRITE(bosco_scrollx_w)
AM_RANGE(0x9820, 0x9820) AM_WRITE(bosco_scrolly_w)
AM_RANGE(0x9830, 0x9830) AM_WRITE(bosco_starcontrol_w)
@@ -1019,24 +1019,24 @@ ADDRESS_MAP_END
/* bootleg 4th CPU replacing the 5xXX chips */
static ADDRESS_MAP_START( galaga_mem4, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x0fff) AM_READWRITE(SMH_ROM, SMH_ROM)
- AM_RANGE(0x1000, 0x107f) AM_READWRITE(SMH_RAM, SMH_RAM)
+ AM_RANGE(0x0000, 0x0fff) AM_ROM
+ AM_RANGE(0x1000, 0x107f) AM_RAM
ADDRESS_MAP_END
static ADDRESS_MAP_START( battles_mem4, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x0fff) AM_READ(SMH_ROM)
+ AM_RANGE(0x0000, 0x0fff) AM_ROM
AM_RANGE(0x4000, 0x4003) AM_READ(battles_input_port_r)
AM_RANGE(0x4001, 0x4001) AM_WRITE(battles_CPU4_coin_w)
AM_RANGE(0x5000, 0x5000) AM_WRITE(battles_noise_sound_w)
AM_RANGE(0x6000, 0x6000) AM_READWRITE(battles_customio3_r, battles_customio3_w)
AM_RANGE(0x7000, 0x7000) AM_READWRITE(battles_customio_data3_r, battles_customio_data3_w)
- AM_RANGE(0x8000, 0x80ff) AM_READWRITE(SMH_RAM, SMH_RAM)
+ AM_RANGE(0x8000, 0x80ff) AM_RAM
ADDRESS_MAP_END
static ADDRESS_MAP_START( dzigzag_mem4, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x0fff) AM_READWRITE(SMH_ROM, SMH_ROM)
- AM_RANGE(0x1000, 0x107f) AM_READWRITE(SMH_RAM, SMH_RAM)
- AM_RANGE(0x4000, 0x4007) AM_READ(SMH_RAM) // dip switches? bits 0 & 1 used
+ AM_RANGE(0x0000, 0x0fff) AM_ROM
+ AM_RANGE(0x1000, 0x107f) AM_RAM
+ AM_RANGE(0x4000, 0x4007) AM_READONLY // dip switches? bits 0 & 1 used
ADDRESS_MAP_END
diff --git a/src/mame/drivers/galaxian.c b/src/mame/drivers/galaxian.c
index fb2c1147fe6..e302f406215 100644
--- a/src/mame/drivers/galaxian.c
+++ b/src/mame/drivers/galaxian.c
@@ -2430,9 +2430,9 @@ static void unmap_galaxian_sound(running_machine *machine, offs_t base)
{
const address_space *space = cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM);
- memory_install_write8_handler(space, base + 0x0004, base + 0x0007, 0, 0x07f8, (write8_space_func)SMH_UNMAP);
- memory_install_write8_handler(space, base + 0x0800, base + 0x0807, 0, 0x07f8, (write8_space_func)SMH_UNMAP);
- memory_install_write8_handler(space, base + 0x1800, base + 0x1800, 0, 0x07ff, (write8_space_func)SMH_UNMAP);
+ memory_unmap_write(space, base + 0x0004, base + 0x0007, 0, 0x07f8);
+ memory_unmap_write(space, base + 0x0800, base + 0x0807, 0, 0x07f8);
+ memory_unmap_write(space, base + 0x1800, base + 0x1800, 0, 0x07ff);
}
@@ -2457,7 +2457,7 @@ static DRIVER_INIT( nolock )
DRIVER_INIT_CALL(galaxian);
/* ...but coin lockout disabled/disconnected */
- memory_install_write8_handler(space, 0x6002, 0x6002, 0, 0x7f8, (write8_space_func)SMH_UNMAP);
+ memory_unmap_write(space, 0x6002, 0x6002, 0, 0x7f8);
}
@@ -2469,7 +2469,7 @@ static DRIVER_INIT( azurian )
common_init(machine, scramble_draw_bullet, galaxian_draw_background, NULL, NULL);
/* coin lockout disabled */
- memory_install_write8_handler(space, 0x6002, 0x6002, 0, 0x7f8, (write8_space_func)SMH_UNMAP);
+ memory_unmap_write(space, 0x6002, 0x6002, 0, 0x7f8);
}
@@ -2710,7 +2710,7 @@ static DRIVER_INIT( zigzag )
zigzag_bankswap_w(space, 0, 0);
/* coin lockout disabled */
- memory_install_write8_handler(space, 0x6002, 0x6002, 0, 0x7f8, (write8_space_func)SMH_UNMAP);
+ memory_unmap_write(space, 0x6002, 0x6002, 0, 0x7f8);
/* remove the galaxian sound hardware */
unmap_galaxian_sound(machine, 0x6000);
@@ -2736,7 +2736,7 @@ static DRIVER_INIT( checkman )
common_init(machine, galaxian_draw_bullet, galaxian_draw_background, mooncrst_extend_tile_info, mooncrst_extend_sprite_info);
/* move the interrupt enable from $b000 to $b001 */
- memory_install_write8_handler(space, 0xb000, 0xb000, 0, 0x7f8, (write8_space_func)SMH_UNMAP);
+ memory_unmap_write(space, 0xb000, 0xb000, 0, 0x7f8);
memory_install_write8_handler(space, 0xb001, 0xb001, 0, 0x7f8, irq_enable_w);
/* attach the sound command handler */
@@ -2786,7 +2786,7 @@ static DRIVER_INIT( dingoe )
common_init(machine, galaxian_draw_bullet, galaxian_draw_background, mooncrst_extend_tile_info, mooncrst_extend_sprite_info);
/* move the interrupt enable from $b000 to $b001 */
- memory_install_write8_handler(space, 0xb000, 0xb000, 0, 0x7f8, (write8_space_func)SMH_UNMAP);
+ memory_unmap_write(space, 0xb000, 0xb000, 0, 0x7f8);
memory_install_write8_handler(space, 0xb001, 0xb001, 0, 0x7f8, irq_enable_w);
/* attach the sound command handler */
@@ -2870,7 +2870,7 @@ static DRIVER_INIT( scorpnmc )
common_init(machine, galaxian_draw_bullet, galaxian_draw_background, batman2_extend_tile_info, upper_extend_sprite_info);
/* move the interrupt enable from $b000 to $b001 */
- memory_install_write8_handler(space, 0xb000, 0xb000, 0, 0x7f8, (write8_space_func)SMH_UNMAP);
+ memory_unmap_write(space, 0xb000, 0xb000, 0, 0x7f8);
memory_install_write8_handler(space, 0xb001, 0xb001, 0, 0x7f8, irq_enable_w);
/* extra ROM */
@@ -2882,7 +2882,7 @@ static DRIVER_INIT( scorpnmc )
memory_set_bankptr(machine, "bank2", auto_alloc_array(machine, UINT8, 0x800));
/* doesn't appear to use original RAM */
- memory_install_readwrite8_handler(space, 0x8000, 0x87ff, 0, 0, (read8_space_func)SMH_UNMAP, (write8_space_func)SMH_UNMAP);
+ memory_unmap_readwrite(space, 0x8000, 0x87ff, 0, 0);
}
@@ -2901,7 +2901,7 @@ static DRIVER_INIT( theend )
common_init(machine, theend_draw_bullet, galaxian_draw_background, NULL, NULL);
/* coin counter on the upper bit of port C */
- memory_install_write8_handler(space, 0x6802, 0x6802, 0, 0x7f8, (write8_space_func)SMH_UNMAP);
+ memory_unmap_write(space, 0x6802, 0x6802, 0, 0x7f8);
}
@@ -2923,7 +2923,7 @@ static DRIVER_INIT( explorer )
memory_install_write8_handler(space, 0x7000, 0x7000, 0, 0x7ff, watchdog_reset_w);
/* I/O appears to be direct, not via PPIs */
- memory_install_readwrite8_handler(space, 0x8000, 0xffff, 0, 0, (read8_space_func)SMH_UNMAP, (write8_space_func)SMH_UNMAP);
+ memory_unmap_readwrite(space, 0x8000, 0xffff, 0, 0);
memory_install_read_port_handler(space, 0x8000, 0x8000, 0, 0xffc, "IN0");
memory_install_read_port_handler(space, 0x8001, 0x8001, 0, 0xffc, "IN1");
memory_install_read_port_handler(space, 0x8002, 0x8002, 0, 0xffc, "IN2");
@@ -2953,7 +2953,7 @@ static DRIVER_INIT( atlantis )
common_init(machine, scramble_draw_bullet, scramble_draw_background, NULL, NULL);
/* watchdog is at $7800? (or is it just disabled?) */
- memory_install_read8_handler(space, 0x7000, 0x7000, 0, 0x7ff, (read8_space_func)SMH_UNMAP);
+ memory_unmap_read(space, 0x7000, 0x7000, 0, 0x7ff);
memory_install_read8_handler(space, 0x7800, 0x7800, 0, 0x7ff, watchdog_reset_r);
}
@@ -3050,7 +3050,7 @@ static DRIVER_INIT( scorpion )
memory_set_bankptr(machine, "bank1", memory_region(machine, "maincpu") + 0x5800);
/* no background related */
-// memory_install_write8_handler(space, 0x6803, 0x6803, 0, 0, (write8_space_func)SMH_NOP);
+// memory_nop_write(space, 0x6803, 0x6803, 0, 0);
memory_install_read8_handler(cputag_get_address_space(machine, "audiocpu", ADDRESS_SPACE_PROGRAM), 0x3000, 0x3000, 0, 0, scorpion_digitalker_intr_r);
/*
diff --git a/src/mame/drivers/galaxold.c b/src/mame/drivers/galaxold.c
index 8f724dc2ef1..6a1d40ceead 100644
--- a/src/mame/drivers/galaxold.c
+++ b/src/mame/drivers/galaxold.c
@@ -596,8 +596,8 @@ static ADDRESS_MAP_START( dkongjrm_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x7000, 0x7fff) AM_ROM
AM_RANGE(0x9000, 0x93ff) AM_RAM_WRITE(galaxold_videoram_w) AM_BASE(&galaxold_videoram)
AM_RANGE(0x9800, 0x983f) AM_WRITE(galaxold_attributesram_w) AM_BASE(&galaxold_attributesram)
- AM_RANGE(0x9840, 0x987f) AM_WRITE(SMH_RAM) AM_BASE(&galaxold_spriteram) AM_SIZE(&galaxold_spriteram_size)
- AM_RANGE(0x98c0, 0x98ff) AM_WRITE(SMH_RAM) AM_BASE(&galaxold_spriteram2) AM_SIZE(&galaxold_spriteram2_size)
+ AM_RANGE(0x9840, 0x987f) AM_WRITEONLY AM_BASE(&galaxold_spriteram) AM_SIZE(&galaxold_spriteram_size)
+ AM_RANGE(0x98c0, 0x98ff) AM_WRITEONLY AM_BASE(&galaxold_spriteram2) AM_SIZE(&galaxold_spriteram2_size)
AM_RANGE(0xa000, 0xa0ff) AM_READ_PORT("IN0")
AM_RANGE(0xa003, 0xa003) AM_WRITE(galaxold_coin_counter_w)
//AM_RANGE(0xa004, 0xa007) AM_WRITE(galaxian_lfo_freq_w)
@@ -622,7 +622,7 @@ static ADDRESS_MAP_START( ozon1_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x4800, 0x4bff) AM_READWRITE(galaxold_videoram_r, galaxold_videoram_w) AM_BASE(&galaxold_videoram)
AM_RANGE(0x4c00, 0x4fff) AM_WRITE(galaxold_videoram_w)
AM_RANGE(0x5000, 0x503f) AM_RAM_WRITE(galaxold_attributesram_w) AM_BASE(&galaxold_attributesram)
- AM_RANGE(0x5040, 0x505f) AM_RAM_WRITE(SMH_RAM) AM_BASE(&galaxold_spriteram) AM_SIZE(&galaxold_spriteram_size)
+ AM_RANGE(0x5040, 0x505f) AM_RAM AM_BASE(&galaxold_spriteram) AM_SIZE(&galaxold_spriteram_size)
AM_RANGE(0x6801, 0x6801) AM_WRITENOP //continuosly 0 and 1
AM_RANGE(0x6802, 0x6802) AM_WRITE(galaxold_coin_counter_w)
AM_RANGE(0x6806, 0x6806) AM_WRITENOP //only one 0 at reset
@@ -641,7 +641,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( drivfrcg, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x0fff) AM_ROM
AM_RANGE(0x1480, 0x14bf) AM_MIRROR(0x6000) AM_WRITE(galaxold_attributesram_w) AM_BASE(&galaxold_attributesram)
- AM_RANGE(0x14c0, 0x14ff) AM_MIRROR(0x6000) AM_WRITE(SMH_RAM) AM_BASE(&galaxold_spriteram) AM_SIZE(&galaxold_spriteram_size)
+ AM_RANGE(0x14c0, 0x14ff) AM_MIRROR(0x6000) AM_WRITEONLY AM_BASE(&galaxold_spriteram) AM_SIZE(&galaxold_spriteram_size)
AM_RANGE(0x1500, 0x1500) AM_MIRROR(0x6000) AM_READ_PORT("IN0")
AM_RANGE(0x1503, 0x1503) AM_MIRROR(0x6000) AM_WRITE(galaxold_coin_counter_w)
AM_RANGE(0x1580, 0x1580) AM_MIRROR(0x6000) AM_READ_PORT("IN1")
@@ -681,7 +681,7 @@ static ADDRESS_MAP_START( bongo, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xb004, 0xb004) AM_WRITE(galaxold_stars_enable_w)
AM_RANGE(0xb006, 0xb006) AM_WRITE(galaxold_flip_screen_x_w)
AM_RANGE(0xb007, 0xb007) AM_WRITE(galaxold_flip_screen_y_w)
- AM_RANGE(0xb800, 0xb800) AM_READWRITE(watchdog_reset_r, SMH_NOP)
+ AM_RANGE(0xb800, 0xb800) AM_READ(watchdog_reset_r) AM_WRITENOP
ADDRESS_MAP_END
static ADDRESS_MAP_START( bongo_io, ADDRESS_SPACE_IO, 8 )
@@ -694,7 +694,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( hunchbkg, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x0fff) AM_ROM
AM_RANGE(0x1480, 0x14bf) AM_MIRROR(0x6000) AM_RAM_WRITE(galaxold_attributesram_w) AM_BASE(&galaxold_attributesram)
- AM_RANGE(0x14c0, 0x14ff) AM_MIRROR(0x6000) AM_WRITE(SMH_RAM) AM_BASE(&galaxold_spriteram) AM_SIZE(&galaxold_spriteram_size)
+ AM_RANGE(0x14c0, 0x14ff) AM_MIRROR(0x6000) AM_WRITEONLY AM_BASE(&galaxold_spriteram) AM_SIZE(&galaxold_spriteram_size)
AM_RANGE(0x1500, 0x1500) AM_MIRROR(0x6000) AM_READ_PORT("IN0")
AM_RANGE(0x1503, 0x1503) AM_MIRROR(0x6000) AM_WRITE(galaxold_coin_counter_w)
AM_RANGE(0x1580, 0x1580) AM_MIRROR(0x6000) AM_READ_PORT("IN1")
@@ -706,7 +706,7 @@ static ADDRESS_MAP_START( hunchbkg, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x1604, 0x1604) AM_MIRROR(0x6000) AM_WRITENOP
AM_RANGE(0x1606, 0x1606) AM_MIRROR(0x6000) AM_WRITE(galaxold_flip_screen_x_w)
AM_RANGE(0x1607, 0x1607) AM_MIRROR(0x6000) AM_WRITE(galaxold_flip_screen_y_w)
- AM_RANGE(0x1680, 0x1680) AM_MIRROR(0x6000) AM_READ(SMH_NOP) AM_DEVWRITE(GAL_AUDIO, galaxian_pitch_w)
+ AM_RANGE(0x1680, 0x1680) AM_MIRROR(0x6000) AM_READNOP AM_DEVWRITE(GAL_AUDIO, galaxian_pitch_w)
AM_RANGE(0x1800, 0x1bff) AM_MIRROR(0x6000) AM_WRITE(galaxold_videoram_w) AM_BASE(&galaxold_videoram)
AM_RANGE(0x1c00, 0x1fff) AM_MIRROR(0x6000) AM_RAM
AM_RANGE(0x2000, 0x2fff) AM_ROM
@@ -726,7 +726,7 @@ static ADDRESS_MAP_START( harem_cpu1, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x4000, 0x47ff) AM_RAM
AM_RANGE(0x4800, 0x4fff) AM_READWRITE(galaxold_videoram_r, galaxold_videoram_w) AM_BASE(&galaxold_videoram)
AM_RANGE(0x5000, 0x5000) AM_WRITENOP
- AM_RANGE(0x5800, 0x5800) AM_READWRITE(SMH_NOP, interrupt_enable_w)
+ AM_RANGE(0x5800, 0x5800) AM_READNOP AM_WRITE(interrupt_enable_w)
AM_RANGE(0x5801, 0x5807) AM_WRITENOP
AM_RANGE(0x6101, 0x6101) AM_READ_PORT("IN0")
AM_RANGE(0x6102, 0x6102) AM_READ_PORT("IN1")
diff --git a/src/mame/drivers/galivan.c b/src/mame/drivers/galivan.c
index 47aa10f59fe..e82592855f8 100644
--- a/src/mame/drivers/galivan.c
+++ b/src/mame/drivers/galivan.c
@@ -1030,7 +1030,7 @@ static DRIVER_INIT( youmab )
memory_install_write8_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_IO), 0x81, 0x81, 0, 0, youmab_81_w); // ?? often, alternating values
memory_install_write8_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_IO), 0x84, 0x84, 0, 0, youmab_84_w); // ?? often, sequence..
- memory_install_write8_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0xd800, 0xd81f, 0, 0, (write8_space_func)SMH_NOP); // scrolling isn't here..
+ memory_nop_write(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0xd800, 0xd81f, 0, 0); // scrolling isn't here..
memory_install_read8_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_IO), 0x8a, 0x8a, 0, 0, youmab_8a_r); // ???
diff --git a/src/mame/drivers/galpani2.c b/src/mame/drivers/galpani2.c
index 7fa7b3fae2a..46379eb4041 100644
--- a/src/mame/drivers/galpani2.c
+++ b/src/mame/drivers/galpani2.c
@@ -363,14 +363,14 @@ static ADDRESS_MAP_START( galpani2_mem2, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x100000, 0x13ffff) AM_RAM AM_BASE(&galpani2_ram2) // Work RAM
AM_RANGE(0x400000, 0x4fffff) AM_RAM_WRITE(galpani2_bg15_w) AM_BASE(&galpani2_bg15) // bg15
AM_RANGE(0x500000, 0x5fffff) AM_RAM // bg15
- AM_RANGE(0x600000, 0x600001) AM_READWRITE(SMH_NOP, SMH_NOP ) // ? 0 at startup only
+ AM_RANGE(0x600000, 0x600001) AM_NOP // ? 0 at startup only
AM_RANGE(0x640000, 0x640001) AM_WRITENOP // ? 0 at startup only
AM_RANGE(0x680000, 0x680001) AM_WRITENOP // ? 0 at startup only
AM_RANGE(0x6c0000, 0x6c0001) AM_WRITENOP // ? 0 at startup only
AM_RANGE(0x700000, 0x700001) AM_WRITENOP // Watchdog
// AM_RANGE(0x740000, 0x740001) AM_WRITENOP // ? Reset mcu
AM_RANGE(0x780000, 0x780001) AM_WRITE8(galpani2_mcu_nmi2_w, 0x00ff) // ? 0 -> 1 -> 0 (lev 5)
- AM_RANGE(0x7c0000, 0x7c0001) AM_WRITE(SMH_RAM) AM_BASE(&galpani2_rombank ) // Rom Bank
+ AM_RANGE(0x7c0000, 0x7c0001) AM_WRITEONLY AM_BASE(&galpani2_rombank ) // Rom Bank
AM_RANGE(0x800000, 0xffffff) AM_READ(galpani2_bankedrom_r ) // Banked ROM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/galpani3.c b/src/mame/drivers/galpani3.c
index 8fdb88d3c64..436d0b8b528 100644
--- a/src/mame/drivers/galpani3.c
+++ b/src/mame/drivers/galpani3.c
@@ -820,7 +820,7 @@ static ADDRESS_MAP_START( galpani3_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x000000, 0x17ffff) AM_ROM
AM_RANGE(0x200000, 0x20ffff) AM_RAM // area [B] - Work RAM
- AM_RANGE(0x280000, 0x287fff) AM_RAM AM_WRITE(paletteram16_xGGGGGRRRRRBBBBB_word_w) AM_BASE_GENERIC(paletteram) // area [A] - palette for sprites
+ AM_RANGE(0x280000, 0x287fff) AM_RAM_WRITE(paletteram16_xGGGGGRRRRRBBBBB_word_w) AM_BASE_GENERIC(paletteram) // area [A] - palette for sprites
AM_RANGE(0x300000, 0x303fff) AM_RAM_WRITE(galpani3_suprnova_sprite32_w) AM_BASE(&galpani3_spriteram)
AM_RANGE(0x380000, 0x38003f) AM_RAM_WRITE(galpani3_suprnova_sprite32regs_w) AM_BASE(&galpani3_sprregs)
@@ -845,7 +845,7 @@ static ADDRESS_MAP_START( galpani3_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x800c18, 0x800c1b) AM_WRITE(galpani3_regs1_address_w) // ROM address of RLE data, in bytes
AM_RANGE(0x800c1e, 0x800c1f) AM_WRITE(galpani3_regs1_go_w) // ?
AM_RANGE(0x800c00, 0x800c1f) AM_READ(galpani3_regs1_r)// ? R layer regs ? see subroutine $3a03e
- AM_RANGE(0x880000, 0x8801ff) AM_RAM AM_WRITE(galpani3_framebuffer1_palette_w) AM_BASE(&galpani3_framebuffer1_palette) // palette
+ AM_RANGE(0x880000, 0x8801ff) AM_RAM_WRITE(galpani3_framebuffer1_palette_w) AM_BASE(&galpani3_framebuffer1_palette) // palette
AM_RANGE(0x900000, 0x97ffff) AM_RAM AM_BASE(&galpani3_framebuffer1)// area [D] - R area ? odd bytes only, initialized 00..ff,00..ff,...
// GRAP2 2?
@@ -860,7 +860,7 @@ static ADDRESS_MAP_START( galpani3_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0xa00c00, 0xa00c1f) AM_READ(galpani3_regs2_r) // ? G layer regs ? see subroutine $3a03e
AM_RANGE(0xa00c18, 0xa00c1b) AM_WRITE(galpani3_regs2_address_w) // ROM address of RLE data, in bytes
AM_RANGE(0xa00c1e, 0xa00c1f) AM_WRITE(galpani3_regs2_go_w) // ?
- AM_RANGE(0xa80000, 0xa801ff) AM_RAM AM_WRITE(galpani3_framebuffer2_palette_w) AM_BASE(&galpani3_framebuffer2_palette) // palette
+ AM_RANGE(0xa80000, 0xa801ff) AM_RAM_WRITE(galpani3_framebuffer2_palette_w) AM_BASE(&galpani3_framebuffer2_palette) // palette
AM_RANGE(0xb00000, 0xb7ffff) AM_RAM AM_BASE(&galpani3_framebuffer2) // area [E] - G area ? odd bytes only, initialized 00..ff,00..ff,...
// GRAP2 3?
@@ -875,7 +875,7 @@ static ADDRESS_MAP_START( galpani3_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0xc00c18, 0xc00c1b) AM_WRITE(galpani3_regs3_address_w) // ROM address of RLE data, in bytes
AM_RANGE(0xc00c1e, 0xc00c1f) AM_WRITE(galpani3_regs3_go_w) // ?
AM_RANGE(0xc00c00, 0xc00c1f) AM_READ(galpani3_regs3_r) // ? B layer regs ? see subroutine $3a03e
- AM_RANGE(0xc80000, 0xc801ff) AM_RAM AM_WRITE(galpani3_framebuffer3_palette_w) AM_BASE(&galpani3_framebuffer3_palette) // palette
+ AM_RANGE(0xc80000, 0xc801ff) AM_RAM_WRITE(galpani3_framebuffer3_palette_w) AM_BASE(&galpani3_framebuffer3_palette) // palette
AM_RANGE(0xd00000, 0xd7ffff) AM_RAM AM_BASE(&galpani3_framebuffer3) // area [F] - B area ? odd bytes only, initialized 00..ff,00..ff,...
// ?? priority / alpha buffer?
diff --git a/src/mame/drivers/galspnbl.c b/src/mame/drivers/galspnbl.c
index 49109d0c1b6..bbefa1e4efb 100644
--- a/src/mame/drivers/galspnbl.c
+++ b/src/mame/drivers/galspnbl.c
@@ -59,7 +59,7 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0xa80020, 0xa80021) AM_READ_PORT("SYSTEM") AM_WRITENOP /* w - could be watchdog, but causes resets when picture is shown */
AM_RANGE(0xa80030, 0xa80031) AM_READ_PORT("DSW1") AM_WRITENOP /* w - irq ack? */
AM_RANGE(0xa80040, 0xa80041) AM_READ_PORT("DSW2")
- AM_RANGE(0xa80050, 0xa80051) AM_WRITE(SMH_RAM) AM_BASE_MEMBER(galspnbl_state, scroll) /* ??? */
+ AM_RANGE(0xa80050, 0xa80051) AM_WRITEONLY AM_BASE_MEMBER(galspnbl_state, scroll) /* ??? */
ADDRESS_MAP_END
static ADDRESS_MAP_START( audio_map, ADDRESS_SPACE_PROGRAM, 8 )
@@ -67,7 +67,7 @@ static ADDRESS_MAP_START( audio_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xf000, 0xf7ff) AM_RAM
AM_RANGE(0xf800, 0xf800) AM_DEVREADWRITE("oki", okim6295_r, okim6295_w)
AM_RANGE(0xf810, 0xf811) AM_DEVWRITE("ymsnd", ym3812_w)
- AM_RANGE(0xfc00, 0xfc00) AM_READWRITE(SMH_NOP, SMH_NOP) /* irq ack ?? */
+ AM_RANGE(0xfc00, 0xfc00) AM_NOP /* irq ack ?? */
AM_RANGE(0xfc20, 0xfc20) AM_READ(soundlatch_r)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/ginganin.c b/src/mame/drivers/ginganin.c
index 33337541b9d..3d96b7f6b5d 100644
--- a/src/mame/drivers/ginganin.c
+++ b/src/mame/drivers/ginganin.c
@@ -147,7 +147,7 @@ static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x1800, 0x1800) AM_READ(soundlatch_r)
AM_RANGE(0x2000, 0x2001) AM_DEVWRITE("ymsnd", y8950_w)
AM_RANGE(0x2800, 0x2801) AM_DEVWRITE("aysnd", ay8910_address_data_w)
- AM_RANGE(0x4000, 0xffff) AM_READ(SMH_ROM)
+ AM_RANGE(0x4000, 0xffff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/glass.c b/src/mame/drivers/glass.c
index 44b314d7ab7..b580b876f0a 100644
--- a/src/mame/drivers/glass.c
+++ b/src/mame/drivers/glass.c
@@ -96,7 +96,7 @@ static ADDRESS_MAP_START( glass_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x000000, 0x07ffff) AM_ROM /* ROM */
AM_RANGE(0x100000, 0x101fff) AM_RAM_WRITE(glass_vram_w) AM_BASE(&glass_videoram) /* Video RAM */
AM_RANGE(0x102000, 0x102fff) AM_RAM /* Extra Video RAM */
- AM_RANGE(0x108000, 0x108007) AM_WRITE(SMH_RAM) AM_BASE(&glass_vregs) /* Video Registers */
+ AM_RANGE(0x108000, 0x108007) AM_WRITEONLY AM_BASE(&glass_vregs) /* Video Registers */
AM_RANGE(0x108008, 0x108009) AM_WRITE(clr_int_w) /* CLR INT Video */
AM_RANGE(0x200000, 0x2007ff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram) /* Palette */
AM_RANGE(0x440000, 0x440fff) AM_RAM AM_BASE(&glass_spriteram) /* Sprite RAM */
diff --git a/src/mame/drivers/goindol.c b/src/mame/drivers/goindol.c
index 25123e5417e..817b3bae77d 100644
--- a/src/mame/drivers/goindol.c
+++ b/src/mame/drivers/goindol.c
@@ -95,9 +95,9 @@ static ADDRESS_MAP_START( goindol_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xc800, 0xc800) AM_READNOP AM_WRITE(soundlatch_w) // watchdog?
AM_RANGE(0xc810, 0xc810) AM_WRITE(goindol_bankswitch_w)
AM_RANGE(0xc820, 0xc820) AM_READ_PORT("DIAL")
- AM_RANGE(0xc820, 0xd820) AM_WRITE(SMH_RAM) AM_BASE_MEMBER(goindol_state, fg_scrolly)
+ AM_RANGE(0xc820, 0xd820) AM_WRITEONLY AM_BASE_MEMBER(goindol_state, fg_scrolly)
AM_RANGE(0xc830, 0xc830) AM_READ_PORT("P1")
- AM_RANGE(0xc830, 0xd830) AM_WRITE(SMH_RAM) AM_BASE_MEMBER(goindol_state, fg_scrollx)
+ AM_RANGE(0xc830, 0xd830) AM_WRITEONLY AM_BASE_MEMBER(goindol_state, fg_scrollx)
AM_RANGE(0xc834, 0xc834) AM_READ_PORT("P2")
AM_RANGE(0xd000, 0xd03f) AM_RAM AM_BASE_SIZE_MEMBER(goindol_state, spriteram, spriteram_size)
AM_RANGE(0xd040, 0xd7ff) AM_RAM
diff --git a/src/mame/drivers/goldstar.c b/src/mame/drivers/goldstar.c
index e3aef666d11..4da9a3fc083 100644
--- a/src/mame/drivers/goldstar.c
+++ b/src/mame/drivers/goldstar.c
@@ -168,11 +168,11 @@ static ADDRESS_MAP_START( goldstar_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0xb7ff) AM_ROM
AM_RANGE(0xb800, 0xbfff) AM_RAM AM_BASE(&nvram) AM_SIZE(&nvram_size)
AM_RANGE(0xc000, 0xc7ff) AM_ROM
- AM_RANGE(0xc800, 0xcfff) AM_RAM AM_WRITE(goldstar_fg_vidram_w) AM_BASE_GENERIC(videoram)
- AM_RANGE(0xd000, 0xd7ff) AM_RAM AM_WRITE(goldstar_fg_atrram_w) AM_BASE_GENERIC(colorram)
- AM_RANGE(0xd800, 0xd9ff) AM_RAM AM_WRITE( goldstar_reel1_ram_w ) AM_BASE(&goldstar_reel1_ram)
- AM_RANGE(0xe000, 0xe1ff) AM_RAM AM_WRITE( goldstar_reel2_ram_w ) AM_BASE(&goldstar_reel2_ram)
- AM_RANGE(0xe800, 0xe9ff) AM_RAM AM_WRITE( goldstar_reel3_ram_w ) AM_BASE(&goldstar_reel3_ram)
+ AM_RANGE(0xc800, 0xcfff) AM_RAM_WRITE(goldstar_fg_vidram_w) AM_BASE_GENERIC(videoram)
+ AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE(goldstar_fg_atrram_w) AM_BASE_GENERIC(colorram)
+ AM_RANGE(0xd800, 0xd9ff) AM_RAM_WRITE( goldstar_reel1_ram_w ) AM_BASE(&goldstar_reel1_ram)
+ AM_RANGE(0xe000, 0xe1ff) AM_RAM_WRITE( goldstar_reel2_ram_w ) AM_BASE(&goldstar_reel2_ram)
+ AM_RANGE(0xe800, 0xe9ff) AM_RAM_WRITE( goldstar_reel3_ram_w ) AM_BASE(&goldstar_reel3_ram)
AM_RANGE(0xf040, 0xf07f) AM_RAM AM_BASE(&goldstar_reel1_scroll)
AM_RANGE(0xf080, 0xf0bf) AM_RAM AM_BASE(&goldstar_reel2_scroll)
AM_RANGE(0xf0c0, 0xf0ff) AM_RAM AM_BASE(&goldstar_reel3_scroll)
@@ -191,7 +191,7 @@ static ADDRESS_MAP_START( goldstar_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xf840, 0xf840) AM_DEVWRITE("aysnd", ay8910_address_w)
AM_RANGE(0xfa00, 0xfa00) AM_WRITE(goldstar_fa00_w)
AM_RANGE(0xfb00, 0xfb00) AM_DEVREADWRITE("oki", okim6295_r, okim6295_w)
- AM_RANGE(0xfd00, 0xfdff) AM_READWRITE(SMH_RAM,paletteram_BBGGGRRR_w) AM_BASE_GENERIC(paletteram)
+ AM_RANGE(0xfd00, 0xfdff) AM_RAM_WRITE(paletteram_BBGGGRRR_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0xfe00, 0xfe00) AM_READWRITE(protection_r,protection_w)
ADDRESS_MAP_END
@@ -211,11 +211,11 @@ static ADDRESS_MAP_START( ncb3_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0xb7ff) AM_ROM
AM_RANGE(0xb800, 0xbfff) AM_RAM AM_BASE(&nvram) AM_SIZE(&nvram_size)
AM_RANGE(0xc000, 0xc7ff) AM_ROM
- AM_RANGE(0xc800, 0xcfff) AM_RAM AM_WRITE(goldstar_fg_vidram_w) AM_BASE_GENERIC(videoram)
- AM_RANGE(0xd000, 0xd7ff) AM_RAM AM_WRITE(goldstar_fg_atrram_w) AM_BASE_GENERIC(colorram)
- AM_RANGE(0xd800, 0xd9ff) AM_RAM AM_WRITE(goldstar_reel1_ram_w) AM_BASE(&goldstar_reel1_ram)
- AM_RANGE(0xe000, 0xe1ff) AM_RAM AM_WRITE(goldstar_reel2_ram_w) AM_BASE(&goldstar_reel2_ram)
- AM_RANGE(0xe800, 0xe9ff) AM_RAM AM_WRITE(goldstar_reel3_ram_w) AM_BASE(&goldstar_reel3_ram)
+ AM_RANGE(0xc800, 0xcfff) AM_RAM_WRITE(goldstar_fg_vidram_w) AM_BASE_GENERIC(videoram)
+ AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE(goldstar_fg_atrram_w) AM_BASE_GENERIC(colorram)
+ AM_RANGE(0xd800, 0xd9ff) AM_RAM_WRITE(goldstar_reel1_ram_w) AM_BASE(&goldstar_reel1_ram)
+ AM_RANGE(0xe000, 0xe1ff) AM_RAM_WRITE(goldstar_reel2_ram_w) AM_BASE(&goldstar_reel2_ram)
+ AM_RANGE(0xe800, 0xe9ff) AM_RAM_WRITE(goldstar_reel3_ram_w) AM_BASE(&goldstar_reel3_ram)
AM_RANGE(0xf040, 0xf07f) AM_RAM AM_BASE(&goldstar_reel1_scroll)
AM_RANGE(0xf080, 0xf0bf) AM_RAM AM_BASE(&goldstar_reel2_scroll)
AM_RANGE(0xf100, 0xf17f) AM_RAM AM_BASE(&goldstar_reel3_scroll) // moved compared to goldstar
@@ -285,12 +285,12 @@ static ADDRESS_MAP_START( cm_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xd000, 0xd7ff) AM_RAM AM_BASE(&nvram) AM_SIZE(&nvram_size)
- AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_WRITE(goldstar_fg_vidram_w) AM_BASE_GENERIC(videoram)
- AM_RANGE(0xe800, 0xefff) AM_RAM AM_WRITE(goldstar_fg_atrram_w) AM_BASE_GENERIC(colorram)
+ AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(goldstar_fg_vidram_w) AM_BASE_GENERIC(videoram)
+ AM_RANGE(0xe800, 0xefff) AM_RAM_WRITE(goldstar_fg_atrram_w) AM_BASE_GENERIC(colorram)
- AM_RANGE(0xf000, 0xf1ff) AM_RAM AM_WRITE( goldstar_reel1_ram_w ) AM_BASE(&goldstar_reel1_ram)
- AM_RANGE(0xf200, 0xf3ff) AM_RAM AM_WRITE( goldstar_reel2_ram_w ) AM_BASE(&goldstar_reel2_ram)
- AM_RANGE(0xf400, 0xf5ff) AM_RAM AM_WRITE( goldstar_reel3_ram_w ) AM_BASE(&goldstar_reel3_ram)
+ AM_RANGE(0xf000, 0xf1ff) AM_RAM_WRITE( goldstar_reel1_ram_w ) AM_BASE(&goldstar_reel1_ram)
+ AM_RANGE(0xf200, 0xf3ff) AM_RAM_WRITE( goldstar_reel2_ram_w ) AM_BASE(&goldstar_reel2_ram)
+ AM_RANGE(0xf400, 0xf5ff) AM_RAM_WRITE( goldstar_reel3_ram_w ) AM_BASE(&goldstar_reel3_ram)
AM_RANGE(0xf600, 0xf7ff) AM_RAM
AM_RANGE(0xf800, 0xf87f) AM_RAM AM_BASE(&goldstar_reel1_scroll)
@@ -307,12 +307,12 @@ static ADDRESS_MAP_START( nfm_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xd800, 0xdfff) AM_RAM AM_BASE(&nvram) AM_SIZE(&nvram_size)
- AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_WRITE(goldstar_fg_vidram_w) AM_BASE_GENERIC(videoram)
- AM_RANGE(0xe800, 0xefff) AM_RAM AM_WRITE(goldstar_fg_atrram_w) AM_BASE_GENERIC(colorram)
+ AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(goldstar_fg_vidram_w) AM_BASE_GENERIC(videoram)
+ AM_RANGE(0xe800, 0xefff) AM_RAM_WRITE(goldstar_fg_atrram_w) AM_BASE_GENERIC(colorram)
- AM_RANGE(0xf000, 0xf1ff) AM_RAM AM_WRITE( goldstar_reel1_ram_w ) AM_BASE(&goldstar_reel1_ram)
- AM_RANGE(0xf200, 0xf3ff) AM_RAM AM_WRITE( goldstar_reel2_ram_w ) AM_BASE(&goldstar_reel2_ram)
- AM_RANGE(0xf400, 0xf5ff) AM_RAM AM_WRITE( goldstar_reel3_ram_w ) AM_BASE(&goldstar_reel3_ram)
+ AM_RANGE(0xf000, 0xf1ff) AM_RAM_WRITE( goldstar_reel1_ram_w ) AM_BASE(&goldstar_reel1_ram)
+ AM_RANGE(0xf200, 0xf3ff) AM_RAM_WRITE( goldstar_reel2_ram_w ) AM_BASE(&goldstar_reel2_ram)
+ AM_RANGE(0xf400, 0xf5ff) AM_RAM_WRITE( goldstar_reel3_ram_w ) AM_BASE(&goldstar_reel3_ram)
AM_RANGE(0xf600, 0xf7ff) AM_RAM
AM_RANGE(0xf800, 0xf87f) AM_RAM AM_BASE(&goldstar_reel1_scroll)
@@ -381,11 +381,11 @@ static WRITE8_HANDLER( lucky8_outport_w )
static ADDRESS_MAP_START( lucky8_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM AM_BASE(&nvram) AM_SIZE(&nvram_size)
- AM_RANGE(0x8800, 0x8fff) AM_RAM AM_WRITE(goldstar_fg_vidram_w) AM_BASE_GENERIC(videoram)
- AM_RANGE(0x9000, 0x97ff) AM_RAM AM_WRITE(goldstar_fg_atrram_w) AM_BASE_GENERIC(colorram)
- AM_RANGE(0x9800, 0x99ff) AM_RAM AM_WRITE(goldstar_reel1_ram_w) AM_BASE(&goldstar_reel1_ram)
- AM_RANGE(0xa000, 0xa1ff) AM_RAM AM_WRITE(goldstar_reel2_ram_w) AM_BASE(&goldstar_reel2_ram)
- AM_RANGE(0xa800, 0xa9ff) AM_RAM AM_WRITE(goldstar_reel3_ram_w) AM_BASE(&goldstar_reel3_ram)
+ AM_RANGE(0x8800, 0x8fff) AM_RAM_WRITE(goldstar_fg_vidram_w) AM_BASE_GENERIC(videoram)
+ AM_RANGE(0x9000, 0x97ff) AM_RAM_WRITE(goldstar_fg_atrram_w) AM_BASE_GENERIC(colorram)
+ AM_RANGE(0x9800, 0x99ff) AM_RAM_WRITE(goldstar_reel1_ram_w) AM_BASE(&goldstar_reel1_ram)
+ AM_RANGE(0xa000, 0xa1ff) AM_RAM_WRITE(goldstar_reel2_ram_w) AM_BASE(&goldstar_reel2_ram)
+ AM_RANGE(0xa800, 0xa9ff) AM_RAM_WRITE(goldstar_reel3_ram_w) AM_BASE(&goldstar_reel3_ram)
AM_RANGE(0xb040, 0xb07f) AM_RAM AM_BASE(&goldstar_reel1_scroll)
AM_RANGE(0xb080, 0xb0bf) AM_RAM AM_BASE(&goldstar_reel2_scroll)
AM_RANGE(0xb100, 0xb17f) AM_RAM AM_BASE(&goldstar_reel3_scroll)
@@ -403,11 +403,11 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( kkojnoli_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM /* definitelly no NVRAM */
- AM_RANGE(0x8800, 0x8fff) AM_RAM AM_WRITE(goldstar_fg_vidram_w) AM_BASE_GENERIC(videoram)
- AM_RANGE(0x9000, 0x97ff) AM_RAM AM_WRITE(goldstar_fg_atrram_w) AM_BASE_GENERIC(colorram)
- AM_RANGE(0x9800, 0x99ff) AM_RAM AM_WRITE(goldstar_reel1_ram_w) AM_BASE(&goldstar_reel1_ram)
- AM_RANGE(0xa000, 0xa1ff) AM_RAM AM_WRITE(goldstar_reel2_ram_w) AM_BASE(&goldstar_reel2_ram)
- AM_RANGE(0xa800, 0xa9ff) AM_RAM AM_WRITE(goldstar_reel3_ram_w) AM_BASE(&goldstar_reel3_ram)
+ AM_RANGE(0x8800, 0x8fff) AM_RAM_WRITE(goldstar_fg_vidram_w) AM_BASE_GENERIC(videoram)
+ AM_RANGE(0x9000, 0x97ff) AM_RAM_WRITE(goldstar_fg_atrram_w) AM_BASE_GENERIC(colorram)
+ AM_RANGE(0x9800, 0x99ff) AM_RAM_WRITE(goldstar_reel1_ram_w) AM_BASE(&goldstar_reel1_ram)
+ AM_RANGE(0xa000, 0xa1ff) AM_RAM_WRITE(goldstar_reel2_ram_w) AM_BASE(&goldstar_reel2_ram)
+ AM_RANGE(0xa800, 0xa9ff) AM_RAM_WRITE(goldstar_reel3_ram_w) AM_BASE(&goldstar_reel3_ram)
AM_RANGE(0xb040, 0xb07f) AM_RAM AM_BASE(&goldstar_reel1_scroll)
AM_RANGE(0xb080, 0xb0bf) AM_RAM AM_BASE(&goldstar_reel2_scroll)
AM_RANGE(0xb100, 0xb17f) AM_RAM AM_BASE(&goldstar_reel3_scroll)
@@ -442,11 +442,11 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( ladylinr_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM AM_BASE(&nvram) AM_SIZE(&nvram_size)
- AM_RANGE(0x8800, 0x8fff) AM_RAM AM_WRITE(goldstar_fg_vidram_w) AM_BASE_GENERIC(videoram)
- AM_RANGE(0x9000, 0x97ff) AM_RAM AM_WRITE(goldstar_fg_atrram_w) AM_BASE_GENERIC(colorram)
- AM_RANGE(0x9800, 0x99ff) AM_RAM AM_WRITE(goldstar_reel1_ram_w) AM_BASE(&goldstar_reel1_ram)
- AM_RANGE(0xa000, 0xa1ff) AM_RAM AM_WRITE(goldstar_reel2_ram_w) AM_BASE(&goldstar_reel2_ram)
- AM_RANGE(0xa800, 0xa9ff) AM_RAM AM_WRITE(goldstar_reel3_ram_w) AM_BASE(&goldstar_reel3_ram)
+ AM_RANGE(0x8800, 0x8fff) AM_RAM_WRITE(goldstar_fg_vidram_w) AM_BASE_GENERIC(videoram)
+ AM_RANGE(0x9000, 0x97ff) AM_RAM_WRITE(goldstar_fg_atrram_w) AM_BASE_GENERIC(colorram)
+ AM_RANGE(0x9800, 0x99ff) AM_RAM_WRITE(goldstar_reel1_ram_w) AM_BASE(&goldstar_reel1_ram)
+ AM_RANGE(0xa000, 0xa1ff) AM_RAM_WRITE(goldstar_reel2_ram_w) AM_BASE(&goldstar_reel2_ram)
+ AM_RANGE(0xa800, 0xa9ff) AM_RAM_WRITE(goldstar_reel3_ram_w) AM_BASE(&goldstar_reel3_ram)
AM_RANGE(0xb040, 0xb07f) AM_RAM AM_BASE(&goldstar_reel1_scroll)
AM_RANGE(0xb080, 0xb0bf) AM_RAM AM_BASE(&goldstar_reel2_scroll)
AM_RANGE(0xb100, 0xb17f) AM_RAM AM_BASE(&goldstar_reel3_scroll)
@@ -463,11 +463,11 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( wcat3_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM AM_BASE(&nvram) AM_SIZE(&nvram_size)
- AM_RANGE(0x8800, 0x8fff) AM_RAM AM_WRITE(goldstar_fg_vidram_w) AM_BASE_GENERIC(videoram)
- AM_RANGE(0x9000, 0x97ff) AM_RAM AM_WRITE(goldstar_fg_atrram_w) AM_BASE_GENERIC(colorram)
- AM_RANGE(0x9800, 0x99ff) AM_RAM AM_WRITE(goldstar_reel1_ram_w) AM_BASE(&goldstar_reel1_ram)
- AM_RANGE(0xa000, 0xa1ff) AM_RAM AM_WRITE(goldstar_reel2_ram_w) AM_BASE(&goldstar_reel2_ram)
- AM_RANGE(0xa800, 0xa9ff) AM_RAM AM_WRITE(goldstar_reel3_ram_w) AM_BASE(&goldstar_reel3_ram)
+ AM_RANGE(0x8800, 0x8fff) AM_RAM_WRITE(goldstar_fg_vidram_w) AM_BASE_GENERIC(videoram)
+ AM_RANGE(0x9000, 0x97ff) AM_RAM_WRITE(goldstar_fg_atrram_w) AM_BASE_GENERIC(colorram)
+ AM_RANGE(0x9800, 0x99ff) AM_RAM_WRITE(goldstar_reel1_ram_w) AM_BASE(&goldstar_reel1_ram)
+ AM_RANGE(0xa000, 0xa1ff) AM_RAM_WRITE(goldstar_reel2_ram_w) AM_BASE(&goldstar_reel2_ram)
+ AM_RANGE(0xa800, 0xa9ff) AM_RAM_WRITE(goldstar_reel3_ram_w) AM_BASE(&goldstar_reel3_ram)
AM_RANGE(0xb040, 0xb07f) AM_RAM AM_BASE(&goldstar_reel1_scroll)
AM_RANGE(0xb080, 0xb0bf) AM_RAM AM_BASE(&goldstar_reel2_scroll)
AM_RANGE(0xb100, 0xb17f) AM_RAM AM_BASE(&goldstar_reel3_scroll)
@@ -493,19 +493,19 @@ static READ8_HANDLER( unkch_unk_r )
// scrolling is wrong / different
static ADDRESS_MAP_START( unkch_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x9fff) AM_ROM
- AM_RANGE(0xc000, 0xc1ff) AM_READWRITE(SMH_RAM,paletteram_xBBBBBGGGGGRRRRR_split1_w) AM_BASE_GENERIC(paletteram)
- AM_RANGE(0xc800, 0xc9ff) AM_READWRITE(SMH_RAM,paletteram_xBBBBBGGGGGRRRRR_split2_w) AM_BASE_GENERIC(paletteram2)
+ AM_RANGE(0xc000, 0xc1ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_split1_w) AM_BASE_GENERIC(paletteram)
+ AM_RANGE(0xc800, 0xc9ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_split2_w) AM_BASE_GENERIC(paletteram2)
AM_RANGE(0xd000, 0xd7ff) AM_RAM AM_BASE(&nvram) AM_SIZE(&nvram_size)
AM_RANGE(0xd800, 0xdfff) AM_RAM
- AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_WRITE(goldstar_fg_vidram_w) AM_BASE_GENERIC(videoram)
- AM_RANGE(0xe800, 0xefff) AM_RAM AM_WRITE(goldstar_fg_atrram_w) AM_BASE_GENERIC(colorram)
+ AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(goldstar_fg_vidram_w) AM_BASE_GENERIC(videoram)
+ AM_RANGE(0xe800, 0xefff) AM_RAM_WRITE(goldstar_fg_atrram_w) AM_BASE_GENERIC(colorram)
- AM_RANGE(0xf000, 0xf1ff) AM_RAM AM_WRITE( goldstar_reel1_ram_w ) AM_BASE(&goldstar_reel1_ram)
- AM_RANGE(0xf200, 0xf3ff) AM_RAM AM_WRITE( goldstar_reel2_ram_w ) AM_BASE(&goldstar_reel2_ram)
- AM_RANGE(0xf400, 0xf5ff) AM_RAM AM_WRITE( goldstar_reel3_ram_w ) AM_BASE(&goldstar_reel3_ram)
+ AM_RANGE(0xf000, 0xf1ff) AM_RAM_WRITE( goldstar_reel1_ram_w ) AM_BASE(&goldstar_reel1_ram)
+ AM_RANGE(0xf200, 0xf3ff) AM_RAM_WRITE( goldstar_reel2_ram_w ) AM_BASE(&goldstar_reel2_ram)
+ AM_RANGE(0xf400, 0xf5ff) AM_RAM_WRITE( goldstar_reel3_ram_w ) AM_BASE(&goldstar_reel3_ram)
AM_RANGE(0xf600, 0xf7ff) AM_RAM
AM_RANGE(0xf800, 0xf87f) AM_RAM AM_BASE(&goldstar_reel1_scroll)
diff --git a/src/mame/drivers/gotya.c b/src/mame/drivers/gotya.c
index cd9508b222b..814ab3329fe 100644
--- a/src/mame/drivers/gotya.c
+++ b/src/mame/drivers/gotya.c
@@ -47,7 +47,7 @@ static ADDRESS_MAP_START( gotya_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x6002, 0x6002) AM_READ_PORT("DSW")
AM_RANGE(0x6004, 0x6004) AM_WRITE(gotya_video_control_w)
AM_RANGE(0x6005, 0x6005) AM_WRITE(gotya_soundlatch_w)
- AM_RANGE(0x6006, 0x6006) AM_WRITE(SMH_RAM) AM_BASE_MEMBER(gotya_state, scroll)
+ AM_RANGE(0x6006, 0x6006) AM_WRITEONLY AM_BASE_MEMBER(gotya_state, scroll)
AM_RANGE(0x6007, 0x6007) AM_WRITE(watchdog_reset_w)
AM_RANGE(0xc000, 0xc7ff) AM_RAM_WRITE(gotya_videoram_w) AM_BASE_MEMBER(gotya_state, videoram)
AM_RANGE(0xc800, 0xcfff) AM_RAM_WRITE(gotya_colorram_w) AM_BASE_MEMBER(gotya_state, colorram)
diff --git a/src/mame/drivers/gyruss.c b/src/mame/drivers/gyruss.c
index c839a98fc98..1058038b5b8 100644
--- a/src/mame/drivers/gyruss.c
+++ b/src/mame/drivers/gyruss.c
@@ -157,7 +157,7 @@ static ADDRESS_MAP_START( main_cpu1_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xc0e0, 0xc0e0) AM_READ_PORT("DSW1")
AM_RANGE(0xc100, 0xc100) AM_READ_PORT("DSW3") AM_WRITE(soundlatch_w)
AM_RANGE(0xc180, 0xc180) AM_WRITE(interrupt_enable_w)
- AM_RANGE(0xc185, 0xc185) AM_WRITE(SMH_RAM) AM_BASE_MEMBER(gyruss_state, flipscreen)
+ AM_RANGE(0xc185, 0xc185) AM_WRITEONLY AM_BASE_MEMBER(gyruss_state, flipscreen)
ADDRESS_MAP_END
static ADDRESS_MAP_START( main_cpu2_map, ADDRESS_SPACE_PROGRAM, 8 )
diff --git a/src/mame/drivers/higemaru.c b/src/mame/drivers/higemaru.c
index 9eee0cfd713..8694de303d3 100644
--- a/src/mame/drivers/higemaru.c
+++ b/src/mame/drivers/higemaru.c
@@ -38,7 +38,7 @@ static ADDRESS_MAP_START( higemaru_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xc803, 0xc804) AM_DEVWRITE("ay2", ay8910_address_data_w)
AM_RANGE(0xd000, 0xd3ff) AM_RAM_WRITE(higemaru_videoram_w) AM_BASE_MEMBER(higemaru_state, videoram)
AM_RANGE(0xd400, 0xd7ff) AM_RAM_WRITE(higemaru_colorram_w) AM_BASE_MEMBER(higemaru_state, colorram)
- AM_RANGE(0xd880, 0xd9ff) AM_RAM_WRITE(SMH_RAM) AM_BASE_SIZE_MEMBER(higemaru_state, spriteram, spriteram_size)
+ AM_RANGE(0xd880, 0xd9ff) AM_RAM AM_BASE_SIZE_MEMBER(higemaru_state, spriteram, spriteram_size)
AM_RANGE(0xe000, 0xefff) AM_RAM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/himesiki.c b/src/mame/drivers/himesiki.c
index d3118b10d38..b20de1398f0 100644
--- a/src/mame/drivers/himesiki.c
+++ b/src/mame/drivers/himesiki.c
@@ -111,8 +111,8 @@ static ADDRESS_MAP_START( himesiki_prm0, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x9fff) AM_RAM
AM_RANGE(0xa000, 0xa7ff) AM_RAM AM_BASE_MEMBER(himesiki_state, spriteram)
- AM_RANGE(0xa800, 0xafff) AM_RAM AM_WRITE(paletteram_xRRRRRGGGGGBBBBB_le_w) AM_BASE_GENERIC(paletteram)
- AM_RANGE(0xb000, 0xbfff) AM_RAM AM_WRITE(himesiki_bg_ram_w) AM_BASE_MEMBER(himesiki_state, bg_ram)
+ AM_RANGE(0xa800, 0xafff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_le_w) AM_BASE_GENERIC(paletteram)
+ AM_RANGE(0xb000, 0xbfff) AM_RAM_WRITE(himesiki_bg_ram_w) AM_BASE_MEMBER(himesiki_state, bg_ram)
AM_RANGE(0xc000, 0xffff) AM_ROMBANK("bank1")
ADDRESS_MAP_END
diff --git a/src/mame/drivers/homedata.c b/src/mame/drivers/homedata.c
index 834227d28fe..a63869ef130 100644
--- a/src/mame/drivers/homedata.c
+++ b/src/mame/drivers/homedata.c
@@ -606,7 +606,7 @@ static ADDRESS_MAP_START( reikaids_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x7801, 0x7801) AM_READ_PORT("IN0")
AM_RANGE(0x7802, 0x7802) AM_READ_PORT("IN1")
AM_RANGE(0x7803, 0x7803) AM_READ(reikaids_io_r) // coin, blitter, upd7807
- AM_RANGE(0x7ff0, 0x7ffd) AM_WRITE(SMH_RAM) AM_BASE(&homedata_vreg)
+ AM_RANGE(0x7ff0, 0x7ffd) AM_WRITEONLY AM_BASE(&homedata_vreg)
AM_RANGE(0x7ffe, 0x7ffe) AM_WRITE(reikaids_blitter_bank_w)
AM_RANGE(0x7fff, 0x7fff) AM_WRITE(reikaids_blitter_start_w)
AM_RANGE(0x8000, 0x8000) AM_WRITE(bankswitch_w)
diff --git a/src/mame/drivers/hshavoc.c b/src/mame/drivers/hshavoc.c
index 368b7e3b71c..ae127f35fcc 100644
--- a/src/mame/drivers/hshavoc.c
+++ b/src/mame/drivers/hshavoc.c
@@ -220,7 +220,7 @@ static DRIVER_INIT(hshavoc)
{
const address_space *space = cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM);
- memory_install_write16_handler(space, 0x200000, 0x201fff, 0, 0, (write16_space_func) SMH_NOP);
+ memory_nop_write(space, 0x200000, 0x201fff, 0, 0);
}
DRIVER_INIT_CALL(megadriv);
diff --git a/src/mame/drivers/hyhoo.c b/src/mame/drivers/hyhoo.c
index 3d17c515732..2c8c71e60b0 100644
--- a/src/mame/drivers/hyhoo.c
+++ b/src/mame/drivers/hyhoo.c
@@ -70,7 +70,7 @@ static ADDRESS_MAP_START( hyhoo_io_map, ADDRESS_SPACE_IO, 8 )
AM_RANGE(0x90, 0x97) AM_WRITE(hyhoo_blitter_w)
AM_RANGE(0xa0, 0xa0) AM_READWRITE(nb1413m3_inputport1_r, nb1413m3_inputportsel_w)
AM_RANGE(0xb0, 0xb0) AM_READWRITE(nb1413m3_inputport2_r, nb1413m3_sndrombank1_w)
- AM_RANGE(0xc0, 0xcf) AM_WRITE(SMH_RAM) AM_BASE(&hyhoo_clut)
+ AM_RANGE(0xc0, 0xcf) AM_WRITEONLY AM_BASE(&hyhoo_clut)
AM_RANGE(0xd0, 0xd0) AM_READNOP AM_DEVWRITE("dac", DAC_WRITE) // unknown read
AM_RANGE(0xe0, 0xe0) AM_WRITE(hyhoo_romsel_w)
AM_RANGE(0xe0, 0xe1) AM_READ(nb1413m3_gfxrom_r)
diff --git a/src/mame/drivers/hyprduel.c b/src/mame/drivers/hyprduel.c
index 623d8b86991..2c7670ce218 100644
--- a/src/mame/drivers/hyprduel.c
+++ b/src/mame/drivers/hyprduel.c
@@ -432,7 +432,7 @@ static ADDRESS_MAP_START( hyprduel_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x420000, 0x43ffff) AM_RAM_WRITE(hyprduel_vram_1_w) AM_BASE(&hyprduel_vram_1) /* Layer 1 */
AM_RANGE(0x440000, 0x45ffff) AM_RAM_WRITE(hyprduel_vram_2_w) AM_BASE(&hyprduel_vram_2) /* Layer 2 */
AM_RANGE(0x460000, 0x46ffff) AM_READ(hyprduel_bankedrom_r) /* Banked ROM */
- AM_RANGE(0x470000, 0x473fff) AM_RAM AM_WRITE(hyprduel_paletteram_w) AM_BASE_GENERIC(paletteram) /* Palette */
+ AM_RANGE(0x470000, 0x473fff) AM_RAM_WRITE(hyprduel_paletteram_w) AM_BASE_GENERIC(paletteram) /* Palette */
AM_RANGE(0x474000, 0x474fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) /* Sprites */
AM_RANGE(0x475000, 0x477fff) AM_RAM /* only used memory test */
AM_RANGE(0x478000, 0x4787ff) AM_RAM AM_BASE(&hyprduel_tiletable) AM_SIZE(&hyprduel_tiletable_size) /* Tiles Set */
@@ -460,7 +460,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( hyprduel_map2, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x000000, 0x003fff) AM_RAM AM_SHARE(1) /* shadow ($c00000 - $c03fff : vector) */
- AM_RANGE(0x004000, 0x007fff) AM_RAM AM_WRITENOP AM_SHARE(3) /* shadow ($fe4000 - $fe7fff : read only) */
+ AM_RANGE(0x004000, 0x007fff) AM_READONLY AM_WRITENOP AM_SHARE(3) /* shadow ($fe4000 - $fe7fff : read only) */
AM_RANGE(0x400000, 0x400003) AM_DEVREADWRITE8("ymsnd", ym2151_r, ym2151_w, 0x00ff )
AM_RANGE(0x400004, 0x400005) AM_DEVREADWRITE8("oki", okim6295_r, okim6295_w, 0x00ff)
AM_RANGE(0x800000, 0x800001) AM_NOP
@@ -479,7 +479,7 @@ static ADDRESS_MAP_START( magerror_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x820000, 0x83ffff) AM_RAM_WRITE(hyprduel_vram_1_w) AM_BASE(&hyprduel_vram_1) /* Layer 1 */
AM_RANGE(0x840000, 0x85ffff) AM_RAM_WRITE(hyprduel_vram_2_w) AM_BASE(&hyprduel_vram_2) /* Layer 2 */
AM_RANGE(0x860000, 0x86ffff) AM_READ(hyprduel_bankedrom_r) /* Banked ROM */
- AM_RANGE(0x870000, 0x873fff) AM_RAM AM_WRITE(hyprduel_paletteram_w) AM_BASE_GENERIC(paletteram) /* Palette */
+ AM_RANGE(0x870000, 0x873fff) AM_RAM_WRITE(hyprduel_paletteram_w) AM_BASE_GENERIC(paletteram) /* Palette */
AM_RANGE(0x874000, 0x874fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) /* Sprites */
AM_RANGE(0x875000, 0x877fff) AM_RAM /* only used memory test */
AM_RANGE(0x878000, 0x8787ff) AM_RAM AM_BASE(&hyprduel_tiletable) AM_SIZE(&hyprduel_tiletable_size) /* Tiles Set */
@@ -506,7 +506,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( magerror_map2, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x000000, 0x003fff) AM_RAM AM_SHARE(1) /* shadow ($c00000 - $c03fff : vector) */
- AM_RANGE(0x004000, 0x007fff) AM_RAM AM_WRITENOP AM_SHARE(3) /* shadow ($fe4000 - $fe7fff : read only) */
+ AM_RANGE(0x004000, 0x007fff) AM_READONLY AM_WRITENOP AM_SHARE(3) /* shadow ($fe4000 - $fe7fff : read only) */
AM_RANGE(0x400000, 0x400003) AM_NOP
AM_RANGE(0x800000, 0x800003) AM_READNOP AM_DEVWRITE8("ymsnd", ym2413_w, 0x00ff)
AM_RANGE(0x800004, 0x800005) AM_DEVREADWRITE8("oki", okim6295_r, okim6295_w, 0x00ff)
diff --git a/src/mame/drivers/igs017.c b/src/mame/drivers/igs017.c
index c622e013381..4b68b9f0da5 100644
--- a/src/mame/drivers/igs017.c
+++ b/src/mame/drivers/igs017.c
@@ -1094,7 +1094,7 @@ static ADDRESS_MAP_START( iqblocka_io, ADDRESS_SPACE_IO, 8 )
AM_RANGE( 0x0000, 0x003f ) AM_RAM // internal regs
AM_RANGE( 0x1000, 0x17ff ) AM_RAM AM_BASE_GENERIC( spriteram )
- AM_RANGE( 0x1800, 0x1bff ) AM_READWRITE( SMH_RAM, paletteram_xRRRRRGGGGGBBBBB_le_w ) AM_BASE_GENERIC(paletteram)
+ AM_RANGE( 0x1800, 0x1bff ) AM_RAM_WRITE( paletteram_xRRRRRGGGGGBBBBB_le_w ) AM_BASE_GENERIC(paletteram)
AM_RANGE( 0x1c00, 0x1fff ) AM_RAM
// AM_RANGE(0x200a, 0x200a) AM_WRITENOP
diff --git a/src/mame/drivers/ikki.c b/src/mame/drivers/ikki.c
index 48c151a8bbc..2af85a6f031 100644
--- a/src/mame/drivers/ikki.c
+++ b/src/mame/drivers/ikki.c
@@ -55,7 +55,7 @@ static ADDRESS_MAP_START( ikki_cpu1, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xe005, 0xe005) AM_READ_PORT("P2")
AM_RANGE(0xe008, 0xe008) AM_WRITE(ikki_scrn_ctrl_w)
AM_RANGE(0xe009, 0xe009) AM_WRITE(ikki_coin_counters)
- AM_RANGE(0xe00a, 0xe00b) AM_WRITE(SMH_RAM) AM_BASE(&ikki_scroll)
+ AM_RANGE(0xe00a, 0xe00b) AM_WRITEONLY AM_BASE(&ikki_scroll)
ADDRESS_MAP_END
static ADDRESS_MAP_START( ikki_cpu2, ADDRESS_SPACE_PROGRAM, 8 )
diff --git a/src/mame/drivers/imolagp.c b/src/mame/drivers/imolagp.c
index 636987d2e2c..40c6c2a72e5 100644
--- a/src/mame/drivers/imolagp.c
+++ b/src/mame/drivers/imolagp.c
@@ -321,8 +321,8 @@ static ADDRESS_MAP_START( readport_master, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( imolagp_master, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x1fff) AM_READ(SMH_ROM)
- AM_RANGE(0x2000, 0x23ff) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM)
+ AM_RANGE(0x0000, 0x1fff) AM_ROM
+ AM_RANGE(0x2000, 0x23ff) AM_RAM
AM_RANGE(0x2800, 0x2800) AM_READ_PORT("2800") /* gas */
AM_RANGE(0x2802, 0x2802) AM_READ(steerlatch_r) AM_WRITENOP
/* AM_RANGE(0x2803, 0x2803) ? */
@@ -346,11 +346,11 @@ static ADDRESS_MAP_START( readport_slave, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( imolagp_slave, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x03ff) AM_READ(SMH_ROM)
- AM_RANGE(0x0800, 0x0bff) AM_READ(SMH_ROM)
- AM_RANGE(0x1000, 0x13ff) AM_READ(SMH_ROM)
- AM_RANGE(0x1c00, 0x3fff) AM_READ(SMH_ROM)
- AM_RANGE(0x4000, 0x43ff) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) AM_BASE(&slave_workram)
+ AM_RANGE(0x0000, 0x03ff) AM_ROM
+ AM_RANGE(0x0800, 0x0bff) AM_ROM
+ AM_RANGE(0x1000, 0x13ff) AM_ROM
+ AM_RANGE(0x1c00, 0x3fff) AM_ROM
+ AM_RANGE(0x4000, 0x43ff) AM_RAM AM_BASE(&slave_workram)
AM_RANGE(0x9fff, 0xa000) AM_READ(receive_data_r)
AM_RANGE(0xc000, 0xffff) AM_WRITE(screenram_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/inufuku.c b/src/mame/drivers/inufuku.c
index ed08eaccc8b..c6ddb245db2 100644
--- a/src/mame/drivers/inufuku.c
+++ b/src/mame/drivers/inufuku.c
@@ -183,7 +183,7 @@ static ADDRESS_MAP_START( inufuku_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x280000, 0x280001) AM_WRITE(inufuku_soundcommand_w) // sound command
AM_RANGE(0x300000, 0x301fff) AM_RAM_WRITE(paletteram16_xGGGGGBBBBBRRRRR_word_w) AM_BASE_GENERIC(paletteram) // palette ram
- AM_RANGE(0x380000, 0x3801ff) AM_WRITE(SMH_RAM) AM_BASE(&inufuku_bg_rasterram) // bg raster ram
+ AM_RANGE(0x380000, 0x3801ff) AM_WRITEONLY AM_BASE(&inufuku_bg_rasterram) // bg raster ram
AM_RANGE(0x400000, 0x401fff) AM_READWRITE(inufuku_bg_videoram_r, inufuku_bg_videoram_w) AM_BASE(&inufuku_bg_videoram) // bg ram
AM_RANGE(0x402000, 0x403fff) AM_READWRITE(inufuku_text_videoram_r, inufuku_text_videoram_w) AM_BASE(&inufuku_text_videoram) // text ram
AM_RANGE(0x580000, 0x580fff) AM_RAM AM_BASE(&inufuku_spriteram1) AM_SIZE(&inufuku_spriteram1_size) // sprite table + sprite attribute
diff --git a/src/mame/drivers/irobot.c b/src/mame/drivers/irobot.c
index fbc142f545e..802c4416f47 100644
--- a/src/mame/drivers/irobot.c
+++ b/src/mame/drivers/irobot.c
@@ -134,7 +134,7 @@ static ADDRESS_MAP_START( irobot_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x1300, 0x13ff) AM_READ(irobot_control_r)
AM_RANGE(0x1400, 0x143f) AM_READWRITE(quad_pokey_r, quad_pokey_w)
AM_RANGE(0x1800, 0x18ff) AM_WRITE(irobot_paletteram_w)
- AM_RANGE(0x1900, 0x19ff) AM_WRITE(SMH_RAM) /* Watchdog reset */
+ AM_RANGE(0x1900, 0x19ff) AM_WRITEONLY /* Watchdog reset */
AM_RANGE(0x1a00, 0x1a00) AM_WRITE(irobot_clearfirq_w)
AM_RANGE(0x1b00, 0x1bff) AM_WRITE(irobot_control_w)
AM_RANGE(0x1c00, 0x1fff) AM_RAM AM_BASE_GENERIC(videoram) AM_SIZE_GENERIC(videoram)
diff --git a/src/mame/drivers/itech32.c b/src/mame/drivers/itech32.c
index dbed5d24cc2..a9a0aa3d898 100644
--- a/src/mame/drivers/itech32.c
+++ b/src/mame/drivers/itech32.c
@@ -1039,7 +1039,7 @@ AM_RANGE(0x000c00, 0x007fff) AM_MIRROR(0x40000) AM_READWRITE(test2_r, test2_w)
AM_RANGE(0x084000, 0x084003) AM_READWRITE(sound_data32_r, sound_data32_w)
// AM_RANGE(0x086000, 0x08623f) AM_RAM -- networking -- first 0x40 bytes = our data, next 0x40*8 bytes = their data, r/w on IRQ2
AM_RANGE(0x088000, 0x088003) AM_READ(drivedge_steering_r)
- AM_RANGE(0x08a000, 0x08a003) AM_READWRITE(drivedge_gas_r, SMH_NOP)
+ AM_RANGE(0x08a000, 0x08a003) AM_READ(drivedge_gas_r) AM_WRITENOP
AM_RANGE(0x08c000, 0x08c003) AM_READ_PORT("8c000")
AM_RANGE(0x08e000, 0x08e003) AM_READ_PORT("8e000") AM_WRITENOP
AM_RANGE(0x100000, 0x10000f) AM_WRITE(drivedge_zbuf_control_w) AM_BASE(&drivedge_zbuf_control)
@@ -1085,8 +1085,8 @@ static ADDRESS_MAP_START( itech020_map, ADDRESS_SPACE_PROGRAM, 32 )
AM_RANGE(0x580000, 0x59ffff) AM_RAM_WRITE(itech020_paletteram_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x600000, 0x603fff) AM_RAM AM_BASE(&nvram) AM_SIZE(&nvram_size)
/* ? */ AM_RANGE(0x61ff00, 0x61ffff) AM_WRITENOP /* Unknown Writes */
- AM_RANGE(0x680000, 0x680003) AM_READWRITE(itech020_prot_result_r, SMH_NOP)
-/* ! */ AM_RANGE(0x680800, 0x68083f) AM_RAM_WRITE(SMH_NOP) /* Serial DUART Channel A/B & Top LED sign - To Do! */
+ AM_RANGE(0x680000, 0x680003) AM_READ(itech020_prot_result_r) AM_WRITENOP
+/* ! */ AM_RANGE(0x680800, 0x68083f) AM_READONLY AM_WRITENOP /* Serial DUART Channel A/B & Top LED sign - To Do! */
AM_RANGE(0x700000, 0x700003) AM_WRITE(itech020_plane_w)
AM_RANGE(0x800000, 0xbfffff) AM_ROM AM_REGION("user1", 0) AM_BASE((UINT32 **)&main_rom)
ADDRESS_MAP_END
@@ -1119,7 +1119,7 @@ static ADDRESS_MAP_START( sound_020_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0800, 0x083f) AM_MIRROR(0x80) AM_DEVREADWRITE("ensoniq", es5506_r, es5506_w)
AM_RANGE(0x0c00, 0x0c00) AM_WRITE(sound_bank_w)
AM_RANGE(0x1400, 0x1400) AM_WRITE(firq_clear_w)
- AM_RANGE(0x1800, 0x1800) AM_READWRITE(sound_data_buffer_r, SMH_NOP)
+ AM_RANGE(0x1800, 0x1800) AM_READ(sound_data_buffer_r) AM_WRITENOP
AM_RANGE(0x2000, 0x3fff) AM_RAM
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank1")
AM_RANGE(0x8000, 0xffff) AM_ROM
@@ -3939,8 +3939,9 @@ static DRIVER_INIT( wcbowl )
memory_install_read16_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x680000, 0x680001, 0, 0, trackball_r);
- memory_install_read16_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x578000, 0x57ffff, 0, 0, (read16_space_func)SMH_NOP);
- memory_install_readwrite16_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x680080, 0x680081, 0, 0, wcbowl_prot_result_r, (write16_space_func)SMH_NOP);
+ memory_nop_read(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x578000, 0x57ffff, 0, 0);
+ memory_install_read16_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x680080, 0x680081, 0, 0, wcbowl_prot_result_r);
+ memory_nop_write(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x680080, 0x680081, 0, 0);
}
diff --git a/src/mame/drivers/itech8.c b/src/mame/drivers/itech8.c
index c925f05cfb0..80f73b1a257 100644
--- a/src/mame/drivers/itech8.c
+++ b/src/mame/drivers/itech8.c
@@ -930,7 +930,7 @@ static ADDRESS_MAP_START( gtg2_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0120, 0x0120) AM_READ_PORT("60") AM_WRITE(itech8_page_w)
AM_RANGE(0x0140, 0x015f) AM_WRITE(itech8_palette_w)
AM_RANGE(0x0140, 0x0140) AM_READ_PORT("80")
- AM_RANGE(0x0160, 0x0160) AM_WRITE(SMH_RAM) AM_BASE(&itech8_grom_bank)
+ AM_RANGE(0x0160, 0x0160) AM_WRITEONLY AM_BASE(&itech8_grom_bank)
AM_RANGE(0x0180, 0x019f) AM_READWRITE(itech8_blitter_r, blitter_w)
AM_RANGE(0x01c0, 0x01c0) AM_WRITE(gtg2_sound_data_w)
AM_RANGE(0x01e0, 0x01e0) AM_WRITE(tms34061_latch_w)
@@ -2664,7 +2664,7 @@ static DRIVER_INIT( grmatch )
{
memory_install_write8_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x0160, 0x0160, 0, 0, grmatch_palette_w);
memory_install_write8_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x0180, 0x0180, 0, 0, grmatch_xscroll_w);
- memory_install_write8_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x01e0, 0x01ff, 0, 0, (write8_space_func)SMH_UNMAP);
+ memory_unmap_write(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x01e0, 0x01ff, 0, 0);
}
diff --git a/src/mame/drivers/jack.c b/src/mame/drivers/jack.c
index f30f6242fb0..80c55d3ce2f 100644
--- a/src/mame/drivers/jack.c
+++ b/src/mame/drivers/jack.c
@@ -1425,7 +1425,7 @@ static DRIVER_INIT( striv )
memory_install_read8_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0xc000, 0xcfff, 0, 0, striv_question_r);
// Nop out unused sprites writes
- memory_install_write8_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0xb000, 0xb0ff, 0, 0, (write8_space_func)SMH_NOP);
+ memory_nop_write(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0xb000, 0xb0ff, 0, 0);
timer_rate = 128;
}
diff --git a/src/mame/drivers/jackal.c b/src/mame/drivers/jackal.c
index 838f07247f1..9509bb3965d 100644
--- a/src/mame/drivers/jackal.c
+++ b/src/mame/drivers/jackal.c
@@ -118,7 +118,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( slave_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x2000, 0x2001) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
- AM_RANGE(0x4000, 0x43ff) AM_RAM_WRITE(SMH_RAM) AM_BASE_GENERIC(paletteram) // self test only checks 0x4000-0x423f, 007327 should actually go up to 4fff
+ AM_RANGE(0x4000, 0x43ff) AM_RAM AM_BASE_GENERIC(paletteram) // self test only checks 0x4000-0x423f, 007327 should actually go up to 4fff
AM_RANGE(0x6000, 0x605f) AM_RAM // SOUND RAM (Self test check 0x6000-605f, 0x7c00-0x7fff)
AM_RANGE(0x6060, 0x7fff) AM_RAM AM_SHARE(1)
AM_RANGE(0x8000, 0xffff) AM_ROM
diff --git a/src/mame/drivers/jalmah.c b/src/mame/drivers/jalmah.c
index d02f4c7ac32..435ec05cfe0 100644
--- a/src/mame/drivers/jalmah.c
+++ b/src/mame/drivers/jalmah.c
@@ -943,7 +943,7 @@ static ADDRESS_MAP_START( urashima, ADDRESS_SPACE_PROGRAM, 16 )
// AM_RANGE(0x098000, 0x09bfff) AM_RAM_WRITE(urashima_sc2_vram_w) AM_BASE(&sc2_vram)/*unused*/
/*$9c000-$9cfff Video Registers*/
/**/AM_RANGE(0x09c000, 0x09dfff) AM_WRITE(urashima_vregs_w)
-/**///AM_RANGE(0x09c480, 0x09c49f) AM_READ(SMH_RAM) AM_WRITE(urashima_sc2vregs_w)
+/**///AM_RANGE(0x09c480, 0x09c49f) AM_RAM_WRITE(urashima_sc2vregs_w)
AM_RANGE(0x09e000, 0x0a1fff) AM_RAM_WRITE(urashima_sc3_vram_w) AM_BASE(&sc3_vram)
AM_RANGE(0x0f0000, 0x0f0fff) AM_RAM AM_BASE(&jm_shared_ram)/*shared with MCU*/
AM_RANGE(0x0f1000, 0x0fffff) AM_RAM /*Work Ram*/
diff --git a/src/mame/drivers/jchan.c b/src/mame/drivers/jchan.c
index 5ab4bbad0b0..eea35d33f06 100644
--- a/src/mame/drivers/jchan.c
+++ b/src/mame/drivers/jchan.c
@@ -533,8 +533,8 @@ static ADDRESS_MAP_START( jchan_sub, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x600000, 0x60001f) AM_RAM_WRITE(kaneko16_layers_0_regs_w) AM_BASE(&kaneko16_layers_0_regs) // Layers 0 Regs
/* background prites */
- AM_RANGE(0x700000, 0x703fff) AM_RAM AM_BASE(&jchan_spriteram_2) AM_WRITE(jchan_suprnova_sprite32_2_w)
- AM_RANGE(0x780000, 0x78003f) AM_RAM AM_BASE(&jchan_sprregs_2) AM_WRITE(jchan_suprnova_sprite32regs_2_w)
+ AM_RANGE(0x700000, 0x703fff) AM_RAM_WRITE(jchan_suprnova_sprite32_2_w) AM_BASE(&jchan_spriteram_2)
+ AM_RANGE(0x780000, 0x78003f) AM_RAM_WRITE(jchan_suprnova_sprite32regs_2_w) AM_BASE(&jchan_sprregs_2)
AM_RANGE(0x800000, 0x800003) AM_DEVWRITE8("ymz", ymz280b_w, 0x00ff) // sound
diff --git a/src/mame/drivers/jedi.c b/src/mame/drivers/jedi.c
index ae7bc699415..e24e1b35985 100644
--- a/src/mame/drivers/jedi.c
+++ b/src/mame/drivers/jedi.c
@@ -273,29 +273,29 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0c00, 0x0c00) AM_MIRROR(0x03fe) AM_READ_PORT("0c00") AM_WRITENOP
AM_RANGE(0x0c01, 0x0c01) AM_MIRROR(0x03fe) AM_READ_PORT("0c01") AM_WRITENOP
AM_RANGE(0x1000, 0x13ff) AM_NOP
- AM_RANGE(0x1400, 0x1400) AM_MIRROR(0x03ff) AM_READWRITE(jedi_audio_ack_latch_r, SMH_NOP)
- AM_RANGE(0x1800, 0x1800) AM_MIRROR(0x03ff) AM_READWRITE(a2d_data_r, SMH_NOP)
- AM_RANGE(0x1c00, 0x1c01) AM_MIRROR(0x007f) AM_READWRITE(SMH_NOP, nvram_enable_w)
- AM_RANGE(0x1c80, 0x1c82) AM_MIRROR(0x0078) AM_READWRITE(SMH_NOP, a2d_select_w)
+ AM_RANGE(0x1400, 0x1400) AM_MIRROR(0x03ff) AM_READ(jedi_audio_ack_latch_r) AM_WRITENOP
+ AM_RANGE(0x1800, 0x1800) AM_MIRROR(0x03ff) AM_READ(a2d_data_r) AM_WRITENOP
+ AM_RANGE(0x1c00, 0x1c01) AM_MIRROR(0x007f) AM_READNOP AM_WRITE(nvram_enable_w)
+ AM_RANGE(0x1c80, 0x1c82) AM_MIRROR(0x0078) AM_READNOP AM_WRITE(a2d_select_w)
AM_RANGE(0x1c83, 0x1c87) AM_MIRROR(0x0078) AM_NOP
- AM_RANGE(0x1d00, 0x1d00) AM_MIRROR(0x007f) AM_READWRITE(SMH_NOP, SMH_NOP) /* write: NVRAM store */
- AM_RANGE(0x1d80, 0x1d80) AM_MIRROR(0x007f) AM_READWRITE(SMH_NOP, watchdog_reset_w)
- AM_RANGE(0x1e00, 0x1e00) AM_MIRROR(0x007f) AM_READWRITE(SMH_NOP, main_irq_ack_w)
- AM_RANGE(0x1e80, 0x1e81) AM_MIRROR(0x0078) AM_READWRITE(SMH_NOP, jedi_coin_counter_w)
- AM_RANGE(0x1e82, 0x1e83) AM_MIRROR(0x0078) AM_READWRITE(SMH_NOP, SMH_NOP) /* write: LED control - not used */
- AM_RANGE(0x1e84, 0x1e84) AM_MIRROR(0x0078) AM_READWRITE(SMH_NOP, SMH_RAM) AM_BASE_MEMBER(jedi_state, foreground_bank)
+ AM_RANGE(0x1d00, 0x1d00) AM_MIRROR(0x007f) AM_NOP /* write: NVRAM store */
+ AM_RANGE(0x1d80, 0x1d80) AM_MIRROR(0x007f) AM_READNOP AM_WRITE(watchdog_reset_w)
+ AM_RANGE(0x1e00, 0x1e00) AM_MIRROR(0x007f) AM_READNOP AM_WRITE(main_irq_ack_w)
+ AM_RANGE(0x1e80, 0x1e81) AM_MIRROR(0x0078) AM_READNOP AM_WRITE(jedi_coin_counter_w)
+ AM_RANGE(0x1e82, 0x1e83) AM_MIRROR(0x0078) AM_NOP /* write: LED control - not used */
+ AM_RANGE(0x1e84, 0x1e84) AM_MIRROR(0x0078) AM_READNOP AM_WRITEONLY AM_BASE_MEMBER(jedi_state, foreground_bank)
AM_RANGE(0x1e85, 0x1e85) AM_MIRROR(0x0078) AM_NOP
- AM_RANGE(0x1e86, 0x1e86) AM_MIRROR(0x0078) AM_READWRITE(SMH_NOP, jedi_audio_reset_w)
- AM_RANGE(0x1e87, 0x1e87) AM_MIRROR(0x0078) AM_READWRITE(SMH_NOP, SMH_RAM) AM_BASE_MEMBER(jedi_state, video_off)
- AM_RANGE(0x1f00, 0x1f00) AM_MIRROR(0x007f) AM_READWRITE(SMH_NOP, jedi_audio_latch_w)
- AM_RANGE(0x1f80, 0x1f80) AM_MIRROR(0x007f) AM_READWRITE(SMH_NOP, rom_banksel_w)
+ AM_RANGE(0x1e86, 0x1e86) AM_MIRROR(0x0078) AM_READNOP AM_WRITE(jedi_audio_reset_w)
+ AM_RANGE(0x1e87, 0x1e87) AM_MIRROR(0x0078) AM_READNOP AM_WRITEONLY AM_BASE_MEMBER(jedi_state, video_off)
+ AM_RANGE(0x1f00, 0x1f00) AM_MIRROR(0x007f) AM_READNOP AM_WRITE(jedi_audio_latch_w)
+ AM_RANGE(0x1f80, 0x1f80) AM_MIRROR(0x007f) AM_READNOP AM_WRITE(rom_banksel_w)
AM_RANGE(0x2000, 0x27ff) AM_RAM AM_BASE_MEMBER(jedi_state, backgroundram)
AM_RANGE(0x2800, 0x2fff) AM_RAM AM_BASE_MEMBER(jedi_state, paletteram)
AM_RANGE(0x3000, 0x37bf) AM_RAM AM_BASE_MEMBER(jedi_state, foregroundram)
AM_RANGE(0x37c0, 0x3bff) AM_RAM AM_BASE_MEMBER(jedi_state, spriteram)
- AM_RANGE(0x3c00, 0x3c01) AM_MIRROR(0x00fe) AM_READWRITE(SMH_NOP, jedi_vscroll_w)
- AM_RANGE(0x3d00, 0x3d01) AM_MIRROR(0x00fe) AM_READWRITE(SMH_NOP, jedi_hscroll_w)
- AM_RANGE(0x3e00, 0x3e00) AM_MIRROR(0x01ff) AM_WRITE(SMH_RAM) AM_BASE_MEMBER(jedi_state, smoothing_table)
+ AM_RANGE(0x3c00, 0x3c01) AM_MIRROR(0x00fe) AM_READNOP AM_WRITE(jedi_vscroll_w)
+ AM_RANGE(0x3d00, 0x3d01) AM_MIRROR(0x00fe) AM_READNOP AM_WRITE(jedi_hscroll_w)
+ AM_RANGE(0x3e00, 0x3e00) AM_MIRROR(0x01ff) AM_WRITEONLY AM_BASE_MEMBER(jedi_state, smoothing_table)
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank1")
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/jongkyo.c b/src/mame/drivers/jongkyo.c
index 178dcdce0ee..3c6c561fb62 100644
--- a/src/mame/drivers/jongkyo.c
+++ b/src/mame/drivers/jongkyo.c
@@ -193,8 +193,8 @@ static WRITE8_HANDLER( unknown_w )
}
static ADDRESS_MAP_START( jongkyo_memmap, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x3fff) AM_READ(SMH_ROM) AM_WRITE(videoram2_w) // wrong, this doesn't seem to be video ram on write..
- AM_RANGE(0x4000, 0x6bff) AM_READ(SMH_ROM) // fixed rom
+ AM_RANGE(0x0000, 0x3fff) AM_ROM AM_WRITE(videoram2_w) // wrong, this doesn't seem to be video ram on write..
+ AM_RANGE(0x4000, 0x6bff) AM_ROM // fixed rom
AM_RANGE(0x6c00, 0x6fff) AM_ROMBANK("bank1") // banked (8 banks)
AM_RANGE(0x7000, 0x77ff) AM_RAM
AM_RANGE(0x8000, 0xffff) AM_RAM AM_BASE_GENERIC(videoram)
diff --git a/src/mame/drivers/junofrst.c b/src/mame/drivers/junofrst.c
index 2719abca7f9..52652d99011 100644
--- a/src/mame/drivers/junofrst.c
+++ b/src/mame/drivers/junofrst.c
@@ -187,7 +187,7 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x802c, 0x802c) AM_READ_PORT("DSW1")
AM_RANGE(0x8030, 0x8030) AM_WRITE(interrupt_enable_w)
AM_RANGE(0x8031, 0x8032) AM_WRITE(junofrst_coin_counter_w)
- AM_RANGE(0x8033, 0x8033) AM_WRITE(SMH_RAM) AM_BASE(&tutankhm_scroll) /* not used in Juno */
+ AM_RANGE(0x8033, 0x8033) AM_WRITEONLY AM_BASE(&tutankhm_scroll) /* not used in Juno */
AM_RANGE(0x8034, 0x8035) AM_WRITE(flip_screen_w)
AM_RANGE(0x8040, 0x8040) AM_WRITE(junofrst_sh_irqtrigger_w)
AM_RANGE(0x8050, 0x8050) AM_WRITE(soundlatch_w)
diff --git a/src/mame/drivers/kaneko16.c b/src/mame/drivers/kaneko16.c
index f19cd9be0eb..bdbeeaa326a 100644
--- a/src/mame/drivers/kaneko16.c
+++ b/src/mame/drivers/kaneko16.c
@@ -411,20 +411,20 @@ static ADDRESS_MAP_START( bakubrkr, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x40001e, 0x40001f) AM_DEVWRITE("oki", bakubrkr_oki_bank_sw) // OKI bank Switch
AM_RANGE(0x400200, 0x40021f) AM_DEVREADWRITE("ay2", kaneko16_YM2149_r,kaneko16_YM2149_w) // Sound
AM_RANGE(0x400400, 0x400401) AM_DEVREADWRITE8("oki", okim6295_r, okim6295_w, 0x00ff) //
- AM_RANGE(0x500000, 0x500fff) AM_READWRITE(SMH_RAM,kaneko16_vram_1_w) AM_BASE(&kaneko16_vram_1) // Layers 0
- AM_RANGE(0x501000, 0x501fff) AM_READWRITE(SMH_RAM,kaneko16_vram_0_w) AM_BASE(&kaneko16_vram_0) //
+ AM_RANGE(0x500000, 0x500fff) AM_RAM_WRITE(kaneko16_vram_1_w) AM_BASE(&kaneko16_vram_1) // Layers 0
+ AM_RANGE(0x501000, 0x501fff) AM_RAM_WRITE(kaneko16_vram_0_w) AM_BASE(&kaneko16_vram_0) //
AM_RANGE(0x502000, 0x502fff) AM_RAM AM_BASE(&kaneko16_vscroll_1) //
AM_RANGE(0x503000, 0x503fff) AM_RAM AM_BASE(&kaneko16_vscroll_0) //
- AM_RANGE(0x580000, 0x580fff) AM_READWRITE(SMH_RAM,kaneko16_vram_3_w) AM_BASE(&kaneko16_vram_3) // Layers 1
- AM_RANGE(0x581000, 0x581fff) AM_READWRITE(SMH_RAM,kaneko16_vram_2_w) AM_BASE(&kaneko16_vram_2) //
+ AM_RANGE(0x580000, 0x580fff) AM_RAM_WRITE(kaneko16_vram_3_w) AM_BASE(&kaneko16_vram_3) // Layers 1
+ AM_RANGE(0x581000, 0x581fff) AM_RAM_WRITE(kaneko16_vram_2_w) AM_BASE(&kaneko16_vram_2) //
AM_RANGE(0x582000, 0x582fff) AM_RAM AM_BASE(&kaneko16_vscroll_3) //
AM_RANGE(0x583000, 0x583fff) AM_RAM AM_BASE(&kaneko16_vscroll_2) //
AM_RANGE(0x600000, 0x601fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) // Sprites
- AM_RANGE(0x700000, 0x700fff) AM_READWRITE(SMH_RAM,paletteram16_xGGGGGRRRRRBBBBB_word_w) AM_BASE_GENERIC(paletteram) // Palette
- AM_RANGE(0x800000, 0x80001f) AM_READWRITE(SMH_RAM,kaneko16_layers_0_regs_w) AM_BASE(&kaneko16_layers_0_regs) // Layers 0 Regs
- AM_RANGE(0x900000, 0x90001f) AM_READWRITE(SMH_RAM,kaneko16_sprites_regs_w) AM_BASE(&kaneko16_sprites_regs ) // Sprites Regs
+ AM_RANGE(0x700000, 0x700fff) AM_RAM_WRITE(paletteram16_xGGGGGRRRRRBBBBB_word_w) AM_BASE_GENERIC(paletteram) // Palette
+ AM_RANGE(0x800000, 0x80001f) AM_RAM_WRITE(kaneko16_layers_0_regs_w) AM_BASE(&kaneko16_layers_0_regs) // Layers 0 Regs
+ AM_RANGE(0x900000, 0x90001f) AM_RAM_WRITE(kaneko16_sprites_regs_w) AM_BASE(&kaneko16_sprites_regs ) // Sprites Regs
AM_RANGE(0xa80000, 0xa80001) AM_READ(watchdog_reset16_r) // Watchdog
- AM_RANGE(0xb00000, 0xb0001f) AM_READWRITE(SMH_RAM,kaneko16_layers_1_regs_w) AM_BASE(&kaneko16_layers_1_regs) // Layers 1 Regs
+ AM_RANGE(0xb00000, 0xb0001f) AM_RAM_WRITE(kaneko16_layers_1_regs_w) AM_BASE(&kaneko16_layers_1_regs) // Layers 1 Regs
AM_RANGE(0xd00000, 0xd00001) AM_WRITE(kaneko16_eeprom_w) // EEPROM
AM_RANGE(0xe00000, 0xe00001) AM_READ_PORT("P1")
AM_RANGE(0xe00002, 0xe00003) AM_READ_PORT("P2")
@@ -454,7 +454,7 @@ static ADDRESS_MAP_START( blazeon, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0xc00004, 0xc00005) AM_READ_PORT("UNK")
AM_RANGE(0xc00006, 0xc00007) AM_READ_PORT("SYSTEM")
AM_RANGE(0xd00000, 0xd00001) AM_WRITE(kaneko16_coin_lockout_w) // Coin Lockout
- AM_RANGE(0xe00000, 0xe00001) AM_READWRITE(SMH_NOP, kaneko16_soundlatch_w) // Read = IRQ Ack ?
+ AM_RANGE(0xe00000, 0xe00001) AM_READNOP AM_WRITE(kaneko16_soundlatch_w) // Read = IRQ Ack ?
AM_RANGE(0xe40000, 0xe40001) AM_READNOP // IRQ Ack ?
// AM_RANGE(0xe80000, 0xe80001) AM_READNOP // IRQ Ack ?
AM_RANGE(0xec0000, 0xec0001) AM_READNOP // Lev 4 IRQ Ack ?
@@ -825,7 +825,7 @@ static WRITE16_HANDLER( brapboys_oki_bank_w )
static ADDRESS_MAP_START( shogwarr, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x000000, 0x03ffff) AM_ROM // ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM AM_BASE(&kaneko16_mainram) // Work RAM
- AM_RANGE(0x200000, 0x20ffff) AM_READWRITE(SMH_RAM,calc3_mcu_ram_w) AM_BASE(&kaneko16_mcu_ram) // Shared With MCU
+ AM_RANGE(0x200000, 0x20ffff) AM_RAM_WRITE(calc3_mcu_ram_w) AM_BASE(&kaneko16_mcu_ram) // Shared With MCU
AM_RANGE(0x280000, 0x280001) AM_WRITE(calc3_mcu_com0_w)
AM_RANGE(0x290000, 0x290001) AM_WRITE(calc3_mcu_com1_w)
AM_RANGE(0x2b0000, 0x2b0001) AM_WRITE(calc3_mcu_com2_w)
@@ -836,7 +836,7 @@ static ADDRESS_MAP_START( shogwarr, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x480000, 0x480001) AM_DEVREADWRITE8("oki2", okim6295_r, okim6295_w, 0x00ff)
AM_RANGE(0x580000, 0x581fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) // Sprites
AM_RANGE(0x600000, 0x600fff) AM_RAM_WRITE(kaneko16_vram_1_w) AM_BASE(&kaneko16_vram_1) // Layers 0
- AM_RANGE(0x601000, 0x601fff) AM_READWRITE(SMH_RAM,kaneko16_vram_0_w) AM_BASE(&kaneko16_vram_0)
+ AM_RANGE(0x601000, 0x601fff) AM_RAM_WRITE(kaneko16_vram_0_w) AM_BASE(&kaneko16_vram_0)
AM_RANGE(0x602000, 0x602fff) AM_RAM AM_BASE(&kaneko16_vscroll_1)
AM_RANGE(0x603000, 0x603fff) AM_RAM AM_BASE(&kaneko16_vscroll_0)
AM_RANGE(0x800000, 0x80000f) AM_RAM_WRITE(kaneko16_layers_0_regs_w) AM_BASE(&kaneko16_layers_0_regs) // Layers 0 Regs
diff --git a/src/mame/drivers/kickgoal.c b/src/mame/drivers/kickgoal.c
index 324095ceeae..c66317197f9 100644
--- a/src/mame/drivers/kickgoal.c
+++ b/src/mame/drivers/kickgoal.c
@@ -510,9 +510,9 @@ static ADDRESS_MAP_START( kickgoal_program_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0xa00000, 0xa03fff) AM_RAM_WRITE(kickgoal_fgram_w) AM_BASE(&kickgoal_fgram) /* FG Layer */
AM_RANGE(0xa04000, 0xa07fff) AM_RAM_WRITE(kickgoal_bgram_w) AM_BASE(&kickgoal_bgram) /* Higher BG Layer */
AM_RANGE(0xa08000, 0xa0bfff) AM_RAM_WRITE(kickgoal_bg2ram_w) AM_BASE(&kickgoal_bg2ram) /* Lower BG Layer */
- AM_RANGE(0xa0c000, 0xa0ffff) AM_RAM_WRITE(SMH_RAM) // more tilemap?
- AM_RANGE(0xa10000, 0xa1000f) AM_WRITE(SMH_RAM) AM_BASE(&kickgoal_scrram) /* Scroll Registers */
- AM_RANGE(0xb00000, 0xb007ff) AM_WRITE(SMH_RAM) AM_BASE_SIZE_GENERIC(spriteram) /* Sprites */
+ AM_RANGE(0xa0c000, 0xa0ffff) AM_RAM // more tilemap?
+ AM_RANGE(0xa10000, 0xa1000f) AM_WRITEONLY AM_BASE(&kickgoal_scrram) /* Scroll Registers */
+ AM_RANGE(0xb00000, 0xb007ff) AM_WRITEONLY AM_BASE_SIZE_GENERIC(spriteram) /* Sprites */
AM_RANGE(0xc00000, 0xc007ff) AM_RAM_WRITE(paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE_GENERIC(paletteram) /* Palette */ // actionhw reads this
AM_RANGE(0xff0000, 0xffffff) AM_RAM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/konamigv.c b/src/mame/drivers/konamigv.c
index f6b1dc05c91..3f19ec13e24 100644
--- a/src/mame/drivers/konamigv.c
+++ b/src/mame/drivers/konamigv.c
@@ -636,7 +636,7 @@ static DRIVER_INIT( btchamp )
intelflash_init( machine, 0, FLASH_SHARP_LH28F400, NULL );
memory_install_readwrite32_handler( cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x1f680080, 0x1f68008f, 0, 0, btc_trackball_r, btc_trackball_w );
- memory_install_write32_handler ( cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x1f6800e0, 0x1f6800e3, 0, 0, (write32_space_func)SMH_NOP );
+ memory_nop_write ( cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x1f6800e0, 0x1f6800e3, 0, 0 );
memory_install_readwrite32_handler( cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x1f380000, 0x1f3fffff, 0, 0, btcflash_r, btcflash_w );
DRIVER_INIT_CALL(konamigv);
diff --git a/src/mame/drivers/konamigx.c b/src/mame/drivers/konamigx.c
index 3c154cf8e63..502a6e37a46 100644
--- a/src/mame/drivers/konamigx.c
+++ b/src/mame/drivers/konamigx.c
@@ -1342,7 +1342,7 @@ static WRITE16_HANDLER(tms57002_control_word_w)
/* 68000 memory handling */
static ADDRESS_MAP_START( gxsndmap, ADDRESS_SPACE_PROGRAM, 16 )
- AM_RANGE(0x000000, 0x03ffff) AM_READ(SMH_ROM)
+ AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM AM_BASE(&gx_sndram)
AM_RANGE(0x200000, 0x2004ff) AM_READWRITE(dual539_r, dual539_w)
AM_RANGE(0x300000, 0x300001) AM_READWRITE(tms57002_data_word_r, tms57002_data_word_w)
diff --git a/src/mame/drivers/kyugo.c b/src/mame/drivers/kyugo.c
index 11de6aa0db3..127ed82f6b4 100644
--- a/src/mame/drivers/kyugo.c
+++ b/src/mame/drivers/kyugo.c
@@ -64,7 +64,7 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x8000, 0x87ff) AM_RAM_WRITE(kyugo_bgvideoram_w) AM_BASE(&kyugo_bgvideoram)
AM_RANGE(0x8800, 0x8fff) AM_RAM_WRITE(kyugo_bgattribram_w) AM_BASE(&kyugo_bgattribram)
AM_RANGE(0x9000, 0x97ff) AM_RAM_WRITE(kyugo_fgvideoram_w) AM_BASE(&kyugo_fgvideoram)
- AM_RANGE(0x9800, 0x9fff) AM_READWRITE(kyugo_spriteram_2_r, SMH_RAM) AM_BASE(&kyugo_spriteram_2)
+ AM_RANGE(0x9800, 0x9fff) AM_RAM_READ(kyugo_spriteram_2_r) AM_BASE(&kyugo_spriteram_2)
AM_RANGE(0xa000, 0xa7ff) AM_RAM AM_BASE(&kyugo_spriteram_1)
AM_RANGE(0xa800, 0xa800) AM_WRITE(kyugo_scroll_x_lo_w)
AM_RANGE(0xb000, 0xb000) AM_WRITE(kyugo_gfxctrl_w)
diff --git a/src/mame/drivers/ladybug.c b/src/mame/drivers/ladybug.c
index dac75e3a893..21c9d5b029c 100644
--- a/src/mame/drivers/ladybug.c
+++ b/src/mame/drivers/ladybug.c
@@ -90,7 +90,7 @@ WRITE8_HANDLER( sraider_misc_w );
static ADDRESS_MAP_START( ladybug_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0x6000, 0x6fff) AM_RAM
- AM_RANGE(0x7000, 0x73ff) AM_WRITE(SMH_RAM) AM_BASE_SIZE_GENERIC(spriteram)
+ AM_RANGE(0x7000, 0x73ff) AM_WRITEONLY AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x8000, 0x8fff) AM_READNOP
AM_RANGE(0x9000, 0x9000) AM_READ_PORT("IN0")
AM_RANGE(0x9001, 0x9001) AM_READ_PORT("IN1")
@@ -108,7 +108,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sraider_cpu1_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0x6000, 0x6fff) AM_RAM
- AM_RANGE(0x7000, 0x73ff) AM_WRITE(SMH_RAM) AM_BASE_SIZE_GENERIC(spriteram)
+ AM_RANGE(0x7000, 0x73ff) AM_WRITEONLY AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x8005, 0x8005) AM_READ(sraider_8005_r) // protection check?
AM_RANGE(0x8006, 0x8006) AM_WRITE(sraider_sound_low_w)
AM_RANGE(0x8007, 0x8007) AM_WRITE(sraider_sound_high_w)
@@ -128,7 +128,7 @@ static ADDRESS_MAP_START( sraider_cpu2_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x8000, 0x8000) AM_READ(sraider_sound_low_r)
AM_RANGE(0xa000, 0xa000) AM_READ(sraider_sound_high_r)
AM_RANGE(0xc000, 0xc000) AM_READNOP //some kind of sync
- AM_RANGE(0xe000, 0xe0ff) AM_WRITE(SMH_RAM) AM_BASE(&sraider_grid_data)
+ AM_RANGE(0xe000, 0xe0ff) AM_WRITEONLY AM_BASE(&sraider_grid_data)
AM_RANGE(0xe800, 0xe800) AM_WRITE(sraider_io_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/lasso.c b/src/mame/drivers/lasso.c
index efa0952518b..f92bb685b23 100644
--- a/src/mame/drivers/lasso.c
+++ b/src/mame/drivers/lasso.c
@@ -85,7 +85,7 @@ static ADDRESS_MAP_START( lasso_main_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0c00, 0x0c7f) AM_RAM AM_BASE(&lasso_spriteram) AM_SIZE(&lasso_spriteram_size)
AM_RANGE(0x1000, 0x17ff) AM_RAM AM_SHARE(1)
AM_RANGE(0x1800, 0x1800) AM_WRITE(sound_command_w)
- AM_RANGE(0x1801, 0x1801) AM_WRITE(SMH_RAM) AM_BASE(&lasso_back_color)
+ AM_RANGE(0x1801, 0x1801) AM_WRITEONLY AM_BASE(&lasso_back_color)
AM_RANGE(0x1802, 0x1802) AM_WRITE(lasso_video_control_w)
AM_RANGE(0x1804, 0x1804) AM_READ_PORT("1804")
AM_RANGE(0x1805, 0x1805) AM_READ_PORT("1805")
@@ -98,7 +98,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( lasso_audio_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x01ff) AM_RAM
AM_RANGE(0x5000, 0x7fff) AM_ROM
- AM_RANGE(0xb000, 0xb000) AM_WRITE(SMH_RAM) AM_BASE(&lasso_chip_data)
+ AM_RANGE(0xb000, 0xb000) AM_WRITEONLY AM_BASE(&lasso_chip_data)
AM_RANGE(0xb001, 0xb001) AM_WRITE(sound_select_w)
AM_RANGE(0xb004, 0xb004) AM_READ(sound_status_r)
AM_RANGE(0xb005, 0xb005) AM_READ(soundlatch_r)
@@ -121,7 +121,7 @@ static ADDRESS_MAP_START( chameleo_main_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x1000, 0x107f) AM_RAM AM_BASE(&lasso_spriteram) AM_SIZE(&lasso_spriteram_size)
AM_RANGE(0x1080, 0x10ff) AM_RAM
AM_RANGE(0x1800, 0x1800) AM_WRITE(sound_command_w)
- AM_RANGE(0x1801, 0x1801) AM_WRITE(SMH_RAM) AM_BASE(&lasso_back_color)
+ AM_RANGE(0x1801, 0x1801) AM_WRITEONLY AM_BASE(&lasso_back_color)
AM_RANGE(0x1802, 0x1802) AM_WRITE(lasso_video_control_w)
AM_RANGE(0x1804, 0x1804) AM_READ_PORT("1804")
AM_RANGE(0x1805, 0x1805) AM_READ_PORT("1805")
@@ -136,7 +136,7 @@ static ADDRESS_MAP_START( chameleo_audio_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x01ff) AM_RAM
AM_RANGE(0x1000, 0x1fff) AM_ROM
AM_RANGE(0x6000, 0x7fff) AM_ROM
- AM_RANGE(0xb000, 0xb000) AM_WRITE(SMH_RAM) AM_BASE(&lasso_chip_data)
+ AM_RANGE(0xb000, 0xb000) AM_WRITEONLY AM_BASE(&lasso_chip_data)
AM_RANGE(0xb001, 0xb001) AM_WRITE(sound_select_w)
AM_RANGE(0xb004, 0xb004) AM_READ(sound_status_r)
AM_RANGE(0xb005, 0xb005) AM_READ(soundlatch_r)
@@ -150,14 +150,14 @@ static ADDRESS_MAP_START( wwjgtin_main_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0c00, 0x0fff) AM_RAM_WRITE(lasso_colorram_w) AM_BASE(&lasso_colorram)
AM_RANGE(0x1000, 0x10ff) AM_RAM AM_BASE(&lasso_spriteram) AM_SIZE(&lasso_spriteram_size)
AM_RANGE(0x1800, 0x1800) AM_WRITE(sound_command_w)
- AM_RANGE(0x1801, 0x1801) AM_WRITE(SMH_RAM) AM_BASE(&lasso_back_color)
+ AM_RANGE(0x1801, 0x1801) AM_WRITEONLY AM_BASE(&lasso_back_color)
AM_RANGE(0x1802, 0x1802) AM_WRITE(wwjgtin_video_control_w )
AM_RANGE(0x1804, 0x1804) AM_READ_PORT("1804")
AM_RANGE(0x1805, 0x1805) AM_READ_PORT("1805")
AM_RANGE(0x1806, 0x1806) AM_READ_PORT("1806")
AM_RANGE(0x1807, 0x1807) AM_READ_PORT("1807")
- AM_RANGE(0x1c00, 0x1c03) AM_WRITE(SMH_RAM) AM_BASE(&wwjgtin_last_colors)
- AM_RANGE(0x1c04, 0x1c07) AM_WRITE(SMH_RAM) AM_BASE(&wwjgtin_track_scroll)
+ AM_RANGE(0x1c00, 0x1c03) AM_WRITEONLY AM_BASE(&wwjgtin_last_colors)
+ AM_RANGE(0x1c04, 0x1c07) AM_WRITEONLY AM_BASE(&wwjgtin_track_scroll)
AM_RANGE(0x4000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xffff) AM_ROM AM_REGION("maincpu", 0x8000)
ADDRESS_MAP_END
@@ -166,7 +166,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( wwjgtin_audio_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x01ff) AM_RAM
AM_RANGE(0x4000, 0x7fff) AM_MIRROR(0x8000) AM_ROM
- AM_RANGE(0xb000, 0xb000) AM_WRITE(SMH_RAM) AM_BASE(&lasso_chip_data)
+ AM_RANGE(0xb000, 0xb000) AM_WRITEONLY AM_BASE(&lasso_chip_data)
AM_RANGE(0xb001, 0xb001) AM_WRITE(sound_select_w)
AM_RANGE(0xb003, 0xb003) AM_DEVWRITE("dac", dac_w)
AM_RANGE(0xb004, 0xb004) AM_READ(sound_status_r)
@@ -203,7 +203,7 @@ static ADDRESS_MAP_START( pinbo_audio_io_map, ADDRESS_SPACE_IO, 8 )
AM_RANGE(0x02, 0x02) AM_DEVREAD("ay1", ay8910_r)
AM_RANGE(0x04, 0x05) AM_DEVWRITE("ay2", ay8910_address_data_w)
AM_RANGE(0x06, 0x06) AM_DEVREAD("ay2", ay8910_r)
- AM_RANGE(0x08, 0x08) AM_READWRITE(soundlatch_r, SMH_NOP) /* ??? */
+ AM_RANGE(0x08, 0x08) AM_READ(soundlatch_r) AM_WRITENOP /* ??? */
AM_RANGE(0x14, 0x14) AM_WRITENOP /* ??? */
ADDRESS_MAP_END
diff --git a/src/mame/drivers/lastfght.c b/src/mame/drivers/lastfght.c
index 888d4714811..ccec91d1743 100644
--- a/src/mame/drivers/lastfght.c
+++ b/src/mame/drivers/lastfght.c
@@ -358,7 +358,7 @@ static ADDRESS_MAP_START( lastfght_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE( 0x600002, 0x600003 ) AM_READWRITE( lastfght_sound_r, lastfght_sound_w )
AM_RANGE( 0x600006, 0x600007 ) AM_WRITE( lastfght_blit_w )
AM_RANGE( 0x600008, 0x600009 ) AM_WRITE( colordac_w )
- AM_RANGE( 0x60000a, 0x60000b ) AM_WRITE( SMH_NOP ) // colordac?
+ AM_RANGE( 0x60000a, 0x60000b ) AM_WRITENOP // colordac?
AM_RANGE( 0x800000, 0x800001 ) AM_WRITE( lastfght_sx_w )
AM_RANGE( 0x800002, 0x800003 ) AM_WRITE( lastfght_sd_w )
diff --git a/src/mame/drivers/legionna.c b/src/mame/drivers/legionna.c
index 7f26b437955..68ce03fbdbc 100644
--- a/src/mame/drivers/legionna.c
+++ b/src/mame/drivers/legionna.c
@@ -172,7 +172,7 @@ static ADDRESS_MAP_START( cupsoc_mem, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x1003ff) AM_RAM
AM_RANGE(0x100400, 0x1007ff) AM_READWRITE(cupsoc_mcu_r,cupsoc_mcu_w) AM_BASE(&cop_mcu_ram)
- AM_RANGE(0x100800, 0x100fff) AM_READWRITE(SMH_RAM,legionna_background_w) AM_BASE(&legionna_back_data)
+ AM_RANGE(0x100800, 0x100fff) AM_RAM_WRITE(legionna_background_w) AM_BASE(&legionna_back_data)
AM_RANGE(0x101000, 0x1017ff) AM_RAM_WRITE(legionna_foreground_w) AM_BASE(&legionna_fore_data)
AM_RANGE(0x101800, 0x101fff) AM_RAM_WRITE(legionna_midground_w) AM_BASE(&legionna_mid_data)
AM_RANGE(0x102000, 0x102fff) AM_RAM_WRITE(legionna_text_w) AM_BASE(&legionna_textram)
diff --git a/src/mame/drivers/liberatr.c b/src/mame/drivers/liberatr.c
index b03b60fa550..30a0309d490 100644
--- a/src/mame/drivers/liberatr.c
+++ b/src/mame/drivers/liberatr.c
@@ -216,16 +216,16 @@ static ADDRESS_MAP_START( liberatr_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x4000, 0x403f) AM_DEVREAD("earom", atari_vg_earom_r)
AM_RANGE(0x5000, 0x5000) AM_READ(liberatr_input_port_0_r)
AM_RANGE(0x5001, 0x5001) AM_READ_PORT("IN1")
- AM_RANGE(0x6000, 0x600f) AM_WRITE(SMH_RAM) AM_BASE(&liberatr_base_ram)
- AM_RANGE(0x6200, 0x621f) AM_WRITE(SMH_RAM) AM_BASE(&liberatr_colorram)
+ AM_RANGE(0x6000, 0x600f) AM_WRITEONLY AM_BASE(&liberatr_base_ram)
+ AM_RANGE(0x6200, 0x621f) AM_WRITEONLY AM_BASE(&liberatr_colorram)
AM_RANGE(0x6400, 0x6400) AM_WRITENOP
AM_RANGE(0x6600, 0x6600) AM_DEVWRITE("earom", atari_vg_earom_ctrl_w)
- AM_RANGE(0x6800, 0x6800) AM_WRITE(SMH_RAM) AM_BASE(&liberatr_planet_frame)
+ AM_RANGE(0x6800, 0x6800) AM_WRITEONLY AM_BASE(&liberatr_planet_frame)
AM_RANGE(0x6a00, 0x6a00) AM_WRITE(watchdog_reset_w)
AM_RANGE(0x6c00, 0x6c01) AM_WRITE(liberatr_led_w)
AM_RANGE(0x6c04, 0x6c04) AM_WRITE(liberatr_trackball_reset_w)
AM_RANGE(0x6c05, 0x6c06) AM_WRITE(liberatr_coin_counter_w)
- AM_RANGE(0x6c07, 0x6c07) AM_WRITE(SMH_RAM) AM_BASE(&liberatr_planet_select)
+ AM_RANGE(0x6c07, 0x6c07) AM_WRITEONLY AM_BASE(&liberatr_planet_select)
AM_RANGE(0x6e00, 0x6e3f) AM_DEVWRITE("earom", atari_vg_earom_w)
AM_RANGE(0x7000, 0x701f) AM_DEVREADWRITE("pokey2", pokey_r, pokey_w)
AM_RANGE(0x7800, 0x781f) AM_DEVREADWRITE("pokey1", pokey_r, pokey_w)
@@ -248,17 +248,17 @@ static ADDRESS_MAP_START( liberat2_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x3fff) AM_RAM_WRITE(liberatr_bitmap_w) AM_BASE(&liberatr_bitmapram) /* overlapping for my convenience */
AM_RANGE(0x4000, 0x4000) AM_READ(liberatr_input_port_0_r)
AM_RANGE(0x4001, 0x4001) AM_READ_PORT("IN1")
- AM_RANGE(0x4000, 0x400f) AM_WRITE(SMH_RAM) AM_BASE(&liberatr_base_ram)
- AM_RANGE(0x4200, 0x421f) AM_WRITE(SMH_RAM) AM_BASE(&liberatr_colorram)
+ AM_RANGE(0x4000, 0x400f) AM_WRITEONLY AM_BASE(&liberatr_base_ram)
+ AM_RANGE(0x4200, 0x421f) AM_WRITEONLY AM_BASE(&liberatr_colorram)
AM_RANGE(0x4400, 0x4400) AM_WRITENOP
AM_RANGE(0x4600, 0x4600) AM_DEVWRITE("earom", atari_vg_earom_ctrl_w)
AM_RANGE(0x4800, 0x483f) AM_DEVREAD("earom", atari_vg_earom_r)
- AM_RANGE(0x4800, 0x4800) AM_WRITE(SMH_RAM) AM_BASE(&liberatr_planet_frame)
+ AM_RANGE(0x4800, 0x4800) AM_WRITEONLY AM_BASE(&liberatr_planet_frame)
AM_RANGE(0x4a00, 0x4a00) AM_WRITE(watchdog_reset_w)
AM_RANGE(0x4c00, 0x4c01) AM_WRITE(liberatr_led_w)
AM_RANGE(0x4c04, 0x4c04) AM_WRITE(liberatr_trackball_reset_w)
AM_RANGE(0x4c05, 0x4c06) AM_WRITE(liberatr_coin_counter_w)
- AM_RANGE(0x4c07, 0x4c07) AM_WRITE(SMH_RAM) AM_BASE(&liberatr_planet_select)
+ AM_RANGE(0x4c07, 0x4c07) AM_WRITEONLY AM_BASE(&liberatr_planet_select)
AM_RANGE(0x4e00, 0x4e3f) AM_DEVWRITE("earom", atari_vg_earom_w)
AM_RANGE(0x5000, 0x501f) AM_DEVREADWRITE("pokey2", pokey_r, pokey_w)
AM_RANGE(0x5800, 0x581f) AM_DEVREADWRITE("pokey1", pokey_r, pokey_w)
diff --git a/src/mame/drivers/lockon.c b/src/mame/drivers/lockon.c
index 80dd56bc317..8b2d6a928c0 100644
--- a/src/mame/drivers/lockon.c
+++ b/src/mame/drivers/lockon.c
@@ -164,7 +164,7 @@ static ADDRESS_MAP_START( main_v30, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x0c000, 0x0cfff) AM_WRITE(lockon_fb_clut_w)
AM_RANGE(0x0e000, 0x0e001) AM_WRITE(inten_w)
AM_RANGE(0x0f000, 0x0f001) AM_WRITE(emres_w)
- AM_RANGE(0x10000, 0x1ffff) AM_READWRITE(SMH_NOP, tst_w)
+ AM_RANGE(0x10000, 0x1ffff) AM_READNOP AM_WRITE(tst_w)
AM_RANGE(0x20000, 0x2ffff) AM_READWRITE(main_z80_r, main_z80_w)
AM_RANGE(0x30000, 0x3ffff) AM_READWRITE(main_gnd_r, main_gnd_w)
AM_RANGE(0x40000, 0x4ffff) AM_READWRITE(main_obj_r, main_obj_w)
@@ -201,7 +201,7 @@ static ADDRESS_MAP_START( sound_prg, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x6fff) AM_ROM
AM_RANGE(0x7000, 0x7000) AM_WRITE(sound_vol)
- AM_RANGE(0x7400, 0x7403) AM_READWRITE(adc_r, SMH_NOP)
+ AM_RANGE(0x7400, 0x7403) AM_READ(adc_r) AM_WRITENOP
AM_RANGE(0x7800, 0x7fff) AM_MIRROR(0x8000) AM_RAM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/looping.c b/src/mame/drivers/looping.c
index cfb9b17be29..6c64b1667c3 100644
--- a/src/mame/drivers/looping.c
+++ b/src/mame/drivers/looping.c
@@ -514,8 +514,8 @@ static ADDRESS_MAP_START( looping_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x3c00, 0x3c00) AM_MIRROR(0x00f4) AM_DEVREADWRITE("aysnd", ay8910_r, ay8910_address_w)
AM_RANGE(0x3c02, 0x3c02) AM_MIRROR(0x00f4) AM_READNOP AM_DEVWRITE("aysnd", ay8910_data_w)
AM_RANGE(0x3c03, 0x3c03) AM_MIRROR(0x00f6) AM_NOP
- AM_RANGE(0x3e00, 0x3e00) AM_MIRROR(0x00f4) AM_DEVREADWRITE("tms", SMH_NOP, tms5220_data_w)
- AM_RANGE(0x3e02, 0x3e02) AM_MIRROR(0x00f4) AM_DEVREADWRITE("tms", tms5220_status_r, SMH_NOP)
+ AM_RANGE(0x3e00, 0x3e00) AM_MIRROR(0x00f4) AM_READNOP AM_DEVWRITE("tms", tms5220_data_w)
+ AM_RANGE(0x3e02, 0x3e02) AM_MIRROR(0x00f4) AM_DEVREAD("tms", tms5220_status_r) AM_WRITENOP
AM_RANGE(0x3e03, 0x3e03) AM_MIRROR(0x00f6) AM_NOP
ADDRESS_MAP_END
diff --git a/src/mame/drivers/lordgun.c b/src/mame/drivers/lordgun.c
index 5b43a293d96..402d55fee81 100644
--- a/src/mame/drivers/lordgun.c
+++ b/src/mame/drivers/lordgun.c
@@ -155,14 +155,14 @@ static ADDRESS_MAP_START( lordgun_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x31c000, 0x31c7ff) AM_RAM AM_BASE(&lordgun_scrollram) // LINE
AM_RANGE(0x400000, 0x4007ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) // ANIMATOR
AM_RANGE(0x500000, 0x500fff) AM_RAM_WRITE(paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE_GENERIC(paletteram)
- AM_RANGE(0x502000, 0x502001) AM_WRITE(SMH_RAM) AM_BASE(&lordgun_scroll_x_0)
- AM_RANGE(0x502200, 0x502201) AM_WRITE(SMH_RAM) AM_BASE(&lordgun_scroll_x_1)
- AM_RANGE(0x502400, 0x502401) AM_WRITE(SMH_RAM) AM_BASE(&lordgun_scroll_x_2)
- AM_RANGE(0x502600, 0x502601) AM_WRITE(SMH_RAM) AM_BASE(&lordgun_scroll_x_3)
- AM_RANGE(0x502800, 0x502801) AM_WRITE(SMH_RAM) AM_BASE(&lordgun_scroll_y_0)
- AM_RANGE(0x502a00, 0x502a01) AM_WRITE(SMH_RAM) AM_BASE(&lordgun_scroll_y_1)
- AM_RANGE(0x502c00, 0x502c01) AM_WRITE(SMH_RAM) AM_BASE(&lordgun_scroll_y_2)
- AM_RANGE(0x502e00, 0x502e01) AM_WRITE(SMH_RAM) AM_BASE(&lordgun_scroll_y_3)
+ AM_RANGE(0x502000, 0x502001) AM_WRITEONLY AM_BASE(&lordgun_scroll_x_0)
+ AM_RANGE(0x502200, 0x502201) AM_WRITEONLY AM_BASE(&lordgun_scroll_x_1)
+ AM_RANGE(0x502400, 0x502401) AM_WRITEONLY AM_BASE(&lordgun_scroll_x_2)
+ AM_RANGE(0x502600, 0x502601) AM_WRITEONLY AM_BASE(&lordgun_scroll_x_3)
+ AM_RANGE(0x502800, 0x502801) AM_WRITEONLY AM_BASE(&lordgun_scroll_y_0)
+ AM_RANGE(0x502a00, 0x502a01) AM_WRITEONLY AM_BASE(&lordgun_scroll_y_1)
+ AM_RANGE(0x502c00, 0x502c01) AM_WRITEONLY AM_BASE(&lordgun_scroll_y_2)
+ AM_RANGE(0x502e00, 0x502e01) AM_WRITEONLY AM_BASE(&lordgun_scroll_y_3)
AM_RANGE(0x503000, 0x503001) AM_WRITE(lordgun_priority_w)
AM_RANGE(0x503800, 0x503801) AM_READ(lordgun_gun_0_x_r)
AM_RANGE(0x503a00, 0x503a01) AM_READ(lordgun_gun_1_x_r)
@@ -186,14 +186,14 @@ static ADDRESS_MAP_START( hfh_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x31c000, 0x31c7ff) AM_RAM AM_BASE(&lordgun_scrollram) // LINE
AM_RANGE(0x400000, 0x4007ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) // ANIMATOR
AM_RANGE(0x500000, 0x500fff) AM_RAM_WRITE(paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE_GENERIC(paletteram)
- AM_RANGE(0x502000, 0x502001) AM_WRITE(SMH_RAM) AM_BASE(&lordgun_scroll_x_0)
- AM_RANGE(0x502200, 0x502201) AM_WRITE(SMH_RAM) AM_BASE(&lordgun_scroll_x_1)
- AM_RANGE(0x502400, 0x502401) AM_WRITE(SMH_RAM) AM_BASE(&lordgun_scroll_x_2)
- AM_RANGE(0x502600, 0x502601) AM_WRITE(SMH_RAM) AM_BASE(&lordgun_scroll_x_3)
- AM_RANGE(0x502800, 0x502801) AM_WRITE(SMH_RAM) AM_BASE(&lordgun_scroll_y_0)
- AM_RANGE(0x502a00, 0x502a01) AM_WRITE(SMH_RAM) AM_BASE(&lordgun_scroll_y_1)
- AM_RANGE(0x502c00, 0x502c01) AM_WRITE(SMH_RAM) AM_BASE(&lordgun_scroll_y_2)
- AM_RANGE(0x502e00, 0x502e01) AM_WRITE(SMH_RAM) AM_BASE(&lordgun_scroll_y_3)
+ AM_RANGE(0x502000, 0x502001) AM_WRITEONLY AM_BASE(&lordgun_scroll_x_0)
+ AM_RANGE(0x502200, 0x502201) AM_WRITEONLY AM_BASE(&lordgun_scroll_x_1)
+ AM_RANGE(0x502400, 0x502401) AM_WRITEONLY AM_BASE(&lordgun_scroll_x_2)
+ AM_RANGE(0x502600, 0x502601) AM_WRITEONLY AM_BASE(&lordgun_scroll_x_3)
+ AM_RANGE(0x502800, 0x502801) AM_WRITEONLY AM_BASE(&lordgun_scroll_y_0)
+ AM_RANGE(0x502a00, 0x502a01) AM_WRITEONLY AM_BASE(&lordgun_scroll_y_1)
+ AM_RANGE(0x502c00, 0x502c01) AM_WRITEONLY AM_BASE(&lordgun_scroll_y_2)
+ AM_RANGE(0x502e00, 0x502e01) AM_WRITEONLY AM_BASE(&lordgun_scroll_y_3)
AM_RANGE(0x503000, 0x503001) AM_WRITE(lordgun_priority_w)
AM_RANGE(0x504000, 0x504001) AM_WRITE(lordgun_soundlatch_w)
AM_RANGE(0x506000, 0x506007) AM_DEVREADWRITE("ppi8255_0", lordgun_ppi8255_r, lordgun_ppi8255_w)
@@ -225,7 +225,7 @@ static ADDRESS_MAP_START( lordgun_soundio_map, ADDRESS_SPACE_IO, 8 )
AM_RANGE(0x2000, 0x2000) AM_DEVREADWRITE( "oki", okim6295_r, okim6295_w )
AM_RANGE(0x3000, 0x3000) AM_READ( soundlatch2_r )
AM_RANGE(0x4000, 0x4000) AM_READ( soundlatch_r )
- AM_RANGE(0x5000, 0x5000) AM_READ( SMH_NOP )
+ AM_RANGE(0x5000, 0x5000) AM_READNOP
AM_RANGE(0x6000, 0x6000) AM_DEVWRITE( "oki", lordgun_okibank_w )
ADDRESS_MAP_END
@@ -233,7 +233,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( hfh_soundio_map, ADDRESS_SPACE_IO, 8 )
AM_RANGE(0x3000, 0x3000) AM_READ( soundlatch2_r )
AM_RANGE(0x4000, 0x4000) AM_READ( soundlatch_r )
- AM_RANGE(0x5000, 0x5000) AM_READ( SMH_NOP )
+ AM_RANGE(0x5000, 0x5000) AM_READNOP
AM_RANGE(0x7000, 0x7001) AM_DEVWRITE( "ymsnd", ym3812_w )
AM_RANGE(0x7400, 0x7400) AM_DEVREADWRITE( "oki", okim6295_r, okim6295_w )
AM_RANGE(0x7800, 0x7800) AM_DEVREADWRITE( "oki2", okim6295_r, okim6295_w )
diff --git a/src/mame/drivers/m10.c b/src/mame/drivers/m10.c
index b44920b8498..36138ec1e0e 100644
--- a/src/mame/drivers/m10.c
+++ b/src/mame/drivers/m10.c
@@ -559,7 +559,7 @@ static INTERRUPT_GEN( m15_interrupt )
static ADDRESS_MAP_START( m10_main, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x02ff) AM_RAM AM_BASE_MEMBER(m10_state, memory) /* scratch ram */
- AM_RANGE(0x1000, 0x2fff) AM_READ(SMH_ROM) AM_BASE_MEMBER(m10_state, rom)
+ AM_RANGE(0x1000, 0x2fff) AM_ROM AM_BASE_MEMBER(m10_state, rom)
AM_RANGE(0x4000, 0x43ff) AM_RAM AM_BASE_SIZE_MEMBER(m10_state, videoram, videoram_size)
AM_RANGE(0x4800, 0x4bff) AM_RAM_WRITE(m10_colorram_w) AM_BASE_MEMBER(m10_state, colorram) /* foreground colour */
AM_RANGE(0x5000, 0x53ff) AM_RAM_WRITE(m10_chargen_w) AM_BASE_MEMBER(m10_state, chargen) /* background ????? */
@@ -568,12 +568,12 @@ static ADDRESS_MAP_START( m10_main, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xa400, 0xa400) AM_WRITE(m10_ctrl_w) /* line at bottom of screen?, sound, flip screen */
AM_RANGE(0xa500, 0xa500) AM_WRITE(m10_a500_w) /* ??? */
AM_RANGE(0xa700, 0xa700) AM_READ(m10_a700_r)
- AM_RANGE(0xfc00, 0xffff) AM_READ(SMH_ROM) /* for the reset / interrupt vectors */
+ AM_RANGE(0xfc00, 0xffff) AM_ROM /* for the reset / interrupt vectors */
ADDRESS_MAP_END
static ADDRESS_MAP_START( m11_main, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x02ff) AM_RAM AM_BASE_MEMBER(m10_state, memory) /* scratch ram */
- AM_RANGE(0x1000, 0x2fff) AM_READ(SMH_ROM) AM_BASE_MEMBER(m10_state, rom)
+ AM_RANGE(0x1000, 0x2fff) AM_ROM AM_BASE_MEMBER(m10_state, rom)
AM_RANGE(0x4000, 0x43ff) AM_RAM AM_BASE_SIZE_MEMBER(m10_state, videoram, videoram_size)
AM_RANGE(0x4800, 0x4bff) AM_RAM_WRITE(m10_colorram_w) AM_BASE_MEMBER(m10_state, colorram) /* foreground colour */
AM_RANGE(0x5000, 0x53ff) AM_RAM AM_BASE_MEMBER(m10_state, chargen) /* background ????? */
@@ -582,12 +582,12 @@ static ADDRESS_MAP_START( m11_main, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xa300, 0xa300) AM_READ_PORT("INPUTS")
AM_RANGE(0xa400, 0xa400) AM_WRITE(m11_ctrl_w) /* line at bottom of screen?, sound, flip screen */
AM_RANGE(0xa700, 0xa700) AM_READ(m11_a700_r)
- AM_RANGE(0xfc00, 0xffff) AM_READ(SMH_ROM) /* for the reset / interrupt vectors */
+ AM_RANGE(0xfc00, 0xffff) AM_ROM /* for the reset / interrupt vectors */
ADDRESS_MAP_END
static ADDRESS_MAP_START( m15_main, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x02ff) AM_RAM AM_BASE_MEMBER(m10_state, memory) /* scratch ram */
- AM_RANGE(0x1000, 0x33ff) AM_READ(SMH_ROM) AM_BASE_MEMBER(m10_state, rom)
+ AM_RANGE(0x1000, 0x33ff) AM_ROM AM_BASE_MEMBER(m10_state, rom)
AM_RANGE(0x4000, 0x43ff) AM_RAM AM_BASE_SIZE_MEMBER(m10_state, videoram, videoram_size)
AM_RANGE(0x4800, 0x4bff) AM_RAM_WRITE(m10_colorram_w) AM_BASE_MEMBER(m10_state, colorram) /* foreground colour */
AM_RANGE(0x5000, 0x57ff) AM_RAM_WRITE(m15_chargen_w) AM_BASE_MEMBER(m10_state, chargen) /* background ????? */
@@ -596,7 +596,7 @@ static ADDRESS_MAP_START( m15_main, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xa200, 0xa200) AM_READ_PORT("DSW")
AM_RANGE(0xa300, 0xa300) AM_READ_PORT("P1")
AM_RANGE(0xa400, 0xa400) AM_WRITE(m15_ctrl_w) /* sound, flip screen */
- AM_RANGE(0xfc00, 0xffff) AM_READ(SMH_ROM) /* for the reset / interrupt vectors */
+ AM_RANGE(0xfc00, 0xffff) AM_ROM /* for the reset / interrupt vectors */
ADDRESS_MAP_END
/*************************************
diff --git a/src/mame/drivers/m52.c b/src/mame/drivers/m52.c
index 4a167299f74..b18169c54a5 100644
--- a/src/mame/drivers/m52.c
+++ b/src/mame/drivers/m52.c
@@ -62,7 +62,7 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x8000, 0x83ff) AM_RAM_WRITE(m52_videoram_w) AM_BASE_MEMBER(irem_z80_state, videoram)
AM_RANGE(0x8400, 0x87ff) AM_RAM_WRITE(m52_colorram_w) AM_BASE_MEMBER(irem_z80_state, colorram)
AM_RANGE(0x8800, 0x8800) AM_MIRROR(0x07ff) AM_READ(m52_protection_r)
- AM_RANGE(0xc800, 0xcbff) AM_MIRROR(0x0400) AM_WRITE(SMH_RAM) AM_BASE_SIZE_MEMBER(irem_z80_state, spriteram, spriteram_size)
+ AM_RANGE(0xc800, 0xcbff) AM_MIRROR(0x0400) AM_WRITEONLY AM_BASE_SIZE_MEMBER(irem_z80_state, spriteram, spriteram_size)
AM_RANGE(0xd000, 0xd000) AM_MIRROR(0x07fc) AM_WRITE(irem_sound_cmd_w)
AM_RANGE(0xd001, 0xd001) AM_MIRROR(0x07fc) AM_WRITE(m52_flipscreen_w) /* + coin counters */
AM_RANGE(0xd000, 0xd000) AM_MIRROR(0x07f8) AM_READ_PORT("IN0")
@@ -78,7 +78,7 @@ static ADDRESS_MAP_START( alpha1v_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x6fff) AM_ROM
AM_RANGE(0x8000, 0x83ff) AM_RAM_WRITE(m52_videoram_w) AM_BASE_MEMBER(irem_z80_state, videoram)
AM_RANGE(0x8400, 0x87ff) AM_RAM_WRITE(m52_colorram_w) AM_BASE_MEMBER(irem_z80_state, colorram)
- AM_RANGE(0xc800, 0xc9ff) AM_WRITE(SMH_RAM) AM_BASE_SIZE_MEMBER(irem_z80_state, spriteram, spriteram_size) AM_SHARE(1) // bigger or mirrored?
+ AM_RANGE(0xc800, 0xc9ff) AM_WRITEONLY AM_BASE_SIZE_MEMBER(irem_z80_state, spriteram, spriteram_size) AM_SHARE(1) // bigger or mirrored?
AM_RANGE(0xd000, 0xd000) AM_READ_PORT("IN0") AM_WRITE(irem_sound_cmd_w)
AM_RANGE(0xd001, 0xd001) AM_READ_PORT("IN1") AM_WRITE(alpha1v_flipscreen_w)
AM_RANGE(0xd002, 0xd002) AM_READ_PORT("IN2")
diff --git a/src/mame/drivers/m57.c b/src/mame/drivers/m57.c
index 8f134a25414..51439719811 100644
--- a/src/mame/drivers/m57.c
+++ b/src/mame/drivers/m57.c
@@ -67,7 +67,7 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM_WRITE(m57_videoram_w) AM_BASE_MEMBER(irem_z80_state, videoram)
AM_RANGE(0x9000, 0x91ff) AM_RAM AM_BASE_MEMBER(irem_z80_state, scrollram)
- AM_RANGE(0xc820, 0xc8ff) AM_WRITE(SMH_RAM) AM_BASE_SIZE_MEMBER(irem_z80_state, spriteram, spriteram_size)
+ AM_RANGE(0xc820, 0xc8ff) AM_WRITEONLY AM_BASE_SIZE_MEMBER(irem_z80_state, spriteram, spriteram_size)
AM_RANGE(0xd000, 0xd000) AM_WRITE(irem_sound_cmd_w)
AM_RANGE(0xd001, 0xd001) AM_WRITE(m57_flipscreen_w) /* + coin counters */
AM_RANGE(0xd000, 0xd000) AM_READ_PORT("IN0")
diff --git a/src/mame/drivers/m72.c b/src/mame/drivers/m72.c
index 9c3486accfd..5b7ca38c995 100644
--- a/src/mame/drivers/m72.c
+++ b/src/mame/drivers/m72.c
@@ -853,7 +853,7 @@ CPU1_MEMORY( dbreed72, 0x80000, 0x90000 )
static ADDRESS_MAP_START( dbreed_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x00000, 0x7ffff) AM_ROM
AM_RANGE(0x88000, 0x8bfff) AM_RAM /* work RAM */
- AM_RANGE(0xb0ffe, 0xb0fff) AM_WRITE(SMH_RAM) /* leftover from protection?? */
+ AM_RANGE(0xb0ffe, 0xb0fff) AM_WRITEONLY /* leftover from protection?? */
AM_RANGE(0xc0000, 0xc03ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0xc8000, 0xc8bff) AM_READWRITE(m72_palette1_r, m72_palette1_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0xcc000, 0xccbff) AM_READWRITE(m72_palette2_r, m72_palette2_w) AM_BASE_GENERIC(paletteram2)
@@ -886,7 +886,7 @@ static ADDRESS_MAP_START( majtitle_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0xcc000, 0xccbff) AM_READWRITE(m72_palette1_r, m72_palette1_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0xd0000, 0xd3fff) AM_RAM /* work RAM */
AM_RANGE(0xe0000, 0xe0001) AM_WRITE(m72_irq_line_w)
- AM_RANGE(0xe4000, 0xe4001) AM_WRITE(SMH_RAM) /* playfield enable? 1 during screen transitions, 0 otherwise */
+ AM_RANGE(0xe4000, 0xe4001) AM_WRITEONLY /* playfield enable? 1 during screen transitions, 0 otherwise */
AM_RANGE(0xec000, 0xec001) AM_WRITE(m72_dmaon_w)
AM_RANGE(0xffff0, 0xfffff) AM_ROM
ADDRESS_MAP_END
@@ -894,7 +894,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( hharry_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x00000, 0x7ffff) AM_ROM
AM_RANGE(0xa0000, 0xa3fff) AM_RAM /* work RAM */
- AM_RANGE(0xb0ffe, 0xb0fff) AM_WRITE(SMH_RAM) /* leftover from protection?? */
+ AM_RANGE(0xb0ffe, 0xb0fff) AM_WRITEONLY /* leftover from protection?? */
AM_RANGE(0xc0000, 0xc03ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0xc8000, 0xc8bff) AM_READWRITE(m72_palette1_r, m72_palette1_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0xcc000, 0xccbff) AM_READWRITE(m72_palette2_r, m72_palette2_w) AM_BASE_GENERIC(paletteram2)
@@ -909,7 +909,7 @@ static ADDRESS_MAP_START( hharryu_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0xa8000, 0xa8bff) AM_READWRITE(m72_palette2_r, m72_palette2_w) AM_BASE_GENERIC(paletteram2)
AM_RANGE(0xb0000, 0xb0001) AM_WRITE(m72_irq_line_w)
AM_RANGE(0xbc000, 0xbc001) AM_WRITE(m72_dmaon_w)
- AM_RANGE(0xb0ffe, 0xb0fff) AM_WRITE(SMH_RAM) /* leftover from protection?? */
+ AM_RANGE(0xb0ffe, 0xb0fff) AM_WRITEONLY /* leftover from protection?? */
AM_RANGE(0xc0000, 0xc03ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0xd0000, 0xd3fff) AM_RAM_WRITE(m72_videoram1_w) AM_BASE(&m72_videoram1)
AM_RANGE(0xd4000, 0xd7fff) AM_RAM_WRITE(m72_videoram2_w) AM_BASE(&m72_videoram2)
@@ -1066,7 +1066,7 @@ static ADDRESS_MAP_START( mcu_io_map, ADDRESS_SPACE_IO, 8 )
AM_RANGE(0x0001, 0x0001) AM_WRITE(m72_mcu_high_w)
AM_RANGE(0x0002, 0x0002) AM_READWRITE(m72_mcu_snd_r, m72_mcu_ack_w)
/* shared at b0000 - b0fff on the main cpu */
- AM_RANGE(0xc000, 0xcfff) AM_RAM AM_READWRITE(m72_mcu_data_r,m72_mcu_data_w )
+ AM_RANGE(0xc000, 0xcfff) AM_READWRITE(m72_mcu_data_r,m72_mcu_data_w )
/* Ports */
AM_RANGE(MCS51_PORT_P0, MCS51_PORT_P3) AM_READWRITE(m72_mcu_port_r, m72_mcu_port_w)
diff --git a/src/mame/drivers/m79amb.c b/src/mame/drivers/m79amb.c
index a118da6f8f1..133733b1275 100644
--- a/src/mame/drivers/m79amb.c
+++ b/src/mame/drivers/m79amb.c
@@ -152,7 +152,7 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x4000, 0x5fff) AM_RAM_WRITE(ramtek_videoram_w) AM_BASE(&ramtek_videoram)
AM_RANGE(0x6000, 0x63ff) AM_RAM /* ?? */
AM_RANGE(0x8000, 0x8000) AM_READ_PORT("8000") AM_DEVWRITE("discrete", m79amb_8000_w)
- AM_RANGE(0x8001, 0x8001) AM_WRITE(SMH_RAM) AM_BASE(&mask)
+ AM_RANGE(0x8001, 0x8001) AM_WRITEONLY AM_BASE(&mask)
AM_RANGE(0x8002, 0x8002) AM_READ_PORT("8002") AM_WRITE(m79amb_8002_w)
AM_RANGE(0x8003, 0x8003) AM_DEVWRITE("discrete", m79amb_8003_w)
AM_RANGE(0x8004, 0x8004) AM_READ(gray5bit_controller0_r)
diff --git a/src/mame/drivers/m92.c b/src/mame/drivers/m92.c
index 07874e9995c..ce555531bb8 100644
--- a/src/mame/drivers/m92.c
+++ b/src/mame/drivers/m92.c
@@ -2145,7 +2145,7 @@ static DRIVER_INIT( lethalth )
m92_irq_vectorbase = 0x20;
/* NOP out the bankswitcher */
- memory_install_write16_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_IO), 0x20, 0x21, 0, 0, (write16_space_func)SMH_NOP);
+ memory_nop_write(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_IO), 0x20, 0x21, 0, 0);
}
static DRIVER_INIT( nbbatman )
diff --git a/src/mame/drivers/madalien.c b/src/mame/drivers/madalien.c
index 9165c178543..14447ff689a 100644
--- a/src/mame/drivers/madalien.c
+++ b/src/mame/drivers/madalien.c
@@ -89,16 +89,16 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x8000, 0x8000) AM_MIRROR(0x0ff0) AM_DEVWRITE("crtc", mc6845_address_w)
AM_RANGE(0x8001, 0x8001) AM_MIRROR(0x0ff0) AM_DEVREADWRITE("crtc", mc6845_register_r, mc6845_register_w)
- AM_RANGE(0x8004, 0x8004) AM_MIRROR(0x0ff0) AM_WRITE(SMH_RAM) AM_BASE(&madalien_video_control)
+ AM_RANGE(0x8004, 0x8004) AM_MIRROR(0x0ff0) AM_WRITEONLY AM_BASE(&madalien_video_control)
AM_RANGE(0x8005, 0x8005) AM_MIRROR(0x0ff0) AM_WRITE(madalien_output_w)
AM_RANGE(0x8006, 0x8006) AM_MIRROR(0x0ff0) AM_READWRITE(soundlatch2_r, madalien_sound_command_w)
- AM_RANGE(0x8008, 0x8008) AM_MIRROR(0x07f0) AM_READWRITE(shift_r, SMH_RAM) AM_BASE(&shift_hi)
- AM_RANGE(0x8009, 0x8009) AM_MIRROR(0x07f0) AM_READWRITE(shift_rev_r, SMH_RAM) AM_BASE(&shift_lo)
- AM_RANGE(0x800b, 0x800b) AM_MIRROR(0x07f0) AM_WRITE(SMH_RAM) AM_BASE(&madalien_video_flags)
- AM_RANGE(0x800c, 0x800c) AM_MIRROR(0x07f0) AM_WRITE(SMH_RAM) AM_BASE(&madalien_headlight_pos)
- AM_RANGE(0x800d, 0x800d) AM_MIRROR(0x07f0) AM_WRITE(SMH_RAM) AM_BASE(&madalien_edge1_pos)
- AM_RANGE(0x800e, 0x800e) AM_MIRROR(0x07f0) AM_WRITE(SMH_RAM) AM_BASE(&madalien_edge2_pos)
- AM_RANGE(0x800f, 0x800f) AM_MIRROR(0x07f0) AM_WRITE(SMH_RAM) AM_BASE(&madalien_scroll)
+ AM_RANGE(0x8008, 0x8008) AM_MIRROR(0x07f0) AM_RAM_READ(shift_r) AM_BASE(&shift_hi)
+ AM_RANGE(0x8009, 0x8009) AM_MIRROR(0x07f0) AM_RAM_READ(shift_rev_r) AM_BASE(&shift_lo)
+ AM_RANGE(0x800b, 0x800b) AM_MIRROR(0x07f0) AM_WRITEONLY AM_BASE(&madalien_video_flags)
+ AM_RANGE(0x800c, 0x800c) AM_MIRROR(0x07f0) AM_WRITEONLY AM_BASE(&madalien_headlight_pos)
+ AM_RANGE(0x800d, 0x800d) AM_MIRROR(0x07f0) AM_WRITEONLY AM_BASE(&madalien_edge1_pos)
+ AM_RANGE(0x800e, 0x800e) AM_MIRROR(0x07f0) AM_WRITEONLY AM_BASE(&madalien_edge2_pos)
+ AM_RANGE(0x800f, 0x800f) AM_MIRROR(0x07f0) AM_WRITEONLY AM_BASE(&madalien_scroll)
AM_RANGE(0x9000, 0x9000) AM_MIRROR(0x0ff0) AM_READ_PORT("PLAYER1")
AM_RANGE(0x9001, 0x9001) AM_MIRROR(0x0ff0) AM_READ_PORT("DSW")
diff --git a/src/mame/drivers/mainevt.c b/src/mame/drivers/mainevt.c
index a4de976c1c9..601b6cfedcc 100644
--- a/src/mame/drivers/mainevt.c
+++ b/src/mame/drivers/mainevt.c
@@ -161,7 +161,7 @@ static ADDRESS_MAP_START( mainevt_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x4000, 0x5dff) AM_RAM
AM_RANGE(0x5e00, 0x5fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_be_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x6000, 0x7fff) AM_ROMBANK("bank1")
- AM_RANGE(0x8000, 0xffff) AM_READ(SMH_ROM)
+ AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/mappy.c b/src/mame/drivers/mappy.c
index c7ce1e94db9..23b8ae0f490 100644
--- a/src/mame/drivers/mappy.c
+++ b/src/mame/drivers/mappy.c
@@ -868,7 +868,7 @@ static ADDRESS_MAP_START( superpac_cpu1_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x07ff) AM_RAM_WRITE(superpac_videoram_w) AM_BASE_MEMBER(mappy_state,videoram) /* video RAM */
AM_RANGE(0x0800, 0x1fff) AM_RAM AM_BASE_MEMBER(mappy_state,spriteram) /* work RAM with embedded sprite RAM */
AM_RANGE(0x2000, 0x2000) AM_READWRITE(superpac_flipscreen_r, superpac_flipscreen_w)
- AM_RANGE(0x4000, 0x43ff) AM_RAM AM_DEVWRITE("namco", mappy_snd_sharedram_w) AM_SHARE(1) /* shared RAM with the sound CPU */
+ AM_RANGE(0x4000, 0x43ff) AM_RAM_DEVWRITE("namco", mappy_snd_sharedram_w) AM_SHARE(1) /* shared RAM with the sound CPU */
AM_RANGE(0x4800, 0x4bff) AM_READWRITE(namcoio_r, namcoio_w) /* custom I/O chips interface */
AM_RANGE(0x5000, 0x500f) AM_WRITE(superpac_latch_w) /* various control bits */
AM_RANGE(0x8000, 0x8000) AM_WRITE(watchdog_reset_w)
@@ -878,7 +878,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( phozon_cpu1_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x07ff) AM_RAM_WRITE(superpac_videoram_w) AM_SHARE(2) AM_BASE_MEMBER(mappy_state,videoram) /* video RAM */
AM_RANGE(0x0800, 0x1fff) AM_RAM AM_BASE_MEMBER(mappy_state,spriteram) AM_SHARE(3) /* shared RAM with CPU #2/sprite RAM*/
- AM_RANGE(0x4000, 0x43ff) AM_RAM AM_DEVWRITE("namco", mappy_snd_sharedram_w) AM_SHARE(1) /* shared RAM with the sound CPU */
+ AM_RANGE(0x4000, 0x43ff) AM_RAM_DEVWRITE("namco", mappy_snd_sharedram_w) AM_SHARE(1) /* shared RAM with the sound CPU */
AM_RANGE(0x4800, 0x4bff) AM_READWRITE(namcoio_r, namcoio_w) /* custom I/O chips interface */
AM_RANGE(0x5000, 0x500f) AM_WRITE(phozon_latch_w) /* various control bits */
AM_RANGE(0x7000, 0x7000) AM_WRITE(watchdog_reset_w) /* watchdog reset */
@@ -889,7 +889,7 @@ static ADDRESS_MAP_START( mappy_cpu1_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x0fff) AM_RAM_WRITE(mappy_videoram_w) AM_BASE_MEMBER(mappy_state,videoram) /* video RAM */
AM_RANGE(0x1000, 0x27ff) AM_RAM AM_BASE_MEMBER(mappy_state,spriteram) /* work RAM with embedded sprite RAM */
AM_RANGE(0x3800, 0x3fff) AM_WRITE(mappy_scroll_w) /* scroll */
- AM_RANGE(0x4000, 0x43ff) AM_RAM AM_DEVWRITE("namco", mappy_snd_sharedram_w) AM_SHARE(1) /* shared RAM with the sound CPU */
+ AM_RANGE(0x4000, 0x43ff) AM_RAM_DEVWRITE("namco", mappy_snd_sharedram_w) AM_SHARE(1) /* shared RAM with the sound CPU */
AM_RANGE(0x4800, 0x4bff) AM_READWRITE(namcoio_r, namcoio_w) /* custom I/O chips interface */
AM_RANGE(0x5000, 0x500f) AM_WRITE(mappy_latch_w) /* various control bits */
AM_RANGE(0x8000, 0x8000) AM_WRITE(watchdog_reset_w) /* watchdog reset */
@@ -898,18 +898,18 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( superpac_cpu2_map, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x03ff) AM_RAM AM_DEVWRITE("namco", mappy_snd_sharedram_w) AM_SHARE(1) AM_BASE(&namco_soundregs) /* shared RAM with the main CPU (also sound registers) */
+ AM_RANGE(0x0000, 0x03ff) AM_RAM_DEVWRITE("namco", mappy_snd_sharedram_w) AM_SHARE(1) AM_BASE(&namco_soundregs) /* shared RAM with the main CPU (also sound registers) */
AM_RANGE(0x2000, 0x200f) AM_WRITE(superpac_latch_w) /* various control bits */
AM_RANGE(0xe000, 0xffff) AM_ROM
ADDRESS_MAP_END
static ADDRESS_MAP_START( phozon_cpu2_map, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x03ff) AM_RAM AM_DEVWRITE("namco", mappy_snd_sharedram_w) AM_SHARE(1) AM_BASE(&namco_soundregs) /* shared RAM with the main CPU + sound registers */
+ AM_RANGE(0x0000, 0x03ff) AM_RAM_DEVWRITE("namco", mappy_snd_sharedram_w) AM_SHARE(1) AM_BASE(&namco_soundregs) /* shared RAM with the main CPU + sound registers */
AM_RANGE(0xe000, 0xffff) AM_ROM /* ROM */
ADDRESS_MAP_END
static ADDRESS_MAP_START( mappy_cpu2_map, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x03ff) AM_RAM AM_DEVWRITE("namco", mappy_snd_sharedram_w) AM_SHARE(1) AM_BASE(&namco_soundregs) /* shared RAM with the main CPU (also sound registers) */
+ AM_RANGE(0x0000, 0x03ff) AM_RAM_DEVWRITE("namco", mappy_snd_sharedram_w) AM_SHARE(1) AM_BASE(&namco_soundregs) /* shared RAM with the main CPU (also sound registers) */
AM_RANGE(0x2000, 0x200f) AM_WRITE(mappy_latch_w) /* various control bits */
AM_RANGE(0xe000, 0xffff) AM_ROM /* ROM code */
ADDRESS_MAP_END
@@ -919,7 +919,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( phozon_cpu3_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x07ff) AM_RAM_WRITE(superpac_videoram_w) AM_SHARE(2) /* video RAM */
AM_RANGE(0x0800, 0x1fff) AM_RAM AM_SHARE(3) /* shared RAM with CPU #2/sprite RAM*/
- AM_RANGE(0x4000, 0x43ff) AM_RAM AM_DEVWRITE("namco", mappy_snd_sharedram_w) AM_SHARE(1) /* shared RAM with CPU #2 */
+ AM_RANGE(0x4000, 0x43ff) AM_RAM_DEVWRITE("namco", mappy_snd_sharedram_w) AM_SHARE(1) /* shared RAM with CPU #2 */
AM_RANGE(0xa000, 0xa7ff) AM_RAM /* RAM */
AM_RANGE(0xe000, 0xffff) AM_ROM /* ROM */
ADDRESS_MAP_END
@@ -2110,7 +2110,7 @@ static DRIVER_INIT( grobda )
static DRIVER_INIT( digdug2 )
{
/* appears to not use the watchdog */
- memory_install_write8_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x8000, 0x8000, 0, 0, (write8_space_func)SMH_NOP);
+ memory_nop_write(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x8000, 0x8000, 0, 0);
DRIVER_INIT_CALL(58_56);
}
diff --git a/src/mame/drivers/megadriv.c b/src/mame/drivers/megadriv.c
index a69bbe848d4..69cbdbeb17d 100644
--- a/src/mame/drivers/megadriv.c
+++ b/src/mame/drivers/megadriv.c
@@ -1986,7 +1986,7 @@ static ADDRESS_MAP_START( megadriv_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0xd00000, 0xd0001f) AM_READWRITE(megadriv_vdp_r,megadriv_vdp_w) // the earth defend
AM_RANGE(0xe00000, 0xe0ffff) AM_RAM AM_MIRROR(0x1f0000) AM_BASE(&megadrive_ram)
-// AM_RANGE(0xff0000, 0xffffff) AM_READ(SMH_RAM)
+// AM_RANGE(0xff0000, 0xffffff) AM_READONLY
/* 0xe00000 - 0xffffff) == MAIN RAM (64kb, Mirrored, most games use ff0000 - ffffff) */
ADDRESS_MAP_END
diff --git a/src/mame/drivers/megaplay.c b/src/mame/drivers/megaplay.c
index 9b389de1f05..09d7af96415 100644
--- a/src/mame/drivers/megaplay.c
+++ b/src/mame/drivers/megaplay.c
@@ -599,7 +599,7 @@ static ADDRESS_MAP_START( megaplay_bios_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x6403, 0x6403) AM_READWRITE(megaplay_bios_gamesel_r, megaplay_bios_gamesel_w)
AM_RANGE(0x6404, 0x6404) AM_READWRITE(megaplay_bios_6404_r, megaplay_bios_6404_w)
AM_RANGE(0x6600, 0x6600) AM_READWRITE(megaplay_bios_6600_r, megaplay_bios_6600_w)
- AM_RANGE(0x6001, 0x67ff) AM_WRITE(SMH_RAM)
+ AM_RANGE(0x6001, 0x67ff) AM_WRITEONLY
AM_RANGE(0x6800, 0x77ff) AM_RAM AM_BASE(&ic3_ram)
AM_RANGE(0x8000, 0xffff) AM_READWRITE(bank_r, bank_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/meijinsn.c b/src/mame/drivers/meijinsn.c
index 6059595f5d5..0690d217f73 100644
--- a/src/mame/drivers/meijinsn.c
+++ b/src/mame/drivers/meijinsn.c
@@ -147,7 +147,7 @@ static READ16_HANDLER( alpha_mcu_r )
static ADDRESS_MAP_START( meijinsn_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x080e00, 0x080fff) AM_READ(alpha_mcu_r) AM_WRITENOP
- AM_RANGE(0x100000, 0x107fff) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) AM_BASE_GENERIC(videoram)
+ AM_RANGE(0x100000, 0x107fff) AM_RAM AM_BASE_GENERIC(videoram)
AM_RANGE(0x180000, 0x180dff) AM_RAM
AM_RANGE(0x180e00, 0x180fff) AM_RAM AM_BASE(&shared_ram)
AM_RANGE(0x181000, 0x181fff) AM_RAM
diff --git a/src/mame/drivers/metro.c b/src/mame/drivers/metro.c
index 5924cbd93f0..ebfb67503a1 100644
--- a/src/mame/drivers/metro.c
+++ b/src/mame/drivers/metro.c
@@ -1050,7 +1050,7 @@ static ADDRESS_MAP_START( dharma_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x878000, 0x8787ff) AM_RAM AM_BASE(&metro_tiletable) AM_SIZE(&metro_tiletable_size ) // Tiles Set
AM_RANGE(0x878840, 0x87884d) AM_WRITE(metro_blitter_w) AM_BASE(&metro_blitter_regs) // Tiles Blitter
AM_RANGE(0x878860, 0x87886b) AM_WRITE(metro_window_w) AM_BASE(&metro_window ) // Tilemap Window
- AM_RANGE(0x878870, 0x87887b) AM_WRITE(SMH_RAM) AM_BASE(&metro_scroll) // Scroll Regs
+ AM_RANGE(0x878870, 0x87887b) AM_WRITEONLY AM_BASE(&metro_scroll) // Scroll Regs
AM_RANGE(0x878880, 0x878881) AM_WRITENOP // ? increasing
AM_RANGE(0x878890, 0x878891) AM_WRITENOP // ? increasing
AM_RANGE(0x8788a4, 0x8788a5) AM_WRITEONLY AM_BASE(&metro_irq_enable) // IRQ Enable
@@ -1589,7 +1589,7 @@ static ADDRESS_MAP_START( pururun_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0xc78000, 0xc787ff) AM_RAM AM_BASE(&metro_tiletable) AM_SIZE(&metro_tiletable_size) // Tiles Set
AM_RANGE(0xc78840, 0xc7884d) AM_WRITE(metro_blitter_w) AM_BASE(&metro_blitter_regs) // Tiles Blitter
AM_RANGE(0xc78860, 0xc7886b) AM_WRITE(metro_window_w) AM_BASE(&metro_window) // Tilemap Window
- AM_RANGE(0xc78870, 0xc7887b) AM_WRITE(SMH_RAM) AM_BASE(&metro_scroll) // Scroll Regs
+ AM_RANGE(0xc78870, 0xc7887b) AM_WRITEONLY AM_BASE(&metro_scroll) // Scroll Regs
AM_RANGE(0xc78880, 0xc78881) AM_WRITENOP // ? increasing
AM_RANGE(0xc78890, 0xc78891) AM_WRITENOP // ? increasing
AM_RANGE(0xc788a2, 0xc788a3) AM_READWRITE(metro_irq_cause_r,metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge
@@ -1781,9 +1781,9 @@ static ADDRESS_MAP_START( puzzlet_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE( 0x500000, 0x500001 ) AM_DEVREADWRITE8( "oki", okim6295_r, okim6295_w, 0xff00 )
AM_RANGE( 0x580000, 0x580003 ) AM_DEVWRITE8( "ymsnd", ym2413_w, 0xff00 )
- AM_RANGE( 0x700000, 0x71ffff ) AM_READWRITE( SMH_RAM, metro_vram_0_w ) AM_BASE( &metro_vram_0 ) // Layer 0
- AM_RANGE( 0x720000, 0x73ffff ) AM_READWRITE( SMH_RAM, metro_vram_1_w ) AM_BASE( &metro_vram_1 ) // Layer 1
- AM_RANGE( 0x740000, 0x75ffff ) AM_READWRITE( SMH_RAM, metro_vram_2_w ) AM_BASE( &metro_vram_2 ) // Layer 2
+ AM_RANGE( 0x700000, 0x71ffff ) AM_RAM_WRITE( metro_vram_0_w ) AM_BASE( &metro_vram_0 ) // Layer 0
+ AM_RANGE( 0x720000, 0x73ffff ) AM_RAM_WRITE( metro_vram_1_w ) AM_BASE( &metro_vram_1 ) // Layer 1
+ AM_RANGE( 0x740000, 0x75ffff ) AM_RAM_WRITE( metro_vram_2_w ) AM_BASE( &metro_vram_2 ) // Layer 2
AM_RANGE( 0x774000, 0x774fff ) AM_RAM AM_BASE_SIZE_GENERIC( spriteram )
AM_RANGE( 0x760000, 0x76ffff ) AM_READ( metro_bankedrom_r ) // Banked ROM
diff --git a/src/mame/drivers/mgolf.c b/src/mame/drivers/mgolf.c
index 85e0dcaf525..087d5ea5506 100644
--- a/src/mame/drivers/mgolf.c
+++ b/src/mame/drivers/mgolf.c
@@ -186,7 +186,7 @@ static ADDRESS_MAP_START( cpu_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0061, 0x0061) AM_READ(mgolf_misc_r)
AM_RANGE(0x0080, 0x00ff) AM_READ(mgolf_wram_r)
AM_RANGE(0x0180, 0x01ff) AM_READ(mgolf_wram_r)
- AM_RANGE(0x0800, 0x0bff) AM_READ(SMH_RAM)
+ AM_RANGE(0x0800, 0x0bff) AM_READONLY
AM_RANGE(0x0000, 0x0009) AM_WRITENOP
AM_RANGE(0x0024, 0x0024) AM_WRITENOP
diff --git a/src/mame/drivers/mhavoc.c b/src/mame/drivers/mhavoc.c
index fea57ab15b8..12e97b78f79 100644
--- a/src/mame/drivers/mhavoc.c
+++ b/src/mame/drivers/mhavoc.c
@@ -250,7 +250,7 @@ static ADDRESS_MAP_START( alpha_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x2000, 0x3fff) AM_ROMBANK("bank2") /* Paged Program ROM (32K) */
AM_RANGE(0x4000, 0x4fff) AM_RAM AM_BASE(&vectorram) AM_SIZE(&vectorram_size) AM_REGION("alpha", 0x4000) /* Vector Generator RAM */
AM_RANGE(0x5000, 0x7fff) AM_ROM /* Vector ROM */
- AM_RANGE(0x8000, 0xffff) AM_READ(SMH_ROM) /* Program ROM (32K) */
+ AM_RANGE(0x8000, 0xffff) AM_ROM /* Program ROM (32K) */
ADDRESS_MAP_END
@@ -272,7 +272,7 @@ static ADDRESS_MAP_START( gamma_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x4800, 0x4800) AM_WRITE(mhavoc_out_1_w) /* Coin Counters */
AM_RANGE(0x5000, 0x5000) AM_WRITE(mhavoc_alpha_w) /* Alpha Comm. Write Port */
AM_RANGE(0x6000, 0x61ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) /* EEROM */
- AM_RANGE(0x8000, 0xffff) AM_READ(SMH_ROM) /* Program ROM (16K) */
+ AM_RANGE(0x8000, 0xffff) AM_ROM /* Program ROM (16K) */
ADDRESS_MAP_END
@@ -300,7 +300,7 @@ static ADDRESS_MAP_START( alphaone_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x10b0, 0x10b0) AM_WRITE(mhavoc_alpha_irq_ack_w) /* IRQ ack */
AM_RANGE(0x10b4, 0x10b4) AM_WRITE(mhavoc_rom_banksel_w)
AM_RANGE(0x10b8, 0x10b8) AM_WRITE(mhavoc_ram_banksel_w)
- AM_RANGE(0x10e0, 0x10ff) AM_WRITE(SMH_RAM) AM_BASE(&mhavoc_colorram) /* ColorRAM */
+ AM_RANGE(0x10e0, 0x10ff) AM_WRITEONLY AM_BASE(&mhavoc_colorram) /* ColorRAM */
AM_RANGE(0x1800, 0x18ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) /* EEROM */
AM_RANGE(0x2000, 0x3fff) AM_ROMBANK("bank2") /* Paged Program ROM (32K) */
AM_RANGE(0x4000, 0x4fff) AM_RAM AM_BASE(&vectorram) AM_SIZE(&vectorram_size) AM_REGION("alpha", 0x4000) /* Vector Generator RAM */
diff --git a/src/mame/drivers/midas.c b/src/mame/drivers/midas.c
index 73181250e5d..91b61c0ea2a 100644
--- a/src/mame/drivers/midas.c
+++ b/src/mame/drivers/midas.c
@@ -229,7 +229,7 @@ static ADDRESS_MAP_START( mem_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x9c0000, 0x9c0005) AM_WRITE( livequiz_gfxregs_w ) AM_BASE( &livequiz_gfxregs )
- AM_RANGE(0xa00000, 0xa3ffff) AM_READWRITE( SMH_RAM, paletteram16_xrgb_word_be_w ) AM_BASE_GENERIC( paletteram )
+ AM_RANGE(0xa00000, 0xa3ffff) AM_RAM_WRITE( paletteram16_xrgb_word_be_w ) AM_BASE_GENERIC( paletteram )
AM_RANGE(0xa40000, 0xa7ffff) AM_RAM
AM_RANGE(0xb00000, 0xb00001) AM_READ( ret_ffff )
diff --git a/src/mame/drivers/midvunit.c b/src/mame/drivers/midvunit.c
index ce99491a369..57d4ae2cb6e 100644
--- a/src/mame/drivers/midvunit.c
+++ b/src/mame/drivers/midvunit.c
@@ -493,7 +493,7 @@ static ADDRESS_MAP_START( midvunit_map, ADDRESS_SPACE_PROGRAM, 32 )
AM_RANGE(0x980082, 0x980083) AM_READ(midvunit_dma_trigger_r)
AM_RANGE(0x990000, 0x990000) AM_READNOP // link PAL (low 4 bits must == 4)
AM_RANGE(0x991030, 0x991030) AM_READ_PORT("991030")
-// AM_RANGE(0x991050, 0x991050) AM_READ(SMH_RAM) // seems to be another port
+// AM_RANGE(0x991050, 0x991050) AM_READONLY // seems to be another port
AM_RANGE(0x991060, 0x991060) AM_READ(port0_r)
AM_RANGE(0x992000, 0x992000) AM_READ_PORT("992000")
AM_RANGE(0x993000, 0x993000) AM_READWRITE(midvunit_adc_r, midvunit_adc_w)
diff --git a/src/mame/drivers/mquake.c b/src/mame/drivers/mquake.c
index 5bc65102df5..ed2c738259d 100644
--- a/src/mame/drivers/mquake.c
+++ b/src/mame/drivers/mquake.c
@@ -42,7 +42,7 @@ static WRITE8_DEVICE_HANDLER( mquake_cia_0_porta_w )
else
/* overlay enabled, map Amiga system ROM on 0x000000 */
- memory_install_write16_handler(cputag_get_address_space(device->machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x000000, 0x07ffff, 0, 0, (write16_space_func)SMH_UNMAP);
+ memory_unmap_write(cputag_get_address_space(device->machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x000000, 0x07ffff, 0, 0);
}
diff --git a/src/mame/drivers/mrdo.c b/src/mame/drivers/mrdo.c
index b406cc2f3ff..3cb75380eca 100644
--- a/src/mame/drivers/mrdo.c
+++ b/src/mame/drivers/mrdo.c
@@ -46,7 +46,7 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM_WRITE(mrdo_bgvideoram_w) AM_BASE(&mrdo_bgvideoram)
AM_RANGE(0x8800, 0x8fff) AM_RAM_WRITE(mrdo_fgvideoram_w) AM_BASE(&mrdo_fgvideoram)
- AM_RANGE(0x9000, 0x90ff) AM_WRITE(SMH_RAM) AM_BASE_SIZE_GENERIC(spriteram)
+ AM_RANGE(0x9000, 0x90ff) AM_WRITEONLY AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x9800, 0x9800) AM_WRITE(mrdo_flipscreen_w) /* screen flip + playfield priority */
AM_RANGE(0x9801, 0x9801) AM_DEVWRITE("sn1", sn76496_w)
AM_RANGE(0x9802, 0x9802) AM_DEVWRITE("sn2", sn76496_w)
diff --git a/src/mame/drivers/mrflea.c b/src/mame/drivers/mrflea.c
index f07fae64a0b..0b965861ef1 100644
--- a/src/mame/drivers/mrflea.c
+++ b/src/mame/drivers/mrflea.c
@@ -190,7 +190,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( mrflea_slave_io_map, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITENOP /* watchdog */
- AM_RANGE(0x10, 0x10) AM_READWRITE(mrflea_interrupt_type_r, SMH_NOP) /* ? / irq ACK */
+ AM_RANGE(0x10, 0x10) AM_READ(mrflea_interrupt_type_r) AM_WRITENOP /* ? / irq ACK */
AM_RANGE(0x11, 0x11) AM_WRITENOP /* 0x83,0x00,0xfc */
AM_RANGE(0x20, 0x20) AM_READ(mrflea_io_r)
AM_RANGE(0x21, 0x21) AM_WRITE(mrflea_main_w)
diff --git a/src/mame/drivers/ms32.c b/src/mame/drivers/ms32.c
index 939477cce6e..48d91f26fed 100644
--- a/src/mame/drivers/ms32.c
+++ b/src/mame/drivers/ms32.c
@@ -360,7 +360,7 @@ static ADDRESS_MAP_START( f1superb_map, ADDRESS_SPACE_PROGRAM, 32 )
AM_RANGE(0xfd140000, 0xfd143fff) AM_RAM // used when you start enabling fpu ints
AM_RANGE(0xfd144000, 0xfd145fff) AM_RAM // same data here
- AM_RANGE(0xfdc00000, 0xfdc007ff) AM_RAM AM_READWRITE16(ms32_extra_r16, ms32_extra_w16, 0x0000ffff) // definitely line ram
+ AM_RANGE(0xfdc00000, 0xfdc007ff) AM_READWRITE16(ms32_extra_r16, ms32_extra_w16, 0x0000ffff) // definitely line ram
AM_RANGE(0xfde00000, 0xfde01fff) AM_RAM // scroll info for lineram?
AM_IMPORT_FROM(ms32_map)
diff --git a/src/mame/drivers/multfish.c b/src/mame/drivers/multfish.c
index f05123f31fc..7fae2c016ee 100644
--- a/src/mame/drivers/multfish.c
+++ b/src/mame/drivers/multfish.c
@@ -353,7 +353,7 @@ static WRITE8_HANDLER(multfish_rtc_w)
static ADDRESS_MAP_START( multfish_map, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x7fff) AM_READWRITE(SMH_ROM, multfish_vid_w)
+ AM_RANGE(0x0000, 0x7fff) AM_ROM AM_WRITE(multfish_vid_w)
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xdff7) AM_RAM AM_BASE_SIZE_GENERIC(nvram)
AM_RANGE(0xdff8, 0xdfff) AM_READWRITE(multfish_rtc_r, multfish_rtc_w)
diff --git a/src/mame/drivers/munchmo.c b/src/mame/drivers/munchmo.c
index 1a65abf43ee..6cfaaa2bd26 100644
--- a/src/mame/drivers/munchmo.c
+++ b/src/mame/drivers/munchmo.c
@@ -89,7 +89,7 @@ static ADDRESS_MAP_START( mnchmobl_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xbe31, 0xbe31) AM_WRITENOP /* ? */
AM_RANGE(0xbe41, 0xbe41) AM_WRITE(mnchmobl_flipscreen_w)
AM_RANGE(0xbe61, 0xbe61) AM_WRITE(mnchmobl_nmi_enable_w) /* ENI 1-10C */
- AM_RANGE(0xbf00, 0xbf07) AM_WRITE(SMH_RAM) AM_BASE(&mnchmobl_vreg) /* MY0 1-8C */
+ AM_RANGE(0xbf00, 0xbf07) AM_WRITEONLY AM_BASE(&mnchmobl_vreg) /* MY0 1-8C */
AM_RANGE(0xbf01, 0xbf01) AM_READ_PORT("SYSTEM")
AM_RANGE(0xbf02, 0xbf02) AM_READ_PORT("P1")
AM_RANGE(0xbf03, 0xbf03) AM_READ_PORT("P2")
diff --git a/src/mame/drivers/mustache.c b/src/mame/drivers/mustache.c
index 62c552605a7..bd092106204 100644
--- a/src/mame/drivers/mustache.c
+++ b/src/mame/drivers/mustache.c
@@ -76,7 +76,7 @@ static ADDRESS_MAP_START( memmap, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xd804, 0xd804) AM_READ_PORT("DSWB")
AM_RANGE(0xd806, 0xd806) AM_WRITE(mustache_scroll_w)
AM_RANGE(0xd807, 0xd807) AM_WRITE(mustache_video_control_w)
- AM_RANGE(0xe800, 0xefff) AM_WRITE(SMH_RAM) AM_BASE_SIZE_GENERIC(spriteram)
+ AM_RANGE(0xe800, 0xefff) AM_WRITEONLY AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0xf000, 0xffff) AM_RAM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/mystston.c b/src/mame/drivers/mystston.c
index 7000b48e713..c49820fe8cb 100644
--- a/src/mame/drivers/mystston.c
+++ b/src/mame/drivers/mystston.c
@@ -107,9 +107,9 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x1800, 0x1fff) AM_RAM AM_BASE_MEMBER(mystston_state, bg_videoram)
AM_RANGE(0x2000, 0x2000) AM_MIRROR(0x1f8f) AM_READ_PORT("IN0") AM_WRITE(mystston_video_control_w) AM_BASE_MEMBER(mystston_state, video_control)
AM_RANGE(0x2010, 0x2010) AM_MIRROR(0x1f8f) AM_READ_PORT("IN1") AM_WRITE(irq_clear_w)
- AM_RANGE(0x2020, 0x2020) AM_MIRROR(0x1f8f) AM_READ_PORT("DSW0") AM_WRITE(SMH_RAM) AM_BASE_MEMBER(mystston_state, scroll)
- AM_RANGE(0x2030, 0x2030) AM_MIRROR(0x1f8f) AM_READ_PORT("DSW1") AM_WRITE(SMH_RAM) AM_BASE_MEMBER(mystston_state, ay8910_data)
- AM_RANGE(0x2040, 0x2040) AM_MIRROR(0x1f8f) AM_READWRITE(SMH_NOP, mystston_ay8910_select_w) AM_BASE_MEMBER(mystston_state, ay8910_select)
+ AM_RANGE(0x2020, 0x2020) AM_MIRROR(0x1f8f) AM_READ_PORT("DSW0") AM_WRITEONLY AM_BASE_MEMBER(mystston_state, scroll)
+ AM_RANGE(0x2030, 0x2030) AM_MIRROR(0x1f8f) AM_READ_PORT("DSW1") AM_WRITEONLY AM_BASE_MEMBER(mystston_state, ay8910_data)
+ AM_RANGE(0x2040, 0x2040) AM_MIRROR(0x1f8f) AM_READNOP AM_WRITE(mystston_ay8910_select_w) AM_BASE_MEMBER(mystston_state, ay8910_select)
AM_RANGE(0x2050, 0x2050) AM_MIRROR(0x1f8f) AM_NOP
AM_RANGE(0x2060, 0x207f) AM_MIRROR(0x1f80) AM_RAM AM_BASE_MEMBER(mystston_state, paletteram)
AM_RANGE(0x4000, 0xffff) AM_ROM
diff --git a/src/mame/drivers/namcond1.c b/src/mame/drivers/namcond1.c
index 78b9fd97daa..6fd95f86d48 100644
--- a/src/mame/drivers/namcond1.c
+++ b/src/mame/drivers/namcond1.c
@@ -249,7 +249,7 @@ static WRITE8_HANDLER( mcu_pa_write )
/* H8/3002 MCU stuff */
static ADDRESS_MAP_START( nd1h8rwmap, ADDRESS_SPACE_PROGRAM, 16 )
- AM_RANGE(0x000000, 0x07ffff) AM_READ(SMH_ROM)
+ AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x200000, 0x20ffff) AM_READWRITE( sharedram_sub_r, sharedram_sub_w )
AM_RANGE(0xa00000, 0xa07fff) AM_DEVREADWRITE( "c352", c352_r, c352_w )
AM_RANGE(0xc00000, 0xc00001) AM_READ_PORT("DSW")
diff --git a/src/mame/drivers/namcos1.c b/src/mame/drivers/namcos1.c
index fa715af9953..369e46df348 100644
--- a/src/mame/drivers/namcos1.c
+++ b/src/mame/drivers/namcos1.c
@@ -495,7 +495,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( mcu_port_map, ADDRESS_SPACE_IO, 8 )
AM_RANGE(HD63701_PORT1, HD63701_PORT1) AM_READ_PORT("COIN") AM_WRITE(namcos1_coin_w)
- AM_RANGE(HD63701_PORT2, HD63701_PORT2) AM_READWRITE(SMH_NOP, namcos1_dac_gain_w)
+ AM_RANGE(HD63701_PORT2, HD63701_PORT2) AM_READNOP AM_WRITE(namcos1_dac_gain_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/namcos11.c b/src/mame/drivers/namcos11.c
index ae35db56fa4..8d3c2ac128f 100644
--- a/src/mame/drivers/namcos11.c
+++ b/src/mame/drivers/namcos11.c
@@ -843,13 +843,14 @@ static DRIVER_INIT( namcos11 )
{
m_n_bankoffset = 0;
memory_install_write32_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x1f080000, 0x1f080003, 0, 0, bankswitch_rom64_upper_w );
- memory_install_readwrite32_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x1fa10020, 0x1fa1002f, 0, 0, (read32_space_func)SMH_NOP, bankswitch_rom64_w );
+ memory_nop_read(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x1fa10020, 0x1fa1002f, 0, 0 );
+ memory_install_write32_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x1fa10020, 0x1fa1002f, 0, 0, bankswitch_rom64_w );
state_save_register_global(machine, m_n_bankoffset );
}
}
else
{
- memory_install_write32_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x1fa10020, 0x1fa1002f, 0, 0, (write32_space_func)SMH_NOP );
+ memory_nop_write(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x1fa10020, 0x1fa1002f, 0, 0 );
}
break;
}
diff --git a/src/mame/drivers/namcos12.c b/src/mame/drivers/namcos12.c
index 9db78d5e68c..f453ac6d374 100644
--- a/src/mame/drivers/namcos12.c
+++ b/src/mame/drivers/namcos12.c
@@ -1081,7 +1081,7 @@ static WRITE32_HANDLER( s12_dma_bias_w )
static ADDRESS_MAP_START( namcos12_map, ADDRESS_SPACE_PROGRAM, 32 )
AM_RANGE(0x00000000, 0x003fffff) AM_RAM AM_SHARE(1) AM_BASE(&g_p_n_psxram) AM_SIZE(&g_n_psxramsize) /* ram */
- AM_RANGE(0x1f000000, 0x1f000003) AM_READWRITE(SMH_NOP, bankoffset_w) /* banking */
+ AM_RANGE(0x1f000000, 0x1f000003) AM_READNOP AM_WRITE(bankoffset_w) /* banking */
AM_RANGE(0x1f080000, 0x1f083fff) AM_READWRITE(sharedram_r, sharedram_w) AM_BASE(&namcos12_sharedram) /* shared ram?? */
AM_RANGE(0x1f140000, 0x1f140fff) AM_DEVREADWRITE8("at28c16", at28c16_r, at28c16_w, 0x00ff00ff) /* eeprom */
AM_RANGE(0x1f1bff08, 0x1f1bff0f) AM_WRITENOP /* ?? */
@@ -1271,7 +1271,7 @@ static MACHINE_RESET( namcos12 )
/* H8/3002 MCU stuff */
static ADDRESS_MAP_START( s12h8rwmap, ADDRESS_SPACE_PROGRAM, 16 )
- AM_RANGE(0x000000, 0x07ffff) AM_READ(SMH_ROM)
+ AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x080000, 0x08ffff) AM_READWRITE( sharedram_sub_r, sharedram_sub_w )
AM_RANGE(0x280000, 0x287fff) AM_DEVREADWRITE( "c352", c352_r, c352_w )
AM_RANGE(0x300000, 0x300001) AM_READ_PORT("IN0")
diff --git a/src/mame/drivers/namcos22.c b/src/mame/drivers/namcos22.c
index cdefa2df873..3ea7764f658 100644
--- a/src/mame/drivers/namcos22.c
+++ b/src/mame/drivers/namcos22.c
@@ -1807,12 +1807,12 @@ static WRITE16_HANDLER( master_render_device_w )
}
static ADDRESS_MAP_START( master_dsp_program, ADDRESS_SPACE_PROGRAM, 16 )
- AM_RANGE(0x0000, 0x0fff) AM_READ(SMH_ROM) /* internal ROM (4k words) */
- AM_RANGE(0x4000, 0x7fff) AM_READ(SMH_ROM) AM_BASE(&mpMasterExternalRAM)
+ AM_RANGE(0x0000, 0x0fff) AM_ROM /* internal ROM (4k words) */
+ AM_RANGE(0x4000, 0x7fff) AM_ROM AM_BASE(&mpMasterExternalRAM)
ADDRESS_MAP_END
static ADDRESS_MAP_START( master_dsp_data, ADDRESS_SPACE_DATA, 16 )
- AM_RANGE(0x1000, 0x3fff) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM)
+ AM_RANGE(0x1000, 0x3fff) AM_RAM
AM_RANGE(0x4000, 0x7fff) AM_READ(master_external_ram_r) AM_WRITE(master_external_ram_w)
AM_RANGE(0x8000, 0xffff) AM_READ(namcos22_dspram16_r) AM_WRITE(namcos22_dspram16_w)
ADDRESS_MAP_END
@@ -1900,8 +1900,8 @@ static WRITE16_HANDLER( dsp_slave_portb_w )
}
static ADDRESS_MAP_START( slave_dsp_program, ADDRESS_SPACE_PROGRAM, 16 )
- AM_RANGE(0x0000, 0x0fff) AM_READ(SMH_ROM) /* internal ROM */
- AM_RANGE(0x8000, 0x9fff) AM_READ(SMH_ROM) AM_BASE(&mpSlaveExternalRAM)
+ AM_RANGE(0x0000, 0x0fff) AM_ROM /* internal ROM */
+ AM_RANGE(0x8000, 0x9fff) AM_ROM AM_BASE(&mpSlaveExternalRAM)
ADDRESS_MAP_END
static ADDRESS_MAP_START( slave_dsp_data, ADDRESS_SPACE_DATA, 16 )
@@ -2450,7 +2450,7 @@ static ADDRESS_MAP_START( namcos22s_am, ADDRESS_SPACE_PROGRAM, 32 )
AM_RANGE(0x824000, 0x8243ff) AM_READ(namcos22_gamma_r) AM_WRITE(namcos22_gamma_w) AM_BASE(&namcos22_gamma)
AM_RANGE(0x828000, 0x83ffff) AM_READ(namcos22_paletteram_r) AM_WRITE(namcos22_paletteram_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x860000, 0x860007) AM_READ(spotram_r) AM_WRITE(spotram_w)
- AM_RANGE(0x880000, 0x89dfff) AM_READ(SMH_RAM) AM_WRITE(namcos22_cgram_w) AM_BASE(&namcos22_cgram)
+ AM_RANGE(0x880000, 0x89dfff) AM_RAM_WRITE(namcos22_cgram_w) AM_BASE(&namcos22_cgram)
AM_RANGE(0x89e000, 0x89ffff) AM_READ(namcos22_textram_r) AM_WRITE(namcos22_textram_w) AM_BASE(&namcos22_textram)
AM_RANGE(0x8a0000, 0x8a000f) AM_RAM AM_BASE(&namcos22_tilemapattr)
AM_RANGE(0x900000, 0x90ffff) AM_RAM AM_BASE(&namcos22_vics_data)
@@ -2982,7 +2982,7 @@ static ADDRESS_MAP_START( namcos22_am, ADDRESS_SPACE_PROGRAM, 32 )
* 2002000c 2 R/W RX FIFO Pointer (0x0000 - 0x0fff)
* 2002000e 2 W TX FIFO Pointer (0x0000 - 0x1fff)
*/
- AM_RANGE(0x20020000, 0x2002000f) AM_READ(namcos22_C139_SCI_r) AM_WRITE(SMH_RAM)
+ AM_RANGE(0x20020000, 0x2002000f) AM_READ(namcos22_C139_SCI_r) AM_WRITEONLY
/**
* System Controller: Interrupt Control, Peripheral Control
@@ -3144,7 +3144,7 @@ static ADDRESS_MAP_START( namcos22_am, ADDRESS_SPACE_PROGRAM, 32 )
* Mounted position: VIDEO 6B, 7B, 8B (near C305)
* Note: 0xff00-0xffff are for Tilemap (16 x 16)
*/
- AM_RANGE(0x90028000, 0x9003ffff) AM_READ(SMH_RAM) AM_WRITE(namcos22_paletteram_w) AM_BASE_GENERIC(paletteram)
+ AM_RANGE(0x90028000, 0x9003ffff) AM_RAM_WRITE(namcos22_paletteram_w) AM_BASE_GENERIC(paletteram)
/**
* unknown (option)
@@ -3155,7 +3155,7 @@ static ADDRESS_MAP_START( namcos22_am, ADDRESS_SPACE_PROGRAM, 32 )
/**
* Tilemap PCG Memory
*/
- AM_RANGE(0x90080000, 0x9009dfff) AM_READ(SMH_RAM) AM_WRITE(namcos22_cgram_w) AM_BASE(&namcos22_cgram)
+ AM_RANGE(0x90080000, 0x9009dfff) AM_RAM_WRITE(namcos22_cgram_w) AM_BASE(&namcos22_cgram)
/**
* Tilemap Memory (64 x 64)
@@ -3163,7 +3163,7 @@ static ADDRESS_MAP_START( namcos22_am, ADDRESS_SPACE_PROGRAM, 32 )
* Known chip type: HM511664 (64k x 16bit SRAM)
* Note: Self test: 90084000 - 9009ffff
*/
- AM_RANGE(0x9009e000, 0x9009ffff) AM_READ(SMH_RAM) AM_WRITE(namcos22_textram_w) AM_BASE(&namcos22_textram)
+ AM_RANGE(0x9009e000, 0x9009ffff) AM_RAM_WRITE(namcos22_textram_w) AM_BASE(&namcos22_textram)
/**
* Tilemap Register
diff --git a/src/mame/drivers/namcos23.c b/src/mame/drivers/namcos23.c
index 8ff75172241..f0c720103fd 100644
--- a/src/mame/drivers/namcos23.c
+++ b/src/mame/drivers/namcos23.c
@@ -1096,7 +1096,7 @@ static READ16_HANDLER( sharedram_sub_r )
/* H8/3002 MCU stuff */
static ADDRESS_MAP_START( s23h8rwmap, ADDRESS_SPACE_PROGRAM, 16 )
- AM_RANGE(0x000000, 0x07ffff) AM_READ(SMH_ROM)
+ AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x080000, 0x08ffff) AM_READWRITE( sharedram_sub_r, sharedram_sub_w )
AM_RANGE(0x280000, 0x287fff) AM_DEVREADWRITE( "c352", c352_r, c352_w )
AM_RANGE(0x300000, 0x300001) AM_READNOP //AM_READ_PORT("IN1")
@@ -1336,7 +1336,7 @@ static WRITE8_HANDLER( s23_iob_p4_w )
/* H8/3334 (Namco C78) I/O board MCU */
static ADDRESS_MAP_START( s23iobrdmap, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x0fff) AM_READ(SMH_ROM)
+ AM_RANGE(0x0000, 0x0fff) AM_ROM
AM_RANGE(0xc000, 0xdfff) AM_RAM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/namcos86.c b/src/mame/drivers/namcos86.c
index 6c4f74cb0b3..39273c47868 100644
--- a/src/mame/drivers/namcos86.c
+++ b/src/mame/drivers/namcos86.c
@@ -394,7 +394,6 @@ static ADDRESS_MAP_START( NAME##_cpu2_map, ADDRESS_SPACE_PROGRAM, 8 ) \
/* { ADDR_BANK+0x04, ADDR_BANK+0x06 } layer 3 scroll registers would be here */ \
AM_RANGE(ADDR_WDOG, ADDR_WDOG) AM_WRITE(watchdog2_w) \
AM_RANGE(ADDR_INT, ADDR_INT) AM_WRITE(int_ack2_w) /* IRQ acknowledge */ \
- AM_RANGE(0x8000, 0xffff) AM_WRITE(SMH_ROM) \
ADDRESS_MAP_END
#define UNUSED 0x4000
diff --git a/src/mame/drivers/nemesis.c b/src/mame/drivers/nemesis.c
index d2b7b79b7c2..16f84cabdc6 100644
--- a/src/mame/drivers/nemesis.c
+++ b/src/mame/drivers/nemesis.c
@@ -480,7 +480,7 @@ static ADDRESS_MAP_START( blkpnthr_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x080000, 0x081fff) AM_RAM_WRITE(salamander_palette_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x090000, 0x097fff) AM_RAM
- AM_RANGE(0x0a0000, 0x0a0001) AM_RAM AM_WRITE(salamand_control_port_word_w) /* irq enable, flipscreen, etc. */
+ AM_RANGE(0x0a0000, 0x0a0001) AM_RAM_WRITE(salamand_control_port_word_w) /* irq enable, flipscreen, etc. */
AM_RANGE(0x0c0000, 0x0c0001) AM_WRITE(nemesis_soundlatch_word_w)
AM_RANGE(0x0c0002, 0x0c0003) AM_READ_PORT("DSW0")
AM_RANGE(0x0c0004, 0x0c0005) AM_WRITE(watchdog_reset16_w) /* probably */
diff --git a/src/mame/drivers/nmg5.c b/src/mame/drivers/nmg5.c
index 023e888d1d7..1f24d07398d 100644
--- a/src/mame/drivers/nmg5.c
+++ b/src/mame/drivers/nmg5.c
@@ -302,7 +302,7 @@ static ADDRESS_MAP_START( nmg5_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x18000a, 0x18000b) AM_READ_PORT("SYSTEM")
AM_RANGE(0x18000c, 0x18000d) AM_READ_PORT("INPUTS")
AM_RANGE(0x18000e, 0x18000f) AM_WRITE(priority_reg_w)
- AM_RANGE(0x300002, 0x300009) AM_WRITE(SMH_RAM) AM_BASE(&scroll_ram)
+ AM_RANGE(0x300002, 0x300009) AM_WRITEONLY AM_BASE(&scroll_ram)
AM_RANGE(0x30000a, 0x30000f) AM_WRITENOP
AM_RANGE(0x320000, 0x321fff) AM_RAM_WRITE(bg_videoram_w) AM_BASE(&bg_videoram)
AM_RANGE(0x322000, 0x323fff) AM_RAM_WRITE(fg_videoram_w) AM_BASE(&fg_videoram)
@@ -322,7 +322,7 @@ static ADDRESS_MAP_START( pclubys_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x48000a, 0x48000b) AM_READ_PORT("SYSTEM")
AM_RANGE(0x48000c, 0x48000d) AM_READ_PORT("INPUTS")
AM_RANGE(0x48000e, 0x48000f) AM_WRITE(priority_reg_w)
- AM_RANGE(0x500002, 0x500009) AM_WRITE(SMH_RAM) AM_BASE(&scroll_ram)
+ AM_RANGE(0x500002, 0x500009) AM_WRITEONLY AM_BASE(&scroll_ram)
AM_RANGE(0x520000, 0x521fff) AM_RAM_WRITE(bg_videoram_w) AM_BASE(&bg_videoram)
AM_RANGE(0x522000, 0x523fff) AM_RAM_WRITE(fg_videoram_w) AM_BASE(&fg_videoram)
AM_RANGE(0x800000, 0x80ffff) AM_RAM AM_BASE(&nmg5_bitmap)
diff --git a/src/mame/drivers/nmk16.c b/src/mame/drivers/nmk16.c
index 7e2d626cb6a..3281d3f93d7 100644
--- a/src/mame/drivers/nmk16.c
+++ b/src/mame/drivers/nmk16.c
@@ -414,7 +414,7 @@ static ADDRESS_MAP_START( mustang_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x080000, 0x080001) AM_READ_PORT("IN0")
AM_RANGE(0x080002, 0x080003) AM_READ_PORT("IN1")
AM_RANGE(0x080004, 0x080005) AM_READ_PORT("DSW1")
- AM_RANGE(0x08000e, 0x08000f) AM_READWRITE(NMK004_r, SMH_NOP)
+ AM_RANGE(0x08000e, 0x08000f) AM_READ(NMK004_r) AM_WRITENOP
AM_RANGE(0x080014, 0x080015) AM_WRITE(nmk_flipscreen_w)
AM_RANGE(0x080016, 0x080017) AM_WRITENOP // frame number?
AM_RANGE(0x08001e, 0x08001f) AM_WRITE(NMK004_w)
@@ -431,7 +431,7 @@ static ADDRESS_MAP_START( mustangb_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x080000, 0x080001) AM_READ_PORT("IN0")
AM_RANGE(0x080002, 0x080003) AM_READ_PORT("IN1")
AM_RANGE(0x080004, 0x080005) AM_READ_PORT("DSW1")
- AM_RANGE(0x08000e, 0x08000f) AM_READWRITE(SMH_NOP, SMH_NOP)
+ AM_RANGE(0x08000e, 0x08000f) AM_NOP
AM_RANGE(0x080014, 0x080015) AM_WRITE(nmk_flipscreen_w)
AM_RANGE(0x080016, 0x080017) AM_WRITENOP // frame number?
AM_RANGE(0x08001e, 0x08001f) AM_WRITE(seibu_main_mustb_w)
@@ -449,7 +449,7 @@ static ADDRESS_MAP_START( twinactn_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x080000, 0x080001) AM_READ_PORT("IN0")
AM_RANGE(0x080002, 0x080003) AM_READ_PORT("IN1")
AM_RANGE(0x080004, 0x080005) AM_READ_PORT("DSW1")
- AM_RANGE(0x08000e, 0x08000f) AM_READWRITE(SMH_NOP, SMH_NOP)
+ AM_RANGE(0x08000e, 0x08000f) AM_NOP
AM_RANGE(0x080014, 0x080015) AM_WRITE(nmk_flipscreen_w)
AM_RANGE(0x080016, 0x080017) AM_WRITENOP // frame number?
AM_RANGE(0x08001e, 0x08001f) AM_WRITE(afega_soundlatch_w)
@@ -4617,7 +4617,7 @@ static READ16_HANDLER( vandykeb_r ) { return 0x0000; }
static DRIVER_INIT (vandykeb)
{
memory_install_read16_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x08000e, 0x08000f, 0, 0, vandykeb_r );
- memory_install_write16_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x08001e, 0x08001f, 0, 0, (write16_space_func)SMH_NOP );
+ memory_nop_write(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x08001e, 0x08001f, 0, 0 );
}
@@ -4661,16 +4661,16 @@ static ADDRESS_MAP_START( afega, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x080002, 0x080003) AM_READ_PORT("IN1") // P1 + P2
AM_RANGE(0x080004, 0x080005) AM_READ_PORT("DSW1") // 2 x DSW
AM_RANGE(0x080012, 0x080013) AM_READ(afega_unknown_r)
- AM_RANGE(0x080000, 0x08001d) AM_WRITE(SMH_RAM) //
+ AM_RANGE(0x080000, 0x08001d) AM_WRITEONLY //
AM_RANGE(0x08001e, 0x08001f) AM_WRITE(afega_soundlatch_w) // To Sound CPU
/**/AM_RANGE(0x084000, 0x084003) AM_RAM_WRITE(afega_scroll0_w) // Scroll on redhawkb (mirror or changed?..)
/**/AM_RANGE(0x084004, 0x084007) AM_RAM_WRITE(afega_scroll1_w) // Scroll on redhawkb (mirror or changed?..)
- AM_RANGE(0x080020, 0x087fff) AM_WRITE(SMH_RAM) //
+ AM_RANGE(0x080020, 0x087fff) AM_WRITEONLY //
/**/AM_RANGE(0x088000, 0x0885ff) AM_RAM_WRITE(paletteram16_RRRRGGGGBBBBRGBx_word_w) AM_BASE_GENERIC(paletteram) // Palette
- AM_RANGE(0x088600, 0x08bfff) AM_WRITE(SMH_RAM) //
+ AM_RANGE(0x088600, 0x08bfff) AM_WRITEONLY //
/**/AM_RANGE(0x08c000, 0x08c003) AM_RAM_WRITE(afega_scroll0_w) AM_BASE(&afega_scroll_0) // Scroll
/**/AM_RANGE(0x08c004, 0x08c007) AM_RAM_WRITE(afega_scroll1_w) AM_BASE(&afega_scroll_1) //
- AM_RANGE(0x08c008, 0x08ffff) AM_WRITE(SMH_RAM) //
+ AM_RANGE(0x08c008, 0x08ffff) AM_WRITEONLY //
/**/AM_RANGE(0x090000, 0x093fff) AM_RAM_WRITE(nmk_bgvideoram0_w) AM_BASE(&nmk_bgvideoram0) // Layer 0 // ?
/**/AM_RANGE(0x09c000, 0x09c7ff) AM_RAM_WRITE(nmk_txvideoram_w) AM_BASE(&nmk_txvideoram) // Layer 1
diff --git a/src/mame/drivers/nss.c b/src/mame/drivers/nss.c
index bc129bf56d4..8f6a506ca7f 100644
--- a/src/mame/drivers/nss.c
+++ b/src/mame/drivers/nss.c
@@ -300,7 +300,7 @@ Contra III CONTRA_III_1 TC574000 CONTRA_III_0 TC574000 GAME1_NSSU
static ADDRESS_MAP_START( snes_map, ADDRESS_SPACE_PROGRAM, 8)
AM_RANGE(0x000000, 0x2fffff) AM_READWRITE(snes_r_bank1, snes_w_bank1) /* I/O and ROM (repeats for each bank) */
AM_RANGE(0x300000, 0x3fffff) AM_READWRITE(snes_r_bank2, snes_w_bank2) /* I/O and ROM (repeats for each bank) */
- AM_RANGE(0x400000, 0x5fffff) AM_READWRITE(snes_r_bank3, SMH_ROM) /* ROM (and reserved in Mode 20) */
+ AM_RANGE(0x400000, 0x5fffff) AM_READ(snes_r_bank3) /* ROM (and reserved in Mode 20) */
AM_RANGE(0x600000, 0x6fffff) AM_READWRITE(snes_r_bank4, snes_w_bank4) /* used by Mode 20 DSP-1 */
AM_RANGE(0x700000, 0x7dffff) AM_READWRITE(snes_r_bank5, snes_w_bank5)
AM_RANGE(0x7e0000, 0x7fffff) AM_RAM /* 8KB Low RAM, 24KB High RAM, 96KB Expanded RAM */
diff --git a/src/mame/drivers/othunder.c b/src/mame/drivers/othunder.c
index 2fd162d4c27..35c6c2171cc 100644
--- a/src/mame/drivers/othunder.c
+++ b/src/mame/drivers/othunder.c
@@ -519,7 +519,7 @@ static ADDRESS_MAP_START( z80_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank10")
AM_RANGE(0xc000, 0xdfff) AM_RAM
AM_RANGE(0xe000, 0xe003) AM_DEVREADWRITE("ymsnd", ym2610_r, ym2610_w)
- AM_RANGE(0xe200, 0xe200) AM_READWRITE(SMH_NOP, taitosound_slave_port_w)
+ AM_RANGE(0xe200, 0xe200) AM_READNOP AM_WRITE(taitosound_slave_port_w)
AM_RANGE(0xe201, 0xe201) AM_READWRITE(taitosound_slave_comm_r, taitosound_slave_comm_w)
AM_RANGE(0xe400, 0xe403) AM_WRITE(othunder_TC0310FAM_w) /* pan */
AM_RANGE(0xe600, 0xe600) AM_WRITENOP /* ? */
diff --git a/src/mame/drivers/pacland.c b/src/mame/drivers/pacland.c
index 6f283d44ee1..97aa590b61a 100644
--- a/src/mame/drivers/pacland.c
+++ b/src/mame/drivers/pacland.c
@@ -259,7 +259,7 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x6800, 0x6bff) AM_DEVREADWRITE("namco", namcos1_cus30_r, namcos1_cus30_w) /* PSG device, shared RAM */
AM_RANGE(0x7000, 0x7fff) AM_WRITE(pacland_irq_1_ctrl_w)
AM_RANGE(0x7800, 0x7fff) AM_READ(watchdog_reset_r)
- AM_RANGE(0x8000, 0xffff) AM_READ(SMH_ROM)
+ AM_RANGE(0x8000, 0xffff) AM_ROM
AM_RANGE(0x8000, 0x8fff) AM_WRITE(pacland_subreset_w)
AM_RANGE(0x9000, 0x9fff) AM_WRITE(pacland_flipscreen_w)
ADDRESS_MAP_END
@@ -270,10 +270,10 @@ static ADDRESS_MAP_START( mcu_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x1000, 0x13ff) AM_DEVREADWRITE("namco", namcos1_cus30_r, namcos1_cus30_w) AM_BASE(&namco_wavedata) /* PSG device, shared RAM */
AM_RANGE(0x2000, 0x3fff) AM_WRITE(watchdog_reset_w) /* watchdog? */
AM_RANGE(0x4000, 0x7fff) AM_WRITE(pacland_irq_2_ctrl_w)
- AM_RANGE(0x8000, 0xbfff) AM_READ(SMH_ROM)
+ AM_RANGE(0x8000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM
AM_RANGE(0xd000, 0xd003) AM_READ(pacland_input_r)
- AM_RANGE(0xf000, 0xffff) AM_READ(SMH_ROM)
+ AM_RANGE(0xf000, 0xffff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/pacman.c b/src/mame/drivers/pacman.c
index d8098336271..81239eeb4f9 100644
--- a/src/mame/drivers/pacman.c
+++ b/src/mame/drivers/pacman.c
@@ -892,9 +892,9 @@ static WRITE8_HANDLER( mspacman_enable_decode_w ) { mspacman_enable_deco
static ADDRESS_MAP_START( pacman_map, ADDRESS_SPACE_PROGRAM, 8 )
//A lot of games don't have an a15 at the cpu. Generally only games with a cpu daughter board can access the full 32k of romspace.
AM_RANGE(0x0000, 0x3fff) AM_MIRROR(0x8000) AM_ROM
- AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0xa000) AM_READWRITE(SMH_RAM,pacman_videoram_w) AM_BASE_GENERIC(videoram) AM_SIZE_GENERIC(videoram)
- AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0xa000) AM_READWRITE(SMH_RAM,pacman_colorram_w) AM_BASE_GENERIC(colorram)
- AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0xa000) AM_READWRITE(pacman_read_nop,SMH_NOP)
+ AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0xa000) AM_RAM_WRITE(pacman_videoram_w) AM_BASE_GENERIC(videoram) AM_SIZE_GENERIC(videoram)
+ AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0xa000) AM_RAM_WRITE(pacman_colorram_w) AM_BASE_GENERIC(colorram)
+ AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0xa000) AM_READ(pacman_read_nop) AM_WRITENOP
AM_RANGE(0x4c00, 0x4fef) AM_MIRROR(0xa000) AM_RAM
AM_RANGE(0x4ff0, 0x4fff) AM_MIRROR(0xa000) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x5000, 0x5000) AM_MIRROR(0xaf38) AM_WRITE(interrupt_enable_w)
@@ -905,7 +905,7 @@ static ADDRESS_MAP_START( pacman_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x5006, 0x5006) AM_MIRROR(0xaf38) AM_WRITENOP // AM_WRITE(pacman_coin_lockout_global_w)
AM_RANGE(0x5007, 0x5007) AM_MIRROR(0xaf38) AM_WRITE(pacman_coin_counter_w)
AM_RANGE(0x5040, 0x505f) AM_MIRROR(0xaf00) AM_DEVWRITE("namco", pacman_sound_w) AM_BASE(&pacman_soundregs)
- AM_RANGE(0x5060, 0x506f) AM_MIRROR(0xaf00) AM_WRITE(SMH_RAM) AM_BASE_GENERIC(spriteram2)
+ AM_RANGE(0x5060, 0x506f) AM_MIRROR(0xaf00) AM_WRITEONLY AM_BASE_GENERIC(spriteram2)
AM_RANGE(0x5070, 0x507f) AM_MIRROR(0xaf00) AM_WRITENOP
AM_RANGE(0x5080, 0x5080) AM_MIRROR(0xaf3f) AM_WRITENOP
AM_RANGE(0x50c0, 0x50c0) AM_MIRROR(0xaf3f) AM_WRITE(watchdog_reset_w)
@@ -919,9 +919,9 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( mspacman_map, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0xa000) AM_READWRITE(SMH_RAM,pacman_videoram_w) AM_BASE_GENERIC(videoram) AM_SIZE_GENERIC(videoram)
- AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0xa000) AM_READWRITE(SMH_RAM,pacman_colorram_w) AM_BASE_GENERIC(colorram)
- AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0xa000) AM_READWRITE(pacman_read_nop,SMH_NOP)
+ AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0xa000) AM_RAM_WRITE(pacman_videoram_w) AM_BASE_GENERIC(videoram) AM_SIZE_GENERIC(videoram)
+ AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0xa000) AM_RAM_WRITE(pacman_colorram_w) AM_BASE_GENERIC(colorram)
+ AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0xa000) AM_READ(pacman_read_nop) AM_WRITENOP
AM_RANGE(0x4c00, 0x4fef) AM_MIRROR(0xa000) AM_RAM
AM_RANGE(0x4ff0, 0x4fff) AM_MIRROR(0xa000) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x5000, 0x5000) AM_MIRROR(0xaf38) AM_WRITE(interrupt_enable_w)
@@ -932,7 +932,7 @@ static ADDRESS_MAP_START( mspacman_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x5006, 0x5006) AM_MIRROR(0xaf38) AM_WRITE(pacman_coin_lockout_global_w)
AM_RANGE(0x5007, 0x5007) AM_MIRROR(0xaf38) AM_WRITE(pacman_coin_counter_w)
AM_RANGE(0x5040, 0x505f) AM_MIRROR(0xaf00) AM_DEVWRITE("namco", pacman_sound_w) AM_BASE(&pacman_soundregs)
- AM_RANGE(0x5060, 0x506f) AM_MIRROR(0xaf00) AM_WRITE(SMH_RAM) AM_BASE_GENERIC(spriteram2)
+ AM_RANGE(0x5060, 0x506f) AM_MIRROR(0xaf00) AM_WRITEONLY AM_BASE_GENERIC(spriteram2)
AM_RANGE(0x5070, 0x507f) AM_MIRROR(0xaf00) AM_WRITENOP
AM_RANGE(0x5080, 0x5080) AM_MIRROR(0xaf3f) AM_WRITENOP
AM_RANGE(0x50c0, 0x50c0) AM_MIRROR(0xaf3f) AM_WRITE(watchdog_reset_w)
@@ -959,9 +959,9 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( woodpek_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x3fff) AM_ROM
- AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0xa000) AM_READWRITE(SMH_RAM,pacman_videoram_w) AM_BASE_GENERIC(videoram) AM_SIZE_GENERIC(videoram)
- AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0xa000) AM_READWRITE(SMH_RAM,pacman_colorram_w) AM_BASE_GENERIC(colorram)
- AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0xa000) AM_READWRITE(pacman_read_nop,SMH_NOP)
+ AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0xa000) AM_RAM_WRITE(pacman_videoram_w) AM_BASE_GENERIC(videoram) AM_SIZE_GENERIC(videoram)
+ AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0xa000) AM_RAM_WRITE(pacman_colorram_w) AM_BASE_GENERIC(colorram)
+ AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0xa000) AM_READ(pacman_read_nop) AM_WRITENOP
AM_RANGE(0x4c00, 0x4fef) AM_MIRROR(0xa000) AM_RAM
AM_RANGE(0x4ff0, 0x4fff) AM_MIRROR(0xa000) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x5000, 0x5000) AM_MIRROR(0xaf38) AM_WRITE(interrupt_enable_w)
@@ -972,7 +972,7 @@ static ADDRESS_MAP_START( woodpek_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x5006, 0x5006) AM_MIRROR(0xaf38) AM_WRITENOP // AM_WRITE(pacman_coin_lockout_global_w)
AM_RANGE(0x5007, 0x5007) AM_MIRROR(0xaf38) AM_WRITE(pacman_coin_counter_w)
AM_RANGE(0x5040, 0x505f) AM_MIRROR(0xaf00) AM_DEVWRITE("namco", pacman_sound_w) AM_BASE(&pacman_soundregs)
- AM_RANGE(0x5060, 0x506f) AM_MIRROR(0xaf00) AM_WRITE(SMH_RAM) AM_BASE_GENERIC(spriteram2)
+ AM_RANGE(0x5060, 0x506f) AM_MIRROR(0xaf00) AM_WRITEONLY AM_BASE_GENERIC(spriteram2)
AM_RANGE(0x5070, 0x507f) AM_MIRROR(0xaf00) AM_WRITENOP
AM_RANGE(0x5080, 0x5080) AM_MIRROR(0xaf3f) AM_WRITENOP
AM_RANGE(0x50c0, 0x50c0) AM_MIRROR(0xaf3f) AM_WRITE(watchdog_reset_w)
@@ -986,9 +986,9 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( alibaba_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x3fff) AM_ROM
- AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0xa000) AM_READWRITE(SMH_RAM,pacman_videoram_w) AM_BASE_GENERIC(videoram) AM_SIZE_GENERIC(videoram)
- AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0xa000) AM_READWRITE(SMH_RAM,pacman_colorram_w) AM_BASE_GENERIC(colorram)
- AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0xa000) AM_READWRITE(pacman_read_nop,SMH_NOP)
+ AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0xa000) AM_RAM_WRITE(pacman_videoram_w) AM_BASE_GENERIC(videoram) AM_SIZE_GENERIC(videoram)
+ AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0xa000) AM_RAM_WRITE(pacman_colorram_w) AM_BASE_GENERIC(colorram)
+ AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0xa000) AM_READ(pacman_read_nop) AM_WRITENOP
AM_RANGE(0x4c00, 0x4eef) AM_MIRROR(0xa000) AM_RAM
AM_RANGE(0x4ef0, 0x4eff) AM_MIRROR(0xa000) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x4f00, 0x4fff) AM_MIRROR(0xa000) AM_RAM
@@ -997,7 +997,7 @@ static ADDRESS_MAP_START( alibaba_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x5006, 0x5006) AM_MIRROR(0xaf38) AM_WRITE(pacman_coin_lockout_global_w)
AM_RANGE(0x5007, 0x5007) AM_MIRROR(0xaf38) AM_WRITE(pacman_coin_counter_w)
AM_RANGE(0x5040, 0x506f) AM_MIRROR(0xaf00) AM_WRITE(alibaba_sound_w) AM_BASE(&pacman_soundregs) /* the sound region is not contiguous */
- AM_RANGE(0x5060, 0x506f) AM_MIRROR(0xaf00) AM_WRITE(SMH_RAM) AM_BASE_GENERIC(spriteram2) /* actually at 5050-505f, here to point to free RAM */
+ AM_RANGE(0x5060, 0x506f) AM_MIRROR(0xaf00) AM_WRITEONLY AM_BASE_GENERIC(spriteram2) /* actually at 5050-505f, here to point to free RAM */
AM_RANGE(0x5070, 0x507f) AM_MIRROR(0xaf00) AM_WRITENOP
AM_RANGE(0x5080, 0x5080) AM_MIRROR(0xaf3f) AM_WRITENOP
AM_RANGE(0x50c0, 0x50c0) AM_MIRROR(0xaf00) AM_DEVWRITE("namco", pacman_sound_enable_w)
@@ -1018,8 +1018,8 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( dremshpr_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x3fff) AM_ROM
- AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0xa000) AM_READWRITE(SMH_RAM,pacman_videoram_w) AM_BASE_GENERIC(videoram) AM_SIZE_GENERIC(videoram)
- AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0xa000) AM_READWRITE(SMH_RAM,pacman_colorram_w) AM_BASE_GENERIC(colorram)
+ AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0xa000) AM_RAM_WRITE(pacman_videoram_w) AM_BASE_GENERIC(videoram) AM_SIZE_GENERIC(videoram)
+ AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0xa000) AM_RAM_WRITE(pacman_colorram_w) AM_BASE_GENERIC(colorram)
AM_RANGE(0x4800, 0x4fef) AM_MIRROR(0xa000) AM_RAM
AM_RANGE(0x4ff0, 0x4fff) AM_MIRROR(0xa000) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x5000, 0x5000) AM_MIRROR(0xaf38) AM_WRITE(interrupt_enable_w)
@@ -1030,7 +1030,7 @@ static ADDRESS_MAP_START( dremshpr_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x5006, 0x5006) AM_MIRROR(0xaf38) AM_WRITENOP // AM_WRITE(pacman_coin_lockout_global_w)
AM_RANGE(0x5007, 0x5007) AM_MIRROR(0xaf38) AM_WRITE(pacman_coin_counter_w)
// AM_RANGE(0x5040, 0x505f) AM_MIRROR(0xaf00) AM_DEVWRITE("namco", pacman_sound_w) AM_BASE(&pacman_soundregs)
- AM_RANGE(0x5060, 0x506f) AM_MIRROR(0xaf00) AM_WRITE(SMH_RAM) AM_BASE_GENERIC(spriteram2)
+ AM_RANGE(0x5060, 0x506f) AM_MIRROR(0xaf00) AM_WRITEONLY AM_BASE_GENERIC(spriteram2)
AM_RANGE(0x5070, 0x507f) AM_MIRROR(0xaf00) AM_WRITENOP
AM_RANGE(0x5080, 0x5080) AM_MIRROR(0xaf3f) AM_WRITENOP
AM_RANGE(0x50c0, 0x50c0) AM_MIRROR(0xaf3f) AM_WRITE(watchdog_reset_w)
@@ -1044,9 +1044,9 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( epos_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x3fff) AM_MIRROR(0x8000) AM_ROMBANK("bank1")
- AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0xa000) AM_READWRITE(SMH_RAM,pacman_videoram_w) AM_BASE_GENERIC(videoram) AM_SIZE_GENERIC(videoram)
- AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0xa000) AM_READWRITE(SMH_RAM,pacman_colorram_w) AM_BASE_GENERIC(colorram)
- AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0xa000) AM_READWRITE(pacman_read_nop,SMH_NOP)
+ AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0xa000) AM_RAM_WRITE(pacman_videoram_w) AM_BASE_GENERIC(videoram) AM_SIZE_GENERIC(videoram)
+ AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0xa000) AM_RAM_WRITE(pacman_colorram_w) AM_BASE_GENERIC(colorram)
+ AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0xa000) AM_READ(pacman_read_nop) AM_WRITENOP
AM_RANGE(0x4c00, 0x4fef) AM_MIRROR(0xa000) AM_RAM
AM_RANGE(0x4ff0, 0x4fff) AM_MIRROR(0xa000) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x5000, 0x5000) AM_MIRROR(0xaf38) AM_WRITE(interrupt_enable_w)
@@ -1057,7 +1057,7 @@ static ADDRESS_MAP_START( epos_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x5006, 0x5006) AM_MIRROR(0xaf38) AM_WRITENOP // AM_WRITE(pacman_coin_lockout_global_w)
AM_RANGE(0x5007, 0x5007) AM_MIRROR(0xaf38) AM_WRITE(pacman_coin_counter_w)
AM_RANGE(0x5040, 0x505f) AM_MIRROR(0xaf00) AM_DEVWRITE("namco", pacman_sound_w) AM_BASE(&pacman_soundregs)
- AM_RANGE(0x5060, 0x506f) AM_MIRROR(0xaf00) AM_WRITE(SMH_RAM) AM_BASE_GENERIC(spriteram2)
+ AM_RANGE(0x5060, 0x506f) AM_MIRROR(0xaf00) AM_WRITEONLY AM_BASE_GENERIC(spriteram2)
AM_RANGE(0x5070, 0x507f) AM_MIRROR(0xaf00) AM_WRITENOP
AM_RANGE(0x5080, 0x5080) AM_MIRROR(0xaf3f) AM_WRITENOP
AM_RANGE(0x50c0, 0x50c0) AM_MIRROR(0xaf3f) AM_WRITE(watchdog_reset_w)
@@ -1070,8 +1070,8 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( vanvan_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x3fff) AM_ROM
- AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0xa000) AM_READWRITE(SMH_RAM,pacman_videoram_w) AM_BASE_GENERIC(videoram) AM_SIZE_GENERIC(videoram)
- AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0xa000) AM_READWRITE(SMH_RAM,pacman_colorram_w) AM_BASE_GENERIC(colorram)
+ AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0xa000) AM_RAM_WRITE(pacman_videoram_w) AM_BASE_GENERIC(videoram) AM_SIZE_GENERIC(videoram)
+ AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0xa000) AM_RAM_WRITE(pacman_colorram_w) AM_BASE_GENERIC(colorram)
AM_RANGE(0x4800, 0x4fef) AM_MIRROR(0xa000) AM_RAM
AM_RANGE(0x4ff0, 0x4fff) AM_MIRROR(0xa000) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x5000, 0x5000) AM_MIRROR(0xaf38) AM_WRITE(interrupt_enable_w)
@@ -1082,7 +1082,7 @@ static ADDRESS_MAP_START( vanvan_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x5005, 0x5006) AM_MIRROR(0xaf38) AM_WRITENOP /* always written together with 5001 */
AM_RANGE(0x5007, 0x5007) AM_MIRROR(0xaf38) AM_WRITE(pacman_coin_counter_w)
AM_RANGE(0x5040, 0x505f) AM_MIRROR(0xaf00) AM_WRITENOP
- AM_RANGE(0x5060, 0x506f) AM_MIRROR(0xaf00) AM_WRITE(SMH_RAM) AM_BASE_GENERIC(spriteram2)
+ AM_RANGE(0x5060, 0x506f) AM_MIRROR(0xaf00) AM_WRITEONLY AM_BASE_GENERIC(spriteram2)
AM_RANGE(0x5070, 0x507f) AM_MIRROR(0xaf00) AM_WRITENOP
AM_RANGE(0x5080, 0x5080) AM_MIRROR(0xaf3f) AM_WRITENOP /* ??? toggled before reading 5000 */
AM_RANGE(0x50c0, 0x50c0) AM_MIRROR(0xaf3f) AM_WRITE(watchdog_reset_w)
@@ -1101,17 +1101,17 @@ static ADDRESS_MAP_START( s2650games_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x0fff) AM_MIRROR(0x8000) AM_ROMBANK("bank1")
AM_RANGE(0x1000, 0x13ff) AM_MIRROR(0xe000) AM_WRITE(s2650games_colorram_w) AM_BASE_GENERIC(colorram)
AM_RANGE(0x1400, 0x141f) AM_MIRROR(0xe000) AM_WRITE(s2650games_scroll_w)
- AM_RANGE(0x1420, 0x148f) AM_MIRROR(0xe000) AM_WRITE(SMH_RAM)
- AM_RANGE(0x1490, 0x149f) AM_MIRROR(0xe000) AM_WRITE(SMH_RAM) AM_BASE(&s2650games_spriteram)
+ AM_RANGE(0x1420, 0x148f) AM_MIRROR(0xe000) AM_WRITEONLY
+ AM_RANGE(0x1490, 0x149f) AM_MIRROR(0xe000) AM_WRITEONLY AM_BASE(&s2650games_spriteram)
AM_RANGE(0x14a0, 0x14bf) AM_MIRROR(0xe000) AM_WRITE(s2650games_tilesbank_w) AM_BASE(&s2650games_tileram)
- AM_RANGE(0x14c0, 0x14ff) AM_MIRROR(0xe000) AM_WRITE(SMH_RAM)
+ AM_RANGE(0x14c0, 0x14ff) AM_MIRROR(0xe000) AM_WRITEONLY
AM_RANGE(0x1500, 0x1502) AM_MIRROR(0xe000) AM_WRITENOP
AM_RANGE(0x1503, 0x1503) AM_MIRROR(0xe000) AM_WRITE(pacman_flipscreen_w)
AM_RANGE(0x1504, 0x1506) AM_MIRROR(0xe000) AM_WRITENOP
AM_RANGE(0x1507, 0x1507) AM_MIRROR(0xe000) AM_WRITE(pacman_coin_counter_w)
- AM_RANGE(0x1508, 0x155f) AM_MIRROR(0xe000) AM_WRITE(SMH_RAM)
- AM_RANGE(0x1560, 0x156f) AM_MIRROR(0xe000) AM_WRITE(SMH_RAM) AM_BASE_GENERIC(spriteram2)
- AM_RANGE(0x1570, 0x157f) AM_MIRROR(0xe000) AM_WRITE(SMH_RAM)
+ AM_RANGE(0x1508, 0x155f) AM_MIRROR(0xe000) AM_WRITEONLY
+ AM_RANGE(0x1560, 0x156f) AM_MIRROR(0xe000) AM_WRITEONLY AM_BASE_GENERIC(spriteram2)
+ AM_RANGE(0x1570, 0x157f) AM_MIRROR(0xe000) AM_WRITEONLY
AM_RANGE(0x1586, 0x1587) AM_MIRROR(0xe000) AM_WRITENOP
AM_RANGE(0x15c0, 0x15c0) AM_MIRROR(0xe000) AM_WRITE(watchdog_reset_w)
AM_RANGE(0x15c7, 0x15c7) AM_MIRROR(0xe000) AM_WRITE(porky_banking_w)
@@ -1120,7 +1120,7 @@ static ADDRESS_MAP_START( s2650games_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x1580, 0x1580) AM_MIRROR(0xe000) AM_READ_PORT("DSW0")
AM_RANGE(0x1800, 0x1bff) AM_MIRROR(0xe000) AM_WRITE(s2650games_videoram_w) AM_BASE_GENERIC(videoram)
AM_RANGE(0x1c00, 0x1fef) AM_MIRROR(0xe000) AM_RAM
- AM_RANGE(0x1ff0, 0x1fff) AM_MIRROR(0xe000) AM_WRITE(SMH_RAM) AM_BASE_SIZE_GENERIC(spriteram)
+ AM_RANGE(0x1ff0, 0x1fff) AM_MIRROR(0xe000) AM_WRITEONLY AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x2000, 0x2fff) AM_MIRROR(0x8000) AM_ROMBANK("bank2")
AM_RANGE(0x4000, 0x4fff) AM_MIRROR(0x8000) AM_ROMBANK("bank3")
AM_RANGE(0x6000, 0x6fff) AM_MIRROR(0x8000) AM_ROMBANK("bank4")
@@ -1129,8 +1129,8 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( rocktrv2_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x3fff) AM_ROM
- AM_RANGE(0x4000, 0x43ff) AM_READWRITE(SMH_RAM,pacman_videoram_w) AM_BASE_GENERIC(videoram) AM_SIZE_GENERIC(videoram)
- AM_RANGE(0x4400, 0x47ff) AM_READWRITE(SMH_RAM,pacman_colorram_w) AM_BASE_GENERIC(colorram)
+ AM_RANGE(0x4000, 0x43ff) AM_RAM_WRITE(pacman_videoram_w) AM_BASE_GENERIC(videoram) AM_SIZE_GENERIC(videoram)
+ AM_RANGE(0x4400, 0x47ff) AM_RAM_WRITE(pacman_colorram_w) AM_BASE_GENERIC(colorram)
AM_RANGE(0x4c00, 0x4fff) AM_RAM
AM_RANGE(0x5000, 0x5000) AM_WRITE(interrupt_enable_w)
AM_RANGE(0x5001, 0x5001) AM_DEVWRITE("namco", pacman_sound_enable_w)
@@ -1156,8 +1156,8 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( bigbucks_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x3fff) AM_ROM
- AM_RANGE(0x4000, 0x43ff) AM_READWRITE(SMH_RAM,pacman_videoram_w) AM_BASE_GENERIC(videoram) AM_SIZE_GENERIC(videoram)
- AM_RANGE(0x4400, 0x47ff) AM_READWRITE(SMH_RAM,pacman_colorram_w) AM_BASE_GENERIC(colorram)
+ AM_RANGE(0x4000, 0x43ff) AM_RAM_WRITE(pacman_videoram_w) AM_BASE_GENERIC(videoram) AM_SIZE_GENERIC(videoram)
+ AM_RANGE(0x4400, 0x47ff) AM_RAM_WRITE(pacman_colorram_w) AM_BASE_GENERIC(colorram)
AM_RANGE(0x4c00, 0x4fff) AM_RAM
AM_RANGE(0x5000, 0x5000) AM_WRITE(interrupt_enable_w)
AM_RANGE(0x5001, 0x5001) AM_DEVWRITE("namco", pacman_sound_enable_w)
@@ -1177,9 +1177,9 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( mschamp_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x3fff) AM_ROMBANK("bank1")
- AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0xa000) AM_READWRITE(SMH_RAM,pacman_videoram_w) AM_BASE_GENERIC(videoram) AM_SIZE_GENERIC(videoram)
- AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0xa000) AM_READWRITE(SMH_RAM,pacman_colorram_w) AM_BASE_GENERIC(colorram)
- AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0xa000) AM_READWRITE(pacman_read_nop,SMH_NOP)
+ AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0xa000) AM_RAM_WRITE(pacman_videoram_w) AM_BASE_GENERIC(videoram) AM_SIZE_GENERIC(videoram)
+ AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0xa000) AM_RAM_WRITE(pacman_colorram_w) AM_BASE_GENERIC(colorram)
+ AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0xa000) AM_READ(pacman_read_nop) AM_WRITENOP
AM_RANGE(0x4c00, 0x4fef) AM_MIRROR(0xa000) AM_RAM
AM_RANGE(0x4ff0, 0x4fff) AM_MIRROR(0xa000) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x5000, 0x5000) AM_MIRROR(0xaf38) AM_WRITE(interrupt_enable_w)
@@ -1190,7 +1190,7 @@ static ADDRESS_MAP_START( mschamp_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x5006, 0x5006) AM_MIRROR(0xaf38) AM_WRITENOP // AM_WRITE(pacman_coin_lockout_global_w)
AM_RANGE(0x5007, 0x5007) AM_MIRROR(0xaf38) AM_WRITE(pacman_coin_counter_w)
AM_RANGE(0x5040, 0x505f) AM_MIRROR(0xaf00) AM_DEVWRITE("namco", pacman_sound_w) AM_BASE(&pacman_soundregs)
- AM_RANGE(0x5060, 0x506f) AM_MIRROR(0xaf00) AM_WRITE(SMH_RAM) AM_BASE_GENERIC(spriteram2)
+ AM_RANGE(0x5060, 0x506f) AM_MIRROR(0xaf00) AM_WRITEONLY AM_BASE_GENERIC(spriteram2)
AM_RANGE(0x5070, 0x507f) AM_MIRROR(0xaf00) AM_WRITENOP
AM_RANGE(0x5080, 0x5080) AM_MIRROR(0xaf3f) AM_WRITENOP
AM_RANGE(0x50c0, 0x50c0) AM_MIRROR(0xaf3f) AM_WRITE(watchdog_reset_w)
@@ -1204,9 +1204,9 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( crushs_map, ADDRESS_SPACE_PROGRAM, 8 )
//A lot of games don't have an a15 at the cpu. Generally only games with a cpu daughter board can access the full 32k of romspace.
AM_RANGE(0x0000, 0x3fff) AM_MIRROR(0x8000) AM_ROM
- AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0xa000) AM_READWRITE(SMH_RAM,pacman_videoram_w) AM_BASE_GENERIC(videoram) AM_SIZE_GENERIC(videoram)
- AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0xa000) AM_READWRITE(SMH_RAM,pacman_colorram_w) AM_BASE_GENERIC(colorram)
- AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0xa000) AM_READWRITE(pacman_read_nop,SMH_NOP)
+ AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0xa000) AM_RAM_WRITE(pacman_videoram_w) AM_BASE_GENERIC(videoram) AM_SIZE_GENERIC(videoram)
+ AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0xa000) AM_RAM_WRITE(pacman_colorram_w) AM_BASE_GENERIC(colorram)
+ AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0xa000) AM_READ(pacman_read_nop) AM_WRITENOP
AM_RANGE(0x4c00, 0x4fef) AM_MIRROR(0xa000) AM_RAM
AM_RANGE(0x4ff0, 0x4fff) AM_MIRROR(0xa000) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x5000, 0x5000) AM_MIRROR(0xaf38) AM_WRITE(interrupt_enable_w)
@@ -1217,7 +1217,7 @@ static ADDRESS_MAP_START( crushs_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x5006, 0x5006) AM_MIRROR(0xaf38) AM_WRITENOP // AM_WRITE(pacman_coin_lockout_global_w)
AM_RANGE(0x5007, 0x5007) AM_MIRROR(0xaf38) AM_WRITE(pacman_coin_counter_w)
AM_RANGE(0x5040, 0x505f) AM_MIRROR(0xaf00) AM_WRITENOP // doesn't use pacman sound hw
- AM_RANGE(0x5060, 0x506f) AM_MIRROR(0xaf00) AM_WRITE(SMH_RAM) AM_BASE_GENERIC(spriteram2)
+ AM_RANGE(0x5060, 0x506f) AM_MIRROR(0xaf00) AM_WRITEONLY AM_BASE_GENERIC(spriteram2)
AM_RANGE(0x5070, 0x507f) AM_MIRROR(0xaf00) AM_WRITENOP
AM_RANGE(0x5080, 0x5080) AM_MIRROR(0xaf3f) AM_WRITENOP
AM_RANGE(0x50c0, 0x50c0) AM_MIRROR(0xaf3f) AM_WRITE(watchdog_reset_w)
diff --git a/src/mame/drivers/pengo.c b/src/mame/drivers/pengo.c
index 61e582bed61..bfbea0bdcc9 100644
--- a/src/mame/drivers/pengo.c
+++ b/src/mame/drivers/pengo.c
@@ -103,7 +103,7 @@ static ADDRESS_MAP_START( pengo_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x8800, 0x8fef) AM_RAM
AM_RANGE(0x8ff0, 0x8fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x9000, 0x901f) AM_DEVWRITE("namco", pacman_sound_w) AM_BASE(&pacman_soundregs)
- AM_RANGE(0x9020, 0x902f) AM_WRITE(SMH_RAM) AM_BASE_GENERIC(spriteram2)
+ AM_RANGE(0x9020, 0x902f) AM_WRITEONLY AM_BASE_GENERIC(spriteram2)
AM_RANGE(0x9000, 0x903f) AM_READ_PORT("DSW1")
AM_RANGE(0x9040, 0x907f) AM_READ_PORT("DSW0")
AM_RANGE(0x9040, 0x9040) AM_WRITE(interrupt_enable_w)
@@ -125,7 +125,7 @@ static ADDRESS_MAP_START( jrpacmbl_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x8800, 0x8fef) AM_RAM
AM_RANGE(0x8ff0, 0x8fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x9000, 0x901f) AM_DEVWRITE("namco", pacman_sound_w) AM_BASE(&pacman_soundregs)
- AM_RANGE(0x9020, 0x902f) AM_WRITE(SMH_RAM) AM_BASE_GENERIC(spriteram2)
+ AM_RANGE(0x9020, 0x902f) AM_WRITEONLY AM_BASE_GENERIC(spriteram2)
AM_RANGE(0x9030, 0x9030) AM_WRITE(jrpacman_scroll_w)
AM_RANGE(0x9040, 0x904f) AM_READ_PORT("DSW")
AM_RANGE(0x9040, 0x9040) AM_WRITE(interrupt_enable_w)
diff --git a/src/mame/drivers/plygonet.c b/src/mame/drivers/plygonet.c
index f6590aaaab7..3f6e9e048e7 100644
--- a/src/mame/drivers/plygonet.c
+++ b/src/mame/drivers/plygonet.c
@@ -600,7 +600,7 @@ static INTERRUPT_GEN(audio_interrupt)
}
static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM)
+ AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank2")
AM_RANGE(0x0000, 0xbfff) AM_WRITENOP
AM_RANGE(0xc000, 0xdfff) AM_RAM
diff --git a/src/mame/drivers/polepos.c b/src/mame/drivers/polepos.c
index b97dc69f326..70df1c34d7e 100644
--- a/src/mame/drivers/polepos.c
+++ b/src/mame/drivers/polepos.c
@@ -486,8 +486,8 @@ static ADDRESS_MAP_START( z80_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x4c00, 0x4fff) AM_READWRITE(polepos_alpha_r, polepos_alpha_w) /* Alphanumeric (char ram) */
AM_RANGE(0x5000, 0x57ff) AM_READWRITE(polepos_view_r, polepos_view_w) /* Background Memory */
- AM_RANGE(0x8000, 0x83ff) AM_MIRROR(0x0c00) AM_READ(SMH_RAM) /* Sound Memory */
- AM_RANGE(0x8000, 0x83bf) AM_MIRROR(0x0c00) AM_WRITE(SMH_RAM) /* Sound Memory */
+ AM_RANGE(0x8000, 0x83ff) AM_MIRROR(0x0c00) AM_READONLY /* Sound Memory */
+ AM_RANGE(0x8000, 0x83bf) AM_MIRROR(0x0c00) AM_WRITEONLY /* Sound Memory */
AM_RANGE(0x83c0, 0x83ff) AM_MIRROR(0x0c00) AM_DEVWRITE("namco", polepos_sound_w) AM_BASE(&polepos_soundregs)/* Sound data */
AM_RANGE(0x9000, 0x9000) AM_MIRROR(0x0eff) AM_DEVREADWRITE("06xx", namco_06xx_data_r, namco_06xx_data_w)
@@ -501,7 +501,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( z80_io, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x00) AM_READWRITE(polepos_adc_r, SMH_NOP)
+ AM_RANGE(0x00, 0x00) AM_READ(polepos_adc_r) AM_WRITENOP
ADDRESS_MAP_END
diff --git a/src/mame/drivers/poolshrk.c b/src/mame/drivers/poolshrk.c
index a61e164f133..693ca773f77 100644
--- a/src/mame/drivers/poolshrk.c
+++ b/src/mame/drivers/poolshrk.c
@@ -101,9 +101,9 @@ static READ8_HANDLER( poolshrk_irq_reset_r )
static ADDRESS_MAP_START( poolshrk_cpu_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x00ff) AM_MIRROR(0x2300) AM_RAM
- AM_RANGE(0x0400, 0x07ff) AM_MIRROR(0x2000) AM_WRITE(SMH_RAM) AM_BASE(&poolshrk_playfield_ram)
- AM_RANGE(0x0800, 0x080f) AM_MIRROR(0x23f0) AM_WRITE(SMH_RAM) AM_BASE(&poolshrk_hpos_ram)
- AM_RANGE(0x0c00, 0x0c0f) AM_MIRROR(0x23f0) AM_WRITE(SMH_RAM) AM_BASE(&poolshrk_vpos_ram)
+ AM_RANGE(0x0400, 0x07ff) AM_MIRROR(0x2000) AM_WRITEONLY AM_BASE(&poolshrk_playfield_ram)
+ AM_RANGE(0x0800, 0x080f) AM_MIRROR(0x23f0) AM_WRITEONLY AM_BASE(&poolshrk_hpos_ram)
+ AM_RANGE(0x0c00, 0x0c0f) AM_MIRROR(0x23f0) AM_WRITEONLY AM_BASE(&poolshrk_vpos_ram)
AM_RANGE(0x1000, 0x13ff) AM_MIRROR(0x2000) AM_READWRITE(poolshrk_input_r, poolshrk_watchdog_w)
AM_RANGE(0x1400, 0x17ff) AM_MIRROR(0x2000) AM_DEVWRITE("discrete", poolshrk_scratch_sound_w)
AM_RANGE(0x1800, 0x1bff) AM_MIRROR(0x2000) AM_DEVWRITE("discrete", poolshrk_score_sound_w)
diff --git a/src/mame/drivers/portrait.c b/src/mame/drivers/portrait.c
index 401b817c67d..231db10e253 100644
--- a/src/mame/drivers/portrait.c
+++ b/src/mame/drivers/portrait.c
@@ -138,7 +138,7 @@ static ADDRESS_MAP_START( portrait_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xa004, 0xa004) AM_READ_PORT("DSW2")
AM_RANGE(0xa008, 0xa008) AM_READ_PORT("SYSTEM") AM_WRITE(portrait_ctrl_w)
AM_RANGE(0xa010, 0xa010) AM_READ_PORT("INPUTS")
- AM_RANGE(0xa018, 0xa018) AM_READWRITE(SMH_NOP, portrait_positive_scroll_w)
+ AM_RANGE(0xa018, 0xa018) AM_READNOP AM_WRITE(portrait_positive_scroll_w)
AM_RANGE(0xa019, 0xa019) AM_WRITE(portrait_negative_scroll_w)
AM_RANGE(0xa800, 0xa83f) AM_RAM AM_BASE_SIZE_GENERIC(nvram)
AM_RANGE(0xffff, 0xffff) AM_READNOP
diff --git a/src/mame/drivers/ppmast93.c b/src/mame/drivers/ppmast93.c
index 670f8e6da69..aa594bfa6f5 100644
--- a/src/mame/drivers/ppmast93.c
+++ b/src/mame/drivers/ppmast93.c
@@ -164,7 +164,7 @@ static WRITE8_HANDLER( ppmast93_port4_w )
}
static ADDRESS_MAP_START( ppmast93_cpu1_map, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM) AM_WRITENOP AM_REGION("maincpu", 0x10000)
+ AM_RANGE(0x0000, 0x7fff) AM_ROM AM_WRITENOP AM_REGION("maincpu", 0x10000)
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE(ppmast93_bgram_w) AM_BASE(&ppmast93_bgram) AM_SHARE(1)
AM_RANGE(0xd800, 0xdfff) AM_WRITENOP
@@ -203,7 +203,7 @@ static WRITE8_HANDLER(ppmast_sound_w)
}
static ADDRESS_MAP_START( ppmast93_cpu2_io, ADDRESS_SPACE_IO, 8 )
- AM_RANGE(0x0000, 0xffff) AM_READ(SMH_ROM) AM_WRITE(ppmast_sound_w) AM_REGION("sub", 0x20000)
+ AM_RANGE(0x0000, 0xffff) AM_ROM AM_WRITE(ppmast_sound_w) AM_REGION("sub", 0x20000)
ADDRESS_MAP_END
static INPUT_PORTS_START( ppmast93 )
diff --git a/src/mame/drivers/psikyo.c b/src/mame/drivers/psikyo.c
index 8f406835cca..cf4c91e4b57 100644
--- a/src/mame/drivers/psikyo.c
+++ b/src/mame/drivers/psikyo.c
@@ -53,7 +53,7 @@ The Following Section of Code in Gunbird causes reads from the
0028B6: 720FC041 moveq #$f, D1
This causes Gunbird to crash if the ROM Region Size
-allocated during loading is smaller than the SMH_ROM
+allocated during loading is smaller than the ROM
region as it trys to read beyond the allocated rom region
This was pointed out by Bart Puype
diff --git a/src/mame/drivers/psychic5.c b/src/mame/drivers/psychic5.c
index 145bf040309..2d7e95cf518 100644
--- a/src/mame/drivers/psychic5.c
+++ b/src/mame/drivers/psychic5.c
@@ -430,11 +430,11 @@ static ADDRESS_MAP_START( psychic5_main_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xc000, 0xdfff) AM_READWRITE(psychic5_paged_ram_r, psychic5_paged_ram_w)
AM_RANGE(0xe000, 0xefff) AM_RAM
AM_RANGE(0xf000, 0xf000) AM_RAM_WRITE(soundlatch_w)
- AM_RANGE(0xf001, 0xf001) AM_READWRITE(SMH_NOP, psychic5_coin_counter_w)
+ AM_RANGE(0xf001, 0xf001) AM_READNOP AM_WRITE(psychic5_coin_counter_w)
AM_RANGE(0xf002, 0xf002) AM_READWRITE(psychic5_bankselect_r, psychic5_bankselect_w)
AM_RANGE(0xf003, 0xf003) AM_READWRITE(psychic5_vram_page_select_r, psychic5_vram_page_select_w)
AM_RANGE(0xf004, 0xf004) AM_NOP // ???
- AM_RANGE(0xf005, 0xf005) AM_READWRITE(SMH_NOP, psychic5_title_screen_w)
+ AM_RANGE(0xf005, 0xf005) AM_READNOP AM_WRITE(psychic5_title_screen_w)
AM_RANGE(0xf006, 0xf1ff) AM_NOP
AM_RANGE(0xf200, 0xf7ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0xf800, 0xffff) AM_RAM
diff --git a/src/mame/drivers/qix.c b/src/mame/drivers/qix.c
index 13c368fc2b3..66b7de636d8 100644
--- a/src/mame/drivers/qix.c
+++ b/src/mame/drivers/qix.c
@@ -277,7 +277,7 @@ static ADDRESS_MAP_START( mcu_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x0000) AM_READWRITE(qix_68705_portA_r, qix_68705_portA_w) AM_BASE_MEMBER(qix_state, _68705_port_out)
AM_RANGE(0x0001, 0x0001) AM_READWRITE(qix_68705_portB_r, qix_68705_portB_w)
AM_RANGE(0x0002, 0x0002) AM_READWRITE(qix_68705_portC_r, qix_68705_portC_w)
- AM_RANGE(0x0004, 0x0007) AM_WRITE(SMH_RAM) AM_BASE_MEMBER(qix_state, _68705_ddr)
+ AM_RANGE(0x0004, 0x0007) AM_WRITEONLY AM_BASE_MEMBER(qix_state, _68705_ddr)
AM_RANGE(0x0010, 0x007f) AM_RAM
AM_RANGE(0x0080, 0x07ff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/quantum.c b/src/mame/drivers/quantum.c
index 92ceaca1abc..60a022f7dcd 100644
--- a/src/mame/drivers/quantum.c
+++ b/src/mame/drivers/quantum.c
@@ -121,12 +121,12 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x900000, 0x9001ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram)
AM_RANGE(0x940000, 0x940001) AM_READ(trackball_r) /* trackball */
AM_RANGE(0x948000, 0x948001) AM_READ_PORT("SYSTEM")
- AM_RANGE(0x950000, 0x95001f) AM_WRITE(SMH_RAM) AM_BASE(&quantum_colorram)
+ AM_RANGE(0x950000, 0x95001f) AM_WRITEONLY AM_BASE(&quantum_colorram)
AM_RANGE(0x958000, 0x958001) AM_WRITE(led_w)
AM_RANGE(0x960000, 0x960001) AM_WRITENOP
AM_RANGE(0x968000, 0x968001) AM_WRITE(avgdvg_reset_word_w)
AM_RANGE(0x970000, 0x970001) AM_WRITE(avgdvg_go_word_w)
- AM_RANGE(0x978000, 0x978001) AM_READWRITE(SMH_NOP, watchdog_reset16_w)
+ AM_RANGE(0x978000, 0x978001) AM_READNOP AM_WRITE(watchdog_reset16_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/quasar.c b/src/mame/drivers/quasar.c
index 64e5777fe69..261e23d2f34 100644
--- a/src/mame/drivers/quasar.c
+++ b/src/mame/drivers/quasar.c
@@ -167,7 +167,7 @@ static ADDRESS_MAP_START( quasar_io, ADDRESS_SPACE_IO, 8 )
AM_RANGE(0x00, 0x03) AM_READWRITE(quasar_IO_r, video_page_select_w)
AM_RANGE(0x08, 0x0b) AM_WRITE(io_page_select_w)
AM_RANGE(S2650_DATA_PORT, S2650_DATA_PORT) AM_READWRITE(cvs_collision_clear, quasar_sh_command_w)
- AM_RANGE(S2650_CTRL_PORT, S2650_CTRL_PORT) AM_READWRITE(cvs_collision_r, SMH_NOP)
+ AM_RANGE(S2650_CTRL_PORT, S2650_CTRL_PORT) AM_READ(cvs_collision_r) AM_WRITENOP
AM_RANGE(S2650_SENSE_PORT, S2650_SENSE_PORT) AM_READ_PORT("SENSE")
AM_RANGE(S2650_FO_PORT, S2650_FO_PORT) AM_RAM AM_BASE(&cvs_fo_state)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/quizpun2.c b/src/mame/drivers/quizpun2.c
index 17ca8655fce..e1e11311a8e 100644
--- a/src/mame/drivers/quizpun2.c
+++ b/src/mame/drivers/quizpun2.c
@@ -325,8 +325,8 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( quizpun2_sound_io_map, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE( 0x00, 0x00 ) AM_WRITE( SMH_NOP ) // IRQ end
- AM_RANGE( 0x20, 0x20 ) AM_WRITE( SMH_NOP ) // NMI end
+ AM_RANGE( 0x00, 0x00 ) AM_WRITENOP // IRQ end
+ AM_RANGE( 0x20, 0x20 ) AM_WRITENOP // NMI end
AM_RANGE( 0x40, 0x40 ) AM_READ( soundlatch_r )
AM_RANGE( 0x60, 0x61 ) AM_DEVREADWRITE("ymsnd", ym2203_r, ym2203_w )
ADDRESS_MAP_END
diff --git a/src/mame/drivers/raiden.c b/src/mame/drivers/raiden.c
index 378a7683608..8d4f9335e07 100644
--- a/src/mame/drivers/raiden.c
+++ b/src/mame/drivers/raiden.c
@@ -65,7 +65,7 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x0b000, 0x0b007) AM_WRITE(raiden_control_w)
AM_RANGE(0x0c000, 0x0c7ff) AM_WRITE(raiden_text_w) AM_BASE_GENERIC(videoram)
AM_RANGE(0x0d000, 0x0d00d) AM_READWRITE(seibu_main_word_r, seibu_main_word_w)
- AM_RANGE(0x0d060, 0x0d067) AM_WRITE(SMH_RAM) AM_BASE(&raiden_scroll_ram)
+ AM_RANGE(0x0d060, 0x0d067) AM_WRITEONLY AM_BASE(&raiden_scroll_ram)
AM_RANGE(0xa0000, 0xfffff) AM_ROM
ADDRESS_MAP_END
@@ -90,7 +90,7 @@ static ADDRESS_MAP_START( alt_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x0e000, 0x0e001) AM_READ_PORT("P1_P2")
AM_RANGE(0x0e000, 0x0e007) AM_WRITE(raidena_control_w)
AM_RANGE(0x0e002, 0x0e003) AM_READ_PORT("DSW")
- AM_RANGE(0x0f000, 0x0f035) AM_WRITE(SMH_RAM) AM_BASE(&raiden_scroll_ram)
+ AM_RANGE(0x0f000, 0x0f035) AM_WRITEONLY AM_BASE(&raiden_scroll_ram)
AM_RANGE(0xa0000, 0xfffff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/rallyx.c b/src/mame/drivers/rallyx.c
index c1fb35b5e19..4869aaf363f 100644
--- a/src/mame/drivers/rallyx.c
+++ b/src/mame/drivers/rallyx.c
@@ -324,7 +324,7 @@ static ADDRESS_MAP_START( rallyx_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xa000, 0xa000) AM_READ_PORT("P1")
AM_RANGE(0xa080, 0xa080) AM_READ_PORT("P2")
AM_RANGE(0xa100, 0xa100) AM_READ_PORT("DSW")
- AM_RANGE(0xa000, 0xa00f) AM_WRITE(SMH_RAM) AM_BASE(&rallyx_radarattr)
+ AM_RANGE(0xa000, 0xa00f) AM_WRITEONLY AM_BASE(&rallyx_radarattr)
AM_RANGE(0xa080, 0xa080) AM_WRITE(watchdog_reset_w)
AM_RANGE(0xa100, 0xa11f) AM_DEVWRITE("namco", pacman_sound_w) AM_BASE(&namco_soundregs)
AM_RANGE(0xa130, 0xa130) AM_WRITE(rallyx_scrollx_w)
@@ -347,7 +347,7 @@ static ADDRESS_MAP_START( jungler_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xa080, 0xa080) AM_READ_PORT("P2")
AM_RANGE(0xa100, 0xa100) AM_READ_PORT("DSW1")
AM_RANGE(0xa180, 0xa180) AM_READ_PORT("DSW2")
- AM_RANGE(0xa000, 0xa00f) AM_MIRROR(0x00f0) AM_WRITE(SMH_RAM) AM_BASE(&rallyx_radarattr) // jungler writes to a03x
+ AM_RANGE(0xa000, 0xa00f) AM_MIRROR(0x00f0) AM_WRITEONLY AM_BASE(&rallyx_radarattr) // jungler writes to a03x
AM_RANGE(0xa080, 0xa080) AM_WRITE(watchdog_reset_w)
AM_RANGE(0xa100, 0xa100) AM_WRITE(soundlatch_w)
AM_RANGE(0xa130, 0xa130) AM_WRITE(rallyx_scrollx_w) /* only jungler and tactcian */
diff --git a/src/mame/drivers/realbrk.c b/src/mame/drivers/realbrk.c
index ebf201075c7..ab437f350d3 100644
--- a/src/mame/drivers/realbrk.c
+++ b/src/mame/drivers/realbrk.c
@@ -158,15 +158,15 @@ static WRITE16_HANDLER( backup_ram_w )
static ADDRESS_MAP_START( base_mem, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x000000, 0x0fffff) AM_ROM // ROM
AM_RANGE(0x200000, 0x203fff) AM_RAM AM_BASE_GENERIC(spriteram) // Sprites
- AM_RANGE(0x400000, 0x40ffff) AM_READWRITE(SMH_RAM,paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram ) // Palette
- AM_RANGE(0x600000, 0x601fff) AM_READWRITE(SMH_RAM,realbrk_vram_0_w) AM_BASE(&realbrk_vram_0 ) // Background (0)
- AM_RANGE(0x602000, 0x603fff) AM_READWRITE(SMH_RAM,realbrk_vram_1_w) AM_BASE(&realbrk_vram_1 ) // Background (1)
- AM_RANGE(0x604000, 0x604fff) AM_READWRITE(SMH_RAM,realbrk_vram_2_w) AM_BASE(&realbrk_vram_2 ) // Text (2)
- AM_RANGE(0x606000, 0x60600f) AM_READWRITE(SMH_RAM,realbrk_vregs_w) AM_BASE(&realbrk_vregs ) // Scroll + Video Regs
+ AM_RANGE(0x400000, 0x40ffff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram ) // Palette
+ AM_RANGE(0x600000, 0x601fff) AM_RAM_WRITE(realbrk_vram_0_w) AM_BASE(&realbrk_vram_0 ) // Background (0)
+ AM_RANGE(0x602000, 0x603fff) AM_RAM_WRITE(realbrk_vram_1_w) AM_BASE(&realbrk_vram_1 ) // Background (1)
+ AM_RANGE(0x604000, 0x604fff) AM_RAM_WRITE(realbrk_vram_2_w) AM_BASE(&realbrk_vram_2 ) // Text (2)
+ AM_RANGE(0x606000, 0x60600f) AM_RAM_WRITE(realbrk_vregs_w) AM_BASE(&realbrk_vregs ) // Scroll + Video Regs
AM_RANGE(0x605000, 0x61ffff) AM_RAM //
AM_RANGE(0x800000, 0x800003) AM_DEVREADWRITE8("ymz", ymz280b_r, ymz280b_w, 0xff00) // YMZ280
AM_RANGE(0xfe0000, 0xfeffff) AM_RAM // RAM
- AM_RANGE(0xfffc00, 0xffffff) AM_READWRITE(SMH_RAM,tmp68301_regs_w) AM_BASE(&tmp68301_regs ) // TMP68301 Registers
+ AM_RANGE(0xfffc00, 0xffffff) AM_RAM_WRITE(tmp68301_regs_w) AM_BASE(&tmp68301_regs ) // TMP68301 Registers
ADDRESS_MAP_END
/*realbrk specific memory map*/
@@ -175,7 +175,7 @@ static ADDRESS_MAP_START( realbrk_mem, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x800008, 0x80000b) AM_DEVWRITE8("ymsnd", ym2413_w, 0x00ff) //
AM_RANGE(0xc00000, 0xc00001) AM_READ_PORT("IN0") // P1 & P2 (Inputs)
AM_RANGE(0xc00002, 0xc00003) AM_READ_PORT("IN1") // Coins
- AM_RANGE(0xc00004, 0xc00005) AM_READWRITE(realbrk_dsw_r,SMH_RAM) AM_BASE(&realbrk_dsw_select) // DSW select
+ AM_RANGE(0xc00004, 0xc00005) AM_RAM_READ(realbrk_dsw_r) AM_BASE(&realbrk_dsw_select) // DSW select
AM_RANGE(0xff0000, 0xfffbff) AM_RAM // RAM
AM_RANGE(0xfffd0a, 0xfffd0b) AM_WRITE(realbrk_flipscreen_w ) // Hack! Parallel port data register
ADDRESS_MAP_END
@@ -192,19 +192,19 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( pkgnshdx_mem, ADDRESS_SPACE_PROGRAM, 16)
AM_RANGE(0x800008, 0x80000b) AM_DEVWRITE8("ymsnd", ym2413_w, 0x00ff) //
AM_RANGE(0xc00000, 0xc00013) AM_READ(pkgnshdx_input_r ) // P1 & P2 (Inputs)
- AM_RANGE(0xc00004, 0xc00005) AM_WRITE(SMH_RAM) AM_BASE(&realbrk_dsw_select) // DSW select
+ AM_RANGE(0xc00004, 0xc00005) AM_WRITEONLY AM_BASE(&realbrk_dsw_select) // DSW select
AM_RANGE(0xff0000, 0xfffbff) AM_READWRITE(backup_ram_dx_r,backup_ram_w) AM_BASE(&backup_ram) // RAM
AM_IMPORT_FROM(base_mem)
ADDRESS_MAP_END
/*dai2kaku specific memory map*/
static ADDRESS_MAP_START( dai2kaku_mem, ADDRESS_SPACE_PROGRAM, 16 )
- AM_RANGE(0x605000, 0x6053ff) AM_READWRITE(SMH_RAM,SMH_RAM) AM_BASE(&realbrk_vram_0ras) // rasterinfo (0)
- AM_RANGE(0x605400, 0x6057ff) AM_READWRITE(SMH_RAM,SMH_RAM) AM_BASE(&realbrk_vram_1ras) // rasterinfo (1)
+ AM_RANGE(0x605000, 0x6053ff) AM_RAM AM_BASE(&realbrk_vram_0ras) // rasterinfo (0)
+ AM_RANGE(0x605400, 0x6057ff) AM_RAM AM_BASE(&realbrk_vram_1ras) // rasterinfo (1)
AM_RANGE(0x800008, 0x80000b) AM_DEVWRITE8("ymsnd", ym2413_w, 0x00ff) //
AM_RANGE(0xc00000, 0xc00001) AM_READ_PORT("IN0") // P1 & P2 (Inputs)
AM_RANGE(0xc00002, 0xc00003) AM_READ_PORT("IN1") // Coins
- AM_RANGE(0xc00004, 0xc00005) AM_READWRITE(realbrk_dsw_r,SMH_RAM) AM_BASE(&realbrk_dsw_select) // DSW select
+ AM_RANGE(0xc00004, 0xc00005) AM_RAM_READ(realbrk_dsw_r) AM_BASE(&realbrk_dsw_select) // DSW select
AM_RANGE(0xff0000, 0xfffbff) AM_RAM // RAM
AM_RANGE(0xfffd0a, 0xfffd0b) AM_WRITE(dai2kaku_flipscreen_w ) // Hack! Parallel port data register
AM_IMPORT_FROM(base_mem)
diff --git a/src/mame/drivers/redalert.c b/src/mame/drivers/redalert.c
index ea9ea0b941f..20459f37215 100644
--- a/src/mame/drivers/redalert.c
+++ b/src/mame/drivers/redalert.c
@@ -158,10 +158,10 @@ static ADDRESS_MAP_START( redalert_main_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xc000, 0xc000) AM_MIRROR(0x0f8f) AM_READ_PORT("C000") AM_WRITENOP
AM_RANGE(0xc010, 0xc010) AM_MIRROR(0x0f8f) AM_READ_PORT("C010") AM_WRITENOP
AM_RANGE(0xc020, 0xc020) AM_MIRROR(0x0f8f) AM_READ_PORT("C020") AM_WRITENOP
- AM_RANGE(0xc030, 0xc030) AM_MIRROR(0x0f8f) AM_READWRITE(SMH_NOP, redalert_audio_command_w)
- AM_RANGE(0xc040, 0xc040) AM_MIRROR(0x0f8f) AM_READWRITE(SMH_NOP, SMH_RAM) AM_BASE(&redalert_video_control)
- AM_RANGE(0xc050, 0xc050) AM_MIRROR(0x0f8f) AM_READWRITE(SMH_NOP, SMH_RAM) AM_BASE(&redalert_bitmap_color)
- AM_RANGE(0xc060, 0xc060) AM_MIRROR(0x0f8f) AM_READWRITE(SMH_NOP, redalert_voice_command_w)
+ AM_RANGE(0xc030, 0xc030) AM_MIRROR(0x0f8f) AM_READNOP AM_WRITE(redalert_audio_command_w)
+ AM_RANGE(0xc040, 0xc040) AM_MIRROR(0x0f8f) AM_READNOP AM_WRITEONLY AM_BASE(&redalert_video_control)
+ AM_RANGE(0xc050, 0xc050) AM_MIRROR(0x0f8f) AM_READNOP AM_WRITEONLY AM_BASE(&redalert_bitmap_color)
+ AM_RANGE(0xc060, 0xc060) AM_MIRROR(0x0f8f) AM_READNOP AM_WRITE(redalert_voice_command_w)
AM_RANGE(0xc070, 0xc070) AM_MIRROR(0x0f8f) AM_READWRITE(redalert_interrupt_clear_r, redalert_interrupt_clear_w)
AM_RANGE(0xf000, 0xffff) AM_ROM AM_REGION("maincpu", 0x8000)
ADDRESS_MAP_END
@@ -174,9 +174,9 @@ static ADDRESS_MAP_START( ww3_main_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xc000, 0xc000) AM_MIRROR(0x0f8f) AM_READ_PORT("C000") AM_WRITENOP
AM_RANGE(0xc010, 0xc010) AM_MIRROR(0x0f8f) AM_READ_PORT("C010") AM_WRITENOP
AM_RANGE(0xc020, 0xc020) AM_MIRROR(0x0f8f) AM_READ_PORT("C020") AM_WRITENOP
- AM_RANGE(0xc030, 0xc030) AM_MIRROR(0x0f8f) AM_READWRITE(SMH_NOP, redalert_audio_command_w)
- AM_RANGE(0xc040, 0xc040) AM_MIRROR(0x0f8f) AM_READWRITE(SMH_NOP, SMH_RAM) AM_BASE(&redalert_video_control)
- AM_RANGE(0xc050, 0xc050) AM_MIRROR(0x0f8f) AM_READWRITE(SMH_NOP, SMH_RAM) AM_BASE(&redalert_bitmap_color)
+ AM_RANGE(0xc030, 0xc030) AM_MIRROR(0x0f8f) AM_READNOP AM_WRITE(redalert_audio_command_w)
+ AM_RANGE(0xc040, 0xc040) AM_MIRROR(0x0f8f) AM_READNOP AM_WRITEONLY AM_BASE(&redalert_video_control)
+ AM_RANGE(0xc050, 0xc050) AM_MIRROR(0x0f8f) AM_READNOP AM_WRITEONLY AM_BASE(&redalert_bitmap_color)
AM_RANGE(0xc070, 0xc070) AM_MIRROR(0x0f8f) AM_READWRITE(redalert_interrupt_clear_r, redalert_interrupt_clear_w)
AM_RANGE(0xf000, 0xffff) AM_ROM AM_REGION("maincpu", 0x8000)
ADDRESS_MAP_END
@@ -189,9 +189,9 @@ static ADDRESS_MAP_START( panther_main_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xc000, 0xc000) AM_MIRROR(0x0f8f) AM_READ_PORT("C000") AM_WRITENOP
AM_RANGE(0xc010, 0xc010) AM_MIRROR(0x0f8f) AM_READ_PORT("C010") AM_WRITENOP
AM_RANGE(0xc020, 0xc020) AM_MIRROR(0x0f8f) AM_READ(panther_unk_r) /* vblank? */
- AM_RANGE(0xc030, 0xc030) AM_MIRROR(0x0f8f) AM_READWRITE(SMH_NOP, redalert_audio_command_w)
- AM_RANGE(0xc040, 0xc040) AM_MIRROR(0x0f8f) AM_READWRITE(SMH_NOP, SMH_RAM) AM_BASE(&redalert_video_control)
- AM_RANGE(0xc050, 0xc050) AM_MIRROR(0x0f8f) AM_READWRITE(SMH_NOP, SMH_RAM) AM_BASE(&redalert_bitmap_color)
+ AM_RANGE(0xc030, 0xc030) AM_MIRROR(0x0f8f) AM_READNOP AM_WRITE(redalert_audio_command_w)
+ AM_RANGE(0xc040, 0xc040) AM_MIRROR(0x0f8f) AM_READNOP AM_WRITEONLY AM_BASE(&redalert_video_control)
+ AM_RANGE(0xc050, 0xc050) AM_MIRROR(0x0f8f) AM_READNOP AM_WRITEONLY AM_BASE(&redalert_bitmap_color)
AM_RANGE(0xc070, 0xc070) AM_MIRROR(0x0f8f) AM_READWRITE(panther_interrupt_clear_r, redalert_interrupt_clear_w)
AM_RANGE(0xf000, 0xffff) AM_ROM AM_REGION("maincpu", 0x8000)
ADDRESS_MAP_END
@@ -204,12 +204,12 @@ static ADDRESS_MAP_START( demoneye_main_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xc000, 0xc000) AM_MIRROR(0x0f8f) AM_READ_PORT("C000") AM_WRITENOP
AM_RANGE(0xc010, 0xc010) AM_MIRROR(0x0f8f) AM_READ_PORT("C010") AM_WRITENOP
AM_RANGE(0xc020, 0xc020) AM_MIRROR(0x0f8f) AM_READ_PORT("C020") AM_WRITENOP
- AM_RANGE(0xc030, 0xc030) AM_MIRROR(0x0f8f) AM_READWRITE(SMH_NOP, demoneye_audio_command_w)
- AM_RANGE(0xc040, 0xc040) AM_MIRROR(0x0f8f) AM_READWRITE(SMH_NOP, SMH_RAM) AM_BASE(&redalert_video_control)
- AM_RANGE(0xc050, 0xc050) AM_MIRROR(0x0f8f) AM_READWRITE(SMH_NOP, SMH_RAM) AM_BASE(&redalert_bitmap_color)
- AM_RANGE(0xc060, 0xc060) AM_MIRROR(0x0f80) AM_READWRITE(SMH_NOP, SMH_NOP) /* unknown */
- AM_RANGE(0xc061, 0xc061) AM_MIRROR(0x0f80) AM_READWRITE(SMH_NOP, SMH_NOP) /* unknown */
- AM_RANGE(0xc062, 0xc062) AM_MIRROR(0x0f80) AM_READWRITE(SMH_NOP, SMH_NOP) /* unknown */
+ AM_RANGE(0xc030, 0xc030) AM_MIRROR(0x0f8f) AM_READNOP AM_WRITE(demoneye_audio_command_w)
+ AM_RANGE(0xc040, 0xc040) AM_MIRROR(0x0f8f) AM_READNOP AM_WRITEONLY AM_BASE(&redalert_video_control)
+ AM_RANGE(0xc050, 0xc050) AM_MIRROR(0x0f8f) AM_READNOP AM_WRITEONLY AM_BASE(&redalert_bitmap_color)
+ AM_RANGE(0xc060, 0xc060) AM_MIRROR(0x0f80) AM_NOP /* unknown */
+ AM_RANGE(0xc061, 0xc061) AM_MIRROR(0x0f80) AM_NOP /* unknown */
+ AM_RANGE(0xc062, 0xc062) AM_MIRROR(0x0f80) AM_NOP /* unknown */
AM_RANGE(0xc070, 0xc070) AM_MIRROR(0x0f8f) AM_READWRITE(redalert_interrupt_clear_r, redalert_interrupt_clear_w) /* probably not correct */
AM_RANGE(0xf000, 0xffff) AM_ROM AM_REGION("maincpu", 0x8000)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/rmhaihai.c b/src/mame/drivers/rmhaihai.c
index aafadb8e760..2db23e1cd45 100644
--- a/src/mame/drivers/rmhaihai.c
+++ b/src/mame/drivers/rmhaihai.c
@@ -184,8 +184,8 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( rmhaihai_io_map, ADDRESS_SPACE_IO, 8 )
AM_RANGE(0x0000, 0x7fff) AM_READ(samples_r)
- AM_RANGE(0x8000, 0x8000) AM_READWRITE(keyboard_r, SMH_NOP) // ??
- AM_RANGE(0x8001, 0x8001) AM_READWRITE(SMH_NOP, keyboard_w) // ??
+ AM_RANGE(0x8000, 0x8000) AM_READ(keyboard_r) AM_WRITENOP // ??
+ AM_RANGE(0x8001, 0x8001) AM_READNOP AM_WRITE(keyboard_w) // ??
AM_RANGE(0x8020, 0x8020) AM_DEVREAD("aysnd", ay8910_r)
AM_RANGE(0x8020, 0x8021) AM_DEVWRITE("aysnd", ay8910_address_data_w)
AM_RANGE(0x8040, 0x8040) AM_DEVWRITE("msm", adpcm_w)
@@ -207,8 +207,8 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( themj_io_map, ADDRESS_SPACE_IO, 8 )
AM_RANGE(0x0000, 0x7fff) AM_READ(samples_r)
- AM_RANGE(0x8000, 0x8000) AM_READWRITE(keyboard_r, SMH_NOP) // ??
- AM_RANGE(0x8001, 0x8001) AM_READWRITE(SMH_NOP, keyboard_w) // ??
+ AM_RANGE(0x8000, 0x8000) AM_READ(keyboard_r) AM_WRITENOP // ??
+ AM_RANGE(0x8001, 0x8001) AM_READNOP AM_WRITE(keyboard_w) // ??
AM_RANGE(0x8020, 0x8020) AM_DEVREAD("aysnd", ay8910_r)
AM_RANGE(0x8020, 0x8021) AM_DEVWRITE("aysnd", ay8910_address_data_w)
AM_RANGE(0x8040, 0x8040) AM_DEVWRITE("msm", adpcm_w)
diff --git a/src/mame/drivers/route16.c b/src/mame/drivers/route16.c
index ca8e6c1ef12..8b178aa94a4 100644
--- a/src/mame/drivers/route16.c
+++ b/src/mame/drivers/route16.c
@@ -227,7 +227,7 @@ static WRITE8_HANDLER ( speakres_out2_w )
static ADDRESS_MAP_START( route16_cpu1_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x3fff) AM_ROM
- /*AM_RANGE(0x3000, 0x3001) AM_READWRITE(SMH_NOP, SMH_NOP) protection device */
+ /*AM_RANGE(0x3000, 0x3001) AM_NOP protection device */
AM_RANGE(0x4000, 0x43ff) AM_READWRITE(sharedram_r, route16_sharedram_w) AM_BASE(&sharedram)
AM_RANGE(0x4800, 0x4800) AM_READ_PORT("DSW") AM_WRITE(route16_out0_w)
AM_RANGE(0x5000, 0x5000) AM_READ_PORT("P1") AM_WRITE(route16_out1_w)
diff --git a/src/mame/drivers/royalmah.c b/src/mame/drivers/royalmah.c
index 8af50788503..e434bf4243c 100644
--- a/src/mame/drivers/royalmah.c
+++ b/src/mame/drivers/royalmah.c
@@ -420,20 +420,20 @@ static WRITE8_HANDLER ( mjclub_bank_w )
static ADDRESS_MAP_START( royalmah_map, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE( 0x0000, 0x6fff ) AM_READWRITE( SMH_ROM, royalmah_rom_w )
+ AM_RANGE( 0x0000, 0x6fff ) AM_ROM AM_WRITE( royalmah_rom_w )
AM_RANGE( 0x7000, 0x7fff ) AM_RAM AM_BASE_SIZE_GENERIC(nvram)
AM_RANGE( 0x8000, 0xffff ) AM_ROMBANK( "bank1" ) // banked ROMs not present in royalmah
- AM_RANGE( 0x8000, 0xffff ) AM_WRITE( SMH_RAM ) AM_BASE_GENERIC(videoram)
+ AM_RANGE( 0x8000, 0xffff ) AM_WRITEONLY AM_BASE_GENERIC(videoram)
ADDRESS_MAP_END
static ADDRESS_MAP_START( mjapinky_map, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE( 0x0000, 0x6fff ) AM_READWRITE( SMH_ROM, royalmah_rom_w )
+ AM_RANGE( 0x0000, 0x6fff ) AM_ROM AM_WRITE( royalmah_rom_w )
AM_RANGE( 0x7000, 0x77ff ) AM_RAM AM_BASE_SIZE_GENERIC(nvram)
AM_RANGE( 0x7800, 0x7fff ) AM_RAM
AM_RANGE( 0x8000, 0x8000 ) AM_READ( mjapinky_dsw_r )
AM_RANGE( 0x8000, 0xffff ) AM_ROMBANK( "bank1" )
- AM_RANGE( 0x8000, 0xffff ) AM_WRITE( SMH_RAM ) AM_BASE_GENERIC(videoram)
+ AM_RANGE( 0x8000, 0xffff ) AM_WRITEONLY AM_BASE_GENERIC(videoram)
ADDRESS_MAP_END
@@ -563,9 +563,9 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( janho_map, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE( 0x0000, 0x6fff ) AM_READWRITE( SMH_ROM, royalmah_rom_w )
+ AM_RANGE( 0x0000, 0x6fff ) AM_ROM AM_WRITE( royalmah_rom_w )
AM_RANGE( 0x7000, 0x7fff ) AM_RAM AM_SHARE(1) AM_BASE_SIZE_GENERIC(nvram)
- AM_RANGE( 0x8000, 0xffff ) AM_WRITE( SMH_RAM ) AM_BASE_GENERIC(videoram)
+ AM_RANGE( 0x8000, 0xffff ) AM_WRITEONLY AM_BASE_GENERIC(videoram)
ADDRESS_MAP_END
@@ -687,7 +687,7 @@ static ADDRESS_MAP_START( jansou_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE( 0x6800, 0x6800 ) AM_WRITE(jansou_sound_w)
AM_RANGE( 0x7000, 0x77ff ) AM_RAM AM_BASE_SIZE_GENERIC(nvram)
- AM_RANGE( 0x8000, 0xffff ) AM_WRITE( SMH_RAM ) AM_BASE_GENERIC(videoram)
+ AM_RANGE( 0x8000, 0xffff ) AM_WRITEONLY AM_BASE_GENERIC(videoram)
ADDRESS_MAP_END
static ADDRESS_MAP_START( jansou_sub_map, ADDRESS_SPACE_PROGRAM, 8 )
@@ -710,7 +710,7 @@ static ADDRESS_MAP_START( janptr96_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE( 0x6000, 0x6fff ) AM_RAMBANK("bank3") // nvram
AM_RANGE( 0x7000, 0x7fff ) AM_RAMBANK("bank2") // banked nvram
AM_RANGE( 0x8000, 0xffff ) AM_ROMBANK("bank1")
- AM_RANGE( 0x8000, 0xffff ) AM_WRITE(SMH_RAM) AM_BASE_GENERIC(videoram)
+ AM_RANGE( 0x8000, 0xffff ) AM_WRITEONLY AM_BASE_GENERIC(videoram)
ADDRESS_MAP_END
static WRITE8_HANDLER( janptr96_dswsel_w )
@@ -842,8 +842,8 @@ static ADDRESS_MAP_START( mjifb_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE( 0x0000, 0x6fff ) AM_ROM
AM_RANGE( 0x7000, 0x7fff ) AM_RAM AM_BASE_SIZE_GENERIC(nvram)
AM_RANGE( 0x8000, 0xbfff ) AM_READWRITE(mjifb_rom_io_r, mjifb_rom_io_w) AM_BASE_GENERIC(videoram)
- AM_RANGE( 0xc000, 0xffff ) AM_READWRITE(SMH_ROM, mjifb_videoram_w)
-// AM_RANGE( 0xc000, 0xffff ) AM_READWRITE(SMH_ROM, SMH_RAM) This should, but doesn't work
+ AM_RANGE( 0xc000, 0xffff ) AM_ROM AM_WRITE(mjifb_videoram_w)
+// AM_RANGE( 0xc000, 0xffff ) AM_ROM AM_WRITEONLY This should, but doesn't work
ADDRESS_MAP_END
static READ8_HANDLER( mjifb_p3_r )
@@ -941,7 +941,7 @@ static ADDRESS_MAP_START( mjdejavu_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE( 0x0000, 0x6fff ) AM_ROM
AM_RANGE( 0x7000, 0x7fff ) AM_RAM AM_BASE_SIZE_GENERIC(nvram)
AM_RANGE( 0x8000, 0xbfff ) AM_READWRITE(mjdejavu_rom_io_r, mjdejavu_rom_io_w) AM_BASE_GENERIC(videoram)
- AM_RANGE( 0xc000, 0xffff ) AM_READWRITE(SMH_ROM, mjifb_videoram_w)
+ AM_RANGE( 0xc000, 0xffff ) AM_ROM AM_WRITE(mjifb_videoram_w)
ADDRESS_MAP_END
@@ -982,7 +982,7 @@ static ADDRESS_MAP_START( mjtensin_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE( 0x6ff3, 0x6ff3 ) AM_WRITE( mjtensin_6ff3_w )
AM_RANGE( 0x7000, 0x7fff ) AM_RAM AM_BASE_SIZE_GENERIC(nvram)
AM_RANGE( 0x8000, 0xffff ) AM_ROMBANK( "bank1" )
- AM_RANGE( 0x8000, 0xffff ) AM_WRITE( SMH_RAM ) AM_BASE_GENERIC(videoram)
+ AM_RANGE( 0x8000, 0xffff ) AM_WRITEONLY AM_BASE_GENERIC(videoram)
ADDRESS_MAP_END
static ADDRESS_MAP_START( mjtensin_iomap, ADDRESS_SPACE_IO, 8 )
@@ -1052,7 +1052,7 @@ static ADDRESS_MAP_START( cafetime_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE( 0x7fe4, 0x7fe4 ) AM_READ( cafetime_7fe4_r )
AM_RANGE( 0x7ff0, 0x7fff ) AM_DEVREADWRITE("rtc", msm6242_r, msm6242_w)
AM_RANGE( 0x8000, 0xffff ) AM_ROMBANK( "bank1" )
- AM_RANGE( 0x8000, 0xffff ) AM_WRITE( SMH_RAM ) AM_BASE_GENERIC(videoram)
+ AM_RANGE( 0x8000, 0xffff ) AM_WRITEONLY AM_BASE_GENERIC(videoram)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/safarir.c b/src/mame/drivers/safarir.c
index 0451904d912..d57841e3d86 100644
--- a/src/mame/drivers/safarir.c
+++ b/src/mame/drivers/safarir.c
@@ -318,8 +318,8 @@ static MACHINE_START( safarir )
static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x17ff) AM_ROM
AM_RANGE(0x2000, 0x27ff) AM_READWRITE(ram_r, ram_w) AM_SIZE(&ram_size)
- AM_RANGE(0x2800, 0x2800) AM_MIRROR(0x03ff) AM_READWRITE(SMH_NOP, ram_bank_w)
- AM_RANGE(0x2c00, 0x2cff) AM_MIRROR(0x03ff) AM_READWRITE(SMH_NOP, SMH_RAM) AM_BASE(&bg_scroll)
+ AM_RANGE(0x2800, 0x2800) AM_MIRROR(0x03ff) AM_READNOP AM_WRITE(ram_bank_w)
+ AM_RANGE(0x2c00, 0x2cff) AM_MIRROR(0x03ff) AM_READNOP AM_WRITEONLY AM_BASE(&bg_scroll)
AM_RANGE(0x3000, 0x30ff) AM_MIRROR(0x03ff) AM_WRITE(safarir_audio_w) /* goes to SN76477 */
AM_RANGE(0x3400, 0x3400) AM_MIRROR(0x03ff) AM_WRITENOP /* cleared at the beginning */
AM_RANGE(0x3800, 0x38ff) AM_MIRROR(0x03ff) AM_READ_PORT("INPUTS") AM_WRITENOP
diff --git a/src/mame/drivers/sbasketb.c b/src/mame/drivers/sbasketb.c
index fcbbe5d3b91..4582df17e0b 100644
--- a/src/mame/drivers/sbasketb.c
+++ b/src/mame/drivers/sbasketb.c
@@ -73,7 +73,7 @@ static ADDRESS_MAP_START( sbasketb_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x3c80, 0x3c80) AM_WRITE(sbasketb_flipscreen_w)
AM_RANGE(0x3c81, 0x3c81) AM_WRITE(interrupt_enable_w)
AM_RANGE(0x3c83, 0x3c84) AM_WRITE(sbasketb_coin_counter_w)
- AM_RANGE(0x3c85, 0x3c85) AM_WRITE(SMH_RAM) AM_BASE_MEMBER(trackfld_state, spriteram_select)
+ AM_RANGE(0x3c85, 0x3c85) AM_WRITEONLY AM_BASE_MEMBER(trackfld_state, spriteram_select)
AM_RANGE(0x3d00, 0x3d00) AM_WRITE(soundlatch_w)
AM_RANGE(0x3d80, 0x3d80) AM_WRITE(sbasketb_sh_irqtrigger_w)
AM_RANGE(0x3e00, 0x3e00) AM_READ_PORT("SYSTEM")
diff --git a/src/mame/drivers/scobra.c b/src/mame/drivers/scobra.c
index 042e8aabe88..68f1effc910 100644
--- a/src/mame/drivers/scobra.c
+++ b/src/mame/drivers/scobra.c
@@ -324,7 +324,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( hustlerb_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x2fff) AM_ROM
AM_RANGE(0x6000, 0x6fff) AM_WRITE(frogger_filter_w)
- AM_RANGE(0x8000, 0x8fff) AM_READWRITE(scobra_soundram_r, SMH_RAM) AM_BASE(&scobra_soundram) /* only here to initialize pointer */
+ AM_RANGE(0x8000, 0x8fff) AM_RAM_READ(scobra_soundram_r) AM_BASE(&scobra_soundram) /* only here to initialize pointer */
ADDRESS_MAP_END
diff --git a/src/mame/drivers/scramble.c b/src/mame/drivers/scramble.c
index 4f6b44d0418..969bd289ddd 100644
--- a/src/mame/drivers/scramble.c
+++ b/src/mame/drivers/scramble.c
@@ -85,7 +85,7 @@ static ADDRESS_MAP_START( turpins_map, ADDRESS_SPACE_PROGRAM, 8 )
// AM_RANGE(0x8100, 0x8103) AM_READ(ppi8255_0_r)
// AM_RANGE(0x8200, 0x8203) AM_READ(ppi8255_1_r)
- AM_RANGE(0xf000, 0xffff) AM_READ(SMH_RAM)
+ AM_RANGE(0xf000, 0xffff) AM_READONLY
ADDRESS_MAP_END
static ADDRESS_MAP_START( ckongs_map, ADDRESS_SPACE_PROGRAM, 8 )
diff --git a/src/mame/drivers/sderby.c b/src/mame/drivers/sderby.c
index f9a3d35b920..80ce36ab183 100644
--- a/src/mame/drivers/sderby.c
+++ b/src/mame/drivers/sderby.c
@@ -286,13 +286,13 @@ static WRITE16_HANDLER( roulette_out_w )
static ADDRESS_MAP_START( sderby_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
- AM_RANGE(0x100000, 0x100fff) AM_RAM AM_WRITE(sderby_videoram_w) AM_BASE(&sderby_videoram) /* bg */
- AM_RANGE(0x101000, 0x101fff) AM_RAM AM_WRITE(sderby_md_videoram_w) AM_BASE(&sderby_md_videoram) /* mid */
- AM_RANGE(0x102000, 0x103fff) AM_RAM AM_WRITE(sderby_fg_videoram_w) AM_BASE(&sderby_fg_videoram) /* fg */
+ AM_RANGE(0x100000, 0x100fff) AM_RAM_WRITE(sderby_videoram_w) AM_BASE(&sderby_videoram) /* bg */
+ AM_RANGE(0x101000, 0x101fff) AM_RAM_WRITE(sderby_md_videoram_w) AM_BASE(&sderby_md_videoram) /* mid */
+ AM_RANGE(0x102000, 0x103fff) AM_RAM_WRITE(sderby_fg_videoram_w) AM_BASE(&sderby_fg_videoram) /* fg */
AM_RANGE(0x104000, 0x10400b) AM_WRITE(sderby_scroll_w)
AM_RANGE(0x10400c, 0x10400d) AM_WRITENOP /* ??? - check code at 0x000456 (executed once at startup) */
AM_RANGE(0x10400e, 0x10400f) AM_WRITENOP /* ??? - check code at 0x000524 (executed once at startup) */
- AM_RANGE(0x200000, 0x200fff) AM_RAM AM_WRITE(SMH_RAM) AM_BASE_SIZE_GENERIC(spriteram)
+ AM_RANGE(0x200000, 0x200fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x308000, 0x30800d) AM_READ(sderby_input_r)
AM_RANGE(0x308008, 0x308009) AM_WRITE(sderby_out_w) /* output port */
AM_RANGE(0x30800e, 0x30800f) AM_DEVREADWRITE8("oki", okim6295_r, okim6295_w, 0x00ff)
@@ -304,9 +304,9 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( spacewin_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
- AM_RANGE(0x100000, 0x100fff) AM_RAM AM_WRITE(sderby_videoram_w) AM_BASE(&sderby_videoram) /* bg */
- AM_RANGE(0x101000, 0x101fff) AM_RAM AM_WRITE(sderby_md_videoram_w) AM_BASE(&sderby_md_videoram) /* mid */
- AM_RANGE(0x102000, 0x103fff) AM_RAM AM_WRITE(sderby_fg_videoram_w) AM_BASE(&sderby_fg_videoram) /* fg */
+ AM_RANGE(0x100000, 0x100fff) AM_RAM_WRITE(sderby_videoram_w) AM_BASE(&sderby_videoram) /* bg */
+ AM_RANGE(0x101000, 0x101fff) AM_RAM_WRITE(sderby_md_videoram_w) AM_BASE(&sderby_md_videoram) /* mid */
+ AM_RANGE(0x102000, 0x103fff) AM_RAM_WRITE(sderby_fg_videoram_w) AM_BASE(&sderby_fg_videoram) /* fg */
AM_RANGE(0x104000, 0x10400b) AM_WRITE(sderby_scroll_w) /* tilemaps offset control */
AM_RANGE(0x10400c, 0x10400d) AM_WRITENOP /* seems another video register. constantly used */
AM_RANGE(0x10400e, 0x10400f) AM_WRITENOP /* seems another video register. constantly used */
@@ -317,7 +317,7 @@ static ADDRESS_MAP_START( spacewin_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x30800e, 0x30800f) AM_DEVREADWRITE8("oki", okim6295_r, okim6295_w, 0x00ff)
AM_RANGE(0x380000, 0x380fff) AM_WRITE(paletteram16_RRRRRGGGGGBBBBBx_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0xd00000, 0xd001ff) AM_RAM
- AM_RANGE(0x800000, 0x800fff) AM_RAM AM_WRITE(SMH_RAM) AM_BASE_SIZE_GENERIC(spriteram)
+ AM_RANGE(0x800000, 0x800fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x801000, 0x80100d) AM_WRITENOP /* unknown */
AM_RANGE(0x8f0000, 0x8f07ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram) /* 16K Dallas DS1220Y-200 NVRAM */
AM_RANGE(0x8fc000, 0x8fffff) AM_RAM
@@ -325,7 +325,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( roulette_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
- AM_RANGE(0x440000, 0x440fff) AM_WRITE(SMH_RAM) AM_BASE_SIZE_GENERIC(spriteram)
+ AM_RANGE(0x440000, 0x440fff) AM_WRITEONLY AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x500000, 0x500fff) AM_RAM_WRITE(sderby_videoram_w) AM_BASE(&sderby_videoram) /* bg */
AM_RANGE(0x501000, 0x501fff) AM_RAM_WRITE(sderby_md_videoram_w) AM_BASE(&sderby_md_videoram) /* mid */
AM_RANGE(0x502000, 0x503fff) AM_RAM_WRITE(sderby_fg_videoram_w) AM_BASE(&sderby_fg_videoram) /* fg */
diff --git a/src/mame/drivers/seattle.c b/src/mame/drivers/seattle.c
index e8ca5d9d566..7b68aa20ba7 100644
--- a/src/mame/drivers/seattle.c
+++ b/src/mame/drivers/seattle.c
@@ -2778,7 +2778,7 @@ static void init_common(running_machine *machine, int ioasic, int serialnum, int
{
case PHOENIX_CONFIG:
/* original Phoenix board only has 4MB of RAM */
- memory_install_readwrite32_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x00400000, 0x007fffff, 0, 0, (read32_space_func)SMH_UNMAP, (write32_space_func)SMH_UNMAP);
+ memory_unmap_readwrite(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x00400000, 0x007fffff, 0, 0);
break;
case SEATTLE_WIDGET_CONFIG:
diff --git a/src/mame/drivers/segac2.c b/src/mame/drivers/segac2.c
index 51c8f73828f..d74be7c1de0 100644
--- a/src/mame/drivers/segac2.c
+++ b/src/mame/drivers/segac2.c
@@ -2087,7 +2087,7 @@ static DRIVER_INIT( tfrceacb )
{
/* disable the palette bank switching from the protection chip */
segac2_common_init(machine, NULL);
- memory_install_write16_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x800000, 0x800001, 0, 0, (write16_space_func)SMH_NOP);
+ memory_nop_write(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x800000, 0x800001, 0, 0);
}
static DRIVER_INIT( borench )
diff --git a/src/mame/drivers/segamsys.c b/src/mame/drivers/segamsys.c
index 898af7e370f..d33347fada0 100644
--- a/src/mame/drivers/segamsys.c
+++ b/src/mame/drivers/segamsys.c
@@ -1602,7 +1602,7 @@ static WRITE8_HANDLER( mt_sms_standard_rom_bank_w )
else
{
memory_install_read_bank_handler(space, 0x0000, 0xbfff, 0, 0, "bank5");
- memory_install_write8_handler(space, 0x0000, 0xbfff, 0, 0, (write8_space_func)SMH_UNMAP);
+ memory_unmap_write(space, 0x0000, 0xbfff, 0, 0);
}
//printf("bank ram??\n");
@@ -1683,7 +1683,7 @@ void megatech_set_genz80_as_sms_standard_map(running_machine *machine, const cha
/* fixed rom bank area */
sms_rom = auto_alloc_array(machine, UINT8, 0x400000);
memory_install_read_bank_handler(cputag_get_address_space(machine, tag, ADDRESS_SPACE_PROGRAM), 0x0000, 0xbfff, 0, 0, "bank5");
- memory_install_write8_handler(cputag_get_address_space(machine, tag, ADDRESS_SPACE_PROGRAM), 0x0000, 0xbfff, 0, 0, (write8_space_func)SMH_UNMAP);
+ memory_unmap_write(cputag_get_address_space(machine, tag, ADDRESS_SPACE_PROGRAM), 0x0000, 0xbfff, 0, 0);
memory_set_bankptr(machine, "bank5", sms_rom );
memcpy(sms_rom, memory_region(machine, "maincpu"), 0x400000);
@@ -1697,7 +1697,7 @@ void megatech_set_genz80_as_sms_standard_map(running_machine *machine, const cha
/* fixed rom bank area */
sms_rom = auto_alloc_array(machine, UINT8, 0xc000);
memory_install_read_bank_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x0000, 0xbfff, 0, 0, "bank5");
- memory_install_write8_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x0000, 0xbfff, 0, 0, (write8_space_func)SMH_UNMAP);
+ memory_unmap_write(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x0000, 0xbfff, 0, 0);
memory_set_bankptr(machine, "bank5", sms_rom );
memcpy(sms_rom, memory_region(machine, "maincpu"), 0xc000);
diff --git a/src/mame/drivers/segaorun.c b/src/mame/drivers/segaorun.c
index 82364e0360b..20dfc065c3a 100644
--- a/src/mame/drivers/segaorun.c
+++ b/src/mame/drivers/segaorun.c
@@ -97,17 +97,17 @@ static const ppi8255_interface single_ppi_intf =
static const segaic16_memory_map_entry outrun_info[] =
{
- { 0x35/2, 0x90000, 0x10000, 0xf00000, ~0, segaic16_road_control_0_r, NULL, segaic16_road_control_0_w, NULL, NULL, "road control" },
- { 0x35/2, 0x80000, 0x01000, 0xf0f000, ~0, NULL, "bank10", NULL, "bank10", &segaic16_roadram_0, "road RAM" },
- { 0x35/2, 0x60000, 0x08000, 0xf18000, ~0, NULL, "bank11", NULL, "bank11", &cpu1ram, "CPU 1 RAM" },
- { 0x35/2, 0x00000, 0x60000, 0xf00000, ~0, NULL, "bank12", (write16_space_func)SMH_UNMAP, NULL, &cpu1rom, "CPU 1 ROM" },
- { 0x31/2, 0x00000, 0x04000, 0xffc000, ~0, misc_io_r, NULL, misc_io_w, NULL, NULL, "I/O space" },
- { 0x2d/2, 0x00000, 0x01000, 0xfff000, ~0, NULL, "bank13", NULL, "bank13", &segaic16_spriteram_0, "object RAM" },
- { 0x29/2, 0x00000, 0x02000, 0xffe000, ~0, NULL, "bank14", segaic16_paletteram_w, NULL, &segaic16_paletteram, "color RAM" },
- { 0x25/2, 0x00000, 0x10000, 0xfe0000, ~0, NULL, "bank15", segaic16_tileram_0_w, NULL, &segaic16_tileram_0, "tile RAM" },
- { 0x25/2, 0x10000, 0x01000, 0xfef000, ~0, NULL, "bank16", segaic16_textram_0_w, NULL, &segaic16_textram_0, "text RAM" },
- { 0x21/2, 0x60000, 0x08000, 0xf98000, ~0, NULL, "bank17", NULL, "bank17", &workram, "CPU 0 RAM" },
- { 0x21/2, 0x00000, 0x60000, 0xf80000, 0x00000, NULL, "bank18", (write16_space_func)SMH_UNMAP, NULL, NULL, "CPU 0 ROM" },
+ { 0x35/2, 0x90000, 0x10000, 0xf00000, ~0, segaic16_road_control_0_r, NULL, segaic16_road_control_0_w, NULL, NULL, "road control" },
+ { 0x35/2, 0x80000, 0x01000, 0xf0f000, ~0, NULL, "bank10", NULL, "bank10", &segaic16_roadram_0, "road RAM" },
+ { 0x35/2, 0x60000, 0x08000, 0xf18000, ~0, NULL, "bank11", NULL, "bank11", &cpu1ram, "CPU 1 RAM" },
+ { 0x35/2, 0x00000, 0x60000, 0xf00000, ~0, NULL, "bank12", NULL, NULL, &cpu1rom, "CPU 1 ROM" },
+ { 0x31/2, 0x00000, 0x04000, 0xffc000, ~0, misc_io_r, NULL, misc_io_w, NULL, NULL, "I/O space" },
+ { 0x2d/2, 0x00000, 0x01000, 0xfff000, ~0, NULL, "bank13", NULL, "bank13", &segaic16_spriteram_0, "object RAM" },
+ { 0x29/2, 0x00000, 0x02000, 0xffe000, ~0, NULL, "bank14", segaic16_paletteram_w, NULL, &segaic16_paletteram, "color RAM" },
+ { 0x25/2, 0x00000, 0x10000, 0xfe0000, ~0, NULL, "bank15", segaic16_tileram_0_w, NULL, &segaic16_tileram_0, "tile RAM" },
+ { 0x25/2, 0x10000, 0x01000, 0xfef000, ~0, NULL, "bank16", segaic16_textram_0_w, NULL, &segaic16_textram_0, "text RAM" },
+ { 0x21/2, 0x60000, 0x08000, 0xf98000, ~0, NULL, "bank17", NULL, "bank17", &workram, "CPU 0 RAM" },
+ { 0x21/2, 0x00000, 0x60000, 0xf80000, 0x00000, NULL, "bank18", NULL, NULL, NULL, "CPU 0 ROM" },
{ 0 }
};
diff --git a/src/mame/drivers/segas16b.c b/src/mame/drivers/segas16b.c
index 5c7f4087208..68163069717 100644
--- a/src/mame/drivers/segas16b.c
+++ b/src/mame/drivers/segas16b.c
@@ -950,71 +950,71 @@ static WRITE16_HANDLER( atomicp_sound_w );
static const segaic16_memory_map_entry rom_171_5358_info_small[] =
{
- { 0x3d/2, 0x00000, 0x04000, 0xffc000, ~0, misc_io_r, NULL, misc_io_w, NULL, NULL, "I/O space" },
- { 0x39/2, 0x00000, 0x01000, 0xfff000, ~0, NULL, "bank10", segaic16_paletteram_w, NULL, &segaic16_paletteram, "color RAM" },
- { 0x35/2, 0x00000, 0x10000, 0xfe0000, ~0, NULL, "bank11", segaic16_tileram_0_w, NULL, &segaic16_tileram_0, "tile RAM" },
- { 0x35/2, 0x10000, 0x01000, 0xfef000, ~0, NULL, "bank12", segaic16_textram_0_w, NULL, &segaic16_textram_0, "text RAM" },
- { 0x31/2, 0x00000, 0x00800, 0xfff800, ~0, NULL, "bank13", NULL, "bank13", &segaic16_spriteram_0, "object RAM" },
- { 0x2d/2, 0x00000, 0x04000, 0xffc000, ~0, NULL, "bank14", NULL, "bank14", &workram, "work RAM" },
- { 0x29/2, 0x00000, 0x20000, 0xfe0000, 0x20000, NULL, "bank15", (write16_space_func)SMH_UNMAP, NULL, NULL, "ROM 2" },
- { 0x25/2, 0x00000, 0x20000, 0xfe0000, 0x10000, NULL, "bank16", (write16_space_func)SMH_UNMAP, NULL, NULL, "ROM 1" },
- { 0x21/2, 0x00000, 0x20000, 0xfe0000, 0x00000, NULL, "bank17", (write16_space_func)SMH_UNMAP, NULL, NULL, "ROM 0" },
+ { 0x3d/2, 0x00000, 0x04000, 0xffc000, ~0, misc_io_r, NULL, misc_io_w, NULL, NULL, "I/O space" },
+ { 0x39/2, 0x00000, 0x01000, 0xfff000, ~0, NULL, "bank10", segaic16_paletteram_w, NULL, &segaic16_paletteram, "color RAM" },
+ { 0x35/2, 0x00000, 0x10000, 0xfe0000, ~0, NULL, "bank11", segaic16_tileram_0_w, NULL, &segaic16_tileram_0, "tile RAM" },
+ { 0x35/2, 0x10000, 0x01000, 0xfef000, ~0, NULL, "bank12", segaic16_textram_0_w, NULL, &segaic16_textram_0, "text RAM" },
+ { 0x31/2, 0x00000, 0x00800, 0xfff800, ~0, NULL, "bank13", NULL, "bank13", &segaic16_spriteram_0, "object RAM" },
+ { 0x2d/2, 0x00000, 0x04000, 0xffc000, ~0, NULL, "bank14", NULL, "bank14", &workram, "work RAM" },
+ { 0x29/2, 0x00000, 0x20000, 0xfe0000, 0x20000, NULL, "bank15", NULL, NULL, NULL, "ROM 2" },
+ { 0x25/2, 0x00000, 0x20000, 0xfe0000, 0x10000, NULL, "bank16", NULL, NULL, NULL, "ROM 1" },
+ { 0x21/2, 0x00000, 0x20000, 0xfe0000, 0x00000, NULL, "bank17", NULL, NULL, NULL, "ROM 0" },
{ 0 }
};
static const segaic16_memory_map_entry rom_171_5358_info[] =
{
- { 0x3d/2, 0x00000, 0x04000, 0xffc000, ~0, misc_io_r, NULL, misc_io_w, NULL, NULL, "I/O space" },
- { 0x39/2, 0x00000, 0x01000, 0xfff000, ~0, NULL, "bank10", segaic16_paletteram_w, NULL, &segaic16_paletteram, "color RAM" },
- { 0x35/2, 0x00000, 0x10000, 0xfe0000, ~0, NULL, "bank11", segaic16_tileram_0_w, NULL, &segaic16_tileram_0, "tile RAM" },
- { 0x35/2, 0x10000, 0x01000, 0xfef000, ~0, NULL, "bank12", segaic16_textram_0_w, NULL, &segaic16_textram_0, "text RAM" },
- { 0x31/2, 0x00000, 0x00800, 0xfff800, ~0, NULL, "bank13", NULL, "bank13", &segaic16_spriteram_0, "object RAM" },
- { 0x2d/2, 0x00000, 0x04000, 0xffc000, ~0, NULL, "bank14", NULL, "bank14", &workram, "work RAM" },
- { 0x29/2, 0x00000, 0x20000, 0xfe0000, 0x40000, NULL, "bank15", (write16_space_func)SMH_UNMAP, NULL, NULL, "ROM 2" },
- { 0x25/2, 0x00000, 0x20000, 0xfe0000, 0x20000, NULL, "bank16", (write16_space_func)SMH_UNMAP, NULL, NULL, "ROM 1" },
- { 0x21/2, 0x00000, 0x20000, 0xfe0000, 0x00000, NULL, "bank17", (write16_space_func)SMH_UNMAP, NULL, NULL, "ROM 0" },
+ { 0x3d/2, 0x00000, 0x04000, 0xffc000, ~0, misc_io_r, NULL, misc_io_w, NULL, NULL, "I/O space" },
+ { 0x39/2, 0x00000, 0x01000, 0xfff000, ~0, NULL, "bank10", segaic16_paletteram_w, NULL, &segaic16_paletteram, "color RAM" },
+ { 0x35/2, 0x00000, 0x10000, 0xfe0000, ~0, NULL, "bank11", segaic16_tileram_0_w, NULL, &segaic16_tileram_0, "tile RAM" },
+ { 0x35/2, 0x10000, 0x01000, 0xfef000, ~0, NULL, "bank12", segaic16_textram_0_w, NULL, &segaic16_textram_0, "text RAM" },
+ { 0x31/2, 0x00000, 0x00800, 0xfff800, ~0, NULL, "bank13", NULL, "bank13", &segaic16_spriteram_0, "object RAM" },
+ { 0x2d/2, 0x00000, 0x04000, 0xffc000, ~0, NULL, "bank14", NULL, "bank14", &workram, "work RAM" },
+ { 0x29/2, 0x00000, 0x20000, 0xfe0000, 0x40000, NULL, "bank15", NULL, NULL, NULL, "ROM 2" },
+ { 0x25/2, 0x00000, 0x20000, 0xfe0000, 0x20000, NULL, "bank16", NULL, NULL, NULL, "ROM 1" },
+ { 0x21/2, 0x00000, 0x20000, 0xfe0000, 0x00000, NULL, "bank17", NULL, NULL, NULL, "ROM 0" },
{ 0 }
};
static const segaic16_memory_map_entry rom_171_5704_info[] =
{
- { 0x3d/2, 0x00000, 0x04000, 0xffc000, ~0, misc_io_r, NULL, misc_io_w, NULL, NULL, "I/O space" },
- { 0x39/2, 0x00000, 0x01000, 0xfff000, ~0, NULL, "bank10", segaic16_paletteram_w, NULL, &segaic16_paletteram, "color RAM" },
- { 0x35/2, 0x00000, 0x10000, 0xfe0000, ~0, NULL, "bank11", segaic16_tileram_0_w, NULL, &segaic16_tileram_0, "tile RAM" },
- { 0x35/2, 0x10000, 0x01000, 0xfef000, ~0, NULL, "bank12", segaic16_textram_0_w, NULL, &segaic16_textram_0, "text RAM" },
- { 0x31/2, 0x00000, 0x00800, 0xfff800, ~0, NULL, "bank13", NULL, "bank13", &segaic16_spriteram_0, "object RAM" },
- { 0x2d/2, 0x00000, 0x04000, 0xffc000, ~0, NULL, "bank14", NULL, "bank14", &workram, "work RAM" },
- { 0x29/2, 0x00000, 0x10000, 0xff0000, ~0, NULL, NULL, rom_5704_bank_w, NULL, NULL, "tile bank" },
- { 0x25/2, 0x00000, 0x80000, 0xfc0000, 0x80000, NULL, "bank16", (write16_space_func)SMH_UNMAP, NULL, NULL, "ROM 1" },
- { 0x21/2, 0x00000, 0x80000, 0xfc0000, 0x00000, NULL, "bank17", (write16_space_func)SMH_UNMAP, NULL, NULL, "ROM 0" },
+ { 0x3d/2, 0x00000, 0x04000, 0xffc000, ~0, misc_io_r, NULL, misc_io_w, NULL, NULL, "I/O space" },
+ { 0x39/2, 0x00000, 0x01000, 0xfff000, ~0, NULL, "bank10", segaic16_paletteram_w, NULL, &segaic16_paletteram, "color RAM" },
+ { 0x35/2, 0x00000, 0x10000, 0xfe0000, ~0, NULL, "bank11", segaic16_tileram_0_w, NULL, &segaic16_tileram_0, "tile RAM" },
+ { 0x35/2, 0x10000, 0x01000, 0xfef000, ~0, NULL, "bank12", segaic16_textram_0_w, NULL, &segaic16_textram_0, "text RAM" },
+ { 0x31/2, 0x00000, 0x00800, 0xfff800, ~0, NULL, "bank13", NULL, "bank13", &segaic16_spriteram_0, "object RAM" },
+ { 0x2d/2, 0x00000, 0x04000, 0xffc000, ~0, NULL, "bank14", NULL, "bank14", &workram, "work RAM" },
+ { 0x29/2, 0x00000, 0x10000, 0xff0000, ~0, NULL, NULL, rom_5704_bank_w, NULL, NULL, "tile bank" },
+ { 0x25/2, 0x00000, 0x80000, 0xfc0000, 0x80000, NULL, "bank16", NULL, NULL, NULL, "ROM 1" },
+ { 0x21/2, 0x00000, 0x80000, 0xfc0000, 0x00000, NULL, "bank17", NULL, NULL, NULL, "ROM 0" },
{ 0 }
};
static const segaic16_memory_map_entry rom_atomicp_info[] =
{
- { 0x3d/2, 0x00000, 0x04000, 0xffc000, ~0, misc_io_r, NULL, misc_io_w, NULL, NULL, "I/O space" },
- { 0x39/2, 0x00000, 0x01000, 0xfff000, ~0, NULL, "bank10", segaic16_paletteram_w, NULL, &segaic16_paletteram, "color RAM" },
- { 0x35/2, 0x00000, 0x10000, 0xfe0000, ~0, NULL, "bank11", segaic16_tileram_0_w, NULL, &segaic16_tileram_0, "tile RAM" },
- { 0x35/2, 0x10000, 0x01000, 0xfef000, ~0, NULL, "bank12", segaic16_textram_0_w, NULL, &segaic16_textram_0, "text RAM" },
- { 0x31/2, 0x00000, 0x00800, 0xfff800, ~0, NULL, "bank13", NULL, "bank13", &segaic16_spriteram_0, "object RAM" },
- { 0x2d/2, 0x00000, 0x04000, 0xffc000, ~0, NULL, "bank14", NULL, "bank14", &workram, "work RAM" },
- { 0x29/2, 0x00000, 0x10000, 0xff0000, ~0, NULL, NULL, rom_5704_bank_w, NULL, NULL, "tile bank" },
- { 0x25/2, 0x00000, 0x10000, 0xff0000, ~0, NULL, NULL, atomicp_sound_w, NULL, NULL, "sound" },
- { 0x21/2, 0x00000, 0x80000, 0xfc0000, 0x00000, NULL, "bank17", (write16_space_func)SMH_UNMAP, NULL, NULL, "ROM 0" },
+ { 0x3d/2, 0x00000, 0x04000, 0xffc000, ~0, misc_io_r, NULL, misc_io_w, NULL, NULL, "I/O space" },
+ { 0x39/2, 0x00000, 0x01000, 0xfff000, ~0, NULL, "bank10", segaic16_paletteram_w, NULL, &segaic16_paletteram, "color RAM" },
+ { 0x35/2, 0x00000, 0x10000, 0xfe0000, ~0, NULL, "bank11", segaic16_tileram_0_w, NULL, &segaic16_tileram_0, "tile RAM" },
+ { 0x35/2, 0x10000, 0x01000, 0xfef000, ~0, NULL, "bank12", segaic16_textram_0_w, NULL, &segaic16_textram_0, "text RAM" },
+ { 0x31/2, 0x00000, 0x00800, 0xfff800, ~0, NULL, "bank13", NULL, "bank13", &segaic16_spriteram_0, "object RAM" },
+ { 0x2d/2, 0x00000, 0x04000, 0xffc000, ~0, NULL, "bank14", NULL, "bank14", &workram, "work RAM" },
+ { 0x29/2, 0x00000, 0x10000, 0xff0000, ~0, NULL, NULL, rom_5704_bank_w, NULL, NULL, "tile bank" },
+ { 0x25/2, 0x00000, 0x10000, 0xff0000, ~0, NULL, NULL, atomicp_sound_w, NULL, NULL, "sound" },
+ { 0x21/2, 0x00000, 0x80000, 0xfc0000, 0x00000, NULL, "bank17", NULL, NULL, NULL, "ROM 0" },
{ 0 }
};
static const segaic16_memory_map_entry rom_171_5797_info[] =
{
- { 0x3d/2, 0x00000, 0x04000, 0xffc000, ~0, misc_io_r, NULL, misc_io_w, NULL, NULL, "I/O space" },
- { 0x39/2, 0x00000, 0x01000, 0xfff000, ~0, NULL, "bank10", segaic16_paletteram_w, NULL, &segaic16_paletteram, "color RAM" },
- { 0x35/2, 0x00000, 0x10000, 0xfe0000, ~0, NULL, "bank11", segaic16_tileram_0_w, NULL, &segaic16_tileram_0, "tile RAM" },
- { 0x35/2, 0x10000, 0x01000, 0xfef000, ~0, NULL, "bank12", segaic16_textram_0_w, NULL, &segaic16_textram_0, "text RAM" },
- { 0x31/2, 0x00000, 0x00800, 0xfff800, ~0, NULL, "bank13", NULL, "bank13", &segaic16_spriteram_0, "object RAM" },
- { 0x2d/2, 0x00000, 0x04000, 0xffc000, ~0, NULL, "bank14", NULL, "bank14", &workram, "work RAM" },
- { 0x29/2, 0x00000, 0x10000, 0xff0000, ~0, unknown_rgn2_r, NULL, unknown_rgn2_w, NULL, NULL, "???" },
- { 0x25/2, 0x00000, 0x04000, 0xffc000, ~0, rom_5797_bank_math_r, NULL, rom_5797_bank_math_w, NULL, NULL, "tile bank/math" },
- { 0x21/2, 0x00000, 0x80000, 0xf80000, 0x00000, NULL, "bank17", (write16_space_func)SMH_UNMAP, NULL, NULL, "ROM 0" },
+ { 0x3d/2, 0x00000, 0x04000, 0xffc000, ~0, misc_io_r, NULL, misc_io_w, NULL, NULL, "I/O space" },
+ { 0x39/2, 0x00000, 0x01000, 0xfff000, ~0, NULL, "bank10", segaic16_paletteram_w, NULL, &segaic16_paletteram, "color RAM" },
+ { 0x35/2, 0x00000, 0x10000, 0xfe0000, ~0, NULL, "bank11", segaic16_tileram_0_w, NULL, &segaic16_tileram_0, "tile RAM" },
+ { 0x35/2, 0x10000, 0x01000, 0xfef000, ~0, NULL, "bank12", segaic16_textram_0_w, NULL, &segaic16_textram_0, "text RAM" },
+ { 0x31/2, 0x00000, 0x00800, 0xfff800, ~0, NULL, "bank13", NULL, "bank13", &segaic16_spriteram_0, "object RAM" },
+ { 0x2d/2, 0x00000, 0x04000, 0xffc000, ~0, NULL, "bank14", NULL, "bank14", &workram, "work RAM" },
+ { 0x29/2, 0x00000, 0x10000, 0xff0000, ~0, unknown_rgn2_r, NULL, unknown_rgn2_w, NULL, NULL, "???" },
+ { 0x25/2, 0x00000, 0x04000, 0xffc000, ~0, rom_5797_bank_math_r, NULL, rom_5797_bank_math_w, NULL, NULL, "tile bank/math" },
+ { 0x21/2, 0x00000, 0x80000, 0xf80000, 0x00000, NULL, "bank17", NULL, NULL, NULL, "ROM 0" },
{ 0 }
};
diff --git a/src/mame/drivers/segas18.c b/src/mame/drivers/segas18.c
index 6f6cb248c21..9bdc29423d0 100644
--- a/src/mame/drivers/segas18.c
+++ b/src/mame/drivers/segas18.c
@@ -92,43 +92,43 @@ static WRITE16_HANDLER( rom_5987_bank_w );
static const segaic16_memory_map_entry rom_171_shad_info[] =
{
- { 0x3d/2, 0x00000, 0x04000, 0xffc000, ~0, misc_io_r, NULL, misc_io_w, NULL, NULL, "I/O space" },
- { 0x39/2, 0x00000, 0x02000, 0xffe000, ~0, NULL, "bank10", segaic16_paletteram_w, NULL, &segaic16_paletteram, "color RAM" },
- { 0x35/2, 0x00000, 0x10000, 0xfe0000, ~0, NULL, "bank11", segaic16_tileram_0_w, NULL, &segaic16_tileram_0, "tile RAM" },
- { 0x35/2, 0x10000, 0x01000, 0xfef000, ~0, NULL, "bank12", segaic16_textram_0_w, NULL, &segaic16_textram_0, "text RAM" },
- { 0x31/2, 0x00000, 0x00800, 0xfff800, ~0, NULL, "bank13", NULL, "bank13", &segaic16_spriteram_0, "object RAM" },
- { 0x2d/2, 0x00000, 0x04000, 0xffc000, ~0, NULL, "bank14", NULL, "bank14", &workram, "work RAM" },
- { 0x29/2, 0x00000, 0x10000, 0xff0000, ~0, NULL, NULL, NULL, NULL, NULL, "????" },
- { 0x25/2, 0x00000, 0x00010, 0xfffff0, ~0, genesis_vdp_r, NULL, genesis_vdp_w, NULL, NULL, "VDP" },
- { 0x21/2, 0x00000, 0x80000, 0xf80000, 0x00000, NULL, "bank17", (write16_space_func)SMH_UNMAP, NULL, NULL, "ROM 0" },
+ { 0x3d/2, 0x00000, 0x04000, 0xffc000, ~0, misc_io_r, NULL, misc_io_w, NULL, NULL, "I/O space" },
+ { 0x39/2, 0x00000, 0x02000, 0xffe000, ~0, NULL, "bank10", segaic16_paletteram_w, NULL, &segaic16_paletteram, "color RAM" },
+ { 0x35/2, 0x00000, 0x10000, 0xfe0000, ~0, NULL, "bank11", segaic16_tileram_0_w, NULL, &segaic16_tileram_0, "tile RAM" },
+ { 0x35/2, 0x10000, 0x01000, 0xfef000, ~0, NULL, "bank12", segaic16_textram_0_w, NULL, &segaic16_textram_0, "text RAM" },
+ { 0x31/2, 0x00000, 0x00800, 0xfff800, ~0, NULL, "bank13", NULL, "bank13", &segaic16_spriteram_0, "object RAM" },
+ { 0x2d/2, 0x00000, 0x04000, 0xffc000, ~0, NULL, "bank14", NULL, "bank14", &workram, "work RAM" },
+ { 0x29/2, 0x00000, 0x10000, 0xff0000, ~0, NULL, NULL, NULL, NULL, NULL, "????" },
+ { 0x25/2, 0x00000, 0x00010, 0xfffff0, ~0, genesis_vdp_r, NULL, genesis_vdp_w, NULL, NULL, "VDP" },
+ { 0x21/2, 0x00000, 0x80000, 0xf80000, 0x00000, NULL, "bank17", NULL, NULL, NULL, "ROM 0" },
{ 0 }
};
static const segaic16_memory_map_entry rom_171_5874_info[] =
{
- { 0x3d/2, 0x00000, 0x04000, 0xffc000, ~0, misc_io_r, NULL, misc_io_w, NULL, NULL, "I/O space" },
- { 0x39/2, 0x00000, 0x02000, 0xffe000, ~0, NULL, "bank10", segaic16_paletteram_w, NULL, &segaic16_paletteram, "color RAM" },
- { 0x35/2, 0x00000, 0x10000, 0xfe0000, ~0, NULL, "bank11", segaic16_tileram_0_w, NULL, &segaic16_tileram_0, "tile RAM" },
- { 0x35/2, 0x10000, 0x01000, 0xfef000, ~0, NULL, "bank12", segaic16_textram_0_w, NULL, &segaic16_textram_0, "text RAM" },
- { 0x31/2, 0x00000, 0x00800, 0xfff800, ~0, NULL, "bank13", NULL, "bank13", &segaic16_spriteram_0, "object RAM" },
- { 0x2d/2, 0x00000, 0x04000, 0xffc000, ~0, NULL, "bank14", NULL, "bank14", &workram, "work RAM" },
- { 0x29/2, 0x00000, 0x00010, 0xfffff0, ~0, genesis_vdp_r, NULL, genesis_vdp_w, NULL, NULL, "VDP" },
- { 0x25/2, 0x00000, 0x80000, 0xf80000, 0x80000, NULL, "bank16", (write16_space_func)SMH_UNMAP, NULL, NULL, "ROM 1" },
- { 0x21/2, 0x00000, 0x80000, 0xf80000, 0x00000, NULL, "bank17", (write16_space_func)SMH_UNMAP, NULL, NULL, "ROM 0" },
+ { 0x3d/2, 0x00000, 0x04000, 0xffc000, ~0, misc_io_r, NULL, misc_io_w, NULL, NULL, "I/O space" },
+ { 0x39/2, 0x00000, 0x02000, 0xffe000, ~0, NULL, "bank10", segaic16_paletteram_w, NULL, &segaic16_paletteram, "color RAM" },
+ { 0x35/2, 0x00000, 0x10000, 0xfe0000, ~0, NULL, "bank11", segaic16_tileram_0_w, NULL, &segaic16_tileram_0, "tile RAM" },
+ { 0x35/2, 0x10000, 0x01000, 0xfef000, ~0, NULL, "bank12", segaic16_textram_0_w, NULL, &segaic16_textram_0, "text RAM" },
+ { 0x31/2, 0x00000, 0x00800, 0xfff800, ~0, NULL, "bank13", NULL, "bank13", &segaic16_spriteram_0, "object RAM" },
+ { 0x2d/2, 0x00000, 0x04000, 0xffc000, ~0, NULL, "bank14", NULL, "bank14", &workram, "work RAM" },
+ { 0x29/2, 0x00000, 0x00010, 0xfffff0, ~0, genesis_vdp_r, NULL, genesis_vdp_w, NULL, NULL, "VDP" },
+ { 0x25/2, 0x00000, 0x80000, 0xf80000, 0x80000, NULL, "bank16", NULL, NULL, NULL, "ROM 1" },
+ { 0x21/2, 0x00000, 0x80000, 0xf80000, 0x00000, NULL, "bank17", NULL, NULL, NULL, "ROM 0" },
{ 0 }
};
static const segaic16_memory_map_entry rom_171_5987_info[] =
{
- { 0x3d/2, 0x00000, 0x04000, 0xffc000, ~0, misc_io_r, NULL, misc_io_w, NULL, NULL, "I/O space" },
- { 0x39/2, 0x00000, 0x02000, 0xffe000, ~0, NULL, "bank10", segaic16_paletteram_w, NULL, &segaic16_paletteram, "color RAM" },
- { 0x35/2, 0x00000, 0x10000, 0xfe0000, ~0, NULL, "bank11", segaic16_tileram_0_w, NULL, &segaic16_tileram_0, "tile RAM" },
- { 0x35/2, 0x10000, 0x01000, 0xfef000, ~0, NULL, "bank12", segaic16_textram_0_w, NULL, &segaic16_textram_0, "text RAM" },
- { 0x31/2, 0x00000, 0x00800, 0xfff800, ~0, NULL, "bank13", NULL, "bank13", &segaic16_spriteram_0, "object RAM" },
- { 0x2d/2, 0x00000, 0x04000, 0xffc000, ~0, NULL, "bank14", NULL, "bank14", &workram, "work RAM" },
- { 0x29/2, 0x00000, 0x00010, 0xfffff0, ~0, genesis_vdp_r, NULL, genesis_vdp_w, NULL, NULL, "VDP" },
- { 0x25/2, 0x00000, 0x80000, 0xf80000, 0x80000, NULL, "bank16", rom_5987_bank_w, NULL, NULL, "ROM 1/banking" },
- { 0x21/2, 0x00000, 0x100000,0xf00000, 0x00000, NULL, "bank17", (write16_space_func)SMH_UNMAP, NULL, NULL, "ROM 0" },
+ { 0x3d/2, 0x00000, 0x04000, 0xffc000, ~0, misc_io_r, NULL, misc_io_w, NULL, NULL, "I/O space" },
+ { 0x39/2, 0x00000, 0x02000, 0xffe000, ~0, NULL, "bank10", segaic16_paletteram_w, NULL, &segaic16_paletteram, "color RAM" },
+ { 0x35/2, 0x00000, 0x10000, 0xfe0000, ~0, NULL, "bank11", segaic16_tileram_0_w, NULL, &segaic16_tileram_0, "tile RAM" },
+ { 0x35/2, 0x10000, 0x01000, 0xfef000, ~0, NULL, "bank12", segaic16_textram_0_w, NULL, &segaic16_textram_0, "text RAM" },
+ { 0x31/2, 0x00000, 0x00800, 0xfff800, ~0, NULL, "bank13", NULL, "bank13", &segaic16_spriteram_0, "object RAM" },
+ { 0x2d/2, 0x00000, 0x04000, 0xffc000, ~0, NULL, "bank14", NULL, "bank14", &workram, "work RAM" },
+ { 0x29/2, 0x00000, 0x00010, 0xfffff0, ~0, genesis_vdp_r, NULL, genesis_vdp_w, NULL, NULL, "VDP" },
+ { 0x25/2, 0x00000, 0x80000, 0xf80000, 0x80000, NULL, "bank16", rom_5987_bank_w, NULL, NULL, "ROM 1/banking" },
+ { 0x21/2, 0x00000, 0x100000,0xf00000, 0x00000, NULL, "bank17", NULL, NULL, NULL, "ROM 0" },
{ 0 }
};
diff --git a/src/mame/drivers/seicross.c b/src/mame/drivers/seicross.c
index 59a2847d953..d0dc51d2cfb 100644
--- a/src/mame/drivers/seicross.c
+++ b/src/mame/drivers/seicross.c
@@ -123,7 +123,7 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x8820, 0x887f) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x9000, 0x93ff) AM_RAM_WRITE(seicross_videoram_w) AM_BASE_GENERIC(videoram) /* video RAM */
AM_RANGE(0x9800, 0x981f) AM_RAM AM_BASE(&seicross_row_scroll)
- AM_RANGE(0x9880, 0x989f) AM_WRITE(SMH_RAM) AM_BASE_SIZE_GENERIC(spriteram2)
+ AM_RANGE(0x9880, 0x989f) AM_WRITEONLY AM_BASE_SIZE_GENERIC(spriteram2)
AM_RANGE(0x9c00, 0x9fff) AM_RAM_WRITE(seicross_colorram_w) AM_BASE_GENERIC(colorram)
AM_RANGE(0xa000, 0xa000) AM_READ_PORT("IN0") /* IN0 */
AM_RANGE(0xa800, 0xa800) AM_READ_PORT("IN1") /* IN1 */
diff --git a/src/mame/drivers/seta.c b/src/mame/drivers/seta.c
index 4f3d6416a07..31bb888c1f5 100644
--- a/src/mame/drivers/seta.c
+++ b/src/mame/drivers/seta.c
@@ -2733,7 +2733,7 @@ static ADDRESS_MAP_START( crazyfgt_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x610006, 0x610007) AM_WRITENOP
AM_RANGE(0x620000, 0x620003) AM_WRITENOP // protection
AM_RANGE(0x630000, 0x630003) AM_READ(seta_dsw_r)
- AM_RANGE(0x640400, 0x640fff) AM_WRITE(SMH_RAM) AM_BASE_GENERIC(paletteram) AM_SIZE(&seta_paletteram_size) // Palette
+ AM_RANGE(0x640400, 0x640fff) AM_WRITEONLY AM_BASE_GENERIC(paletteram) AM_SIZE(&seta_paletteram_size) // Palette
AM_RANGE(0x650000, 0x650003) AM_DEVWRITE8("ymsnd", ym3812_w, 0x00ff)
AM_RANGE(0x658000, 0x658001) AM_DEVWRITE8("oki", okim6295_w, 0x00ff)
AM_RANGE(0x670000, 0x670001) AM_READNOP // watchdog?
@@ -2783,7 +2783,7 @@ static READ16_HANDLER( inttoote_700000_r )
static ADDRESS_MAP_START( inttoote_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x000000, 0x1fffff) AM_ROM // ROM (up to 2MB)
- AM_RANGE(0x200000, 0x200001) AM_READWRITE(inttoote_key_r, SMH_RAM) AM_BASE(&inttoote_key_select)
+ AM_RANGE(0x200000, 0x200001) AM_RAM_READ(inttoote_key_r) AM_BASE(&inttoote_key_select)
AM_RANGE(0x200002, 0x200003) AM_READ_PORT("P1")
AM_RANGE(0x200010, 0x200011) AM_READ_PORT("P2") AM_WRITENOP
@@ -2796,14 +2796,14 @@ static ADDRESS_MAP_START( inttoote_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x500000, 0x500003) AM_READ(inttoote_dsw_r) // DSW x 3
- AM_RANGE(0x700000, 0x700101) AM_READWRITE(inttoote_700000_r,SMH_RAM) AM_BASE(&inttoote_700000)
+ AM_RANGE(0x700000, 0x700101) AM_RAM_READ(inttoote_700000_r) AM_BASE(&inttoote_700000)
AM_RANGE(0x800000, 0x80001f) AM_DEVREADWRITE8("rtc", msm6242_r, msm6242_w, 0x00ff) // 6242RTC
AM_RANGE(0x900000, 0x903fff) AM_DEVREADWRITE( "x1snd", seta_sound_word_r, seta_sound_word_w ) // Sound
- AM_RANGE(0xa00000, 0xa00005) AM_WRITE(SMH_RAM) AM_BASE(&seta_vctrl_0 ) // VRAM 0&1 Ctrl
- AM_RANGE(0xb00000, 0xb03fff) AM_READWRITE(SMH_RAM,seta_vram_0_w) AM_BASE(&seta_vram_0 ) // VRAM 0&1
+ AM_RANGE(0xa00000, 0xa00005) AM_WRITEONLY AM_BASE(&seta_vctrl_0 ) // VRAM 0&1 Ctrl
+ AM_RANGE(0xb00000, 0xb03fff) AM_RAM_WRITE(seta_vram_0_w) AM_BASE(&seta_vram_0 ) // VRAM 0&1
AM_RANGE(0xc00000, 0xc00001) AM_RAM // ? 0x4000
@@ -9789,7 +9789,7 @@ static DRIVER_INIT( metafox )
UINT16 *RAM = (UINT16 *) memory_region(machine, "maincpu");
/* This game uses the 21c000-21ffff area for protection? */
-// memory_install_readwrite16_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x21c000, 0x21ffff, 0, 0, (read16_space_func)SMH_NOP, (write16_space_func)SMH_NOP);
+// memory_nop_readwrite(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x21c000, 0x21ffff, 0, 0);
RAM[0x8ab1c/2] = 0x4e71; // patch protection test: "cp error"
RAM[0x8ab1e/2] = 0x4e71;
@@ -9833,7 +9833,7 @@ static DRIVER_INIT ( blandia )
static DRIVER_INIT( eightfrc )
{
- memory_install_read16_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x500004, 0x500005, 0, 0, (read16_space_func)SMH_NOP); // watchdog??
+ memory_nop_read(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x500004, 0x500005, 0, 0); // watchdog??
}
@@ -9858,7 +9858,7 @@ static DRIVER_INIT( kiwame )
static DRIVER_INIT( rezon )
{
- memory_install_read16_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x500006, 0x500007, 0, 0, (read16_space_func)SMH_NOP); // irq ack?
+ memory_nop_read(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x500006, 0x500007, 0, 0); // irq ack?
}
static DRIVER_INIT(wiggie)
@@ -9890,7 +9890,7 @@ static DRIVER_INIT(wiggie)
}
/* X1_010 is not used. */
- memory_install_readwrite16_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x100000, 0x103fff, 0, 0, (read16_space_func)SMH_NOP, (write16_space_func)SMH_NOP);
+ memory_nop_readwrite(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x100000, 0x103fff, 0, 0);
memory_install_write16_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0xB00008, 0xB00009, 0, 0, wiggie_soundlatch_w);
diff --git a/src/mame/drivers/seta2.c b/src/mame/drivers/seta2.c
index 0e6af4ba833..32987def741 100644
--- a/src/mame/drivers/seta2.c
+++ b/src/mame/drivers/seta2.c
@@ -986,9 +986,9 @@ static ADDRESS_MAP_START( funcube_map, ADDRESS_SPACE_PROGRAM, 32 )
AM_RANGE( 0x00200000, 0x0020ffff ) AM_RAM
AM_RANGE( 0x00500000, 0x00500003 ) AM_READ( funcube_debug_r )
- AM_RANGE( 0x00500004, 0x00500007 ) AM_READWRITE( watchdog_reset32_r, SMH_NOP )
+ AM_RANGE( 0x00500004, 0x00500007 ) AM_READ( watchdog_reset32_r ) AM_WRITENOP
- AM_RANGE( 0x00600000, 0x00600003 ) AM_WRITE( SMH_NOP ) // sound chip
+ AM_RANGE( 0x00600000, 0x00600003 ) AM_WRITENOP // sound chip
AM_RANGE( 0x00800000, 0x0083ffff ) AM_READWRITE( spriteram32_dword_r, spriteram32_dword_w ) AM_BASE_GENERIC(spriteram) AM_SIZE_GENERIC(spriteram)
AM_RANGE( 0x00840000, 0x0084ffff ) AM_READWRITE( paletteram32_dword_r, paletteram32_dword_w ) AM_BASE_GENERIC(paletteram)
diff --git a/src/mame/drivers/shangkid.c b/src/mame/drivers/shangkid.c
index a61443b9c81..7a06e8357c8 100644
--- a/src/mame/drivers/shangkid.c
+++ b/src/mame/drivers/shangkid.c
@@ -256,7 +256,7 @@ static ADDRESS_MAP_START( chinhero_main_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xb801, 0xb801) AM_READ_PORT("SYSTEM")
AM_RANGE(0xb802, 0xb802) AM_READ_PORT("P2")
AM_RANGE(0xb803, 0xb803) AM_READ_PORT("P1")
- AM_RANGE(0xc000, 0xc002) AM_WRITE(SMH_RAM) AM_BASE(&shangkid_videoreg)
+ AM_RANGE(0xc000, 0xc002) AM_WRITEONLY AM_BASE(&shangkid_videoreg)
AM_RANGE(0xd000, 0xdfff) AM_RAM_WRITE(shangkid_videoram_w) AM_BASE_GENERIC(videoram) AM_SHARE(1)
AM_RANGE(0xe000, 0xfdff) AM_RAM AM_SHARE(2)
AM_RANGE(0xfe00, 0xffff) AM_RAM AM_BASE_GENERIC(spriteram) AM_SHARE(3)
@@ -277,7 +277,7 @@ static ADDRESS_MAP_START( shangkid_main_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xb801, 0xb801) AM_READ_PORT("SYSTEM")
AM_RANGE(0xb802, 0xb802) AM_READ_PORT("P2")
AM_RANGE(0xb803, 0xb803) AM_READ_PORT("P1")
- AM_RANGE(0xc000, 0xc002) AM_WRITE(SMH_RAM) AM_BASE(&shangkid_videoreg)
+ AM_RANGE(0xc000, 0xc002) AM_WRITEONLY AM_BASE(&shangkid_videoreg)
AM_RANGE(0xd000, 0xdfff) AM_RAM_WRITE(shangkid_videoram_w) AM_BASE_GENERIC(videoram) AM_SHARE(1)
AM_RANGE(0xe000, 0xfdff) AM_RAM AM_SHARE(2)
AM_RANGE(0xfe00, 0xffff) AM_RAM AM_BASE_GENERIC(spriteram) AM_SHARE(3)
diff --git a/src/mame/drivers/silkroad.c b/src/mame/drivers/silkroad.c
index 5c0a74f24b1..c377173662a 100644
--- a/src/mame/drivers/silkroad.c
+++ b/src/mame/drivers/silkroad.c
@@ -173,7 +173,7 @@ static ADDRESS_MAP_START( cpu_map, ADDRESS_SPACE_PROGRAM, 32 )
AM_RANGE(0xc00030, 0xc00033) AM_DEVREADWRITE8("oki2", okim6295_r, okim6295_w, 0x00ff0000)
AM_RANGE(0xc00034, 0xc00037) AM_DEVWRITE("oki1", silk_6295_bank_w)
AM_RANGE(0xc00038, 0xc0003b) AM_WRITE(silk_coin_counter_w)
- AM_RANGE(0xc0010c, 0xc00123) AM_WRITE(SMH_RAM) AM_BASE(&silkroad_regs)
+ AM_RANGE(0xc0010c, 0xc00123) AM_WRITEONLY AM_BASE(&silkroad_regs)
AM_RANGE(0xfe0000, 0xffffff) AM_RAM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/simpl156.c b/src/mame/drivers/simpl156.c
index ee22f3aed1b..4ec330906d4 100644
--- a/src/mame/drivers/simpl156.c
+++ b/src/mame/drivers/simpl156.c
@@ -300,7 +300,7 @@ static ADDRESS_MAP_START( joemacr_map, ADDRESS_SPACE_PROGRAM, 32 )
AM_RANGE(0x154000, 0x155fff) AM_READWRITE(simpl156_pf2_data_r, simpl156_pf2_data_w)
AM_RANGE(0x160000, 0x161fff) AM_READWRITE(simpl156_pf1_rowscroll_r, simpl156_pf1_rowscroll_w)
AM_RANGE(0x164000, 0x165fff) AM_READWRITE(simpl156_pf2_rowscroll_r, simpl156_pf2_rowscroll_w)
- AM_RANGE(0x170000, 0x170003) AM_RAM_WRITE(SMH_NOP) // ?
+ AM_RANGE(0x170000, 0x170003) AM_READONLY AM_WRITENOP // ?
AM_RANGE(0x180000, 0x180003) AM_DEVREADWRITE8("okisfx", okim6295_r, okim6295_w, 0x000000ff)
AM_RANGE(0x1c0000, 0x1c0003) AM_DEVREADWRITE8("okimusic", okim6295_r, okim6295_w, 0x000000ff)
AM_RANGE(0x200000, 0x200003) AM_READ(simpl156_inputs_read)
@@ -324,7 +324,7 @@ static ADDRESS_MAP_START( chainrec_map, ADDRESS_SPACE_PROGRAM, 32 )
AM_RANGE(0x454000, 0x455fff) AM_READWRITE(simpl156_pf2_data_r, simpl156_pf2_data_w)
AM_RANGE(0x460000, 0x461fff) AM_READWRITE(simpl156_pf1_rowscroll_r, simpl156_pf1_rowscroll_w)
AM_RANGE(0x464000, 0x465fff) AM_READWRITE(simpl156_pf2_rowscroll_r, simpl156_pf2_rowscroll_w)
- AM_RANGE(0x470000, 0x470003) AM_RAM_WRITE(SMH_NOP) // ??
+ AM_RANGE(0x470000, 0x470003) AM_READONLY AM_WRITENOP // ??
AM_RANGE(0x480000, 0x480003) AM_DEVREADWRITE8("okisfx", okim6295_r, okim6295_w, 0x000000ff)
ADDRESS_MAP_END
@@ -345,7 +345,7 @@ static ADDRESS_MAP_START( magdrop_map, ADDRESS_SPACE_PROGRAM, 32 )
AM_RANGE(0x3d4000, 0x3d5fff) AM_READWRITE(simpl156_pf2_data_r, simpl156_pf2_data_w)
AM_RANGE(0x3e0000, 0x3e1fff) AM_READWRITE(simpl156_pf1_rowscroll_r, simpl156_pf1_rowscroll_w)
AM_RANGE(0x3e4000, 0x3e5fff) AM_READWRITE(simpl156_pf2_rowscroll_r, simpl156_pf2_rowscroll_w)
- AM_RANGE(0x3f0000, 0x3f0003) AM_RAM_WRITE(SMH_NOP) //?
+ AM_RANGE(0x3f0000, 0x3f0003) AM_READONLY AM_WRITENOP //?
AM_RANGE(0x400000, 0x400003) AM_DEVREADWRITE8("okisfx", okim6295_r, okim6295_w, 0x000000ff)
ADDRESS_MAP_END
@@ -366,7 +366,7 @@ static ADDRESS_MAP_START( magdropp_map, ADDRESS_SPACE_PROGRAM, 32 )
AM_RANGE(0x6d4000, 0x6d5fff) AM_READWRITE(simpl156_pf2_data_r, simpl156_pf2_data_w)
AM_RANGE(0x6e0000, 0x6e1fff) AM_READWRITE(simpl156_pf1_rowscroll_r, simpl156_pf1_rowscroll_w)
AM_RANGE(0x6e4000, 0x6e5fff) AM_READWRITE(simpl156_pf2_rowscroll_r, simpl156_pf2_rowscroll_w)
- AM_RANGE(0x6f0000, 0x6f0003) AM_RAM_WRITE(SMH_NOP) // ?
+ AM_RANGE(0x6f0000, 0x6f0003) AM_READONLY AM_WRITENOP // ?
AM_RANGE(0x780000, 0x780003) AM_DEVREADWRITE8("okisfx", okim6295_r, okim6295_w, 0x000000ff)
ADDRESS_MAP_END
@@ -386,7 +386,7 @@ static ADDRESS_MAP_START( mitchell156_map, ADDRESS_SPACE_PROGRAM, 32 )
AM_RANGE(0x1d4000, 0x1d5fff) AM_READWRITE(simpl156_pf2_data_r, simpl156_pf2_data_w)
AM_RANGE(0x1e0000, 0x1e1fff) AM_READWRITE(simpl156_pf1_rowscroll_r, simpl156_pf1_rowscroll_w)
AM_RANGE(0x1e4000, 0x1e5fff) AM_READWRITE(simpl156_pf2_rowscroll_r, simpl156_pf2_rowscroll_w)
- AM_RANGE(0x1f0000, 0x1f0003) AM_RAM_WRITE(SMH_NOP) // ?
+ AM_RANGE(0x1f0000, 0x1f0003) AM_READONLY AM_WRITENOP // ?
AM_RANGE(0x200000, 0x200003) AM_READ(simpl156_inputs_read)
AM_RANGE(0x201000, 0x201fff) AM_RAM AM_BASE(&simpl156_systemram) // work ram (32-bit)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/skydiver.c b/src/mame/drivers/skydiver.c
index b3ca5d012aa..5f469d22529 100644
--- a/src/mame/drivers/skydiver.c
+++ b/src/mame/drivers/skydiver.c
@@ -189,7 +189,7 @@ static WRITE8_DEVICE_HANDLER( skydiver_whistle_w )
static ADDRESS_MAP_START( skydiver_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x007f) AM_MIRROR(0x4300) AM_READWRITE(skydiver_wram_r, skydiver_wram_w)
- AM_RANGE(0x0080, 0x00ff) AM_MIRROR(0x4000) AM_RAM_WRITE(SMH_RAM) /* RAM B1 */
+ AM_RANGE(0x0080, 0x00ff) AM_MIRROR(0x4000) AM_RAM /* RAM B1 */
AM_RANGE(0x0400, 0x07ff) AM_MIRROR(0x4000) AM_RAM_WRITE(skydiver_videoram_w) AM_BASE(&skydiver_videoram) /* RAMs K1,M1,P1,J1,N1,K/L1,L1,H/J1 */
AM_RANGE(0x0800, 0x0801) AM_MIRROR(0x47f0) AM_WRITE(skydiver_lamp_s_w)
AM_RANGE(0x0802, 0x0803) AM_MIRROR(0x47f0) AM_WRITE(skydiver_lamp_k_w)
@@ -219,10 +219,10 @@ static ADDRESS_MAP_START( skydiver_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x1810, 0x1810) AM_MIRROR(0x47e4) AM_READ_PORT("IN12")
AM_RANGE(0x1811, 0x1811) AM_MIRROR(0x47e4) AM_READ_PORT("IN13")
AM_RANGE(0x2000, 0x201f) AM_MIRROR(0x47e0) AM_READWRITE(watchdog_reset_r, skydiver_2000_201F_w)
- AM_RANGE(0x2800, 0x2fff) AM_MIRROR(0x4000) AM_READ(SMH_ROM)
- AM_RANGE(0x3000, 0x37ff) AM_MIRROR(0x4000) AM_READ(SMH_ROM)
- AM_RANGE(0x3800, 0x3fff) AM_READ(SMH_ROM)
- AM_RANGE(0x7800, 0x7fff) AM_READ(SMH_ROM)
+ AM_RANGE(0x2800, 0x2fff) AM_MIRROR(0x4000) AM_ROM
+ AM_RANGE(0x3000, 0x37ff) AM_MIRROR(0x4000) AM_ROM
+ AM_RANGE(0x3800, 0x3fff) AM_ROM
+ AM_RANGE(0x7800, 0x7fff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/skykid.c b/src/mame/drivers/skykid.c
index 9b6a4d96690..47d667dd6e7 100644
--- a/src/mame/drivers/skykid.c
+++ b/src/mame/drivers/skykid.c
@@ -123,7 +123,7 @@ static ADDRESS_MAP_START( skykid_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x6800, 0x6bff) AM_DEVREADWRITE("namco", namcos1_cus30_r,namcos1_cus30_w) AM_BASE(&namco_wavedata)/* PSG device, shared RAM */
AM_RANGE(0x7000, 0x7fff) AM_WRITE(skykid_irq_1_ctrl_w) /* IRQ control */
AM_RANGE(0x7800, 0x7fff) AM_READ(watchdog_reset_r) /* watchdog reset */
- AM_RANGE(0x8000, 0xffff) AM_READ(SMH_ROM) /* ROM */
+ AM_RANGE(0x8000, 0xffff) AM_ROM /* ROM */
AM_RANGE(0x8000, 0x8fff) AM_WRITE(skykid_subreset_w) /* MCU control */
AM_RANGE(0x9000, 0x9fff) AM_WRITE(skykid_bankswitch_w) /* Bankswitch control */
AM_RANGE(0xa000, 0xa001) AM_WRITE(skykid_flipscreen_priority_w) /* flip screen & priority */
@@ -135,9 +135,9 @@ static ADDRESS_MAP_START( mcu_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x1000, 0x13ff) AM_DEVREADWRITE("namco", namcos1_cus30_r, namcos1_cus30_w) AM_BASE(&namco_wavedata) /* PSG device, shared RAM */
AM_RANGE(0x2000, 0x3fff) AM_WRITE(watchdog_reset_w) /* watchdog? */
AM_RANGE(0x4000, 0x7fff) AM_WRITE(skykid_irq_2_ctrl_w)
- AM_RANGE(0x8000, 0xbfff) AM_READ(SMH_ROM)
+ AM_RANGE(0x8000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM
- AM_RANGE(0xf000, 0xffff) AM_READ(SMH_ROM)
+ AM_RANGE(0xf000, 0xffff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/skylncr.c b/src/mame/drivers/skylncr.c
index 005fe2d332b..56b87e816fa 100644
--- a/src/mame/drivers/skylncr.c
+++ b/src/mame/drivers/skylncr.c
@@ -315,55 +315,55 @@ static ADDRESS_MAP_START( mem_map_skylncr, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM AM_BASE_SIZE_GENERIC(nvram)
- AM_RANGE(0x8800, 0x8fff) AM_READWRITE( SMH_RAM, skylncr_videoram_w ) AM_BASE( &skylncr_videoram )
- AM_RANGE(0x9000, 0x97ff) AM_READWRITE( SMH_RAM, skylncr_colorram_w ) AM_BASE( &skylncr_colorram )
-
- AM_RANGE(0x9800, 0x99ff) AM_READWRITE( SMH_RAM, reeltiles_1_w ) AM_BASE( &reeltiles_1_ram )
- AM_RANGE(0x9a00, 0x9bff) AM_READWRITE( SMH_RAM, reeltiles_2_w ) AM_BASE( &reeltiles_2_ram )
- AM_RANGE(0x9c00, 0x9dff) AM_READWRITE( SMH_RAM, reeltiles_3_w ) AM_BASE( &reeltiles_3_ram )
- AM_RANGE(0x9e00, 0x9fff) AM_READWRITE( SMH_RAM, reeltiles_4_w ) AM_BASE( &reeltiles_4_ram )
- AM_RANGE(0xa000, 0xa1ff) AM_READWRITE( SMH_RAM, reeltileshigh_1_w ) AM_BASE( &reeltileshigh_1_ram )
- AM_RANGE(0xa200, 0xa3ff) AM_READWRITE( SMH_RAM, reeltileshigh_2_w ) AM_BASE( &reeltileshigh_2_ram )
- AM_RANGE(0xa400, 0xa5ff) AM_READWRITE( SMH_RAM, reeltileshigh_3_w ) AM_BASE( &reeltileshigh_3_ram )
- AM_RANGE(0xa600, 0xa7ff) AM_READWRITE( SMH_RAM, reeltileshigh_4_w ) AM_BASE( &reeltileshigh_4_ram )
+ AM_RANGE(0x8800, 0x8fff) AM_RAM_WRITE( skylncr_videoram_w ) AM_BASE( &skylncr_videoram )
+ AM_RANGE(0x9000, 0x97ff) AM_RAM_WRITE( skylncr_colorram_w ) AM_BASE( &skylncr_colorram )
+
+ AM_RANGE(0x9800, 0x99ff) AM_RAM_WRITE( reeltiles_1_w ) AM_BASE( &reeltiles_1_ram )
+ AM_RANGE(0x9a00, 0x9bff) AM_RAM_WRITE( reeltiles_2_w ) AM_BASE( &reeltiles_2_ram )
+ AM_RANGE(0x9c00, 0x9dff) AM_RAM_WRITE( reeltiles_3_w ) AM_BASE( &reeltiles_3_ram )
+ AM_RANGE(0x9e00, 0x9fff) AM_RAM_WRITE( reeltiles_4_w ) AM_BASE( &reeltiles_4_ram )
+ AM_RANGE(0xa000, 0xa1ff) AM_RAM_WRITE( reeltileshigh_1_w ) AM_BASE( &reeltileshigh_1_ram )
+ AM_RANGE(0xa200, 0xa3ff) AM_RAM_WRITE( reeltileshigh_2_w ) AM_BASE( &reeltileshigh_2_ram )
+ AM_RANGE(0xa400, 0xa5ff) AM_RAM_WRITE( reeltileshigh_3_w ) AM_BASE( &reeltileshigh_3_ram )
+ AM_RANGE(0xa600, 0xa7ff) AM_RAM_WRITE( reeltileshigh_4_w ) AM_BASE( &reeltileshigh_4_ram )
AM_RANGE(0xaa55, 0xaa55) AM_READ( ret_ff )
- AM_RANGE(0xb000, 0xb03f) AM_RAM AM_WRITE(reelscroll1_w) AM_BASE(&reelscroll1)
- AM_RANGE(0xb040, 0xb07f) AM_RAM AM_WRITE(reelscroll1_w)
- AM_RANGE(0xb080, 0xb0bf) AM_RAM AM_WRITE(reelscroll1_w)
- AM_RANGE(0xb0c0, 0xb0ff) AM_RAM AM_WRITE(reelscroll1_w)
- AM_RANGE(0xb100, 0xb13f) AM_RAM AM_WRITE(reelscroll1_w)
- AM_RANGE(0xb140, 0xb17f) AM_RAM AM_WRITE(reelscroll1_w)
- AM_RANGE(0xb180, 0xb1bf) AM_RAM AM_WRITE(reelscroll1_w)
- AM_RANGE(0xb1c0, 0xb1ff) AM_RAM AM_WRITE(reelscroll1_w)
-
- AM_RANGE(0xb200, 0xb23f) AM_RAM AM_WRITE(reelscroll2_w) AM_BASE(&reelscroll2)
- AM_RANGE(0xb240, 0xb27f) AM_RAM AM_WRITE(reelscroll2_w)
- AM_RANGE(0xb280, 0xb2bf) AM_RAM AM_WRITE(reelscroll2_w)
- AM_RANGE(0xb2c0, 0xb2ff) AM_RAM AM_WRITE(reelscroll2_w)
- AM_RANGE(0xb300, 0xb33f) AM_RAM AM_WRITE(reelscroll2_w)
- AM_RANGE(0xb340, 0xb37f) AM_RAM AM_WRITE(reelscroll2_w)
- AM_RANGE(0xb380, 0xb3bf) AM_RAM AM_WRITE(reelscroll2_w)
- AM_RANGE(0xb3c0, 0xb3ff) AM_RAM AM_WRITE(reelscroll2_w)
-
- AM_RANGE(0xb400, 0xb43f) AM_RAM AM_WRITE(reelscroll3_w) AM_BASE(&reelscroll3)
- AM_RANGE(0xb440, 0xb47f) AM_RAM AM_WRITE(reelscroll3_w)
- AM_RANGE(0xb480, 0xb4bf) AM_RAM AM_WRITE(reelscroll3_w)
- AM_RANGE(0xb4c0, 0xb4ff) AM_RAM AM_WRITE(reelscroll3_w)
- AM_RANGE(0xb500, 0xb53f) AM_RAM AM_WRITE(reelscroll3_w)
- AM_RANGE(0xb540, 0xb57f) AM_RAM AM_WRITE(reelscroll3_w)
- AM_RANGE(0xb580, 0xb5bf) AM_RAM AM_WRITE(reelscroll3_w)
- AM_RANGE(0xb5c0, 0xb5ff) AM_RAM AM_WRITE(reelscroll3_w)
-
- AM_RANGE(0xb600, 0xb63f) AM_RAM AM_WRITE(reelscroll4_w) AM_BASE(&reelscroll4)
- AM_RANGE(0xb640, 0xb67f) AM_RAM AM_WRITE(reelscroll4_w)
- AM_RANGE(0xb680, 0xb6bf) AM_RAM AM_WRITE(reelscroll4_w)
- AM_RANGE(0xb6c0, 0xb6ff) AM_RAM AM_WRITE(reelscroll4_w)
- AM_RANGE(0xb700, 0xb73f) AM_RAM AM_WRITE(reelscroll4_w)
- AM_RANGE(0xb740, 0xb77f) AM_RAM AM_WRITE(reelscroll4_w)
- AM_RANGE(0xb780, 0xb7bf) AM_RAM AM_WRITE(reelscroll4_w)
- AM_RANGE(0xb7c0, 0xb7ff) AM_RAM AM_WRITE(reelscroll4_w)
+ AM_RANGE(0xb000, 0xb03f) AM_RAM_WRITE(reelscroll1_w) AM_BASE(&reelscroll1)
+ AM_RANGE(0xb040, 0xb07f) AM_RAM_WRITE(reelscroll1_w)
+ AM_RANGE(0xb080, 0xb0bf) AM_RAM_WRITE(reelscroll1_w)
+ AM_RANGE(0xb0c0, 0xb0ff) AM_RAM_WRITE(reelscroll1_w)
+ AM_RANGE(0xb100, 0xb13f) AM_RAM_WRITE(reelscroll1_w)
+ AM_RANGE(0xb140, 0xb17f) AM_RAM_WRITE(reelscroll1_w)
+ AM_RANGE(0xb180, 0xb1bf) AM_RAM_WRITE(reelscroll1_w)
+ AM_RANGE(0xb1c0, 0xb1ff) AM_RAM_WRITE(reelscroll1_w)
+
+ AM_RANGE(0xb200, 0xb23f) AM_RAM_WRITE(reelscroll2_w) AM_BASE(&reelscroll2)
+ AM_RANGE(0xb240, 0xb27f) AM_RAM_WRITE(reelscroll2_w)
+ AM_RANGE(0xb280, 0xb2bf) AM_RAM_WRITE(reelscroll2_w)
+ AM_RANGE(0xb2c0, 0xb2ff) AM_RAM_WRITE(reelscroll2_w)
+ AM_RANGE(0xb300, 0xb33f) AM_RAM_WRITE(reelscroll2_w)
+ AM_RANGE(0xb340, 0xb37f) AM_RAM_WRITE(reelscroll2_w)
+ AM_RANGE(0xb380, 0xb3bf) AM_RAM_WRITE(reelscroll2_w)
+ AM_RANGE(0xb3c0, 0xb3ff) AM_RAM_WRITE(reelscroll2_w)
+
+ AM_RANGE(0xb400, 0xb43f) AM_RAM_WRITE(reelscroll3_w) AM_BASE(&reelscroll3)
+ AM_RANGE(0xb440, 0xb47f) AM_RAM_WRITE(reelscroll3_w)
+ AM_RANGE(0xb480, 0xb4bf) AM_RAM_WRITE(reelscroll3_w)
+ AM_RANGE(0xb4c0, 0xb4ff) AM_RAM_WRITE(reelscroll3_w)
+ AM_RANGE(0xb500, 0xb53f) AM_RAM_WRITE(reelscroll3_w)
+ AM_RANGE(0xb540, 0xb57f) AM_RAM_WRITE(reelscroll3_w)
+ AM_RANGE(0xb580, 0xb5bf) AM_RAM_WRITE(reelscroll3_w)
+ AM_RANGE(0xb5c0, 0xb5ff) AM_RAM_WRITE(reelscroll3_w)
+
+ AM_RANGE(0xb600, 0xb63f) AM_RAM_WRITE(reelscroll4_w) AM_BASE(&reelscroll4)
+ AM_RANGE(0xb640, 0xb67f) AM_RAM_WRITE(reelscroll4_w)
+ AM_RANGE(0xb680, 0xb6bf) AM_RAM_WRITE(reelscroll4_w)
+ AM_RANGE(0xb6c0, 0xb6ff) AM_RAM_WRITE(reelscroll4_w)
+ AM_RANGE(0xb700, 0xb73f) AM_RAM_WRITE(reelscroll4_w)
+ AM_RANGE(0xb740, 0xb77f) AM_RAM_WRITE(reelscroll4_w)
+ AM_RANGE(0xb780, 0xb7bf) AM_RAM_WRITE(reelscroll4_w)
+ AM_RANGE(0xb7c0, 0xb7ff) AM_RAM_WRITE(reelscroll4_w)
AM_RANGE(0xc000, 0xffff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/snesb.c b/src/mame/drivers/snesb.c
index 9bbdf40443f..a9edd4cea0e 100644
--- a/src/mame/drivers/snesb.c
+++ b/src/mame/drivers/snesb.c
@@ -250,10 +250,10 @@ static READ8_HANDLER(iron_770079_r)
static ADDRESS_MAP_START( snesb_map, ADDRESS_SPACE_PROGRAM, 8)
AM_RANGE(0x000000, 0x2fffff) AM_READWRITE(snes_r_bank1, snes_w_bank1) /* I/O and ROM (repeats for each bank) */
AM_RANGE(0x300000, 0x3fffff) AM_READWRITE(snes_r_bank2, snes_w_bank2) /* I/O and ROM (repeats for each bank) */
- AM_RANGE(0x400000, 0x5fffff) AM_READWRITE(snes_r_bank3, SMH_ROM) /* ROM (and reserved in Mode 20) */
+ AM_RANGE(0x400000, 0x5fffff) AM_READ(snes_r_bank3) /* ROM (and reserved in Mode 20) */
AM_RANGE(0x600000, 0x6fffff) AM_READWRITE(snes_r_bank4, snes_w_bank4) /* used by Mode 20 DSP-1 */
AM_RANGE(0x700000, 0x7dffff) AM_READWRITE(snes_r_bank5, snes_w_bank5)
- AM_RANGE(0x7e0000, 0x7fffff) AM_RAM /* 8KB Low RAM, 24KB High RAM, 96KB Expanded RAM */
+ AM_RANGE(0x7e0000, 0x7fffff) AM_RAM /* 8KB Low RAM, 24KB High RAM, 96KB Expanded RAM */
AM_RANGE(0x800000, 0xbfffff) AM_READWRITE(snes_r_bank6, snes_w_bank6) /* Mirror and ROM */
AM_RANGE(0xc00000, 0xffffff) AM_READWRITE(snes_r_bank7, snes_w_bank7) /* Mirror and ROM */
ADDRESS_MAP_END
diff --git a/src/mame/drivers/spaceg.c b/src/mame/drivers/spaceg.c
index 6916686e147..6458c0ac23c 100644
--- a/src/mame/drivers/spaceg.c
+++ b/src/mame/drivers/spaceg.c
@@ -320,11 +320,11 @@ static ADDRESS_MAP_START( spaceg_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x3000, 0x3fff) AM_ROM
AM_RANGE(0x7000, 0x77ff) AM_RAM
- AM_RANGE(0xa000, 0xbfff) AM_READWRITE(spaceg_colorram_r, SMH_RAM) AM_BASE_MEMBER(spaceg_state, unkram)
+ AM_RANGE(0xa000, 0xbfff) AM_RAM_READ(spaceg_colorram_r) AM_BASE_MEMBER(spaceg_state, unkram)
AM_RANGE(0xc000, 0xdfff) AM_RAM_WRITE(zvideoram_w) AM_BASE_MEMBER(spaceg_state, videoram)
- AM_RANGE(0x9400, 0x9400) AM_WRITE(SMH_RAM) AM_BASE_MEMBER(spaceg_state, io9400) /* gfx ctrl */
- AM_RANGE(0x9401, 0x9401) AM_WRITE(SMH_RAM) AM_BASE_MEMBER(spaceg_state, io9401) /* gfx ctrl */
+ AM_RANGE(0x9400, 0x9400) AM_WRITEONLY AM_BASE_MEMBER(spaceg_state, io9400) /* gfx ctrl */
+ AM_RANGE(0x9401, 0x9401) AM_WRITEONLY AM_BASE_MEMBER(spaceg_state, io9401) /* gfx ctrl */
/* 9402 -
bits 0 and 1 probably control the lamps under the player 1 and player 2 start buttons
bit 2 - unknown -
diff --git a/src/mame/drivers/speglsht.c b/src/mame/drivers/speglsht.c
index 87beafa870c..26b2fb28760 100644
--- a/src/mame/drivers/speglsht.c
+++ b/src/mame/drivers/speglsht.c
@@ -211,7 +211,7 @@ static ADDRESS_MAP_START( speglsht_mem, ADDRESS_SPACE_PROGRAM, 32 )
AM_RANGE(0x01800400, 0x01800403) AM_READ_PORT("IN1")
AM_RANGE(0x01a00000, 0x01afffff) AM_RAM AM_BASE(&speglsht_framebuffer)
AM_RANGE(0x01b00000, 0x01b07fff) AM_RAM //cleared ... video related ?
- AM_RANGE(0x01c00000, 0x01dfffff) AM_READ(SMH_ROM) AM_WRITE(SMH_ROM) AM_REGION("user2", 0)
+ AM_RANGE(0x01c00000, 0x01dfffff) AM_ROM AM_REGION("user2", 0)
AM_RANGE(0x0a000000, 0x0a003fff) AM_READWRITE(shared_r, shared_w)
AM_RANGE(0x1eff0000, 0x1eff001f) AM_RAM
AM_RANGE(0x1eff003c, 0x1eff003f) AM_READNOP //interrupt related
diff --git a/src/mame/drivers/spool99.c b/src/mame/drivers/spool99.c
index 9f3907b746c..df8b7f3e17f 100644
--- a/src/mame/drivers/spool99.c
+++ b/src/mame/drivers/spool99.c
@@ -190,7 +190,7 @@ static ADDRESS_MAP_START( spool99_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xafef, 0xafef) AM_WRITE(eeprom_dataline_w )
AM_RANGE(0xaff8, 0xaff8) AM_DEVWRITE("oki", okim6295_w)
- AM_RANGE(0xb000, 0xb3ff) AM_RAM AM_WRITE(paletteram_xxxxBBBBGGGGRRRR_le_w) AM_BASE_GENERIC(paletteram) // palette
+ AM_RANGE(0xb000, 0xb3ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_le_w) AM_BASE_GENERIC(paletteram) // palette
AM_RANGE(0xb800, 0xdfff) AM_RAM
AM_RANGE(0xe000, 0xefff) AM_RAM_WRITE(spool99_vram_w) AM_BASE_GENERIC(videoram)
diff --git a/src/mame/drivers/srmp5.c b/src/mame/drivers/srmp5.c
index 76a0b805086..84e5cf133f2 100644
--- a/src/mame/drivers/srmp5.c
+++ b/src/mame/drivers/srmp5.c
@@ -299,7 +299,7 @@ static WRITE32_HANDLER(srmp5_vidregs_w)
static ADDRESS_MAP_START( srmp5_mem, ADDRESS_SPACE_PROGRAM, 32 )
AM_RANGE(0x00000000, 0x000fffff) AM_RAM //maybe 0 - 2fffff ?
AM_RANGE(0x002f0000, 0x002f7fff) AM_RAM
- AM_RANGE(0x01000000, 0x01000003) AM_WRITE(SMH_RAM) // 0xaa .. watchdog ?
+ AM_RANGE(0x01000000, 0x01000003) AM_WRITEONLY // 0xaa .. watchdog ?
AM_RANGE(0x01800000, 0x01800003) AM_RAM //?1
AM_RANGE(0x01800004, 0x01800007) AM_READ_PORT("DSW1")
AM_RANGE(0x01800008, 0x0180000b) AM_READ_PORT("DSW2")
@@ -321,10 +321,10 @@ static ADDRESS_MAP_START( srmp5_mem, ADDRESS_SPACE_PROGRAM, 32 )
AM_RANGE(0x0a180000, 0x0a18011f) AM_READWRITE(srmp5_vidregs_r, srmp5_vidregs_w)
AM_RANGE(0x0a200000, 0x0a3fffff) AM_READWRITE(tileram_r, tileram_w)
- AM_RANGE(0x1eff0000, 0x1eff001f) AM_WRITE(SMH_RAM)
+ AM_RANGE(0x1eff0000, 0x1eff001f) AM_WRITEONLY
AM_RANGE(0x1eff003c, 0x1eff003f) AM_READNOP
- AM_RANGE(0x1fc00000, 0x1fdfffff) AM_READ(SMH_ROM) AM_WRITE(SMH_ROM) AM_REGION("user1", 0)
- AM_RANGE(0x2fc00000, 0x2fdfffff) AM_READ(SMH_ROM) AM_WRITE(SMH_ROM) AM_REGION("user1", 0)
+ AM_RANGE(0x1fc00000, 0x1fdfffff) AM_ROM AM_REGION("user1", 0)
+ AM_RANGE(0x2fc00000, 0x2fdfffff) AM_ROM AM_REGION("user1", 0)
ADDRESS_MAP_END
static ADDRESS_MAP_START( st0016_mem, ADDRESS_SPACE_PROGRAM, 8 )
diff --git a/src/mame/drivers/srumbler.c b/src/mame/drivers/srumbler.c
index 0da895bee90..cce2524b074 100644
--- a/src/mame/drivers/srumbler.c
+++ b/src/mame/drivers/srumbler.c
@@ -50,7 +50,7 @@ static WRITE8_HANDLER( srumbler_bankswitch_w )
char bankname[10];
/* bit 2 of prom1 selects ROM or RAM - not supported */
- sprintf(bankname, "%04X", i*0x1000);
+ sprintf(bankname, "%04x", i*0x1000);
memory_set_bankptr(space->machine, bankname,&ROM[bank*0x1000]);
}
}
@@ -98,12 +98,12 @@ static ADDRESS_MAP_START( srumbler_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x7000, 0x73ff) AM_WRITE(paletteram_RRRRGGGGBBBBxxxx_be_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x8000, 0x8fff) AM_ROMBANK("8000") /* Banked ROM */
AM_RANGE(0x9000, 0x9fff) AM_ROMBANK("9000") /* Banked ROM */
- AM_RANGE(0xa000, 0xafff) AM_ROMBANK("A000") /* Banked ROM */
- AM_RANGE(0xb000, 0xbfff) AM_ROMBANK("B000") /* Banked ROM */
- AM_RANGE(0xc000, 0xcfff) AM_ROMBANK("C000") /* Banked ROM */
- AM_RANGE(0xd000, 0xdfff) AM_ROMBANK("D000") /* Banked ROM */
- AM_RANGE(0xe000, 0xefff) AM_ROMBANK("E000") /* Banked ROM */
- AM_RANGE(0xf000, 0xffff) AM_ROMBANK("F000") /* Banked ROM */
+ AM_RANGE(0xa000, 0xafff) AM_ROMBANK("a000") /* Banked ROM */
+ AM_RANGE(0xb000, 0xbfff) AM_ROMBANK("b000") /* Banked ROM */
+ AM_RANGE(0xc000, 0xcfff) AM_ROMBANK("c000") /* Banked ROM */
+ AM_RANGE(0xd000, 0xdfff) AM_ROMBANK("d000") /* Banked ROM */
+ AM_RANGE(0xe000, 0xefff) AM_ROMBANK("e000") /* Banked ROM */
+ AM_RANGE(0xf000, 0xffff) AM_ROMBANK("f000") /* Banked ROM */
ADDRESS_MAP_END
static ADDRESS_MAP_START( srumbler_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
diff --git a/src/mame/drivers/ssf2md.c b/src/mame/drivers/ssf2md.c
index 53a53755135..f9c5acaf397 100644
--- a/src/mame/drivers/ssf2md.c
+++ b/src/mame/drivers/ssf2md.c
@@ -18,9 +18,9 @@ static READ16_HANDLER( ssf2ghw_dsw_r )
static DRIVER_INIT( ssf2ghw )
{
- memory_install_write16_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0xA130F0, 0xA130FF, 0, 0, (write16_space_func)SMH_NOP); // custom banking is disabled (!)
+ memory_nop_write(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0xA130F0, 0xA130FF, 0, 0); // custom banking is disabled (!)
memory_install_read_bank_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x400000, 0x5fffff, 0, 0, "bank5");
- memory_install_write16_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x400000, 0x5fffff, 0, 0, (write16_space_func)SMH_UNMAP);
+ memory_unmap_write(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x400000, 0x5fffff, 0, 0);
memory_set_bankptr(machine, "bank5", memory_region( machine, "maincpu" ) + 0x400000 );
diff --git a/src/mame/drivers/ssv.c b/src/mame/drivers/ssv.c
index 195659170d0..16a56474b2e 100644
--- a/src/mame/drivers/ssv.c
+++ b/src/mame/drivers/ssv.c
@@ -428,16 +428,16 @@ static READ16_HANDLER( fake_r ) { return ssv_scroll[offset]; }
AM_RANGE(0x140000, 0x15ffff) AM_RAM_WRITE(paletteram16_xrgb_swap_word_w) AM_BASE_GENERIC(paletteram) /* Palette */ \
AM_RANGE(0x160000, 0x17ffff) AM_RAM /* */ \
AM_RANGE(0x1c0000, 0x1c0001) AM_READ(ssv_vblank_r ) /* Vblank? */ \
-/**/AM_RANGE(0x1c0002, 0x1c007f) AM_READ(SMH_RAM ) /* Scroll */ \
+/**/AM_RANGE(0x1c0002, 0x1c007f) AM_READONLY /* Scroll */ \
AM_RANGE(0x1c0000, 0x1c007f) AM_WRITE(ssv_scroll_w) AM_BASE(&ssv_scroll) /* Scroll */ \
AM_RANGE(0x210002, 0x210003) AM_READ_PORT("DSW1") \
AM_RANGE(0x210004, 0x210005) AM_READ_PORT("DSW2") \
AM_RANGE(0x210008, 0x210009) AM_READ_PORT("P1") \
AM_RANGE(0x21000a, 0x21000b) AM_READ_PORT("P2") \
AM_RANGE(0x21000c, 0x21000d) AM_READ_PORT("SYSTEM") \
- AM_RANGE(0x21000e, 0x21000f) AM_READWRITE(SMH_NOP, ssv_lockout_w) /* Lockout */ \
+ AM_RANGE(0x21000e, 0x21000f) AM_READNOP AM_WRITE(ssv_lockout_w) /* Lockout */ \
AM_RANGE(0x210010, 0x210011) AM_WRITENOP \
- AM_RANGE(0x230000, 0x230071) AM_WRITE(SMH_RAM) AM_BASE(&ssv_irq_vectors) /* IRQ Vec */ \
+ AM_RANGE(0x230000, 0x230071) AM_WRITEONLY AM_BASE(&ssv_irq_vectors) /* IRQ Vec */ \
AM_RANGE(0x240000, 0x240071) AM_WRITE(ssv_irq_ack_w ) /* IRQ Ack */ \
AM_RANGE(0x260000, 0x260001) AM_WRITE(ssv_irq_enable_w) /* IRQ En */ \
AM_RANGE(0x300000, 0x30007f) AM_DEVREADWRITE8("ensoniq", es5506_r, es5506_w, 0x00ff) /* Sound */ \
@@ -458,11 +458,11 @@ static READ16_HANDLER( drifto94_rand_r )
}
static ADDRESS_MAP_START( drifto94_map, ADDRESS_SPACE_PROGRAM, 16 )
-// AM_RANGE(0x210002, 0x210003) AM_WRITE(SMH_NOP) // ? 1 at the start
- AM_RANGE(0x400000, 0x47ffff) AM_WRITE(SMH_RAM) // ?
+// AM_RANGE(0x210002, 0x210003) AM_WRITENOP // ? 1 at the start
+ AM_RANGE(0x400000, 0x47ffff) AM_WRITEONLY // ?
AM_RANGE(0x480000, 0x480001) AM_NOP // ?
- AM_RANGE(0x483000, 0x485fff) AM_WRITE(SMH_NOP) // ?
- AM_RANGE(0x500000, 0x500001) AM_WRITE(SMH_NOP) // ??
+ AM_RANGE(0x483000, 0x485fff) AM_WRITENOP // ?
+ AM_RANGE(0x500000, 0x500001) AM_WRITENOP // ??
AM_RANGE(0x510000, 0x510001) AM_READ(drifto94_rand_r ) // ??
AM_RANGE(0x520000, 0x520001) AM_READ(drifto94_rand_r ) // ??
AM_RANGE(0x580000, 0x5807ff) AM_RAM AM_BASE(&ssv_nvram) AM_SIZE(&ssv_nvram_size) // NVRAM
@@ -635,9 +635,9 @@ static READ16_HANDLER( hypreact_input_r )
static ADDRESS_MAP_START( hypreact_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x210000, 0x210001) AM_READ(watchdog_reset16_r) // Watchdog
-// AM_RANGE(0x210002, 0x210003) AM_WRITE(SMH_NOP) // ? 5 at the start
+// AM_RANGE(0x210002, 0x210003) AM_WRITENOP // ? 5 at the start
AM_RANGE(0x21000e, 0x21000f) AM_WRITE(ssv_lockout_inv_w) // Inverted lockout lines
-// AM_RANGE(0x280000, 0x280001) AM_READ(SMH_NOP) // ? read at the start, value not used
+// AM_RANGE(0x280000, 0x280001) AM_READNOP // ? read at the start, value not used
AM_RANGE(0xc00000, 0xc00001) AM_READ(hypreact_input_r) // Inputs
AM_RANGE(0xc00006, 0xc00007) AM_RAM AM_BASE(&ssv_input_sel) //
AM_RANGE(0xc00008, 0xc00009) AM_NOP //
@@ -651,12 +651,12 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( hypreac2_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x210000, 0x210001) AM_READ(watchdog_reset16_r) // Watchdog
-// AM_RANGE(0x210002, 0x210003) AM_WRITE(SMH_NOP) // ? 5 at the start
+// AM_RANGE(0x210002, 0x210003) AM_WRITENOP // ? 5 at the start
AM_RANGE(0x21000e, 0x21000f) AM_WRITE(ssv_lockout_inv_w) // Inverted lockout lines
-// AM_RANGE(0x280000, 0x280001) AM_READ(SMH_NOP) // ? read at the start, value not used
+// AM_RANGE(0x280000, 0x280001) AM_READNOP // ? read at the start, value not used
AM_RANGE(0x500000, 0x500001) AM_READ(hypreact_input_r) // Inputs
AM_RANGE(0x500002, 0x500003) AM_READ(hypreact_input_r) // (again?)
- AM_RANGE(0x520000, 0x520001) AM_WRITE(SMH_RAM) AM_BASE(&ssv_input_sel) // Inputs
+ AM_RANGE(0x520000, 0x520001) AM_WRITEONLY AM_BASE(&ssv_input_sel) // Inputs
// 0x540000, 0x540003 communication with other units
SSV_MAP( 0xe00000 )
ADDRESS_MAP_END
@@ -669,10 +669,10 @@ ADDRESS_MAP_END
static READ16_HANDLER( srmp4_input_r );
static ADDRESS_MAP_START( janjans1_map, ADDRESS_SPACE_PROGRAM, 16 )
- AM_RANGE(0x210000, 0x210001) AM_WRITE(SMH_NOP) // koikois2 but not janjans1
-// AM_RANGE(0x210002, 0x210003) AM_WRITE(SMH_NOP) // ? 1 at the start
- AM_RANGE(0x210006, 0x210007) AM_READ(SMH_NOP)
- AM_RANGE(0x800000, 0x800001) AM_WRITE(SMH_RAM) AM_BASE(&ssv_input_sel) // Inputs
+ AM_RANGE(0x210000, 0x210001) AM_WRITENOP // koikois2 but not janjans1
+// AM_RANGE(0x210002, 0x210003) AM_WRITENOP // ? 1 at the start
+ AM_RANGE(0x210006, 0x210007) AM_READNOP
+ AM_RANGE(0x800000, 0x800001) AM_WRITEONLY AM_BASE(&ssv_input_sel) // Inputs
AM_RANGE(0x800002, 0x800003) AM_READ(srmp4_input_r) // Inputs
SSV_MAP( 0xc00000 )
ADDRESS_MAP_END
@@ -683,10 +683,10 @@ ADDRESS_MAP_END
***************************************************************************/
static ADDRESS_MAP_START( keithlcy_map, ADDRESS_SPACE_PROGRAM, 16 )
-// AM_RANGE(0x210002, 0x210003) AM_WRITE(SMH_NOP) // ? 1 at the start
- AM_RANGE(0x210010, 0x210011) AM_WRITE(SMH_NOP) //
- AM_RANGE(0x21000e, 0x21000f) AM_READ(SMH_NOP) //
- AM_RANGE(0x400000, 0x47ffff) AM_WRITE(SMH_RAM) // ?
+// AM_RANGE(0x210002, 0x210003) AM_WRITENOP // ? 1 at the start
+ AM_RANGE(0x210010, 0x210011) AM_WRITENOP //
+ AM_RANGE(0x21000e, 0x21000f) AM_READNOP //
+ AM_RANGE(0x400000, 0x47ffff) AM_WRITEONLY // ?
SSV_MAP( 0xe00000 )
ADDRESS_MAP_END
@@ -697,9 +697,9 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( meosism_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x210000, 0x210001) AM_READ(watchdog_reset16_r ) // Watchdog
-// AM_RANGE(0x210002, 0x210003) AM_WRITE(SMH_NOP) // ? 5 at the start
-// AM_RANGE(0x280000, 0x280001) AM_READ(SMH_NOP) // ? read once, value not used
-// AM_RANGE(0x500004, 0x500005) AM_WRITE(SMH_NOP) // ? 0,58,18
+// AM_RANGE(0x210002, 0x210003) AM_WRITENOP // ? 5 at the start
+// AM_RANGE(0x280000, 0x280001) AM_READNOP // ? read once, value not used
+// AM_RANGE(0x500004, 0x500005) AM_WRITENOP // ? 0,58,18
AM_RANGE(0x580000, 0x58ffff) AM_RAM AM_BASE(&ssv_nvram) AM_SIZE(&ssv_nvram_size) // NVRAM
SSV_MAP( 0xf00000 )
ADDRESS_MAP_END
@@ -722,9 +722,9 @@ static WRITE16_HANDLER( ssv_mainram_w )
static ADDRESS_MAP_START( mslider_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x010000, 0x01ffff) AM_READWRITE(ssv_mainram_r, ssv_mainram_w) // RAM Mirror
-// AM_RANGE(0x210002, 0x210003) AM_WRITE(SMH_NOP) // ? 1 at the start
- AM_RANGE(0x400000, 0x47ffff) AM_WRITE(SMH_RAM) // ?
-// AM_RANGE(0x500000, 0x500001) AM_WRITE(SMH_NOP) // ? ff at the start
+// AM_RANGE(0x210002, 0x210003) AM_WRITENOP // ? 1 at the start
+ AM_RANGE(0x400000, 0x47ffff) AM_WRITEONLY // ?
+// AM_RANGE(0x500000, 0x500001) AM_WRITENOP // ? ff at the start
SSV_MAP( 0xf00000 )
ADDRESS_MAP_END
@@ -735,7 +735,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( ryorioh_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x210000, 0x210001) AM_WRITE(watchdog_reset16_w) // Watchdog
-// AM_RANGE(0x210002, 0x210003) AM_WRITE(SMH_NOP) // ? 1 at the start
+// AM_RANGE(0x210002, 0x210003) AM_WRITENOP // ? 1 at the start
SSV_MAP( 0xc00000 )
ADDRESS_MAP_END
@@ -757,10 +757,10 @@ static READ16_HANDLER( srmp4_input_r )
static ADDRESS_MAP_START( srmp4_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x210000, 0x210001) AM_READ(watchdog_reset16_r) // Watchdog
-// AM_RANGE(0x210002, 0x210003) AM_WRITE(SMH_NOP) // ? 1,5 at the start
+// AM_RANGE(0x210002, 0x210003) AM_WRITENOP // ? 1,5 at the start
AM_RANGE(0xc0000a, 0xc0000b) AM_READ(srmp4_input_r) // Inputs
- AM_RANGE(0xc0000e, 0xc0000f) AM_WRITE(SMH_RAM) AM_BASE(&ssv_input_sel) // Inputs
- AM_RANGE(0xc00010, 0xc00011) AM_WRITE(SMH_NOP) //
+ AM_RANGE(0xc0000e, 0xc0000f) AM_WRITEONLY AM_BASE(&ssv_input_sel) // Inputs
+ AM_RANGE(0xc00010, 0xc00011) AM_WRITENOP //
SSV_MAP( 0xf00000 )
ADDRESS_MAP_END
@@ -805,13 +805,13 @@ static READ16_HANDLER( srmp7_input_r )
static ADDRESS_MAP_START( srmp7_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x010000, 0x050faf) AM_RAM // More RAM
AM_RANGE(0x210000, 0x210001) AM_READ(watchdog_reset16_r) // Watchdog
-// AM_RANGE(0x210002, 0x210003) AM_WRITE(SMH_NOP) // ? 0,4 at the start
+// AM_RANGE(0x210002, 0x210003) AM_WRITENOP // ? 0,4 at the start
AM_RANGE(0x21000e, 0x21000f) AM_WRITE(ssv_lockout_inv_w) // Coin Counters / Lockouts
AM_RANGE(0x300076, 0x300077) AM_READ(srmp7_irqv_r) // Sound
// 0x540000, 0x540003, related to lev 5 irq?
AM_RANGE(0x580000, 0x580001) AM_WRITE(srmp7_sound_bank_w) // Sound Bank
AM_RANGE(0x600000, 0x600001) AM_READ(srmp7_input_r) // Inputs
- AM_RANGE(0x680000, 0x680001) AM_WRITE(SMH_RAM) AM_BASE(&ssv_input_sel) // Inputs
+ AM_RANGE(0x680000, 0x680001) AM_WRITEONLY AM_BASE(&ssv_input_sel) // Inputs
SSV_MAP( 0xc00000 )
ADDRESS_MAP_END
@@ -822,9 +822,9 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( survarts_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x210000, 0x210001) AM_READ(watchdog_reset16_r) // Watchdog
-// AM_RANGE(0x210002, 0x210003) AM_WRITE(SMH_NOP) // ? 0,4 at the start
-// AM_RANGE(0x290000, 0x290001) AM_READ(SMH_NOP) // ?
-// AM_RANGE(0x2a0000, 0x2a0001) AM_READ(SMH_NOP) // ?
+// AM_RANGE(0x210002, 0x210003) AM_WRITENOP // ? 0,4 at the start
+// AM_RANGE(0x290000, 0x290001) AM_READNOP // ?
+// AM_RANGE(0x2a0000, 0x2a0001) AM_READNOP // ?
AM_RANGE(0x400000, 0x43ffff) AM_RAM // dyna
@@ -873,7 +873,7 @@ static WRITE16_HANDLER( sxyreact_motor_w )
static ADDRESS_MAP_START( sxyreact_map, ADDRESS_SPACE_PROGRAM, 16 )
// AM_RANGE(0x020000, 0x03ffff) AM_READWRITE(ssv_mainram_r, ssv_mainram_w) // sxyreac2 reads / writes here, why?
AM_RANGE(0x210000, 0x210001) AM_READ(watchdog_reset16_r) // Watchdog
-// AM_RANGE(0x210002, 0x210003) AM_WRITE(SMH_NOP) // ? 1 at the start
+// AM_RANGE(0x210002, 0x210003) AM_WRITENOP // ? 1 at the start
AM_RANGE(0x21000e, 0x21000f) AM_WRITE(ssv_lockout_inv_w) // Inverted lockout lines
AM_RANGE(0x500002, 0x500003) AM_READ(sxyreact_ballswitch_r) // ?
AM_RANGE(0x500004, 0x500005) AM_READWRITE(sxyreact_dial_r, sxyreact_motor_w) // Dial Value (serial)
@@ -905,7 +905,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( ultrax_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x010000, 0x03ffff) AM_RAM // More RAM
AM_RANGE(0x210000, 0x210001) AM_READ(watchdog_reset16_r) // Watchdog (also value is cmp.b with memory address 8)
-// AM_RANGE(0x210002, 0x210003) AM_WRITE(SMH_NOP) // ? 2,6 at the start
+// AM_RANGE(0x210002, 0x210003) AM_WRITENOP // ? 2,6 at the start
SSV_MAP( 0xe00000 )
ADDRESS_MAP_END
@@ -1027,8 +1027,8 @@ static WRITE16_HANDLER( eaglshot_gfxram_w )
static ADDRESS_MAP_START( eaglshot_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x180000, 0x1bffff) AM_READWRITE(eaglshot_gfxram_r, eaglshot_gfxram_w)
- AM_RANGE(0x210000, 0x210001) AM_READ(/*watchdog_reset16_r*/SMH_NOP) // Watchdog
-// AM_RANGE(0x210002, 0x210003) AM_WRITE(SMH_NOP) // ? 0,4 at the start
+ AM_RANGE(0x210000, 0x210001) AM_READNOP /*AM_READ(watchdog_reset16_r)*/ // Watchdog
+// AM_RANGE(0x210002, 0x210003) AM_WRITENOP // ? 0,4 at the start
AM_RANGE(0x21000e, 0x21000f) AM_WRITE(ssv_lockout_inv_w) // Inverted lockout lines
AM_RANGE(0x800000, 0x800001) AM_WRITE(eaglshot_gfxrom_w)
AM_RANGE(0x900000, 0x900001) AM_WRITE(eaglshot_trackball_w)
diff --git a/src/mame/drivers/stactics.c b/src/mame/drivers/stactics.c
index 9bde548bd92..4dab7c43780 100644
--- a/src/mame/drivers/stactics.c
+++ b/src/mame/drivers/stactics.c
@@ -178,14 +178,14 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x6000, 0x6000) AM_MIRROR(0x0fff) AM_READ_PORT("IN1")
AM_RANGE(0x6000, 0x6001) AM_MIRROR(0x0f08) AM_WRITE(stactics_coin_lockout_w)
AM_RANGE(0x6002, 0x6005) AM_MIRROR(0x0f08) AM_WRITENOP
- AM_RANGE(0x6006, 0x6007) AM_MIRROR(0x0f08) AM_WRITE(SMH_RAM) AM_BASE_MEMBER(stactics_state, palette)
+ AM_RANGE(0x6006, 0x6007) AM_MIRROR(0x0f08) AM_WRITEONLY AM_BASE_MEMBER(stactics_state, palette)
/* AM_RANGE(0x6010, 0x6017) AM_MIRROR(0x0f08) AM_WRITE(stactics_sound_w) */
- AM_RANGE(0x6016, 0x6016) AM_MIRROR(0x0f08) AM_WRITE(SMH_RAM) AM_BASE_MEMBER(stactics_state, motor_on) /* Note: This overlaps rocket sound */
- AM_RANGE(0x6020, 0x6027) AM_MIRROR(0x0f08) AM_WRITE(SMH_RAM) AM_BASE_MEMBER(stactics_state, lamps)
+ AM_RANGE(0x6016, 0x6016) AM_MIRROR(0x0f08) AM_WRITEONLY AM_BASE_MEMBER(stactics_state, motor_on) /* Note: This overlaps rocket sound */
+ AM_RANGE(0x6020, 0x6027) AM_MIRROR(0x0f08) AM_WRITEONLY AM_BASE_MEMBER(stactics_state, lamps)
AM_RANGE(0x6030, 0x6030) AM_MIRROR(0x0f0f) AM_WRITE(stactics_speed_latch_w)
AM_RANGE(0x6040, 0x6040) AM_MIRROR(0x0f0f) AM_WRITE(stactics_shot_trigger_w)
AM_RANGE(0x6050, 0x6050) AM_MIRROR(0x0f0f) AM_WRITE(stactics_shot_flag_clear_w)
- AM_RANGE(0x6060, 0x606f) AM_MIRROR(0x0f00) AM_WRITE(SMH_RAM) AM_BASE_MEMBER(stactics_state, display_buffer)
+ AM_RANGE(0x6060, 0x606f) AM_MIRROR(0x0f00) AM_WRITEONLY AM_BASE_MEMBER(stactics_state, display_buffer)
AM_RANGE(0x6070, 0x609f) AM_MIRROR(0x0f00) AM_WRITENOP
/* AM_RANGE(0x60a0, 0x60ef) AM_MIRROR(0x0f00) AM_WRITE(stactics_sound2_w) */
AM_RANGE(0x60f0, 0x60ff) AM_MIRROR(0x0f00) AM_WRITENOP
diff --git a/src/mame/drivers/stadhero.c b/src/mame/drivers/stadhero.c
index e3dc5c6e424..997f9428d04 100644
--- a/src/mame/drivers/stadhero.c
+++ b/src/mame/drivers/stadhero.c
@@ -67,8 +67,8 @@ static WRITE16_HANDLER( stadhero_control_w )
static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x000000, 0x01ffff) AM_ROM
AM_RANGE(0x200000, 0x2007ff) AM_RAM_WRITE(stadhero_pf1_data_w) AM_BASE(&stadhero_pf1_data)
- AM_RANGE(0x240000, 0x240007) AM_RAM_WRITE(SMH_RAM) AM_BASE(&stadhero_pf2_control_0)
- AM_RANGE(0x240010, 0x240017) AM_WRITE(SMH_RAM) AM_BASE(&stadhero_pf2_control_1)
+ AM_RANGE(0x240000, 0x240007) AM_RAM AM_BASE(&stadhero_pf2_control_0)
+ AM_RANGE(0x240010, 0x240017) AM_WRITEONLY AM_BASE(&stadhero_pf2_control_1)
AM_RANGE(0x260000, 0x261fff) AM_READWRITE(stadhero_pf2_data_r, stadhero_pf2_data_w)
AM_RANGE(0x30c000, 0x30c00b) AM_READWRITE(stadhero_control_r, stadhero_control_w)
AM_RANGE(0x310000, 0x3107ff) AM_RAM_WRITE(paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE_GENERIC(paletteram)
diff --git a/src/mame/drivers/starwars.c b/src/mame/drivers/starwars.c
index 63c88b96a37..48297c20012 100644
--- a/src/mame/drivers/starwars.c
+++ b/src/mame/drivers/starwars.c
@@ -172,7 +172,7 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x4620, 0x463f) AM_WRITE(avgdvg_reset_w)
AM_RANGE(0x4640, 0x465f) AM_WRITE(watchdog_reset_w)
AM_RANGE(0x4660, 0x467f) AM_WRITE(irq_ack_w)
- AM_RANGE(0x4680, 0x469f) AM_READWRITE(SMH_NOP,starwars_out_w)
+ AM_RANGE(0x4680, 0x469f) AM_READNOP AM_WRITE(starwars_out_w)
AM_RANGE(0x46a0, 0x46bf) AM_WRITE(starwars_nstore_w)
AM_RANGE(0x46c0, 0x46c2) AM_WRITE(starwars_adc_select_w)
AM_RANGE(0x46e0, 0x46e0) AM_WRITE(starwars_soundrst_w)
diff --git a/src/mame/drivers/strnskil.c b/src/mame/drivers/strnskil.c
index d7a7d87af59..2baa220435e 100644
--- a/src/mame/drivers/strnskil.c
+++ b/src/mame/drivers/strnskil.c
@@ -104,7 +104,7 @@ static ADDRESS_MAP_START( strnskil_map1, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xd808, 0xd808) AM_WRITE(strnskil_scrl_ctrl_w)
AM_RANGE(0xd809, 0xd809) AM_WRITENOP /* coin counter? */
- AM_RANGE(0xd80a, 0xd80b) AM_WRITE(SMH_RAM) AM_BASE(&strnskil_xscroll)
+ AM_RANGE(0xd80a, 0xd80b) AM_WRITEONLY AM_BASE(&strnskil_xscroll)
ADDRESS_MAP_END
static ADDRESS_MAP_START( strnskil_map2, ADDRESS_SPACE_PROGRAM, 8 )
diff --git a/src/mame/drivers/suna8.c b/src/mame/drivers/suna8.c
index bd1a1519abd..68619d3ebaa 100644
--- a/src/mame/drivers/suna8.c
+++ b/src/mame/drivers/suna8.c
@@ -513,7 +513,7 @@ static ADDRESS_MAP_START( hardhead_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1") // Banked ROM
AM_RANGE(0xc000, 0xd7ff) AM_RAM // RAM
AM_RANGE(0xd800, 0xd9ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_be_w) AM_BASE_GENERIC(paletteram) // Palette
- AM_RANGE(0xda00, 0xda00) AM_READWRITE(hardhead_ip_r, SMH_RAM) AM_BASE(&hardhead_ip) // Input Port Select
+ AM_RANGE(0xda00, 0xda00) AM_RAM_READ(hardhead_ip_r) AM_BASE(&hardhead_ip) // Input Port Select
AM_RANGE(0xda80, 0xda80) AM_READWRITE(soundlatch2_r, hardhead_bankswitch_w ) // ROM Banking
AM_RANGE(0xdb00, 0xdb00) AM_WRITE(soundlatch_w ) // To Sound CPU
AM_RANGE(0xdb80, 0xdb80) AM_WRITE(hardhead_flipscreen_w ) // Flip Screen + Coin Lockout
@@ -527,7 +527,7 @@ ADDRESS_MAP_END
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
+ AM_RANGE(0x00, 0x00) AM_READNOP // ? IRQ Ack
ADDRESS_MAP_END
/***************************************************************************
@@ -578,7 +578,7 @@ static ADDRESS_MAP_START( rranger_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xc003, 0xc003) AM_READ_PORT("P2") // P2
AM_RANGE(0xc004, 0xc004) AM_READ(rranger_soundstatus_r ) // Latch Status?
AM_RANGE(0xc200, 0xc200) AM_NOP // Protection?
- AM_RANGE(0xc280, 0xc280) AM_WRITE(SMH_NOP ) // ? NMI Ack
+ AM_RANGE(0xc280, 0xc280) AM_WRITENOP // ? NMI Ack
AM_RANGE(0xc280, 0xc280) AM_READ_PORT("DSW1") // DSW 1
AM_RANGE(0xc2c0, 0xc2c0) AM_READ_PORT("DSW2") // DSW 2
AM_RANGE(0xc600, 0xc7ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_be_w) AM_BASE_GENERIC(paletteram) // Palette
@@ -589,7 +589,7 @@ ADDRESS_MAP_END
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
+ AM_RANGE(0x00, 0x00) AM_READNOP // ? IRQ Ack
ADDRESS_MAP_END
/***************************************************************************
@@ -759,7 +759,7 @@ static ADDRESS_MAP_START( hardhea2_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xc300, 0xc300) AM_WRITE(hardhea2_flipscreen_w ) // Flip Screen
AM_RANGE(0xc380, 0xc380) AM_WRITE(hardhea2_nmi_w ) // ? NMI related ?
AM_RANGE(0xc400, 0xc400) AM_WRITE(hardhea2_leds_w ) // Leds + Coin Counter
- AM_RANGE(0xc480, 0xc480) AM_WRITE(SMH_NOP ) // ~ROM Bank
+ AM_RANGE(0xc480, 0xc480) AM_WRITENOP // ~ROM Bank
AM_RANGE(0xc500, 0xc500) AM_WRITE(soundlatch_w ) // To Sound CPU
// *** Protection
@@ -922,7 +922,7 @@ ADDRESS_MAP_END
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
+ AM_RANGE(0x01, 0x01) AM_READNOP // ? IRQ Ack
ADDRESS_MAP_END
diff --git a/src/mame/drivers/suprnova.c b/src/mame/drivers/suprnova.c
index 1848008e386..4086a0ce882 100644
--- a/src/mame/drivers/suprnova.c
+++ b/src/mame/drivers/suprnova.c
@@ -781,7 +781,7 @@ static ADDRESS_MAP_START( skns_map, ADDRESS_SPACE_PROGRAM, 32 )
AM_RANGE(0x02400000, 0x0240007f) AM_RAM_WRITE(skns_v3_regs_w) AM_BASE(&skns_v3_regs) /* tilemap registers */
AM_RANGE(0x02500000, 0x02503fff) AM_RAM_WRITE(skns_tilemapA_w) AM_BASE(&skns_tilemapA_ram) /* tilemap A */
AM_RANGE(0x02504000, 0x02507fff) AM_RAM_WRITE(skns_tilemapB_w) AM_BASE(&skns_tilemapB_ram) /* tilemap B */
- AM_RANGE(0x02600000, 0x02607fff) AM_RAM_WRITE(SMH_RAM) AM_BASE(&skns_v3slc_ram) /* tilemap linescroll */
+ AM_RANGE(0x02600000, 0x02607fff) AM_RAM AM_BASE(&skns_v3slc_ram) /* tilemap linescroll */
AM_RANGE(0x02a00000, 0x02a0001f) AM_RAM_WRITE(skns_pal_regs_w) AM_BASE(&skns_pal_regs)
AM_RANGE(0x02a40000, 0x02a5ffff) AM_RAM_WRITE(skns_palette_ram_w) AM_BASE(&skns_palette_ram)
AM_RANGE(0x02f00000, 0x02f000ff) AM_READWRITE(skns_hit_r, skns_hit_w)
diff --git a/src/mame/drivers/suprslam.c b/src/mame/drivers/suprslam.c
index 4b9696110b0..90f52140daa 100644
--- a/src/mame/drivers/suprslam.c
+++ b/src/mame/drivers/suprslam.c
@@ -146,7 +146,7 @@ static ADDRESS_MAP_START( suprslam_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0xff8000, 0xff8fff) AM_RAM AM_BASE(&K053936_0_linectrl)
AM_RANGE(0xff9000, 0xff9001) AM_WRITE(sound_command_w)
AM_RANGE(0xffa000, 0xffafff) AM_RAM_WRITE(paletteram16_xGGGGGBBBBBRRRRR_word_w) AM_BASE_GENERIC(paletteram)
- AM_RANGE(0xffd000, 0xffd01f) AM_WRITE(SMH_RAM) AM_BASE(&K053936_0_ctrl)
+ AM_RANGE(0xffd000, 0xffd01f) AM_WRITEONLY AM_BASE(&K053936_0_ctrl)
AM_RANGE(0xffe000, 0xffe001) AM_WRITE(suprslam_bank_w)
AM_RANGE(0xfff000, 0xfff001) AM_READ_PORT("P1")
AM_RANGE(0xfff002, 0xfff003) AM_READ_PORT("P2")
diff --git a/src/mame/drivers/system16.c b/src/mame/drivers/system16.c
index bafc41da469..84a0ee89c7c 100644
--- a/src/mame/drivers/system16.c
+++ b/src/mame/drivers/system16.c
@@ -828,10 +828,10 @@ static ADDRESS_MAP_START( goldnaxe_b1_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0xc41000, 0xc41001) AM_READ_PORT("SERVICE")
AM_RANGE(0xc42002, 0xc42003) AM_READ_PORT("DSW1")
AM_RANGE(0xc42000, 0xc42001) AM_READ_PORT("DSW2")
- AM_RANGE(0xc42006, 0xc42007) AM_WRITE(SMH_NOP) // sound related?
- AM_RANGE(0xc43000, 0xc43001) AM_WRITE(SMH_NOP)
- AM_RANGE(0xc43034, 0xc43035) AM_WRITE(SMH_NOP)
- AM_RANGE(0xc80000, 0xc80001) AM_WRITE(SMH_NOP)
+ AM_RANGE(0xc42006, 0xc42007) AM_WRITENOP // sound related?
+ AM_RANGE(0xc43000, 0xc43001) AM_WRITENOP
+ AM_RANGE(0xc43034, 0xc43035) AM_WRITENOP
+ AM_RANGE(0xc80000, 0xc80001) AM_WRITENOP
AM_RANGE(0xffc000, 0xffffff) AM_RAM // work ram
ADDRESS_MAP_END
@@ -1023,21 +1023,21 @@ static ADDRESS_MAP_START( goldnaxe_b2_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x110000, 0x110fff) AM_RAM_WRITE( sys16_textram_w ) AM_BASE(&sys16_textram)
AM_RANGE(0x140000, 0x143fff) AM_RAM_WRITE( segaic16_paletteram_w ) AM_BASE(&segaic16_paletteram)
AM_RANGE(0x200000, 0x200fff) AM_RAM AM_BASE(&segaic16_spriteram_0)
- AM_RANGE(0xc40000, 0xc40001) AM_READ_PORT("DSW2") AM_WRITE(SMH_NOP)
+ AM_RANGE(0xc40000, 0xc40001) AM_READ_PORT("DSW2") AM_WRITENOP
AM_RANGE(0xc40002, 0xc40003) AM_READ_PORT("DSW1")
AM_RANGE(0xc41000, 0xc41001) AM_READ_PORT("SERVICE")
AM_RANGE(0xc41002, 0xc41003) AM_READ_PORT("P1")
AM_RANGE(0xc41004, 0xc41005) AM_READ_PORT("P2")
- AM_RANGE(0xc43000, 0xc43001) AM_WRITE(SMH_NOP)
+ AM_RANGE(0xc43000, 0xc43001) AM_WRITENOP
AM_RANGE(0xc44000, 0xc44001) AM_WRITE(goldnax_b2_fgscrolly_w)
AM_RANGE(0xc44008, 0xc44009) AM_WRITE(goldnax_b2_fgscrollx_w) // and tile bank
AM_RANGE(0xc44010, 0xc44011) AM_WRITE(goldnax_b2_bgscrolly_w)
AM_RANGE(0xc44018, 0xc44019) AM_WRITE(goldnax_b2_bgscrollx_w)
AM_RANGE(0xc44020, 0xc44027) AM_WRITE(goldnax_b2_bgpage_w) AM_BASE(&goldnax_b2_bgpage)
AM_RANGE(0xc44060, 0xc44067) AM_WRITE(goldnax_b2_fgpage_w) AM_BASE(&goldnax_b2_fgpage)
- AM_RANGE(0xc46000, 0xc46001) AM_WRITE(SMH_NOP)
- AM_RANGE(0xc43034, 0xc43035) AM_WRITE(SMH_NOP)
- AM_RANGE(0xfe0006, 0xfe0007) AM_WRITE(SMH_NOP)
+ AM_RANGE(0xc46000, 0xc46001) AM_WRITENOP
+ AM_RANGE(0xc43034, 0xc43035) AM_WRITENOP
+ AM_RANGE(0xfe0006, 0xfe0007) AM_WRITENOP
AM_RANGE(0xffc000, 0xffffff) AM_RAM // work ram
ADDRESS_MAP_END
diff --git a/src/mame/drivers/tagteam.c b/src/mame/drivers/tagteam.c
index 949248deb15..5c9fc92f324 100644
--- a/src/mame/drivers/tagteam.c
+++ b/src/mame/drivers/tagteam.c
@@ -59,7 +59,7 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
// AM_RANGE(0x2003, 0x2003) AM_WRITENOP /* Appears to increment when you're out of the ring */
AM_RANGE(0x4000, 0x43ff) AM_READWRITE(tagteam_mirrorvideoram_r, tagteam_mirrorvideoram_w)
AM_RANGE(0x4400, 0x47ff) AM_READWRITE(tagteam_mirrorcolorram_r, tagteam_mirrorcolorram_w)
- AM_RANGE(0x4800, 0x4fff) AM_READ(SMH_RAM)
+ AM_RANGE(0x4800, 0x4fff) AM_READONLY
AM_RANGE(0x4800, 0x4bff) AM_WRITE(tagteam_videoram_w) AM_BASE_GENERIC(videoram)
AM_RANGE(0x4c00, 0x4fff) AM_WRITE(tagteam_colorram_w) AM_BASE_GENERIC(colorram)
AM_RANGE(0x8000, 0xffff) AM_ROM
@@ -72,7 +72,7 @@ static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x2004, 0x2004) AM_DEVWRITE("dac", dac_w)
AM_RANGE(0x2005, 0x2005) AM_WRITE(interrupt_enable_w)
AM_RANGE(0x2007, 0x2007) AM_READ(soundlatch_r)
- AM_RANGE(0x4000, 0xffff) AM_READ(SMH_ROM)
+ AM_RANGE(0x4000, 0xffff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/tail2nos.c b/src/mame/drivers/tail2nos.c
index 1c2548a56f9..5ae7ff45fd0 100644
--- a/src/mame/drivers/tail2nos.c
+++ b/src/mame/drivers/tail2nos.c
@@ -93,7 +93,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_port_map, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x07, 0x07) AM_READWRITE(soundlatch_r, SMH_NOP) /* the write is a clear pending command */
+ AM_RANGE(0x07, 0x07) AM_READ(soundlatch_r) AM_WRITENOP /* the write is a clear pending command */
AM_RANGE(0x08, 0x0b) AM_DEVWRITE("ymsnd", ym2608_w)
#if 0
AM_RANGE(0x18, 0x1b) AM_DEVREAD("ymsnd", ym2608_r)
diff --git a/src/mame/drivers/taito_o.c b/src/mame/drivers/taito_o.c
index a7c2f1536dc..6df9a48ac5b 100644
--- a/src/mame/drivers/taito_o.c
+++ b/src/mame/drivers/taito_o.c
@@ -68,7 +68,7 @@ static ADDRESS_MAP_START( parentj_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x200000, 0x20000f) AM_READWRITE(io_r, io_w) /* TC0220IOC ? */
AM_RANGE(0x300000, 0x300003) AM_DEVREADWRITE8("ymsnd", ym2203_r, ym2203_w, 0x00ff)
AM_RANGE(0x400000, 0x420fff) AM_READWRITE(TC0080VCO_word_r, TC0080VCO_word_w)
- AM_RANGE(0x500800, 0x500fff) AM_RAM AM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
+ AM_RANGE(0x500800, 0x500fff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
ADDRESS_MAP_END
static INPUT_PORTS_START( parentj )
diff --git a/src/mame/drivers/taitoair.c b/src/mame/drivers/taitoair.c
index 613b7259bc0..e4d33fe9870 100644
--- a/src/mame/drivers/taitoair.c
+++ b/src/mame/drivers/taitoair.c
@@ -400,7 +400,7 @@ static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xdfff) AM_RAM
AM_RANGE(0xe000, 0xe003) AM_DEVREADWRITE("ymsnd", ym2610_r, ym2610_w)
- AM_RANGE(0xe200, 0xe200) AM_READWRITE(SMH_NOP, taitosound_slave_port_w)
+ AM_RANGE(0xe200, 0xe200) AM_READNOP AM_WRITE(taitosound_slave_port_w)
AM_RANGE(0xe201, 0xe201) AM_READWRITE(taitosound_slave_comm_r, taitosound_slave_comm_w)
AM_RANGE(0xe400, 0xe403) AM_WRITENOP /* pan control */
AM_RANGE(0xea00, 0xea00) AM_READNOP
diff --git a/src/mame/drivers/taitogn.c b/src/mame/drivers/taitogn.c
index 43e8b309234..000afc986fe 100644
--- a/src/mame/drivers/taitogn.c
+++ b/src/mame/drivers/taitogn.c
@@ -519,7 +519,7 @@ static void install_handlers(running_machine *machine, int mode)
memory_install_readwrite32_handler(a, 0x1f000000, 0x1f1fffff, 0, 0, flash_subbios_r, flash_subbios_w);
memory_install_readwrite32_handler(a, 0x1f200000, 0x1f2fffff, 0, 0, rf5c296_mem_r, rf5c296_mem_w);
memory_install_readwrite32_handler(a, 0x1f300000, 0x1f37ffff, 0, 0, flash_mn102_r, flash_mn102_w);
- memory_install_readwrite32_handler(a, 0x1f380000, 0x1f5fffff, 0, 0, (read32_space_func)SMH_NOP, (write32_space_func)SMH_NOP);
+ memory_nop_readwrite(a, 0x1f380000, 0x1f5fffff, 0, 0);
} else {
// Mode 1 has access to the 3 samples flashes
diff --git a/src/mame/drivers/taitosj.c b/src/mame/drivers/taitosj.c
index 2d2aa029ea2..4702eea90d5 100644
--- a/src/mame/drivers/taitosj.c
+++ b/src/mame/drivers/taitosj.c
@@ -211,8 +211,8 @@ static ADDRESS_MAP_START( taitosj_main_nomcu_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xd000, 0xd05f) AM_RAM AM_BASE(&taitosj_colscrolly)
AM_RANGE(0xd100, 0xd1ff) AM_RAM AM_BASE(&taitosj_spriteram)
AM_RANGE(0xd200, 0xd27f) AM_MIRROR(0x0080) AM_RAM AM_BASE(&taitosj_paletteram)
- AM_RANGE(0xd300, 0xd300) AM_MIRROR(0x00ff) AM_WRITE(SMH_RAM) AM_BASE(&taitosj_video_priority)
- AM_RANGE(0xd400, 0xd403) AM_MIRROR(0x00f0) AM_READ(SMH_RAM) AM_BASE(&taitosj_collision_reg)
+ AM_RANGE(0xd300, 0xd300) AM_MIRROR(0x00ff) AM_WRITEONLY AM_BASE(&taitosj_video_priority)
+ AM_RANGE(0xd400, 0xd403) AM_MIRROR(0x00f0) AM_READONLY AM_BASE(&taitosj_collision_reg)
AM_RANGE(0xd404, 0xd404) AM_MIRROR(0x00f3) AM_READ(taitosj_gfxrom_r)
AM_RANGE(0xd408, 0xd408) AM_MIRROR(0x00f0) AM_READ_PORT("IN0")
AM_RANGE(0xd409, 0xd409) AM_MIRROR(0x00f0) AM_READ_PORT("IN1")
@@ -222,15 +222,15 @@ static ADDRESS_MAP_START( taitosj_main_nomcu_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xd40d, 0xd40d) AM_MIRROR(0x00f0) AM_READ_PORT("IN4")
AM_RANGE(0xd40e, 0xd40f) AM_MIRROR(0x00f0) AM_DEVWRITE("ay1", ay8910_address_data_w)
AM_RANGE(0xd40f, 0xd40f) AM_MIRROR(0x00f0) AM_DEVREAD("ay1", ay8910_r) /* DSW2 and DSW3 */
- AM_RANGE(0xd500, 0xd505) AM_MIRROR(0x00f0) AM_WRITE(SMH_RAM) AM_BASE(&taitosj_scroll)
- AM_RANGE(0xd506, 0xd507) AM_MIRROR(0x00f0) AM_WRITE(SMH_RAM) AM_BASE(&taitosj_colorbank)
+ AM_RANGE(0xd500, 0xd505) AM_MIRROR(0x00f0) AM_WRITEONLY AM_BASE(&taitosj_scroll)
+ AM_RANGE(0xd506, 0xd507) AM_MIRROR(0x00f0) AM_WRITEONLY AM_BASE(&taitosj_colorbank)
AM_RANGE(0xd508, 0xd508) AM_MIRROR(0x00f0) AM_WRITE(taitosj_collision_reg_clear_w)
- AM_RANGE(0xd509, 0xd50a) AM_MIRROR(0x00f0) AM_WRITE(SMH_RAM) AM_BASE(&taitosj_gfxpointer)
+ AM_RANGE(0xd509, 0xd50a) AM_MIRROR(0x00f0) AM_WRITEONLY AM_BASE(&taitosj_gfxpointer)
AM_RANGE(0xd50b, 0xd50b) AM_MIRROR(0x00f0) AM_WRITE(taitosj_soundcommand_w)
- AM_RANGE(0xd50d, 0xd50d) AM_MIRROR(0x00f0) AM_WRITE(SMH_RAM) /*watchdog_reset_w*/ /* Bio Attack sometimes resets after you die */
+ AM_RANGE(0xd50d, 0xd50d) AM_MIRROR(0x00f0) AM_WRITEONLY /*watchdog_reset_w*/ /* Bio Attack sometimes resets after you die */
AM_RANGE(0xd50e, 0xd50e) AM_MIRROR(0x00f0) AM_WRITE(taitosj_bankswitch_w)
AM_RANGE(0xd50f, 0xd50f) AM_MIRROR(0x00f0) AM_WRITENOP
- AM_RANGE(0xd600, 0xd600) AM_MIRROR(0x00ff) AM_WRITE(SMH_RAM) AM_BASE(&taitosj_video_mode)
+ AM_RANGE(0xd600, 0xd600) AM_MIRROR(0x00ff) AM_WRITEONLY AM_BASE(&taitosj_video_mode)
AM_RANGE(0xd700, 0xdfff) AM_NOP
AM_RANGE(0xe000, 0xffff) AM_ROM
ADDRESS_MAP_END
@@ -251,8 +251,8 @@ static ADDRESS_MAP_START( taitosj_main_mcu_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xd000, 0xd05f) AM_RAM AM_BASE(&taitosj_colscrolly)
AM_RANGE(0xd100, 0xd1ff) AM_RAM AM_BASE(&taitosj_spriteram)
AM_RANGE(0xd200, 0xd27f) AM_MIRROR(0x0080) AM_RAM AM_BASE(&taitosj_paletteram)
- AM_RANGE(0xd300, 0xd300) AM_MIRROR(0x00ff) AM_WRITE(SMH_RAM) AM_BASE(&taitosj_video_priority)
- AM_RANGE(0xd400, 0xd403) AM_MIRROR(0x00f0) AM_READ(SMH_RAM) AM_BASE(&taitosj_collision_reg)
+ AM_RANGE(0xd300, 0xd300) AM_MIRROR(0x00ff) AM_WRITEONLY AM_BASE(&taitosj_video_priority)
+ AM_RANGE(0xd400, 0xd403) AM_MIRROR(0x00f0) AM_READONLY AM_BASE(&taitosj_collision_reg)
AM_RANGE(0xd404, 0xd404) AM_MIRROR(0x00f3) AM_READ(taitosj_gfxrom_r)
AM_RANGE(0xd408, 0xd408) AM_MIRROR(0x00f0) AM_READ_PORT("IN0")
AM_RANGE(0xd409, 0xd409) AM_MIRROR(0x00f0) AM_READ_PORT("IN1")
@@ -262,15 +262,15 @@ static ADDRESS_MAP_START( taitosj_main_mcu_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xd40d, 0xd40d) AM_MIRROR(0x00f0) AM_READ_PORT("IN4")
AM_RANGE(0xd40e, 0xd40f) AM_MIRROR(0x00f0) AM_DEVWRITE("ay1", ay8910_address_data_w)
AM_RANGE(0xd40f, 0xd40f) AM_MIRROR(0x00f0) AM_DEVREAD("ay1", ay8910_r) /* DSW2 and DSW3 */
- AM_RANGE(0xd500, 0xd505) AM_MIRROR(0x00f0) AM_WRITE(SMH_RAM) AM_BASE(&taitosj_scroll)
- AM_RANGE(0xd506, 0xd507) AM_MIRROR(0x00f0) AM_WRITE(SMH_RAM) AM_BASE(&taitosj_colorbank)
+ AM_RANGE(0xd500, 0xd505) AM_MIRROR(0x00f0) AM_WRITEONLY AM_BASE(&taitosj_scroll)
+ AM_RANGE(0xd506, 0xd507) AM_MIRROR(0x00f0) AM_WRITEONLY AM_BASE(&taitosj_colorbank)
AM_RANGE(0xd508, 0xd508) AM_MIRROR(0x00f0) AM_WRITE(taitosj_collision_reg_clear_w)
- AM_RANGE(0xd509, 0xd50a) AM_MIRROR(0x00f0) AM_WRITE(SMH_RAM) AM_BASE(&taitosj_gfxpointer)
+ AM_RANGE(0xd509, 0xd50a) AM_MIRROR(0x00f0) AM_WRITEONLY AM_BASE(&taitosj_gfxpointer)
AM_RANGE(0xd50b, 0xd50b) AM_MIRROR(0x00f0) AM_WRITE(taitosj_soundcommand_w)
- AM_RANGE(0xd50d, 0xd50d) AM_MIRROR(0x00f0) AM_WRITE(SMH_RAM) /*watchdog_reset_w*/ /* Bio Attack sometimes resets after you die */
+ AM_RANGE(0xd50d, 0xd50d) AM_MIRROR(0x00f0) AM_WRITEONLY /*watchdog_reset_w*/ /* Bio Attack sometimes resets after you die */
AM_RANGE(0xd50e, 0xd50e) AM_MIRROR(0x00f0) AM_WRITE(taitosj_bankswitch_w)
AM_RANGE(0xd50f, 0xd50f) AM_MIRROR(0x00f0) AM_WRITENOP
- AM_RANGE(0xd600, 0xd600) AM_MIRROR(0x00ff) AM_WRITE(SMH_RAM) AM_BASE(&taitosj_video_mode)
+ AM_RANGE(0xd600, 0xd600) AM_MIRROR(0x00ff) AM_WRITEONLY AM_BASE(&taitosj_video_mode)
AM_RANGE(0xd700, 0xdfff) AM_NOP
AM_RANGE(0xe000, 0xffff) AM_ROM
ADDRESS_MAP_END
@@ -306,19 +306,19 @@ static ADDRESS_MAP_START( kikstart_main_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0x8800, 0x8800) AM_READWRITE(taitosj_mcu_data_r, taitosj_mcu_data_w)
AM_RANGE(0x8801, 0x8801) AM_READ(taitosj_mcu_status_r)
- AM_RANGE(0x8802, 0x8802) AM_READWRITE(SMH_NOP, SMH_NOP)
- AM_RANGE(0x8a00, 0x8a5f) AM_WRITE(SMH_RAM) AM_BASE(&taitosj_colscrolly)
+ AM_RANGE(0x8802, 0x8802) AM_NOP
+ AM_RANGE(0x8a00, 0x8a5f) AM_WRITEONLY AM_BASE(&taitosj_colscrolly)
AM_RANGE(0x9000, 0xbfff) AM_WRITE(taitosj_characterram_w) AM_BASE(&taitosj_characterram)
AM_RANGE(0xc000, 0xc3ff) AM_RAM
AM_RANGE(0xc400, 0xc7ff) AM_RAM AM_BASE(&taitosj_videoram_1)
AM_RANGE(0xc800, 0xcbff) AM_RAM AM_BASE(&taitosj_videoram_2)
AM_RANGE(0xcc00, 0xcfff) AM_RAM AM_BASE(&taitosj_videoram_3)
- AM_RANGE(0xd000, 0xd001) AM_WRITE(SMH_RAM) AM_BASE(&taitosj_colorbank)
- AM_RANGE(0xd002, 0xd007) AM_WRITE(SMH_RAM) AM_BASE(&taitosj_scroll)
+ AM_RANGE(0xd000, 0xd001) AM_WRITEONLY AM_BASE(&taitosj_colorbank)
+ AM_RANGE(0xd002, 0xd007) AM_WRITEONLY AM_BASE(&taitosj_scroll)
AM_RANGE(0xd100, 0xd1ff) AM_RAM AM_BASE(&taitosj_spriteram)
AM_RANGE(0xd200, 0xd27f) AM_RAM AM_BASE(&taitosj_paletteram)
- AM_RANGE(0xd300, 0xd300) AM_WRITE(SMH_RAM) AM_BASE(&taitosj_video_priority)
- AM_RANGE(0xd400, 0xd403) AM_READ(SMH_RAM) AM_BASE(&taitosj_collision_reg)
+ AM_RANGE(0xd300, 0xd300) AM_WRITEONLY AM_BASE(&taitosj_video_priority)
+ AM_RANGE(0xd400, 0xd403) AM_READONLY AM_BASE(&taitosj_collision_reg)
AM_RANGE(0xd404, 0xd404) AM_READ(taitosj_gfxrom_r)
AM_RANGE(0xd408, 0xd408) AM_MIRROR(0x00f0) AM_READ_PORT("IN0")
AM_RANGE(0xd409, 0xd409) AM_MIRROR(0x00f0) AM_READ_PORT("IN1")
@@ -329,11 +329,11 @@ static ADDRESS_MAP_START( kikstart_main_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xd40e, 0xd40f) AM_DEVWRITE("ay1", ay8910_address_data_w)
AM_RANGE(0xd40f, 0xd40f) AM_DEVREAD("ay1", ay8910_r) /* DSW2 and DSW3 */
AM_RANGE(0xd508, 0xd508) AM_WRITE(taitosj_collision_reg_clear_w)
- AM_RANGE(0xd509, 0xd50a) AM_WRITE(SMH_RAM) AM_BASE(&taitosj_gfxpointer)
+ AM_RANGE(0xd509, 0xd50a) AM_WRITEONLY AM_BASE(&taitosj_gfxpointer)
AM_RANGE(0xd50b, 0xd50b) AM_WRITE(taitosj_soundcommand_w)
AM_RANGE(0xd50d, 0xd50d) AM_WRITE(watchdog_reset_w)
AM_RANGE(0xd50e, 0xd50e) AM_WRITE(taitosj_bankswitch_w)
- AM_RANGE(0xd600, 0xd600) AM_WRITE(SMH_RAM) AM_BASE(&taitosj_video_mode)
+ AM_RANGE(0xd600, 0xd600) AM_WRITEONLY AM_BASE(&taitosj_video_mode)
AM_RANGE(0xd800, 0xdfff) AM_RAM AM_BASE(&kikstart_scrollram)// scroll ram + ???
AM_RANGE(0xe000, 0xefff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/tank8.c b/src/mame/drivers/tank8.c
index f37f74286ea..112e4d3ef61 100644
--- a/src/mame/drivers/tank8.c
+++ b/src/mame/drivers/tank8.c
@@ -114,9 +114,9 @@ static ADDRESS_MAP_START( tank8_cpu_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x1c0f, 0x1c0f) AM_READ_PORT("VBLANK")
AM_RANGE(0x1800, 0x1bff) AM_WRITE(tank8_video_ram_w) AM_BASE(&tank8_video_ram)
- AM_RANGE(0x1c00, 0x1c0f) AM_WRITE(SMH_RAM) AM_BASE(&tank8_pos_h_ram)
- AM_RANGE(0x1c10, 0x1c1f) AM_WRITE(SMH_RAM) AM_BASE(&tank8_pos_v_ram)
- AM_RANGE(0x1c20, 0x1c2f) AM_WRITE(SMH_RAM) AM_BASE(&tank8_pos_d_ram)
+ AM_RANGE(0x1c00, 0x1c0f) AM_WRITEONLY AM_BASE(&tank8_pos_h_ram)
+ AM_RANGE(0x1c10, 0x1c1f) AM_WRITEONLY AM_BASE(&tank8_pos_v_ram)
+ AM_RANGE(0x1c20, 0x1c2f) AM_WRITEONLY AM_BASE(&tank8_pos_d_ram)
AM_RANGE(0x1c30, 0x1c37) AM_WRITE(tank8_lockout_w)
AM_RANGE(0x1d00, 0x1d00) AM_WRITE(tank8_int_reset_w)
@@ -124,7 +124,7 @@ static ADDRESS_MAP_START( tank8_cpu_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x1d02, 0x1d02) AM_DEVWRITE("discrete", tank8_explosion_w)
AM_RANGE(0x1d03, 0x1d03) AM_DEVWRITE("discrete", tank8_bugle_w)
AM_RANGE(0x1d04, 0x1d04) AM_DEVWRITE("discrete", tank8_bug_w)
- AM_RANGE(0x1d05, 0x1d05) AM_WRITE(SMH_RAM) AM_BASE(&tank8_team)
+ AM_RANGE(0x1d05, 0x1d05) AM_WRITEONLY AM_BASE(&tank8_team)
AM_RANGE(0x1d06, 0x1d06) AM_DEVWRITE("discrete", tank8_attract_w)
AM_RANGE(0x1e00, 0x1e07) AM_DEVWRITE("discrete", tank8_motor_w)
diff --git a/src/mame/drivers/tankbust.c b/src/mame/drivers/tankbust.c
index 40cb0d9b02d..42b44829554 100644
--- a/src/mame/drivers/tankbust.c
+++ b/src/mame/drivers/tankbust.c
@@ -221,13 +221,12 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( map_cpu2, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x1fff) AM_READ(SMH_ROM)
- AM_RANGE(0x0000, 0x1fff) AM_WRITE(SMH_ROM)
+ AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x2000, 0x3fff) AM_WRITENOP /* garbage, written in initialization loop */
//0x4000 and 0x4040-0x4045 seem to be used (referenced in the code)
AM_RANGE(0x4000, 0x7fff) AM_WRITENOP /* garbage, written in initialization loop */
- AM_RANGE(0x8000, 0x87ff) AM_READ(SMH_RAM)
- AM_RANGE(0x8000, 0x87ff) AM_WRITE(SMH_RAM)
+ AM_RANGE(0x8000, 0x87ff) AM_READONLY
+ AM_RANGE(0x8000, 0x87ff) AM_WRITEONLY
ADDRESS_MAP_END
diff --git a/src/mame/drivers/taotaido.c b/src/mame/drivers/taotaido.c
index a26285690c4..abdcb8d2340 100644
--- a/src/mame/drivers/taotaido.c
+++ b/src/mame/drivers/taotaido.c
@@ -102,7 +102,7 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0xffff86, 0xffff87) AM_READ_PORT("DSW1")
AM_RANGE(0xffff88, 0xffff89) AM_READ_PORT("DSW2")
AM_RANGE(0xffff8a, 0xffff8b) AM_READ_PORT("DSW3")
- AM_RANGE(0xffff8c, 0xffff8d) AM_READ(SMH_RAM) // unknown
+ AM_RANGE(0xffff8c, 0xffff8d) AM_READONLY // unknown
AM_RANGE(0xffff8e, 0xffff8f) AM_READ_PORT("JP")
AM_RANGE(0xffffa0, 0xffffa1) AM_READ_PORT("P3") // used only by taotaida
AM_RANGE(0xffffa2, 0xffffa3) AM_READ_PORT("P4") // used only by taotaida
diff --git a/src/mame/drivers/targeth.c b/src/mame/drivers/targeth.c
index 727c97dab8a..a0cc986acd1 100644
--- a/src/mame/drivers/targeth.c
+++ b/src/mame/drivers/targeth.c
@@ -71,12 +71,12 @@ static WRITE16_HANDLER( targeth_coin_counter_w )
static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x103fff) AM_RAM_WRITE(targeth_vram_w) AM_BASE(&targeth_videoram) /* Video RAM */
- AM_RANGE(0x108000, 0x108007) AM_WRITE(SMH_RAM) AM_BASE(&targeth_vregs) /* Video Registers */
+ AM_RANGE(0x108000, 0x108007) AM_WRITEONLY AM_BASE(&targeth_vregs) /* Video Registers */
AM_RANGE(0x108000, 0x108001) AM_READ_PORT("GUNX1")
AM_RANGE(0x108002, 0x108003) AM_READ_PORT("GUNY1")
AM_RANGE(0x108004, 0x108005) AM_READ_PORT("GUNX2")
AM_RANGE(0x108006, 0x108007) AM_READ_PORT("GUNY2")
- AM_RANGE(0x108000, 0x108007) AM_WRITE(SMH_RAM) AM_BASE(&targeth_vregs) /* Video Registers */
+ AM_RANGE(0x108000, 0x108007) AM_WRITEONLY AM_BASE(&targeth_vregs) /* Video Registers */
AM_RANGE(0x10800c, 0x10800d) AM_WRITENOP /* CLR Video INT */
AM_RANGE(0x200000, 0x2007ff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram) /* Palette */
AM_RANGE(0x440000, 0x440fff) AM_RAM AM_BASE(&targeth_spriteram) /* Sprite RAM */
diff --git a/src/mame/drivers/tatsumi.c b/src/mame/drivers/tatsumi.c
index 586e9479c2d..1b23355a07c 100644
--- a/src/mame/drivers/tatsumi.c
+++ b/src/mame/drivers/tatsumi.c
@@ -240,9 +240,9 @@ static ADDRESS_MAP_START( roundup5_v30_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x08000, 0x0bfff) AM_RAM_WRITE(roundup5_text_w) AM_BASE_GENERIC(videoram)
AM_RANGE(0x0c000, 0x0c003) AM_WRITE(roundup5_crt_w)
AM_RANGE(0x0d000, 0x0d001) AM_READ_PORT("DSW")
- AM_RANGE(0x0d400, 0x0d40f) AM_WRITE(SMH_RAM) AM_BASE(&roundup5_unknown0)
- AM_RANGE(0x0d800, 0x0d801) AM_WRITE(SMH_RAM) AM_BASE(&roundup5_unknown1) // VRAM2 X scroll (todo)
- AM_RANGE(0x0dc00, 0x0dc01) AM_WRITE(SMH_RAM) AM_BASE(&roundup5_unknown2) // VRAM2 Y scroll (todo)
+ AM_RANGE(0x0d400, 0x0d40f) AM_WRITEONLY AM_BASE(&roundup5_unknown0)
+ AM_RANGE(0x0d800, 0x0d801) AM_WRITEONLY AM_BASE(&roundup5_unknown1) // VRAM2 X scroll (todo)
+ AM_RANGE(0x0dc00, 0x0dc01) AM_WRITEONLY AM_BASE(&roundup5_unknown2) // VRAM2 Y scroll (todo)
AM_RANGE(0x0e000, 0x0e001) AM_WRITE(roundup5_control_w)
AM_RANGE(0x0f000, 0x0ffff) AM_RAM_WRITE(roundup5_palette_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x10000, 0x1ffff) AM_READWRITE(roundup_v30_z80_r, roundup_v30_z80_w)
diff --git a/src/mame/drivers/taxidrvr.c b/src/mame/drivers/taxidrvr.c
index c96eeb2996a..d62ddb7a765 100644
--- a/src/mame/drivers/taxidrvr.c
+++ b/src/mame/drivers/taxidrvr.c
@@ -146,20 +146,20 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xa000, 0xafff) AM_RAM /* ??? */
AM_RANGE(0xb000, 0xbfff) AM_RAM /* ??? */
AM_RANGE(0xc000, 0xc7ff) AM_RAM AM_BASE(&taxidrvr_vram4) /* radar bitmap */
- AM_RANGE(0xc800, 0xcfff) AM_WRITE(SMH_RAM) AM_BASE(&taxidrvr_vram5) /* "sprite1" bitmap */
- AM_RANGE(0xd000, 0xd7ff) AM_WRITE(SMH_RAM) AM_BASE(&taxidrvr_vram6) /* "sprite2" bitmap */
+ AM_RANGE(0xc800, 0xcfff) AM_WRITEONLY AM_BASE(&taxidrvr_vram5) /* "sprite1" bitmap */
+ AM_RANGE(0xd000, 0xd7ff) AM_WRITEONLY AM_BASE(&taxidrvr_vram6) /* "sprite2" bitmap */
AM_RANGE(0xd800, 0xdfff) AM_RAM AM_BASE(&taxidrvr_vram7) /* "sprite3" bitmap */
- AM_RANGE(0xe000, 0xf3ff) AM_READ(SMH_RAM)
- AM_RANGE(0xe000, 0xe3ff) AM_WRITE(SMH_RAM) AM_BASE(&taxidrvr_vram1) /* car tilemap */
- AM_RANGE(0xe400, 0xebff) AM_WRITE(SMH_RAM) AM_BASE(&taxidrvr_vram2) /* bg1 tilemap */
- AM_RANGE(0xec00, 0xefff) AM_WRITE(SMH_RAM) AM_BASE(&taxidrvr_vram0) /* fg tilemap */
- AM_RANGE(0xf000, 0xf3ff) AM_WRITE(SMH_RAM) AM_BASE(&taxidrvr_vram3) /* bg2 tilemap */
+ AM_RANGE(0xe000, 0xf3ff) AM_READONLY
+ AM_RANGE(0xe000, 0xe3ff) AM_WRITEONLY AM_BASE(&taxidrvr_vram1) /* car tilemap */
+ AM_RANGE(0xe400, 0xebff) AM_WRITEONLY AM_BASE(&taxidrvr_vram2) /* bg1 tilemap */
+ AM_RANGE(0xec00, 0xefff) AM_WRITEONLY AM_BASE(&taxidrvr_vram0) /* fg tilemap */
+ AM_RANGE(0xf000, 0xf3ff) AM_WRITEONLY AM_BASE(&taxidrvr_vram3) /* bg2 tilemap */
AM_RANGE(0xf400, 0xf403) AM_DEVREADWRITE("ppi8255_0", ppi8255_r, ppi8255_w)
AM_RANGE(0xf480, 0xf483) AM_DEVREADWRITE("ppi8255_2", ppi8255_r, ppi8255_w) /* "sprite1" placement */
AM_RANGE(0xf500, 0xf503) AM_DEVREADWRITE("ppi8255_3", ppi8255_r, ppi8255_w) /* "sprite2" placement */
AM_RANGE(0xf580, 0xf583) AM_DEVREADWRITE("ppi8255_4", ppi8255_r, ppi8255_w) /* "sprite3" placement */
- //AM_RANGE(0xf780, 0xf781) AM_WRITE(SMH_RAM) /* more scroll registers? */
- AM_RANGE(0xf782, 0xf787) AM_WRITE(SMH_RAM) AM_BASE(&taxidrvr_scroll) /* bg scroll (three copies always identical) */
+ //AM_RANGE(0xf780, 0xf781) AM_WRITEONLY /* more scroll registers? */
+ AM_RANGE(0xf782, 0xf787) AM_WRITEONLY AM_BASE(&taxidrvr_scroll) /* bg scroll (three copies always identical) */
AM_RANGE(0xf800, 0xffff) AM_RAM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/tbowl.c b/src/mame/drivers/tbowl.c
index d718858673b..9506d93e3ff 100644
--- a/src/mame/drivers/tbowl.c
+++ b/src/mame/drivers/tbowl.c
@@ -146,9 +146,9 @@ static WRITE8_HANDLER ( tbowl_trigger_nmi )
static ADDRESS_MAP_START( 6206C_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0xbfff) AM_ROM
- AM_RANGE(0xc000, 0xdfff) AM_READ(SMH_RAM)
- AM_RANGE(0xc000, 0xd7ff) AM_WRITE(SMH_RAM)
- AM_RANGE(0xd800, 0xdfff) AM_WRITE(SMH_RAM) AM_BASE(&tbowl_spriteram)
+ AM_RANGE(0xc000, 0xdfff) AM_READONLY
+ AM_RANGE(0xc000, 0xd7ff) AM_WRITEONLY
+ AM_RANGE(0xd800, 0xdfff) AM_WRITEONLY AM_BASE(&tbowl_spriteram)
AM_RANGE(0xe000, 0xefff) AM_RAM_WRITE(paletteram_xxxxBBBBRRRRGGGG_be_w) AM_BASE_GENERIC(paletteram) // 2x palettes, one for each monitor?
AM_RANGE(0xf000, 0xf7ff) AM_ROMBANK("bank2")
AM_RANGE(0xf800, 0xfbff) AM_READWRITE(shared_r, shared_w)
diff --git a/src/mame/drivers/tceptor.c b/src/mame/drivers/tceptor.c
index 329ed4b643d..4bfded4b5d3 100644
--- a/src/mame/drivers/tceptor.c
+++ b/src/mame/drivers/tceptor.c
@@ -202,7 +202,7 @@ static ADDRESS_MAP_START( m6502_a_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0300, 0x030f) AM_RAM
AM_RANGE(0x2000, 0x2001) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
AM_RANGE(0x3000, 0x30ff) AM_RAM AM_SHARE(3)
- AM_RANGE(0x3c01, 0x3c01) AM_WRITE(SMH_RAM)
+ AM_RANGE(0x3c01, 0x3c01) AM_WRITEONLY
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
@@ -211,7 +211,7 @@ static ADDRESS_MAP_START( m6502_b_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x00ff) AM_RAM AM_SHARE(2)
AM_RANGE(0x0100, 0x01ff) AM_RAM
AM_RANGE(0x4000, 0x4000) AM_DEVWRITE("dac", voice_w) // voice data
- AM_RANGE(0x5000, 0x5000) AM_WRITE(SMH_RAM) // voice ctrl??
+ AM_RANGE(0x5000, 0x5000) AM_WRITEONLY // voice ctrl??
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
@@ -220,8 +220,8 @@ static ADDRESS_MAP_START( m68k_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x000000, 0x00ffff) AM_ROM // M68K ERROR 1
AM_RANGE(0x100000, 0x10ffff) AM_ROM // not sure
AM_RANGE(0x200000, 0x203fff) AM_RAM // M68K ERROR 0
- AM_RANGE(0x300000, 0x300001) AM_WRITE(SMH_RAM)
- AM_RANGE(0x400000, 0x4001ff) AM_WRITE(SMH_RAM) AM_BASE(&tceptor_sprite_ram)
+ AM_RANGE(0x300000, 0x300001) AM_WRITEONLY
+ AM_RANGE(0x400000, 0x4001ff) AM_WRITEONLY AM_BASE(&tceptor_sprite_ram)
AM_RANGE(0x500000, 0x51ffff) AM_WRITE(namco_road16_w)
AM_RANGE(0x600000, 0x600001) AM_WRITE(m68k_irq_enable_w) // not sure
AM_RANGE(0x700000, 0x703fff) AM_READWRITE(m68k_shared_word_r, m68k_shared_word_w) AM_SHARE(1)
@@ -249,8 +249,8 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( mcu_io_map, ADDRESS_SPACE_IO, 8 )
- AM_RANGE(HD63701_PORT1, HD63701_PORT1) AM_READWRITE(readFF, SMH_NOP)
- AM_RANGE(HD63701_PORT2, HD63701_PORT2) AM_READWRITE(readFF, SMH_NOP)
+ AM_RANGE(HD63701_PORT1, HD63701_PORT1) AM_READ(readFF) AM_WRITENOP
+ AM_RANGE(HD63701_PORT2, HD63701_PORT2) AM_READ(readFF) AM_WRITENOP
ADDRESS_MAP_END
diff --git a/src/mame/drivers/tecmo.c b/src/mame/drivers/tecmo.c
index 87ad23a2eaa..f3f30e4f318 100644
--- a/src/mame/drivers/tecmo.c
+++ b/src/mame/drivers/tecmo.c
@@ -1088,9 +1088,9 @@ static DRIVER_INIT( backfirt )
tecmo_video_type = 2;
/* no MSM */
- memory_install_write8_handler(cputag_get_address_space(machine, "soundcpu", ADDRESS_SPACE_PROGRAM), 0xc000, 0xc000, 0, 0, (write8_space_func)SMH_NOP);
- memory_install_write8_handler(cputag_get_address_space(machine, "soundcpu", ADDRESS_SPACE_PROGRAM), 0xd000, 0xd000, 0, 0, (write8_space_func)SMH_NOP);
- memory_install_write8_handler(cputag_get_address_space(machine, "soundcpu", ADDRESS_SPACE_PROGRAM), 0xe000, 0xe000, 0, 0, (write8_space_func)SMH_NOP);
+ memory_nop_write(cputag_get_address_space(machine, "soundcpu", ADDRESS_SPACE_PROGRAM), 0xc000, 0xc000, 0, 0);
+ memory_nop_write(cputag_get_address_space(machine, "soundcpu", ADDRESS_SPACE_PROGRAM), 0xd000, 0xd000, 0, 0);
+ memory_nop_write(cputag_get_address_space(machine, "soundcpu", ADDRESS_SPACE_PROGRAM), 0xe000, 0xe000, 0, 0);
}
diff --git a/src/mame/drivers/tecmosys.c b/src/mame/drivers/tecmosys.c
index f3100fd9250..8a1978bf0b4 100644
--- a/src/mame/drivers/tecmosys.c
+++ b/src/mame/drivers/tecmosys.c
@@ -423,20 +423,20 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x700000, 0x703fff) AM_RAM_WRITE(fg_tilemap_w) AM_BASE(&fgtilemap_ram) // fix ram
AM_RANGE(0x800000, 0x80ffff) AM_RAM AM_BASE(&tecmosys_spriteram) // obj ram
AM_RANGE(0x880000, 0x88000b) AM_READ(unk880000_r)
- AM_RANGE(0x900000, 0x907fff) AM_RAM_WRITE(paletteram16_xGGGGGRRRRRBBBBB_word_w) AM_BASE_GENERIC(paletteram) // AM_WRITE(SMH_RAM) // obj pal
+ AM_RANGE(0x900000, 0x907fff) AM_RAM_WRITE(paletteram16_xGGGGGRRRRRBBBBB_word_w) AM_BASE_GENERIC(paletteram) // AM_WRITEONLY // obj pal
- //AM_RANGE(0x980000, 0x9807ff) AM_WRITE(SMH_RAM) // bg pal
+ //AM_RANGE(0x980000, 0x9807ff) AM_WRITEONLY // bg pal
//AM_RANGE(0x980800, 0x980fff) AM_WRITE(paletteram16_xGGGGGRRRRRBBBBB_word_w) AM_BASE_GENERIC(paletteram) // fix pal
// the two above are as tested by the game code, I've only rolled them into one below to get colours to show right.
AM_RANGE(0x980000, 0x980fff) AM_RAM_WRITE(tilemap_paletteram16_xGGGGGRRRRRBBBBB_word_w) AM_BASE(&tilemap_paletteram16)
AM_RANGE(0x880000, 0x88002f) AM_WRITE( unk880000_w ) AM_BASE(&tecmosys_880000regs) // 10 byte dta@88000c, 880022=watchdog?
AM_RANGE(0xa00000, 0xa00001) AM_WRITE(eeprom_w )
- AM_RANGE(0xa80000, 0xa80005) AM_WRITE(SMH_RAM ) AM_BASE(&tecmosys_a80000regs) // a80000-3 scroll? a80004 inverted ? 3 : 0
- AM_RANGE(0xb00000, 0xb00005) AM_WRITE(SMH_RAM ) AM_BASE(&tecmosys_b00000regs) // b00000-3 scrool?, b00004 inverted ? 3 : 0
+ AM_RANGE(0xa80000, 0xa80005) AM_WRITEONLY AM_BASE(&tecmosys_a80000regs) // a80000-3 scroll? a80004 inverted ? 3 : 0
+ AM_RANGE(0xb00000, 0xb00005) AM_WRITEONLY AM_BASE(&tecmosys_b00000regs) // b00000-3 scrool?, b00004 inverted ? 3 : 0
AM_RANGE(0xb80000, 0xb80001) AM_READWRITE(tecmosys_prot_status_r, tecmosys_prot_status_w)
- AM_RANGE(0xc00000, 0xc00005) AM_WRITE(SMH_RAM ) AM_BASE(&tecmosys_c00000regs) // c00000-3 scroll? c00004 inverted ? 13 : 10
- AM_RANGE(0xc80000, 0xc80005) AM_WRITE(SMH_RAM ) AM_BASE(&tecmosys_c80000regs) // c80000-3 scrool? c80004 inverted ? 3 : 0
+ AM_RANGE(0xc00000, 0xc00005) AM_WRITEONLY AM_BASE(&tecmosys_c00000regs) // c00000-3 scroll? c00004 inverted ? 13 : 10
+ AM_RANGE(0xc80000, 0xc80005) AM_WRITEONLY AM_BASE(&tecmosys_c80000regs) // c80000-3 scrool? c80004 inverted ? 3 : 0
AM_RANGE(0xd00000, 0xd00001) AM_READ_PORT("P1")
AM_RANGE(0xd00002, 0xd00003) AM_READ_PORT("P2")
AM_RANGE(0xd80000, 0xd80001) AM_READ(eeprom_r)
diff --git a/src/mame/drivers/tempest.c b/src/mame/drivers/tempest.c
index ef48715c9f3..2baaa3f3c2f 100644
--- a/src/mame/drivers/tempest.c
+++ b/src/mame/drivers/tempest.c
@@ -386,12 +386,12 @@ static WRITE8_HANDLER( tempest_coin_w )
static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x07ff) AM_RAM
- AM_RANGE(0x0800, 0x080f) AM_WRITE(SMH_RAM) AM_BASE(&tempest_colorram)
+ AM_RANGE(0x0800, 0x080f) AM_WRITEONLY AM_BASE(&tempest_colorram)
AM_RANGE(0x0c00, 0x0c00) AM_READ_PORT("IN0")
AM_RANGE(0x0d00, 0x0d00) AM_READ_PORT("DSW1")
AM_RANGE(0x0e00, 0x0e00) AM_READ_PORT("DSW2")
AM_RANGE(0x2000, 0x2fff) AM_RAM AM_BASE(&vectorram) AM_SIZE(&vectorram_size) AM_REGION("maincpu", 0x2000)
- AM_RANGE(0x3000, 0x3fff) AM_READ(SMH_ROM)
+ AM_RANGE(0x3000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x4000) AM_WRITE(tempest_coin_w)
AM_RANGE(0x4800, 0x4800) AM_WRITE(avgdvg_go_w)
AM_RANGE(0x5000, 0x5000) AM_WRITE(wdclr_w)
diff --git a/src/mame/drivers/tetrisp2.c b/src/mame/drivers/tetrisp2.c
index d8dbc4c92ba..444f4103428 100644
--- a/src/mame/drivers/tetrisp2.c
+++ b/src/mame/drivers/tetrisp2.c
@@ -389,19 +389,19 @@ static ADDRESS_MAP_START( nndmseal_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0xb00000, 0xb00001) AM_WRITE(nndmseal_coincounter_w) // Coin Counter
AM_RANGE(0xb20000, 0xb20001) AM_WRITE(nndmseal_b20000_w) // ???
- AM_RANGE(0xb40000, 0xb4000b) AM_WRITE(SMH_RAM) AM_BASE(&tetrisp2_scroll_fg ) // Foreground Scrolling
- AM_RANGE(0xb40010, 0xb4001b) AM_WRITE(SMH_RAM) AM_BASE(&tetrisp2_scroll_bg ) // Background Scrolling
+ AM_RANGE(0xb40000, 0xb4000b) AM_WRITEONLY AM_BASE(&tetrisp2_scroll_fg ) // Foreground Scrolling
+ AM_RANGE(0xb40010, 0xb4001b) AM_WRITEONLY AM_BASE(&tetrisp2_scroll_bg ) // Background Scrolling
AM_RANGE(0xb4003e, 0xb4003f) AM_WRITENOP // scr_size
- AM_RANGE(0xb60000, 0xb6002f) AM_WRITE(SMH_RAM) AM_BASE(&tetrisp2_rotregs) // Rotation Registers
+ AM_RANGE(0xb60000, 0xb6002f) AM_WRITEONLY AM_BASE(&tetrisp2_rotregs) // Rotation Registers
AM_RANGE(0xb80000, 0xb80001) AM_WRITE(nndmseal_sound_bank_w)
AM_RANGE(0xba0000, 0xba001f) AM_WRITE(rockn_systemregs_w ) // system param
- AM_RANGE(0xba001a, 0xba001b) AM_WRITE(SMH_NOP ) // Lev 4 irq ack
- AM_RANGE(0xba001e, 0xba001f) AM_WRITE(SMH_NOP ) // Lev 2 irq ack
+ AM_RANGE(0xba001a, 0xba001b) AM_WRITENOP // Lev 4 irq ack
+ AM_RANGE(0xba001e, 0xba001f) AM_WRITENOP // Lev 2 irq ack
- AM_RANGE(0xbe0000, 0xbe0001) AM_READ (SMH_NOP ) // INT-level1 dummy read
+ AM_RANGE(0xbe0000, 0xbe0001) AM_READNOP // INT-level1 dummy read
AM_RANGE(0xbe0002, 0xbe0003) AM_READ_PORT("BUTTONS" ) // Inputs
AM_RANGE(0xbe0004, 0xbe0005) AM_READ_PORT("COINS" ) // ""
AM_RANGE(0xbe0006, 0xbe0007) AM_READ_PORT("PRINT" ) // ""
@@ -464,10 +464,10 @@ static ADDRESS_MAP_START( rockn2_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0xa48000, 0xa48001) AM_WRITENOP // YMZ280 Reset
AM_RANGE(0xb00000, 0xb00001) AM_WRITE(tetrisp2_coincounter_w) // Coin Counter
AM_RANGE(0xb20000, 0xb20001) AM_WRITENOP // ???
- AM_RANGE(0xb40000, 0xb4000b) AM_WRITE(SMH_RAM) AM_BASE(&tetrisp2_scroll_fg) // Foreground Scrolling
- AM_RANGE(0xb40010, 0xb4001b) AM_WRITE(SMH_RAM) AM_BASE(&tetrisp2_scroll_bg) // Background Scrolling
+ AM_RANGE(0xb40000, 0xb4000b) AM_WRITEONLY AM_BASE(&tetrisp2_scroll_fg) // Foreground Scrolling
+ AM_RANGE(0xb40010, 0xb4001b) AM_WRITEONLY AM_BASE(&tetrisp2_scroll_bg) // Background Scrolling
AM_RANGE(0xb4003e, 0xb4003f) AM_WRITENOP // scr_size
- AM_RANGE(0xb60000, 0xb6002f) AM_WRITE(SMH_RAM) AM_BASE(&tetrisp2_rotregs) // Rotation Registers
+ AM_RANGE(0xb60000, 0xb6002f) AM_WRITEONLY AM_BASE(&tetrisp2_rotregs) // Rotation Registers
AM_RANGE(0xba0000, 0xba001f) AM_WRITE(rockn_systemregs_w) // system param
AM_RANGE(0xba001a, 0xba001b) AM_WRITENOP // Lev 4 irq ack
AM_RANGE(0xba001e, 0xba001f) AM_WRITENOP // Lev 2 irq ack
diff --git a/src/mame/drivers/thedeep.c b/src/mame/drivers/thedeep.c
index 58c2507b4e8..adcfd9c098a 100644
--- a/src/mame/drivers/thedeep.c
+++ b/src/mame/drivers/thedeep.c
@@ -162,7 +162,7 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xe00b, 0xe00b) AM_READ_PORT("e00b") // DSW2
AM_RANGE(0xe00c, 0xe00c) AM_WRITE(thedeep_sound_w ) // To Sound CPU
AM_RANGE(0xe100, 0xe100) AM_WRITE(thedeep_e100_w ) // ?
- AM_RANGE(0xe210, 0xe213) AM_WRITE(SMH_RAM) AM_BASE(&thedeep_scroll ) // Scroll
+ AM_RANGE(0xe210, 0xe213) AM_WRITEONLY AM_BASE(&thedeep_scroll ) // Scroll
AM_RANGE(0xe400, 0xe7ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) // Sprites
AM_RANGE(0xe800, 0xefff) AM_RAM_WRITE(thedeep_vram_1_w) AM_BASE(&thedeep_vram_1 ) // Text Layer
AM_RANGE(0xf000, 0xf7ff) AM_RAM_WRITE(thedeep_vram_0_w) AM_BASE(&thedeep_vram_0 ) // Background Layer
diff --git a/src/mame/drivers/thepit.c b/src/mame/drivers/thepit.c
index dd9729a8251..84150a7586c 100644
--- a/src/mame/drivers/thepit.c
+++ b/src/mame/drivers/thepit.c
@@ -172,7 +172,7 @@ static ADDRESS_MAP_START( thepit_main_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x9800, 0x983f) AM_MIRROR(0x0700) AM_RAM AM_BASE(&thepit_attributesram)
AM_RANGE(0x9840, 0x985f) AM_RAM AM_BASE(&thepit_spriteram) AM_SIZE(&thepit_spriteram_size)
AM_RANGE(0x9860, 0x98ff) AM_RAM
- AM_RANGE(0xa000, 0xa000) AM_READWRITE(thepit_input_port_0_r, SMH_NOP) // Not hooked up according to the schematics
+ AM_RANGE(0xa000, 0xa000) AM_READ(thepit_input_port_0_r) AM_WRITENOP // Not hooked up according to the schematics
AM_RANGE(0xa800, 0xa800) AM_READ_PORT("IN1")
AM_RANGE(0xb000, 0xb000) AM_READ_PORT("DSW") AM_WRITE(interrupt_enable_w)
AM_RANGE(0xb001, 0xb001) AM_WRITENOP // Unused, but initialized
diff --git a/src/mame/drivers/thief.c b/src/mame/drivers/thief.c
index 9f3ec3a3d67..63502596446 100644
--- a/src/mame/drivers/thief.c
+++ b/src/mame/drivers/thief.c
@@ -173,10 +173,9 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( thief_main_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x0000) AM_WRITE(thief_blit_w)
- AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM)
- AM_RANGE(0x0001, 0x7fff) AM_WRITE(SMH_ROM)
+ AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x8fff) AM_RAM /* 2114 */
- AM_RANGE(0xa000, 0xafff) AM_READ(SMH_ROM) /* NATO Defense diagnostic ROM */
+ AM_RANGE(0xa000, 0xafff) AM_ROM /* NATO Defense diagnostic ROM */
AM_RANGE(0xc000, 0xdfff) AM_READWRITE(thief_videoram_r, thief_videoram_w) /* 4116 */
AM_RANGE(0xe000, 0xe008) AM_READWRITE(thief_coprocessor_r, thief_coprocessor_w)
AM_RANGE(0xe010, 0xe02f) AM_ROM
diff --git a/src/mame/drivers/tigeroad.c b/src/mame/drivers/tigeroad.c
index 7799f70164d..ffc8cc407b4 100644
--- a/src/mame/drivers/tigeroad.c
+++ b/src/mame/drivers/tigeroad.c
@@ -183,7 +183,7 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0xfe4004, 0xfe4005) AM_READ_PORT("DSW")
AM_RANGE(0xfec000, 0xfec7ff) AM_RAM_WRITE(tigeroad_videoram_w) AM_BASE_GENERIC(videoram)
AM_RANGE(0xfe8000, 0xfe8003) AM_WRITE(tigeroad_scroll_w)
- AM_RANGE(0xfe800e, 0xfe800f) AM_WRITE(SMH_RAM) /* fe800e = watchdog or IRQ acknowledge */
+ AM_RANGE(0xfe800e, 0xfe800f) AM_WRITEONLY /* fe800e = watchdog or IRQ acknowledge */
AM_RANGE(0xff8200, 0xff867f) AM_RAM_WRITE(paletteram16_xxxxRRRRGGGGBBBB_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0xffc000, 0xffffff) AM_RAM AM_BASE(&ram16)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/tmaster.c b/src/mame/drivers/tmaster.c
index 2861271fdcf..2074df10c2a 100644
--- a/src/mame/drivers/tmaster.c
+++ b/src/mame/drivers/tmaster.c
@@ -491,7 +491,7 @@ static ADDRESS_MAP_START( tmaster_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE( 0x580000, 0x580001 ) AM_WRITENOP // often
- AM_RANGE( 0x600000, 0x601fff ) AM_READWRITE( SMH_RAM, paletteram16_xBBBBBGGGGGRRRRR_word_w ) AM_BASE_GENERIC(paletteram)
+ AM_RANGE( 0x600000, 0x601fff ) AM_RAM_WRITE( paletteram16_xBBBBBGGGGGRRRRR_word_w ) AM_BASE_GENERIC(paletteram)
AM_RANGE( 0x800000, 0x800001 ) AM_DEVREADWRITE8( "oki", okim6295_r, okim6295_w, 0x00ff )
@@ -707,8 +707,8 @@ static ADDRESS_MAP_START( galgames_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE( 0x400014, 0x400015 ) AM_WRITE( tmaster_color_w )
AM_RANGE( 0x400020, 0x400021 ) AM_READ ( tmaster_blitter_r )
- AM_RANGE( 0x600000, 0x600001 ) AM_READWRITE( dummy_read_01, SMH_NOP )
- AM_RANGE( 0x700000, 0x700001 ) AM_READWRITE( dummy_read_01, SMH_NOP )
+ AM_RANGE( 0x600000, 0x600001 ) AM_READ( dummy_read_01 ) AM_WRITENOP
+ AM_RANGE( 0x700000, 0x700001 ) AM_READ( dummy_read_01 ) AM_WRITENOP
AM_RANGE( 0x800020, 0x80003f ) AM_NOP // ?
AM_RANGE( 0x900000, 0x900001 ) AM_WRITE( watchdog_reset16_w )
@@ -719,7 +719,7 @@ static ADDRESS_MAP_START( galgames_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE( 0xc00002, 0xc00003 ) AM_WRITE( galgames_palette_data_w )
AM_RANGE( 0xd00000, 0xd00001 ) AM_READ_PORT("TRACKBALL_1_X")
- AM_RANGE( 0xd00000, 0xd00001 ) AM_WRITE( SMH_NOP )
+ AM_RANGE( 0xd00000, 0xd00001 ) AM_WRITENOP
AM_RANGE( 0xd00002, 0xd00003 ) AM_READ_PORT("TRACKBALL_1_Y")
AM_RANGE( 0xd00004, 0xd00005 ) AM_READ_PORT("TRACKBALL_2_X")
AM_RANGE( 0xd00006, 0xd00007 ) AM_READ_PORT("TRACKBALL_2_Y")
diff --git a/src/mame/drivers/tmnt.c b/src/mame/drivers/tmnt.c
index 556cb731a18..57455e031e1 100644
--- a/src/mame/drivers/tmnt.c
+++ b/src/mame/drivers/tmnt.c
@@ -788,7 +788,7 @@ static ADDRESS_MAP_START( glfgreat_main_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x10c000, 0x10cfff) AM_RAM AM_BASE(&K053936_0_linectrl) /* 053936? */
AM_RANGE(0x110000, 0x11001f) AM_WRITE(K053244_word_noA1_w) /* duplicate! */
AM_RANGE(0x114000, 0x11401f) AM_READWRITE(K053244_lsb_r, K053244_lsb_w) /* duplicate! */
- AM_RANGE(0x118000, 0x11801f) AM_WRITE(SMH_RAM) AM_BASE(&K053936_0_ctrl)
+ AM_RANGE(0x118000, 0x11801f) AM_WRITEONLY AM_BASE(&K053936_0_ctrl)
AM_RANGE(0x11c000, 0x11c01f) AM_WRITE(K053251_msb_w)
AM_RANGE(0x120000, 0x120001) AM_READ_PORT("P1/P2")
AM_RANGE(0x120002, 0x120003) AM_READ_PORT("P3/P4")
@@ -811,7 +811,7 @@ static ADDRESS_MAP_START( prmrsocr_main_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x10c000, 0x10cfff) AM_RAM AM_BASE(&K053936_0_linectrl)
AM_RANGE(0x110000, 0x11001f) AM_WRITE(K053244_word_noA1_w) /* duplicate! */
AM_RANGE(0x114000, 0x11401f) AM_READWRITE(K053244_lsb_r, K053244_lsb_w) /* duplicate! */
- AM_RANGE(0x118000, 0x11801f) AM_WRITE(SMH_RAM) AM_BASE(&K053936_0_ctrl)
+ AM_RANGE(0x118000, 0x11801f) AM_WRITEONLY AM_BASE(&K053936_0_ctrl)
AM_RANGE(0x11c000, 0x11c01f) AM_WRITE(K053251_msb_w)
AM_RANGE(0x120000, 0x120001) AM_READ(prmrsocr_IN0_r)
AM_RANGE(0x120002, 0x120003) AM_READ_PORT("P2/EEPROM")
diff --git a/src/mame/drivers/tnzs.c b/src/mame/drivers/tnzs.c
index 6581cb8160c..fb0a5991dfb 100644
--- a/src/mame/drivers/tnzs.c
+++ b/src/mame/drivers/tnzs.c
@@ -822,7 +822,7 @@ static ADDRESS_MAP_START( tnzsb_cpu1_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xc002, 0xc002) AM_READ_PORT("IN2")
AM_RANGE(0xd000, 0xdfff) AM_RAM
AM_RANGE(0xe000, 0xefff) AM_RAM AM_SHARE(1)
- AM_RANGE(0xf000, 0xf003) AM_READ(SMH_RAM)
+ AM_RANGE(0xf000, 0xf003) AM_READONLY
AM_RANGE(0xf000, 0xf3ff) AM_WRITE(paletteram_xRRRRRGGGGGBBBBB_le_w) AM_BASE_GENERIC(paletteram)
ADDRESS_MAP_END
@@ -891,9 +891,9 @@ static ADDRESS_MAP_START( jpopnics_main_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xe000, 0xefff) AM_RAM AM_SHARE(1) /* WORK RAM (shared by the 2 z80's) */
AM_RANGE(0xf000, 0xf1ff) AM_RAM AM_BASE_MEMBER(tnzs_state, vdcram) /* VDC RAM */
AM_RANGE(0xf200, 0xf2ff) AM_RAM AM_BASE_MEMBER(tnzs_state, scrollram) /* scrolling info */
- AM_RANGE(0xf300, 0xf303) AM_MIRROR(0xfc) AM_WRITE(SMH_RAM) AM_BASE_MEMBER(tnzs_state, objctrl) /* control registers (0x80 mirror used by Arkanoid 2) */
- AM_RANGE(0xf400, 0xf400) AM_WRITE(SMH_RAM) AM_BASE_MEMBER(tnzs_state, bg_flag) /* enable / disable background transparency */
- AM_RANGE(0xf600, 0xf600) AM_READWRITE(SMH_NOP, tnzs_bankswitch_w)
+ AM_RANGE(0xf300, 0xf303) AM_MIRROR(0xfc) AM_WRITEONLY AM_BASE_MEMBER(tnzs_state, objctrl) /* control registers (0x80 mirror used by Arkanoid 2) */
+ AM_RANGE(0xf400, 0xf400) AM_WRITEONLY AM_BASE_MEMBER(tnzs_state, bg_flag) /* enable / disable background transparency */
+ AM_RANGE(0xf600, 0xf600) AM_READNOP AM_WRITE(tnzs_bankswitch_w)
AM_RANGE(0xf800, 0xffff) AM_RAM_WRITE(jpopnics_palette_w) AM_BASE_GENERIC(paletteram)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/toaplan2.c b/src/mame/drivers/toaplan2.c
index fe614d5e228..57bf67d5a96 100644
--- a/src/mame/drivers/toaplan2.c
+++ b/src/mame/drivers/toaplan2.c
@@ -1527,11 +1527,11 @@ static ADDRESS_MAP_START( fixeight_68k_mem, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x280000, 0x28dfff) AM_RAM /* part of shared ram ? */
AM_RANGE(0x28e000, 0x28efff) AM_READWRITE(shared_ram_r, shared_ram_w) AM_BASE(&toaplan2_shared_ram16)
AM_RANGE(0x28f000, 0x28f001) AM_READWRITE(fixeight_sec_cpu_r, fixeight_sec_cpu_w) AM_BASE(&fixeight_sec_cpu_mem) /* V25+ Command/Status port */
-// AM_RANGE(0x28f002, 0x28f003) AM_READ(SMH_RAM) /* part of shared ram */
+// AM_RANGE(0x28f002, 0x28f003) AM_READONLY /* part of shared ram */
// AM_RANGE(0x28f004, 0x28f005) AM_READ_PORT("DSWA") /* Dip Switch A - Wrong !!! */
// AM_RANGE(0x28f006, 0x28f007) AM_READ_PORT("DSWB") /* Dip Switch B - Wrong !!! */
// AM_RANGE(0x28f008, 0x28f009) AM_READ_PORT("JMPR") /* Territory Jumper block - Wrong !!! */
-// AM_RANGE(0x28f00a, 0x28fbff) AM_READ(SMH_RAM) /* part of shared ram */
+// AM_RANGE(0x28f00a, 0x28fbff) AM_READONLY /* part of shared ram */
AM_RANGE(0x28fc00, 0x28ffff) AM_READWRITE(V25_sharedram_r, V25_sharedram_w) AM_BASE(&V25_shared_ram) /* 16-bit on 68000 side, 8-bit on V25+ side */
#endif
AM_RANGE(0x300000, 0x300001) AM_WRITE(toaplan2_0_voffs_w) /* VideoRAM selector/offset */
diff --git a/src/mame/drivers/toki.c b/src/mame/drivers/toki.c
index 551532e9f67..a97f918cd17 100644
--- a/src/mame/drivers/toki.c
+++ b/src/mame/drivers/toki.c
@@ -130,10 +130,10 @@ static ADDRESS_MAP_START( tokib_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x071000, 0x071001) AM_WRITENOP /* sprite related? seems another scroll register */
/* gets written the same value as 75000a (bg2 scrollx) */
AM_RANGE(0x071804, 0x071807) AM_WRITENOP /* sprite related, always 01be0100 */
- AM_RANGE(0x07180e, 0x071e45) AM_WRITE(SMH_RAM) AM_BASE_SIZE_GENERIC(spriteram)
+ AM_RANGE(0x07180e, 0x071e45) AM_WRITEONLY AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x072000, 0x072001) AM_READ(watchdog_reset16_r) /* probably */
AM_RANGE(0x075000, 0x075001) AM_WRITE(tokib_soundcommand16_w)
- AM_RANGE(0x075004, 0x07500b) AM_WRITE(SMH_RAM) AM_BASE(&toki_scrollram16)
+ AM_RANGE(0x075004, 0x07500b) AM_WRITEONLY AM_BASE(&toki_scrollram16)
AM_RANGE(0x0c0000, 0x0c0001) AM_READ_PORT("DSW")
AM_RANGE(0x0c0002, 0x0c0003) AM_READ_PORT("INPUTS")
AM_RANGE(0x0c0004, 0x0c0005) AM_READ_PORT("SYSTEM")
@@ -145,9 +145,8 @@ ADDRESS_MAP_END
/*****************************************************************************/
static ADDRESS_MAP_START( tokib_audio_map, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM)
+ AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
- AM_RANGE(0x0000, 0xbfff) AM_WRITE(SMH_ROM)
AM_RANGE(0xe000, 0xe000) AM_DEVWRITE("msm", toki_adpcm_control_w) /* MSM5205 + ROM bank */
AM_RANGE(0xe400, 0xe400) AM_WRITE(toki_adpcm_data_w)
AM_RANGE(0xec00, 0xec01) AM_MIRROR(0x0008) AM_DEVREADWRITE("ymsnd", ym3812_r, ym3812_w)
diff --git a/src/mame/drivers/tp84.c b/src/mame/drivers/tp84.c
index 2e8bf9bab3b..e7db89dc385 100644
--- a/src/mame/drivers/tp84.c
+++ b/src/mame/drivers/tp84.c
@@ -142,12 +142,12 @@ static ADDRESS_MAP_START( tp84_cpu1_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x2840, 0x2840) AM_READ_PORT("P2")
AM_RANGE(0x2860, 0x2860) AM_READ_PORT("DSW1")
AM_RANGE(0x3000, 0x3000) AM_READ_PORT("DSW2") AM_WRITEONLY
- AM_RANGE(0x3004, 0x3004) AM_WRITE(SMH_RAM) AM_BASE(&tp84_flipscreen_x)
- AM_RANGE(0x3005, 0x3005) AM_WRITE(SMH_RAM) AM_BASE(&tp84_flipscreen_y)
+ AM_RANGE(0x3004, 0x3004) AM_WRITEONLY AM_BASE(&tp84_flipscreen_x)
+ AM_RANGE(0x3005, 0x3005) AM_WRITEONLY AM_BASE(&tp84_flipscreen_y)
AM_RANGE(0x3800, 0x3800) AM_WRITE(tp84_sh_irqtrigger_w)
AM_RANGE(0x3a00, 0x3a00) AM_WRITE(soundlatch_w)
- AM_RANGE(0x3c00, 0x3c00) AM_WRITE(SMH_RAM) AM_BASE(&tp84_scroll_x)
- AM_RANGE(0x3e00, 0x3e00) AM_WRITE(SMH_RAM) AM_BASE(&tp84_scroll_y)
+ AM_RANGE(0x3c00, 0x3c00) AM_WRITEONLY AM_BASE(&tp84_scroll_x)
+ AM_RANGE(0x3e00, 0x3e00) AM_WRITEONLY AM_BASE(&tp84_scroll_y)
AM_RANGE(0x4000, 0x43ff) AM_RAM AM_BASE(&tp84_bg_videoram)
AM_RANGE(0x4400, 0x47ff) AM_RAM AM_BASE(&tp84_fg_videoram)
AM_RANGE(0x4800, 0x4bff) AM_RAM AM_BASE(&tp84_bg_colorram)
@@ -168,12 +168,12 @@ static ADDRESS_MAP_START( tp84b_cpu1_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x1a40, 0x1a40) AM_READ_PORT("P2")
AM_RANGE(0x1a60, 0x1a60) AM_READ_PORT("DSW1")
AM_RANGE(0x1c00, 0x1c00) AM_READ_PORT("DSW2") AM_WRITENOP
- AM_RANGE(0x1c04, 0x1c04) AM_WRITE(SMH_RAM) AM_BASE(&tp84_flipscreen_x)
- AM_RANGE(0x1c05, 0x1c05) AM_WRITE(SMH_RAM) AM_BASE(&tp84_flipscreen_y)
+ AM_RANGE(0x1c04, 0x1c04) AM_WRITEONLY AM_BASE(&tp84_flipscreen_x)
+ AM_RANGE(0x1c05, 0x1c05) AM_WRITEONLY AM_BASE(&tp84_flipscreen_y)
AM_RANGE(0x1e00, 0x1e00) AM_WRITE(tp84_sh_irqtrigger_w)
AM_RANGE(0x1e80, 0x1e80) AM_WRITE(soundlatch_w)
- AM_RANGE(0x1f00, 0x1f00) AM_WRITE(SMH_RAM) AM_BASE(&tp84_scroll_x)
- AM_RANGE(0x1f80, 0x1f80) AM_WRITE(SMH_RAM) AM_BASE(&tp84_scroll_y)
+ AM_RANGE(0x1f00, 0x1f00) AM_WRITEONLY AM_BASE(&tp84_scroll_x)
+ AM_RANGE(0x1f80, 0x1f80) AM_WRITEONLY AM_BASE(&tp84_scroll_y)
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/trackfld.c b/src/mame/drivers/trackfld.c
index 5b10ac79302..045ee419dc2 100644
--- a/src/mame/drivers/trackfld.c
+++ b/src/mame/drivers/trackfld.c
@@ -210,8 +210,8 @@ static ADDRESS_MAP_START( wizzquiz_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x1c60, 0x1fff) AM_RAM
AM_RANGE(0x2800, 0x2bff) AM_RAM
AM_RANGE(0x2c00, 0x2fff) AM_RAM AM_BASE_SIZE_GENERIC(nvram)
- AM_RANGE(0x3000, 0x37ff) AM_READ(SMH_RAM) AM_WRITE(trackfld_videoram_w) AM_BASE_MEMBER(trackfld_state, videoram)
- AM_RANGE(0x3800, 0x3fff) AM_READ(SMH_RAM) AM_WRITE(trackfld_colorram_w) AM_BASE_MEMBER(trackfld_state, colorram)
+ AM_RANGE(0x3000, 0x37ff) AM_RAM_WRITE(trackfld_videoram_w) AM_BASE_MEMBER(trackfld_state, videoram)
+ AM_RANGE(0x3800, 0x3fff) AM_RAM_WRITE(trackfld_colorram_w) AM_BASE_MEMBER(trackfld_state, colorram)
AM_RANGE(0xc000, 0xc000) AM_WRITE(questions_bank_w)
AM_RANGE(0x6000, 0xdfff) AM_ROMBANK("bank1")
AM_RANGE(0xe000, 0xffff) AM_ROM
@@ -1190,7 +1190,7 @@ static DRIVER_INIT( atlantol )
memory_set_decrypted_region(space, 0x0000, 0xffff, decrypt);
memory_install_write8_handler(space, 0x0800, 0x0800, 0, 0, atlantol_gfxbank_w);
- memory_install_write8_handler(space, 0x1000, 0x1000, 0, 0, (write8_space_func)SMH_NOP);
+ memory_nop_write(space, 0x1000, 0x1000, 0, 0);
/* unmapped areas read as ROM */
memory_install_read_bank_handler(space, 0x0000, 0x11ff, 0, 0, "bank10");
diff --git a/src/mame/drivers/travrusa.c b/src/mame/drivers/travrusa.c
index ac636a41a63..41120483e39 100644
--- a/src/mame/drivers/travrusa.c
+++ b/src/mame/drivers/travrusa.c
@@ -57,7 +57,7 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x8000, 0x8fff) AM_RAM_WRITE(travrusa_videoram_w) AM_BASE_MEMBER(irem_z80_state, videoram)
AM_RANGE(0x9000, 0x9000) AM_WRITE(travrusa_scroll_x_low_w)
AM_RANGE(0xa000, 0xa000) AM_WRITE(travrusa_scroll_x_high_w)
- AM_RANGE(0xc800, 0xc9ff) AM_WRITE(SMH_RAM) AM_BASE_SIZE_MEMBER(irem_z80_state, spriteram, spriteram_size)
+ AM_RANGE(0xc800, 0xc9ff) AM_WRITEONLY AM_BASE_SIZE_MEMBER(irem_z80_state, spriteram, spriteram_size)
AM_RANGE(0xd000, 0xd000) AM_WRITE(irem_sound_cmd_w)
AM_RANGE(0xd001, 0xd001) AM_WRITE(travrusa_flipscreen_w) /* + coin counters - not written by shtrider */
AM_RANGE(0xd000, 0xd000) AM_READ_PORT("SYSTEM") /* IN0 */
diff --git a/src/mame/drivers/triplhnt.c b/src/mame/drivers/triplhnt.c
index bd3eb57bd53..125938510c9 100644
--- a/src/mame/drivers/triplhnt.c
+++ b/src/mame/drivers/triplhnt.c
@@ -137,11 +137,11 @@ static READ8_HANDLER( triplhnt_da_latch_r )
static ADDRESS_MAP_START( triplhnt_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x00ff) AM_RAM AM_MIRROR(0x300)
- AM_RANGE(0x0400, 0x04ff) AM_WRITE(SMH_RAM) AM_BASE(&triplhnt_playfield_ram)
- AM_RANGE(0x0800, 0x080f) AM_WRITE(SMH_RAM) AM_BASE(&triplhnt_vpos_ram)
- AM_RANGE(0x0810, 0x081f) AM_WRITE(SMH_RAM) AM_BASE(&triplhnt_hpos_ram)
- AM_RANGE(0x0820, 0x082f) AM_WRITE(SMH_RAM) AM_BASE(&triplhnt_orga_ram)
- AM_RANGE(0x0830, 0x083f) AM_WRITE(SMH_RAM) AM_BASE(&triplhnt_code_ram)
+ AM_RANGE(0x0400, 0x04ff) AM_WRITEONLY AM_BASE(&triplhnt_playfield_ram)
+ AM_RANGE(0x0800, 0x080f) AM_WRITEONLY AM_BASE(&triplhnt_vpos_ram)
+ AM_RANGE(0x0810, 0x081f) AM_WRITEONLY AM_BASE(&triplhnt_hpos_ram)
+ AM_RANGE(0x0820, 0x082f) AM_WRITEONLY AM_BASE(&triplhnt_orga_ram)
+ AM_RANGE(0x0830, 0x083f) AM_WRITEONLY AM_BASE(&triplhnt_code_ram)
AM_RANGE(0x0c00, 0x0c00) AM_READ_PORT("0C00")
AM_RANGE(0x0c08, 0x0c08) AM_READ_PORT("0C08")
AM_RANGE(0x0c09, 0x0c09) AM_READ_PORT("0C09")
diff --git a/src/mame/drivers/truco.c b/src/mame/drivers/truco.c
index 7607be633f3..dc642b892c3 100644
--- a/src/mame/drivers/truco.c
+++ b/src/mame/drivers/truco.c
@@ -34,9 +34,9 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x1800, 0x7bff) AM_RAM AM_BASE_GENERIC(videoram) /* video ram */
AM_RANGE(0x7c00, 0x7fff) AM_RAM AM_BASE(&battery_ram) /* battery backed ram */
AM_RANGE(0x8000, 0x8000) AM_READ_PORT("P1") AM_WRITENOP /* controls (and irq ack?) */
- AM_RANGE(0x8001, 0x8001) AM_READWRITE(SMH_NOP, SMH_NOP) /* unknown */
+ AM_RANGE(0x8001, 0x8001) AM_NOP /* unknown */
AM_RANGE(0x8002, 0x8002) AM_READ_PORT("DSW") AM_DEVWRITE("dac", dac_w) /* dipswitches */
- AM_RANGE(0x8003, 0x8007) AM_READWRITE(SMH_NOP, SMH_NOP) /* unknown */
+ AM_RANGE(0x8003, 0x8007) AM_NOP /* unknown */
AM_RANGE(0x8008, 0xffff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/trvquest.c b/src/mame/drivers/trvquest.c
index 9ca523e2a38..9ee7cda977d 100644
--- a/src/mame/drivers/trvquest.c
+++ b/src/mame/drivers/trvquest.c
@@ -67,7 +67,7 @@ static ADDRESS_MAP_START( cpu_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x3840, 0x3841) AM_DEVWRITE("ay2", ay8910_address_data_w)
AM_RANGE(0x3850, 0x3850) AM_READNOP //watchdog_reset_r ?
AM_RANGE(0x8000, 0x9fff) AM_READ(trvquest_question_r)
- AM_RANGE(0xa000, 0xa000) AM_WRITE(SMH_RAM) AM_BASE_MEMBER(gameplan_state, trvquest_question)
+ AM_RANGE(0xa000, 0xa000) AM_WRITEONLY AM_BASE_MEMBER(gameplan_state, trvquest_question)
AM_RANGE(0xa000, 0xa000) AM_READNOP // bogus read from the game code when reads question roms
AM_RANGE(0xb000, 0xffff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/tsamurai.c b/src/mame/drivers/tsamurai.c
index 02db81dee5a..cf81f8520f4 100644
--- a/src/mame/drivers/tsamurai.c
+++ b/src/mame/drivers/tsamurai.c
@@ -331,7 +331,7 @@ static WRITE8_HANDLER( vsgongf_sound_command_w )
static ADDRESS_MAP_START( vsgongf_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x7fff) AM_ROM
- AM_RANGE(0xa003, 0xa003) AM_READ(SMH_RAM)
+ AM_RANGE(0xa003, 0xa003) AM_READONLY
AM_RANGE(0xa006, 0xa006) AM_READ(vsgongf_a006_r) /* protection */
AM_RANGE(0xa100, 0xa100) AM_READ(vsgongf_a100_r) /* protection */
AM_RANGE(0xc000, 0xc7ff) AM_RAM /* work ram */
@@ -339,9 +339,9 @@ static ADDRESS_MAP_START( vsgongf_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xe400, 0xe43f) AM_RAM AM_BASE_GENERIC(spriteram)
AM_RANGE(0xe440, 0xe47b) AM_RAM
AM_RANGE(0xe800, 0xe800) AM_WRITE(vsgongf_sound_command_w)
- AM_RANGE(0xec00, 0xec06) AM_WRITE(SMH_RAM)
+ AM_RANGE(0xec00, 0xec06) AM_WRITEONLY
AM_RANGE(0xf000, 0xf000) AM_WRITE(vsgongf_color_w)
- AM_RANGE(0xf400, 0xf400) AM_WRITE(SMH_RAM) /* vreg? always 0 */
+ AM_RANGE(0xf400, 0xf400) AM_WRITEONLY /* vreg? always 0 */
AM_RANGE(0xf800, 0xf800) AM_READ_PORT("P1")
AM_RANGE(0xf801, 0xf801) AM_READ_PORT("P2")
AM_RANGE(0xf802, 0xf802) AM_READ_PORT("SYSTEM")
diff --git a/src/mame/drivers/tubep.c b/src/mame/drivers/tubep.c
index 0316a5f69ce..f701c6de3b2 100644
--- a/src/mame/drivers/tubep.c
+++ b/src/mame/drivers/tubep.c
@@ -161,8 +161,8 @@ static ADDRESS_MAP_START( tubep_main_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xa000, 0xa7ff) AM_RAM
AM_RANGE(0xc000, 0xc7ff) AM_WRITE(tubep_textram_w) AM_BASE(&tubep_textram) /* RAM on GFX PCB @B13 */
- AM_RANGE(0xe000, 0xe7ff) AM_WRITE(SMH_RAM) AM_SHARE(1)
- AM_RANGE(0xe800, 0xebff) AM_WRITE(SMH_RAM) AM_SHARE(4) /* row of 8 x 2147 RAMs on main PCB */
+ AM_RANGE(0xe000, 0xe7ff) AM_WRITEONLY AM_SHARE(1)
+ AM_RANGE(0xe800, 0xebff) AM_WRITEONLY AM_SHARE(4) /* row of 8 x 2147 RAMs on main PCB */
ADDRESS_MAP_END
@@ -215,8 +215,8 @@ static ADDRESS_MAP_START( tubep_second_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xa000, 0xa000) AM_WRITE(tubep_background_a000_w)
AM_RANGE(0xc000, 0xc000) AM_WRITE(tubep_background_c000_w)
AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_SHARE(1) /* 6116 #1 */
- AM_RANGE(0xe800, 0xebff) AM_WRITE(SMH_RAM) AM_SHARE(4) AM_BASE(&tubep_backgroundram) /* row of 8 x 2147 RAMs on main PCB */
- AM_RANGE(0xf000, 0xf3ff) AM_WRITE(SMH_RAM) AM_SHARE(3) /* sprites color lookup table */
+ AM_RANGE(0xe800, 0xebff) AM_WRITEONLY AM_SHARE(4) AM_BASE(&tubep_backgroundram) /* row of 8 x 2147 RAMs on main PCB */
+ AM_RANGE(0xf000, 0xf3ff) AM_WRITEONLY AM_SHARE(3) /* sprites color lookup table */
AM_RANGE(0xf800, 0xffff) AM_RAM AM_SHARE(2) /* program copies here part of shared ram ?? */
ADDRESS_MAP_END
diff --git a/src/mame/drivers/tugboat.c b/src/mame/drivers/tugboat.c
index 6735df16493..ec693fdfa2a 100644
--- a/src/mame/drivers/tugboat.c
+++ b/src/mame/drivers/tugboat.c
@@ -206,9 +206,8 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
//AM_RANGE(0x1700, 0x1fff) AM_RAM
AM_RANGE(0x18e0, 0x18ef) AM_WRITE(tugboat_score_w)
AM_RANGE(0x2000, 0x2fff) AM_RAM /* tilemap RAM */
- AM_RANGE(0x4000, 0x7fff) AM_READ(SMH_ROM)
- AM_RANGE(0x5000, 0x7fff) AM_WRITE(SMH_ROM)
- AM_RANGE(0xfff0, 0xffff) AM_READ(SMH_ROM) /* vectors */
+ AM_RANGE(0x4000, 0x7fff) AM_ROM
+ AM_RANGE(0xfff0, 0xffff) AM_ROM /* vectors */
ADDRESS_MAP_END
diff --git a/src/mame/drivers/tumbleb.c b/src/mame/drivers/tumbleb.c
index 8f93b42c07e..d29605dcb44 100644
--- a/src/mame/drivers/tumbleb.c
+++ b/src/mame/drivers/tumbleb.c
@@ -661,17 +661,15 @@ static WRITE16_DEVICE_HANDLER( tumbleb2_soundmcu_w )
/******************************************************************************/
static ADDRESS_MAP_START( tumblepopb_main_map, ADDRESS_SPACE_PROGRAM, 16 )
- AM_RANGE(0x000000, 0x07ffff) AM_READ(SMH_ROM)
+ AM_RANGE(0x000000, 0x07ffff) AM_ROM
#if TUMBLEP_HACK
- AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_RAM) /* To write levels modifications */
-#else
- AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM)
+ AM_RANGE(0x000000, 0x07ffff) AM_WRITEONLY /* To write levels modifications */
#endif
AM_RANGE(0x100000, 0x100001) AM_READ(tumblepb_prot_r) AM_DEVWRITE("oki", tumblepb_oki_w)
AM_RANGE(0x120000, 0x123fff) AM_RAM AM_BASE(&tumblepb_mainram)
AM_RANGE(0x140000, 0x1407ff) AM_RAM_WRITE(paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x160000, 0x1607ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) /* Bootleg sprite buffer */
- AM_RANGE(0x160800, 0x160807) AM_WRITE(SMH_RAM) /* writes past the end of spriteram */
+ AM_RANGE(0x160800, 0x160807) AM_WRITEONLY /* writes past the end of spriteram */
AM_RANGE(0x180000, 0x18000f) AM_READ(tumblepopb_controls_r)
AM_RANGE(0x18000c, 0x18000d) AM_WRITENOP
AM_RANGE(0x1a0000, 0x1a07ff) AM_RAM
@@ -685,17 +683,15 @@ static ADDRESS_MAP_START( tumblepopb_main_map, ADDRESS_SPACE_PROGRAM, 16 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( fncywld_main_map, ADDRESS_SPACE_PROGRAM, 16 )
- AM_RANGE(0x000000, 0x0fffff) AM_READ(SMH_ROM)
+ AM_RANGE(0x000000, 0x0fffff) AM_ROM
#if FNCYWLD_HACK
- AM_RANGE(0x000000, 0x0fffff) AM_WRITE(SMH_RAM) /* To write levels modifications */
-#else
- AM_RANGE(0x000000, 0x0fffff) AM_WRITE(SMH_ROM)
+ AM_RANGE(0x000000, 0x0fffff) AM_WRITEONLY /* To write levels modifications */
#endif
AM_RANGE(0x100000, 0x100003) AM_DEVREADWRITE8("ymsnd", ym2151_r, ym2151_w, 0x00ff)
AM_RANGE(0x100004, 0x100005) AM_DEVREADWRITE8("oki", okim6295_r, okim6295_w, 0x00ff)
AM_RANGE(0x140000, 0x140fff) AM_RAM_WRITE(paletteram16_xxxxRRRRGGGGBBBB_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x160000, 0x1607ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) /* sprites */
- AM_RANGE(0x160800, 0x16080f) AM_WRITE(SMH_RAM) /* goes slightly past the end of spriteram? */
+ AM_RANGE(0x160800, 0x16080f) AM_WRITEONLY /* goes slightly past the end of spriteram? */
AM_RANGE(0x180000, 0x18000f) AM_READ(tumblepopb_controls_r)
AM_RANGE(0x18000c, 0x18000d) AM_WRITENOP
AM_RANGE(0x1a0000, 0x1a07ff) AM_RAM
@@ -721,7 +717,7 @@ static ADDRESS_MAP_START( htchctch_main_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x100002, 0x100003) AM_WRITE(bcstory_tilebank_w)
AM_RANGE(0x120000, 0x123fff) AM_RAM AM_BASE(&tumblepb_mainram)
AM_RANGE(0x140000, 0x1407ff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
- AM_RANGE(0x160000, 0x160fff) AM_RAM_WRITE(SMH_RAM) AM_BASE_SIZE_GENERIC(spriteram) /* Bootleg sprite buffer */
+ AM_RANGE(0x160000, 0x160fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) /* Bootleg sprite buffer */
AM_RANGE(0x180000, 0x18000f) AM_READ(tumblepopb_controls_r)
AM_RANGE(0x18000c, 0x18000d) AM_WRITENOP
AM_RANGE(0x1a0000, 0x1a0fff) AM_RAM
@@ -745,7 +741,7 @@ static ADDRESS_MAP_START( jumppop_main_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x1a0000, 0x1a7fff) AM_RAM
AM_RANGE(0x300000, 0x303fff) AM_RAM_WRITE(tumblepb_pf2_data_w) AM_BASE(&tumblepb_pf2_data)
AM_RANGE(0x320000, 0x323fff) AM_RAM_WRITE(tumblepb_pf1_data_w) AM_BASE(&tumblepb_pf1_data)
- AM_RANGE(0x380000, 0x38000f) AM_WRITE(SMH_RAM) AM_BASE(&jumppop_control)
+ AM_RANGE(0x380000, 0x38000f) AM_WRITEONLY AM_BASE(&jumppop_control)
ADDRESS_MAP_END
static WRITE16_HANDLER( jumpkids_sound_w )
@@ -774,7 +770,7 @@ static ADDRESS_MAP_START( pangpang_main_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x120000, 0x123fff) AM_RAM AM_BASE(&tumblepb_mainram)
AM_RANGE(0x140000, 0x1407ff) AM_RAM_WRITE(paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x160000, 0x1607ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) /* Bootleg sprite buffer */
- AM_RANGE(0x160800, 0x160807) AM_WRITE(SMH_RAM) // writes past the end of spriteram
+ AM_RANGE(0x160800, 0x160807) AM_WRITEONLY // writes past the end of spriteram
AM_RANGE(0x180000, 0x18000f) AM_READ(tumblepopb_controls_r)
AM_RANGE(0x1a0000, 0x1a07ff) AM_RAM
AM_RANGE(0x300000, 0x30000f) AM_WRITE(tumblepb_control_0_w)
@@ -857,7 +853,7 @@ static ADDRESS_MAP_START( jumpkids_main_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x120000, 0x123fff) AM_RAM AM_BASE(&tumblepb_mainram)
AM_RANGE(0x140000, 0x1407ff) AM_RAM_WRITE(paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x160000, 0x1607ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) /* Bootleg sprite buffer */
- AM_RANGE(0x160800, 0x160807) AM_WRITE(SMH_RAM) /* writes past the end of spriteram */
+ AM_RANGE(0x160800, 0x160807) AM_WRITEONLY /* writes past the end of spriteram */
AM_RANGE(0x180000, 0x18000f) AM_READ(tumblepopb_controls_r)
AM_RANGE(0x18000c, 0x18000d) AM_WRITENOP
AM_RANGE(0x1a0000, 0x1a07ff) AM_RAM
@@ -3574,7 +3570,7 @@ static DRIVER_INIT( htchctch )
HCROM[0x1e228/2] = 0x4e75;
- memory_install_write16_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x140000, 0x1407ff, 0, 0, (write16_space_func)SMH_NOP ); // kill palette writes as the interrupt code we don't have controls them
+ memory_nop_write(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x140000, 0x1407ff, 0, 0 ); // kill palette writes as the interrupt code we don't have controls them
{
diff --git a/src/mame/drivers/tumblep.c b/src/mame/drivers/tumblep.c
index a67ad869488..48093e31d4d 100644
--- a/src/mame/drivers/tumblep.c
+++ b/src/mame/drivers/tumblep.c
@@ -106,8 +106,8 @@ static READ16_HANDLER( tumblepop_controls_r )
static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 )
#if TUMBLEP_HACK
- AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_RAM) // To write levels modifications
- AM_RANGE(0x000000, 0x07ffff) AM_READ(SMH_ROM)
+ AM_RANGE(0x000000, 0x07ffff) AM_WRITEONLY // To write levels modifications
+ AM_RANGE(0x000000, 0x07ffff) AM_ROM
#else
AM_RANGE(0x000000, 0x07ffff) AM_ROM
#endif
@@ -117,11 +117,11 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x180000, 0x18000f) AM_READ(tumblepop_controls_r)
AM_RANGE(0x18000c, 0x18000d) AM_WRITENOP
AM_RANGE(0x1a0000, 0x1a07ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
- AM_RANGE(0x300000, 0x30000f) AM_WRITE(SMH_RAM) AM_BASE(&deco16_pf12_control)
+ AM_RANGE(0x300000, 0x30000f) AM_WRITEONLY AM_BASE(&deco16_pf12_control)
AM_RANGE(0x320000, 0x320fff) AM_RAM_WRITE(deco16_pf1_data_w) AM_BASE(&deco16_pf1_data)
AM_RANGE(0x322000, 0x322fff) AM_RAM_WRITE(deco16_pf2_data_w) AM_BASE(&deco16_pf2_data)
- AM_RANGE(0x340000, 0x3407ff) AM_WRITE(SMH_RAM) AM_BASE(&deco16_pf1_rowscroll) // unused
- AM_RANGE(0x342000, 0x3427ff) AM_WRITE(SMH_RAM) AM_BASE(&deco16_pf2_rowscroll) // unused
+ AM_RANGE(0x340000, 0x3407ff) AM_WRITEONLY AM_BASE(&deco16_pf1_rowscroll) // unused
+ AM_RANGE(0x342000, 0x3427ff) AM_WRITEONLY AM_BASE(&deco16_pf2_rowscroll) // unused
ADDRESS_MAP_END
/******************************************************************************/
diff --git a/src/mame/drivers/tunhunt.c b/src/mame/drivers/tunhunt.c
index fd0f296a49f..0380fe95d22 100644
--- a/src/mame/drivers/tunhunt.c
+++ b/src/mame/drivers/tunhunt.c
@@ -142,24 +142,23 @@ static READ8_DEVICE_HANDLER( dsw2_4r )
static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x03ff) AM_RAM AM_BASE(&tunhunt_ram) /* Work RAM */
- AM_RANGE(0x1080, 0x10ff) AM_WRITE(SMH_RAM)
- AM_RANGE(0x1200, 0x12ff) AM_WRITE(SMH_RAM)
- AM_RANGE(0x1400, 0x14ff) AM_WRITE(SMH_RAM)
- AM_RANGE(0x1600, 0x160f) AM_WRITE(SMH_RAM) AM_BASE_GENERIC(paletteram) /* COLRAM (D7-D4 SHADE; D3-D0 COLOR) */
- AM_RANGE(0x1800, 0x1800) AM_WRITE(SMH_RAM) /* SHEL0H */
- AM_RANGE(0x1a00, 0x1a00) AM_WRITE(SMH_RAM) /* SHEL1H */
- AM_RANGE(0x1c00, 0x1c00) AM_WRITE(SMH_RAM) /* MOBJV */
+ AM_RANGE(0x1080, 0x10ff) AM_WRITEONLY
+ AM_RANGE(0x1200, 0x12ff) AM_WRITEONLY
+ AM_RANGE(0x1400, 0x14ff) AM_WRITEONLY
+ AM_RANGE(0x1600, 0x160f) AM_WRITEONLY AM_BASE_GENERIC(paletteram) /* COLRAM (D7-D4 SHADE; D3-D0 COLOR) */
+ AM_RANGE(0x1800, 0x1800) AM_WRITEONLY /* SHEL0H */
+ AM_RANGE(0x1a00, 0x1a00) AM_WRITEONLY /* SHEL1H */
+ AM_RANGE(0x1c00, 0x1c00) AM_WRITEONLY /* MOBJV */
AM_RANGE(0x1e00, 0x1eff) AM_WRITE(tunhunt_videoram_w) AM_BASE_GENERIC(videoram) /* ALPHA */
AM_RANGE(0x2000, 0x2000) AM_WRITENOP /* watchdog */
AM_RANGE(0x2000, 0x2007) AM_READ(tunhunt_button_r)
AM_RANGE(0x2400, 0x2400) AM_WRITENOP /* INT ACK */
AM_RANGE(0x2800, 0x2800) AM_WRITE(tunhunt_control_w)
- AM_RANGE(0x2c00, 0x2fff) AM_WRITE(SMH_RAM) AM_BASE_GENERIC(spriteram)
+ AM_RANGE(0x2c00, 0x2fff) AM_WRITEONLY AM_BASE_GENERIC(spriteram)
AM_RANGE(0x3000, 0x300f) AM_DEVREADWRITE("pokey1", pokey_r, pokey_w)
AM_RANGE(0x4000, 0x400f) AM_DEVREADWRITE("pokey2", pokey_r, pokey_w)
- AM_RANGE(0x5000, 0x7fff) AM_READ(SMH_ROM)
- AM_RANGE(0xfffa, 0xffff) AM_READ(SMH_ROM)
- AM_RANGE(0x5000, 0xffff) AM_WRITE(SMH_ROM)
+ AM_RANGE(0x5000, 0x7fff) AM_ROM
+ AM_RANGE(0xfffa, 0xffff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/tutankhm.c b/src/mame/drivers/tutankhm.c
index 8387977f3ff..06a6992f2e3 100644
--- a/src/mame/drivers/tutankhm.c
+++ b/src/mame/drivers/tutankhm.c
@@ -110,7 +110,7 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x81a0, 0x81a0) AM_MIRROR(0x000f) AM_READ_PORT("IN1") /* IN1: Player 1 I/O */
AM_RANGE(0x81c0, 0x81c0) AM_MIRROR(0x000f) AM_READ_PORT("IN2") /* IN2: Player 2 I/O */
AM_RANGE(0x81e0, 0x81e0) AM_MIRROR(0x000f) AM_READ_PORT("DSW1") /* DSW1 (inverted bits) */
- AM_RANGE(0x8200, 0x8200) AM_MIRROR(0x00f8) AM_READWRITE(SMH_NOP, irq_enable_w)
+ AM_RANGE(0x8200, 0x8200) AM_MIRROR(0x00f8) AM_READNOP AM_WRITE(irq_enable_w)
AM_RANGE(0x8202, 0x8203) AM_MIRROR(0x00f8) AM_WRITE(tutankhm_coin_counter_w)
AM_RANGE(0x8205, 0x8205) AM_MIRROR(0x00f8) AM_WRITE(sound_mute_w)
AM_RANGE(0x8206, 0x8206) AM_MIRROR(0x00f8) AM_WRITE(tutankhm_flip_screen_x_w)
diff --git a/src/mame/drivers/twin16.c b/src/mame/drivers/twin16.c
index 0b7ca397882..203221eada7 100644
--- a/src/mame/drivers/twin16.c
+++ b/src/mame/drivers/twin16.c
@@ -76,8 +76,8 @@ int twin16_spriteram_process_enable( void )
/******************************************************************************************/
-#define COMRAM_r "COMRAM"
-#define COMRAM_w "COMRAM"
+#define COMRAM_r "comram"
+#define COMRAM_w "comram"
/* Read/Write Handlers */
diff --git a/src/mame/drivers/unico.c b/src/mame/drivers/unico.c
index 9bb9754ebeb..30e702dacd5 100644
--- a/src/mame/drivers/unico.c
+++ b/src/mame/drivers/unico.c
@@ -65,12 +65,12 @@ static ADDRESS_MAP_START( burglarx_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x80001a, 0x80001b) AM_READ_PORT("DSW1")
AM_RANGE(0x80001c, 0x80001d) AM_READ_PORT("DSW2")
AM_RANGE(0x800030, 0x800031) AM_WRITENOP // ? 0
- AM_RANGE(0x80010c, 0x80010d) AM_WRITE(SMH_RAM) AM_BASE(&unico_scrollx_0) // Scroll
- AM_RANGE(0x80010e, 0x80010f) AM_WRITE(SMH_RAM) AM_BASE(&unico_scrolly_0) //
- AM_RANGE(0x800110, 0x800111) AM_WRITE(SMH_RAM) AM_BASE(&unico_scrolly_2) //
- AM_RANGE(0x800114, 0x800115) AM_WRITE(SMH_RAM) AM_BASE(&unico_scrollx_2) //
- AM_RANGE(0x800116, 0x800117) AM_WRITE(SMH_RAM) AM_BASE(&unico_scrollx_1) //
- AM_RANGE(0x800120, 0x800121) AM_WRITE(SMH_RAM) AM_BASE(&unico_scrolly_1) //
+ AM_RANGE(0x80010c, 0x80010d) AM_WRITEONLY AM_BASE(&unico_scrollx_0) // Scroll
+ AM_RANGE(0x80010e, 0x80010f) AM_WRITEONLY AM_BASE(&unico_scrolly_0) //
+ AM_RANGE(0x800110, 0x800111) AM_WRITEONLY AM_BASE(&unico_scrolly_2) //
+ AM_RANGE(0x800114, 0x800115) AM_WRITEONLY AM_BASE(&unico_scrollx_2) //
+ AM_RANGE(0x800116, 0x800117) AM_WRITEONLY AM_BASE(&unico_scrollx_1) //
+ AM_RANGE(0x800120, 0x800121) AM_WRITEONLY AM_BASE(&unico_scrolly_1) //
AM_RANGE(0x800188, 0x800189) AM_DEVREADWRITE8("oki", okim6295_r, okim6295_w, 0x00ff) // Sound
AM_RANGE(0x80018a, 0x80018b) AM_DEVWRITE8("ymsnd", ym3812_write_port_w, 0xff00 ) //
AM_RANGE(0x80018c, 0x80018d) AM_DEVREADWRITE8("ymsnd", ym3812_status_port_r, ym3812_control_port_w, 0xff00 ) //
@@ -156,12 +156,12 @@ static ADDRESS_MAP_START( zeropnt_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x800018, 0x800019) AM_READ_PORT("INPUTS")
AM_RANGE(0x80001a, 0x80001b) AM_READ_PORT("DSW1")
AM_RANGE(0x80001c, 0x80001d) AM_READ_PORT("DSW2")
- AM_RANGE(0x80010c, 0x80010d) AM_WRITE(SMH_RAM) AM_BASE(&unico_scrollx_0 ) // Scroll
- AM_RANGE(0x80010e, 0x80010f) AM_WRITE(SMH_RAM) AM_BASE(&unico_scrolly_0 ) //
- AM_RANGE(0x800110, 0x800111) AM_WRITE(SMH_RAM) AM_BASE(&unico_scrolly_2 ) //
- AM_RANGE(0x800114, 0x800115) AM_WRITE(SMH_RAM) AM_BASE(&unico_scrollx_2 ) //
- AM_RANGE(0x800116, 0x800117) AM_WRITE(SMH_RAM) AM_BASE(&unico_scrollx_1 ) //
- AM_RANGE(0x800120, 0x800121) AM_WRITE(SMH_RAM) AM_BASE(&unico_scrolly_1 ) //
+ AM_RANGE(0x80010c, 0x80010d) AM_WRITEONLY AM_BASE(&unico_scrollx_0 ) // Scroll
+ AM_RANGE(0x80010e, 0x80010f) AM_WRITEONLY AM_BASE(&unico_scrolly_0 ) //
+ AM_RANGE(0x800110, 0x800111) AM_WRITEONLY AM_BASE(&unico_scrolly_2 ) //
+ AM_RANGE(0x800114, 0x800115) AM_WRITEONLY AM_BASE(&unico_scrollx_2 ) //
+ AM_RANGE(0x800116, 0x800117) AM_WRITEONLY AM_BASE(&unico_scrollx_1 ) //
+ AM_RANGE(0x800120, 0x800121) AM_WRITEONLY AM_BASE(&unico_scrolly_1 ) //
AM_RANGE(0x800170, 0x800171) AM_READ(unico_guny_0_msb_r ) // Light Guns
AM_RANGE(0x800174, 0x800175) AM_READ(unico_gunx_0_msb_r ) //
AM_RANGE(0x800178, 0x800179) AM_READ(unico_guny_1_msb_r ) //
@@ -170,7 +170,7 @@ static ADDRESS_MAP_START( zeropnt_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x80018a, 0x80018b) AM_DEVWRITE8("ymsnd", ym3812_write_port_w, 0xff00 ) //
AM_RANGE(0x80018c, 0x80018d) AM_DEVREADWRITE8("ymsnd", ym3812_status_port_r, ym3812_control_port_w, 0xff00 ) //
AM_RANGE(0x80018e, 0x80018f) AM_WRITE(zeropnt_sound_bank_w ) //
- AM_RANGE(0x8001e0, 0x8001e1) AM_WRITE(SMH_RAM ) // ? IRQ Ack
+ AM_RANGE(0x8001e0, 0x8001e1) AM_WRITEONLY // ? IRQ Ack
AM_RANGE(0x904000, 0x907fff) AM_RAM_WRITE(unico_vram_1_w) AM_BASE(&unico_vram_1 ) // Layers
AM_RANGE(0x908000, 0x90bfff) AM_RAM_WRITE(unico_vram_2_w) AM_BASE(&unico_vram_2 ) //
AM_RANGE(0x90c000, 0x90ffff) AM_RAM_WRITE(unico_vram_0_w) AM_BASE(&unico_vram_0 ) //
@@ -236,7 +236,7 @@ static ADDRESS_MAP_START( zeropnt2_map, ADDRESS_SPACE_PROGRAM, 32 )
AM_RANGE(0x800030, 0x800033) AM_DEVREADWRITE8("oki2", okim6295_r, okim6295_w, 0x00ff0000 ) //
AM_RANGE(0x800034, 0x800037) AM_WRITE(zeropnt2_sound_bank_w ) //
AM_RANGE(0x800038, 0x80003b) AM_WRITE(zeropnt2_leds_w ) // ?
- AM_RANGE(0x80010c, 0x800123) AM_WRITE(SMH_RAM) AM_BASE(&unico_scroll32 ) // Scroll
+ AM_RANGE(0x80010c, 0x800123) AM_WRITEONLY AM_BASE(&unico_scroll32 ) // Scroll
AM_RANGE(0x800140, 0x800143) AM_READ(zeropnt2_guny_0_msb_r ) // Light Guns
AM_RANGE(0x800144, 0x800147) AM_READ(zeropnt2_gunx_0_msb_r ) //
AM_RANGE(0x800148, 0x80014b) AM_READ(zeropnt2_guny_1_msb_r ) //
diff --git a/src/mame/drivers/upscope.c b/src/mame/drivers/upscope.c
index 70e3915ffd0..3a254374f5a 100644
--- a/src/mame/drivers/upscope.c
+++ b/src/mame/drivers/upscope.c
@@ -93,7 +93,7 @@ static WRITE8_DEVICE_HANDLER( upscope_cia_0_porta_w )
else
/* overlay enabled, map Amiga system ROM on 0x000000 */
- memory_install_write16_handler(cputag_get_address_space(device->machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x000000, 0x07ffff, 0, 0, (write16_space_func)SMH_UNMAP);
+ memory_unmap_write(cputag_get_address_space(device->machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x000000, 0x07ffff, 0, 0);
}
diff --git a/src/mame/drivers/vaportra.c b/src/mame/drivers/vaportra.c
index 32b0fd188e9..7144b4977f0 100644
--- a/src/mame/drivers/vaportra.c
+++ b/src/mame/drivers/vaportra.c
@@ -58,10 +58,10 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x100000, 0x10000f) AM_READ(vaportra_control_r)
AM_RANGE(0x200000, 0x201fff) AM_RAM_WRITE(deco16_pf3_data_w) AM_BASE(&deco16_pf3_data)
AM_RANGE(0x202000, 0x203fff) AM_RAM_WRITE(deco16_pf4_data_w) AM_BASE(&deco16_pf4_data)
- AM_RANGE(0x240000, 0x24000f) AM_WRITE(SMH_RAM) AM_BASE(&deco16_pf34_control)
+ AM_RANGE(0x240000, 0x24000f) AM_WRITEONLY AM_BASE(&deco16_pf34_control)
AM_RANGE(0x280000, 0x281fff) AM_RAM_WRITE(deco16_pf1_data_w) AM_BASE(&deco16_pf1_data)
AM_RANGE(0x282000, 0x283fff) AM_RAM_WRITE(deco16_pf2_data_w) AM_BASE(&deco16_pf2_data)
- AM_RANGE(0x2c0000, 0x2c000f) AM_WRITE(SMH_RAM) AM_BASE(&deco16_pf12_control)
+ AM_RANGE(0x2c0000, 0x2c000f) AM_WRITEONLY AM_BASE(&deco16_pf12_control)
AM_RANGE(0x300000, 0x3009ff) AM_RAM_WRITE(vaportra_palette_24bit_rg_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x304000, 0x3049ff) AM_RAM_WRITE(vaportra_palette_24bit_b_w) AM_BASE_GENERIC(paletteram2)
AM_RANGE(0x308000, 0x308001) AM_NOP
diff --git a/src/mame/drivers/vastar.c b/src/mame/drivers/vastar.c
index 55733812444..01b122c521b 100644
--- a/src/mame/drivers/vastar.c
+++ b/src/mame/drivers/vastar.c
@@ -109,18 +109,18 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x9000, 0x9fff) AM_READWRITE(vastar_bg1videoram_r, vastar_bg1videoram_w) AM_BASE_MEMBER(vastar_state,bg1videoram)
AM_RANGE(0xa000, 0xafff) AM_READWRITE(vastar_bg2videoram_r, vastar_bg2videoram_w) /* mirror address */
AM_RANGE(0xb000, 0xbfff) AM_READWRITE(vastar_bg1videoram_r, vastar_bg1videoram_w) /* mirror address */
- AM_RANGE(0xc000, 0xc000) AM_WRITE(SMH_RAM) AM_BASE_MEMBER(vastar_state,sprite_priority) /* sprite/BG priority */
+ AM_RANGE(0xc000, 0xc000) AM_WRITEONLY AM_BASE_MEMBER(vastar_state,sprite_priority) /* sprite/BG priority */
AM_RANGE(0xc400, 0xcfff) AM_RAM_WRITE(vastar_fgvideoram_w) AM_BASE_MEMBER(vastar_state,fgvideoram)
AM_RANGE(0xe000, 0xe000) AM_READWRITE(watchdog_reset_r, watchdog_reset_w)
AM_RANGE(0xf000, 0xf0ff) AM_READWRITE(vastar_sharedram_r, vastar_sharedram_w) AM_BASE_MEMBER(vastar_state,sharedram)
AM_RANGE(0xf100, 0xf7ff) AM_RAM
/* in hidden portions of video RAM: (fallthrough) */
- AM_RANGE(0xc400, 0xc43f) AM_WRITE(SMH_RAM) AM_BASE_MEMBER(vastar_state,spriteram1) /* actually c410-c41f and c430-c43f */
- AM_RANGE(0xc7c0, 0xc7df) AM_WRITE(SMH_RAM) AM_BASE_MEMBER(vastar_state,bg1_scroll)
- AM_RANGE(0xc7e0, 0xc7ff) AM_WRITE(SMH_RAM) AM_BASE_MEMBER(vastar_state,bg2_scroll)
- AM_RANGE(0xc800, 0xc83f) AM_WRITE(SMH_RAM) AM_BASE_MEMBER(vastar_state,spriteram2) /* actually c810-c81f and c830-c83f */
- AM_RANGE(0xcc00, 0xcc3f) AM_WRITE(SMH_RAM) AM_BASE_MEMBER(vastar_state,spriteram3) /* actually cc10-cc1f and cc30-cc3f */
+ AM_RANGE(0xc400, 0xc43f) AM_WRITEONLY AM_BASE_MEMBER(vastar_state,spriteram1) /* actually c410-c41f and c430-c43f */
+ AM_RANGE(0xc7c0, 0xc7df) AM_WRITEONLY AM_BASE_MEMBER(vastar_state,bg1_scroll)
+ AM_RANGE(0xc7e0, 0xc7ff) AM_WRITEONLY AM_BASE_MEMBER(vastar_state,bg2_scroll)
+ AM_RANGE(0xc800, 0xc83f) AM_WRITEONLY AM_BASE_MEMBER(vastar_state,spriteram2) /* actually c810-c81f and c830-c83f */
+ AM_RANGE(0xcc00, 0xcc3f) AM_WRITEONLY AM_BASE_MEMBER(vastar_state,spriteram3) /* actually cc10-cc1f and cc30-cc3f */
ADDRESS_MAP_END
static ADDRESS_MAP_START( main_port_map, ADDRESS_SPACE_IO, 8 )
diff --git a/src/mame/drivers/vball.c b/src/mame/drivers/vball.c
index 417d5d05439..82741123837 100644
--- a/src/mame/drivers/vball.c
+++ b/src/mame/drivers/vball.c
@@ -222,7 +222,7 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x100a, 0x100b) AM_WRITE(vball_irq_ack_w) /* is there a scanline counter here? */
AM_RANGE(0x100c, 0x100c) AM_WRITE(vb_scrollx_lo_w)
AM_RANGE(0x100d, 0x100d) AM_WRITE(cpu_sound_command_w)
- AM_RANGE(0x100e, 0x100e) AM_WRITE(SMH_RAM) AM_BASE(&vb_scrolly_lo)
+ AM_RANGE(0x100e, 0x100e) AM_WRITEONLY AM_BASE(&vb_scrolly_lo)
AM_RANGE(0x2000, 0x2fff) AM_WRITE(vb_videoram_w) AM_BASE(&vb_videoram)
AM_RANGE(0x3000, 0x3fff) AM_WRITE(vb_attrib_w) AM_BASE(&vb_attribram)
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank1")
diff --git a/src/mame/drivers/vegas.c b/src/mame/drivers/vegas.c
index ce87cc000a2..c13aabae27a 100644
--- a/src/mame/drivers/vegas.c
+++ b/src/mame/drivers/vegas.c
@@ -310,6 +310,8 @@
#define MAX_DYNAMIC_ADDRESSES 32
+#define NOP_HANDLER ((read32_space_func)-1)
+
/*************************************
@@ -1557,7 +1559,7 @@ static void remap_dynamic_addresses(running_machine *machine)
/* unmap everything we know about */
for (addr = 0; addr < dynamic_count; addr++)
- memory_install_readwrite32_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), dynamic[addr].start, dynamic[addr].end, 0, 0, (read32_space_func)SMH_UNMAP, (write32_space_func)SMH_UNMAP);
+ memory_unmap_readwrite(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), dynamic[addr].start, dynamic[addr].end, 0, 0);
/* the build the list of stuff */
dynamic_count = 0;
@@ -1571,7 +1573,7 @@ static void remap_dynamic_addresses(running_machine *machine)
add_dynamic_address(base + 0x2000, base + 0x2003, sio_irq_cause_r, NULL);
add_dynamic_address(base + 0x3000, base + 0x3003, sio_irq_status_r, NULL);
add_dynamic_address(base + 0x4000, base + 0x4003, sio_led_r, sio_led_w);
- add_dynamic_address(base + 0x5000, base + 0x5007, (read32_space_func)SMH_NOP, NULL);
+ add_dynamic_address(base + 0x5000, base + 0x5007, NOP_HANDLER, NULL);
add_dynamic_address(base + 0x6000, base + 0x6003, NULL, cmos_unlock_w);
add_dynamic_address(base + 0x7000, base + 0x7003, NULL, vegas_watchdog_w);
}
@@ -1676,8 +1678,14 @@ static void remap_dynamic_addresses(running_machine *machine)
for (addr = 0; addr < dynamic_count; addr++)
{
if (LOG_DYNAMIC) logerror(" installing: %08X-%08X %s,%s\n", dynamic[addr].start, dynamic[addr].end, dynamic[addr].rdname, dynamic[addr].wrname);
- if (dynamic[addr].mread != NULL || dynamic[addr].mwrite != NULL)
- _memory_install_handler32(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), dynamic[addr].start, dynamic[addr].end, 0, 0, dynamic[addr].mread, dynamic[addr].mwrite, dynamic[addr].rdname, dynamic[addr].wrname);
+
+ if (dynamic[addr].mread == NOP_HANDLER)
+ memory_nop_read(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), dynamic[addr].start, dynamic[addr].end, 0, 0);
+ else if (dynamic[addr].mread != NULL)
+ _memory_install_handler32(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), dynamic[addr].start, dynamic[addr].end, 0, 0, dynamic[addr].mread, NULL, dynamic[addr].rdname, NULL);
+ if (dynamic[addr].mwrite != NULL)
+ _memory_install_handler32(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), dynamic[addr].start, dynamic[addr].end, 0, 0, NULL, dynamic[addr].mwrite, NULL, dynamic[addr].wrname);
+
if (dynamic[addr].dread != NULL || dynamic[addr].dwrite != NULL)
_memory_install_device_handler32(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), dynamic[addr].device, dynamic[addr].start, dynamic[addr].end, 0, 0, dynamic[addr].dread, dynamic[addr].dwrite, dynamic[addr].rdname, dynamic[addr].wrname);
}
diff --git a/src/mame/drivers/vicdual.c b/src/mame/drivers/vicdual.c
index f8f5c75fdad..50f592cfce3 100644
--- a/src/mame/drivers/vicdual.c
+++ b/src/mame/drivers/vicdual.c
@@ -2014,7 +2014,7 @@ static WRITE8_HANDLER( samurai_io_w )
/* dual game hardware */
static ADDRESS_MAP_START( samurai_map, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x3fff) AM_MIRROR(0x4000) AM_READWRITE(SMH_ROM, samurai_protection_w)
+ AM_RANGE(0x0000, 0x3fff) AM_MIRROR(0x4000) AM_ROM AM_WRITE(samurai_protection_w)
AM_RANGE(0x8000, 0x83ff) AM_MIRROR(0x7000) AM_RAM_WRITE(vicdual_videoram_w) AM_BASE(&vicdual_videoram)
AM_RANGE(0x8400, 0x87ff) AM_MIRROR(0x7000) AM_RAM
AM_RANGE(0x8800, 0x8fff) AM_MIRROR(0x7000) AM_RAM_WRITE(vicdual_characterram_w) AM_BASE(&vicdual_characterram)
diff --git a/src/mame/drivers/videopin.c b/src/mame/drivers/videopin.c
index 2929a14474e..aafd92b9937 100644
--- a/src/mame/drivers/videopin.c
+++ b/src/mame/drivers/videopin.c
@@ -206,7 +206,7 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x1000, 0x1000) AM_READ_PORT("IN0")
AM_RANGE(0x1800, 0x1800) AM_READ_PORT("DSW")
AM_RANGE(0x2000, 0x3fff) AM_ROM
- AM_RANGE(0xe000, 0xffff) AM_READ(SMH_ROM) /* mirror for 6502 vectors */
+ AM_RANGE(0xe000, 0xffff) AM_ROM /* mirror for 6502 vectors */
ADDRESS_MAP_END
diff --git a/src/mame/drivers/vigilant.c b/src/mame/drivers/vigilant.c
index a69c32c6f52..da337c57840 100644
--- a/src/mame/drivers/vigilant.c
+++ b/src/mame/drivers/vigilant.c
@@ -74,7 +74,7 @@ static WRITE8_HANDLER( kikcubic_coin_w )
static ADDRESS_MAP_START( vigilant_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1") /* Fallthrough */
AM_RANGE(0x0000, 0x7fff) AM_ROM
- AM_RANGE(0xc020, 0xc0df) AM_RAM_WRITE(SMH_RAM) AM_BASE_SIZE_GENERIC(spriteram)
+ AM_RANGE(0xc020, 0xc0df) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0xc800, 0xcfff) AM_RAM_WRITE(vigilant_paletteram_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0xd000, 0xdfff) AM_RAM AM_BASE_GENERIC(videoram) AM_SIZE_GENERIC(videoram)
AM_RANGE(0xe000, 0xefff) AM_RAM
@@ -97,7 +97,7 @@ static ADDRESS_MAP_START( kikcubic_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xc000, 0xc0ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0xc800, 0xcaff) AM_RAM_WRITE(vigilant_paletteram_w) AM_BASE_GENERIC(paletteram)
- AM_RANGE(0xd000, 0xdfff) AM_RAM_WRITE(SMH_RAM) AM_BASE_GENERIC(videoram) AM_SIZE_GENERIC(videoram)
+ AM_RANGE(0xd000, 0xdfff) AM_RAM AM_BASE_GENERIC(videoram) AM_SIZE_GENERIC(videoram)
AM_RANGE(0xe000, 0xffff) AM_RAM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/vmetal.c b/src/mame/drivers/vmetal.c
index 4fd843e7744..89c885ede8c 100644
--- a/src/mame/drivers/vmetal.c
+++ b/src/mame/drivers/vmetal.c
@@ -221,12 +221,12 @@ static ADDRESS_MAP_START( varia_program_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x160000, 0x16ffff) AM_READ(varia_crom_read) // cgrom read window ..
- AM_RANGE(0x170000, 0x173fff) AM_READWRITE(SMH_RAM,paletteram16_GGGGGRRRRRBBBBBx_word_w) AM_BASE_GENERIC(paletteram) // Palette
+ AM_RANGE(0x170000, 0x173fff) AM_RAM_WRITE(paletteram16_GGGGGRRRRRBBBBBx_word_w) AM_BASE_GENERIC(paletteram) // Palette
AM_RANGE(0x174000, 0x174fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
AM_RANGE(0x175000, 0x177fff) AM_RAM
AM_RANGE(0x178000, 0x1787ff) AM_RAM AM_BASE(&vmetal_tlookup)
AM_RANGE(0x178800, 0x1796ff) AM_RAM AM_BASE(&vmetal_videoregs)
- AM_RANGE(0x179700, 0x179713) AM_WRITE(SMH_RAM) AM_BASE(&metro_videoregs ) // Video Registers
+ AM_RANGE(0x179700, 0x179713) AM_WRITEONLY AM_BASE(&metro_videoregs ) // Video Registers
AM_RANGE(0x200000, 0x200001) AM_READ_PORT("P1_P2") AM_DEVWRITE8("essnd", vmetal_control_w, 0x00ff)
AM_RANGE(0x200002, 0x200003) AM_READ_PORT("SYSTEM")
diff --git a/src/mame/drivers/vulgus.c b/src/mame/drivers/vulgus.c
index 88b2afca8c0..4f374007d71 100644
--- a/src/mame/drivers/vulgus.c
+++ b/src/mame/drivers/vulgus.c
@@ -89,7 +89,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x4000, 0x47ff) AM_RAM
- AM_RANGE(0x4000, 0x47ff) AM_WRITE(SMH_RAM)
+ AM_RANGE(0x4000, 0x47ff) AM_WRITEONLY
AM_RANGE(0x6000, 0x6000) AM_READ(soundlatch_r)
AM_RANGE(0x8000, 0x8001) AM_DEVWRITE("ay1", ay8910_address_data_w)
AM_RANGE(0xc000, 0xc001) AM_DEVWRITE("ay2", ay8910_address_data_w)
diff --git a/src/mame/drivers/warriorb.c b/src/mame/drivers/warriorb.c
index 74349f494dc..806f38653c3 100644
--- a/src/mame/drivers/warriorb.c
+++ b/src/mame/drivers/warriorb.c
@@ -252,7 +252,7 @@ static ADDRESS_MAP_START( z80_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank10")
AM_RANGE(0xc000, 0xdfff) AM_RAM
AM_RANGE(0xe000, 0xe003) AM_DEVREADWRITE("ymsnd", ym2610_r, ym2610_w)
- AM_RANGE(0xe200, 0xe200) AM_READWRITE(SMH_NOP, taitosound_slave_port_w)
+ AM_RANGE(0xe200, 0xe200) AM_READNOP AM_WRITE(taitosound_slave_port_w)
AM_RANGE(0xe201, 0xe201) AM_READWRITE(taitosound_slave_comm_r, taitosound_slave_comm_w)
AM_RANGE(0xe400, 0xe403) AM_WRITE(warriorb_pancontrol) /* pan */
AM_RANGE(0xea00, 0xea00) AM_READNOP
diff --git a/src/mame/drivers/wecleman.c b/src/mame/drivers/wecleman.c
index 960d1de5e37..476022a7272 100644
--- a/src/mame/drivers/wecleman.c
+++ b/src/mame/drivers/wecleman.c
@@ -554,7 +554,7 @@ static ADDRESS_MAP_START( wecleman_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x140012, 0x140013) AM_READ_PORT("IN1") // ??
AM_RANGE(0x140014, 0x140015) AM_READ_PORT("DSWA") // DSW 2
AM_RANGE(0x140016, 0x140017) AM_READ_PORT("DSWB") // DSW 1
- AM_RANGE(0x140020, 0x140021) AM_WRITE(SMH_RAM) // Paired with writes to $140003
+ AM_RANGE(0x140020, 0x140021) AM_WRITEONLY // Paired with writes to $140003
AM_RANGE(0x140020, 0x140021) AM_READ(selected_ip_r) // Accelerator or Wheel or ..
AM_RANGE(0x140030, 0x140031) AM_WRITENOP // toggles between 0 & 1 on hitting bumps and crashes (vibration?)
ADDRESS_MAP_END
@@ -616,7 +616,7 @@ static ADDRESS_MAP_START( hotchase_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x140012, 0x140013) AM_READ_PORT("IN1") // ?? bit 4 from sound cpu
AM_RANGE(0x140014, 0x140015) AM_READ_PORT("DSW2") // DSW 2
AM_RANGE(0x140016, 0x140017) AM_READ_PORT("DSW1") // DSW 1
- AM_RANGE(0x140020, 0x140021) AM_READWRITE(selected_ip_r, SMH_NOP) // Paired with writes to $140003
+ AM_RANGE(0x140020, 0x140021) AM_READ(selected_ip_r) AM_WRITENOP // Paired with writes to $140003
AM_RANGE(0x140022, 0x140023) AM_READNOP // ??
AM_RANGE(0x140030, 0x140031) AM_WRITENOP // signal to cabinet vibration motors?
ADDRESS_MAP_END
diff --git a/src/mame/drivers/wgp.c b/src/mame/drivers/wgp.c
index 74e7d298c58..a84306af053 100644
--- a/src/mame/drivers/wgp.c
+++ b/src/mame/drivers/wgp.c
@@ -677,8 +677,8 @@ static ADDRESS_MAP_START( cpu2_map, ADDRESS_SPACE_PROGRAM, 16 ) /* LAN areas not
AM_RANGE(0x100000, 0x103fff) AM_RAM
AM_RANGE(0x140000, 0x143fff) AM_READWRITE(sharedram_r,sharedram_w)
AM_RANGE(0x200000, 0x200003) AM_READWRITE(wgp_sound_r,wgp_sound_w)
-// AM_RANGE(0x380000, 0x383fff) AM_READ(SMH_RAM) // LAN RAM
-// AM_RANGE(0x380000, 0x383fff) AM_WRITE(SMH_RAM) // LAN RAM
+// AM_RANGE(0x380000, 0x383fff) AM_READONLY // LAN RAM
+// AM_RANGE(0x380000, 0x383fff) AM_WRITEONLY // LAN RAM
AM_RANGE(0x380000, 0x380001) AM_READ(lan_status_r) // ??
// a lan input area is read somewhere above the status
// (make the status return 0 and log)...
@@ -692,7 +692,7 @@ static ADDRESS_MAP_START( z80_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xc000, 0xdfff) AM_RAM
AM_RANGE(0xe000, 0xe003) AM_DEVREADWRITE("ymsnd", ym2610_r, ym2610_w)
- AM_RANGE(0xe200, 0xe200) AM_READWRITE(SMH_NOP,taitosound_slave_port_w)
+ AM_RANGE(0xe200, 0xe200) AM_READNOP AM_WRITE(taitosound_slave_port_w)
AM_RANGE(0xe201, 0xe201) AM_READWRITE(taitosound_slave_comm_r,taitosound_slave_comm_w)
AM_RANGE(0xe400, 0xe403) AM_WRITENOP /* pan */
AM_RANGE(0xea00, 0xea00) AM_READNOP
diff --git a/src/mame/drivers/williams.c b/src/mame/drivers/williams.c
index 0801ae55d79..481509a6dd1 100644
--- a/src/mame/drivers/williams.c
+++ b/src/mame/drivers/williams.c
@@ -548,9 +548,9 @@ void defender_install_io_space(const address_space *space)
*************************************/
static ADDRESS_MAP_START( williams_map, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x8fff) AM_READ_BANK("bank1") AM_WRITE(SMH_RAM) AM_BASE(&williams_videoram)
+ AM_RANGE(0x0000, 0x8fff) AM_READ_BANK("bank1") AM_WRITEONLY AM_BASE(&williams_videoram)
AM_RANGE(0x9000, 0xbfff) AM_RAM
- AM_RANGE(0xc000, 0xc00f) AM_MIRROR(0x03f0) AM_WRITE(SMH_RAM) AM_BASE_GENERIC(paletteram)
+ AM_RANGE(0xc000, 0xc00f) AM_MIRROR(0x03f0) AM_WRITEONLY AM_BASE_GENERIC(paletteram)
AM_RANGE(0xc804, 0xc807) AM_MIRROR(0x00f0) AM_DEVREADWRITE("pia_0", pia6821_r, pia6821_w)
AM_RANGE(0xc80c, 0xc80f) AM_MIRROR(0x00f0) AM_DEVREADWRITE("pia_1", pia6821_r, pia6821_w)
AM_RANGE(0xc900, 0xc9ff) AM_WRITE(williams_vram_select_w)
@@ -563,9 +563,9 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( williams_extra_ram_map, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x8fff) AM_READ_BANK("bank1") AM_WRITE(SMH_RAM) AM_BASE(&williams_videoram)
+ AM_RANGE(0x0000, 0x8fff) AM_READ_BANK("bank1") AM_WRITEONLY AM_BASE(&williams_videoram)
AM_RANGE(0x9000, 0xbfff) AM_RAM
- AM_RANGE(0xc000, 0xc00f) AM_MIRROR(0x03f0) AM_WRITE(SMH_RAM) AM_BASE_GENERIC(paletteram)
+ AM_RANGE(0xc000, 0xc00f) AM_MIRROR(0x03f0) AM_WRITEONLY AM_BASE_GENERIC(paletteram)
AM_RANGE(0xc804, 0xc807) AM_MIRROR(0x00f0) AM_DEVREADWRITE("pia_0", pia6821_r, pia6821_w)
AM_RANGE(0xc80c, 0xc80f) AM_MIRROR(0x00f0) AM_DEVREADWRITE("pia_1", pia6821_r, pia6821_w)
AM_RANGE(0xc900, 0xc9ff) AM_WRITE(sinistar_vram_select_w)
@@ -586,12 +586,12 @@ ADDRESS_MAP_END
*************************************/
static ADDRESS_MAP_START( blaster_map, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x3fff) AM_READ_BANK("bank1") AM_WRITE(SMH_RAM) AM_BASE(&williams_videoram)
- AM_RANGE(0x4000, 0x8fff) AM_READ_BANK("bank2") AM_WRITE(SMH_RAM)
- AM_RANGE(0xbb00, 0xbbff) AM_WRITE(SMH_RAM) AM_BASE(&blaster_palette_0)
- AM_RANGE(0xbc00, 0xbcff) AM_WRITE(SMH_RAM) AM_BASE(&blaster_scanline_control)
+ AM_RANGE(0x0000, 0x3fff) AM_READ_BANK("bank1") AM_WRITEONLY AM_BASE(&williams_videoram)
+ AM_RANGE(0x4000, 0x8fff) AM_READ_BANK("bank2") AM_WRITEONLY
+ AM_RANGE(0xbb00, 0xbbff) AM_WRITEONLY AM_BASE(&blaster_palette_0)
+ AM_RANGE(0xbc00, 0xbcff) AM_WRITEONLY AM_BASE(&blaster_scanline_control)
AM_RANGE(0x9000, 0xbfff) AM_RAM
- AM_RANGE(0xc000, 0xc00f) AM_MIRROR(0x03f0) AM_WRITE(SMH_RAM) AM_BASE_GENERIC(paletteram)
+ AM_RANGE(0xc000, 0xc00f) AM_MIRROR(0x03f0) AM_WRITEONLY AM_BASE_GENERIC(paletteram)
AM_RANGE(0xc804, 0xc807) AM_MIRROR(0x00f0) AM_DEVREADWRITE("pia_0", pia6821_r, pia6821_w)
AM_RANGE(0xc80c, 0xc80f) AM_MIRROR(0x00f0) AM_DEVREADWRITE("pia_1", pia6821_r, pia6821_w)
AM_RANGE(0xc900, 0xc93f) AM_WRITE(blaster_vram_select_w)
@@ -614,7 +614,7 @@ ADDRESS_MAP_END
*************************************/
static ADDRESS_MAP_START( williams2_map, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x7fff) AM_READ_BANK("bank1") AM_WRITE(SMH_RAM) AM_BASE(&williams_videoram)
+ AM_RANGE(0x0000, 0x7fff) AM_READ_BANK("bank1") AM_WRITEONLY AM_BASE(&williams_videoram)
AM_RANGE(0x8000, 0xbfff) AM_RAM
AM_RANGE(0xc000, 0xc7ff) AM_RAM_WRITE(williams2_tileram_w) AM_BASE(&williams2_tileram)
AM_RANGE(0xc800, 0xc87f) AM_WRITE(williams2_bank_select_w)
@@ -636,7 +636,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( williams2_extra_ram_map, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x7fff) AM_READ_BANK("bank1") AM_WRITE(SMH_RAM) AM_BASE(&williams_videoram)
+ AM_RANGE(0x0000, 0x7fff) AM_READ_BANK("bank1") AM_WRITEONLY AM_BASE(&williams_videoram)
AM_RANGE(0x8000, 0xbfff) AM_RAM
AM_RANGE(0xc000, 0xc7ff) AM_RAM_WRITE(williams2_tileram_w) AM_BASE(&williams2_tileram)
AM_RANGE(0xc800, 0xc87f) AM_WRITE(williams2_bank_select_w)
@@ -2812,14 +2812,14 @@ static DRIVER_INIT( spdball )
static DRIVER_INIT( alienar )
{
CONFIGURE_BLITTER(WILLIAMS_BLITTER_SC01, 0xc000);
- memory_install_write8_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0xcbff, 0xcbff, 0, 0, (write8_space_func)SMH_NOP);
+ memory_nop_write(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0xcbff, 0xcbff, 0, 0);
}
static DRIVER_INIT( alienaru )
{
CONFIGURE_BLITTER(WILLIAMS_BLITTER_SC01, 0xc000);
- memory_install_write8_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0xcbff, 0xcbff, 0, 0, (write8_space_func)SMH_NOP);
+ memory_nop_write(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0xcbff, 0xcbff, 0, 0);
}
diff --git a/src/mame/drivers/wiz.c b/src/mame/drivers/wiz.c
index aa2aed9d1b9..64a0c44eef0 100644
--- a/src/mame/drivers/wiz.c
+++ b/src/mame/drivers/wiz.c
@@ -1086,7 +1086,7 @@ static DRIVER_INIT( stinger )
static DRIVER_INIT( scion )
{
- memory_install_write8_handler(cputag_get_address_space(machine, "audiocpu", ADDRESS_SPACE_PROGRAM), 0x4000, 0x4001, 0, 0, (write8_space_func)SMH_NOP);
+ memory_nop_write(cputag_get_address_space(machine, "audiocpu", ADDRESS_SPACE_PROGRAM), 0x4000, 0x4001, 0, 0);
}
diff --git a/src/mame/drivers/wolfpack.c b/src/mame/drivers/wolfpack.c
index ebd527b8e45..ad1ca45b87b 100644
--- a/src/mame/drivers/wolfpack.c
+++ b/src/mame/drivers/wolfpack.c
@@ -132,7 +132,7 @@ static WRITE8_HANDLER( wolfpack_coldetres_w )
static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x00ff) AM_RAM AM_MIRROR(0x100)
AM_RANGE(0x1000, 0x1000) AM_READ_PORT("INPUTS")
- AM_RANGE(0x1000, 0x10ff) AM_WRITE(SMH_RAM) AM_BASE(&wolfpack_alpha_num_ram)
+ AM_RANGE(0x1000, 0x10ff) AM_WRITEONLY AM_BASE(&wolfpack_alpha_num_ram)
AM_RANGE(0x2000, 0x2000) AM_READ(wolfpack_misc_r)
AM_RANGE(0x2000, 0x2000) AM_WRITE(wolfpack_high_explo_w)
AM_RANGE(0x2001, 0x2001) AM_WRITE(wolfpack_sonar_ping_w)
diff --git a/src/mame/drivers/wrally.c b/src/mame/drivers/wrally.c
index 0904039a8f5..51b83cb1d5d 100644
--- a/src/mame/drivers/wrally.c
+++ b/src/mame/drivers/wrally.c
@@ -104,10 +104,10 @@ static UINT16 *wrally_shareram;
static ADDRESS_MAP_START( wrally_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x000000, 0x0fffff) AM_ROM /* ROM */
- AM_RANGE(0x100000, 0x103fff) AM_READWRITE(SMH_RAM, wrally_vram_w) AM_BASE(&wrally_videoram) /* encrypted Video RAM */
+ AM_RANGE(0x100000, 0x103fff) AM_RAM_WRITE(wrally_vram_w) AM_BASE(&wrally_videoram) /* encrypted Video RAM */
AM_RANGE(0x108000, 0x108007) AM_RAM AM_BASE(&wrally_vregs) /* Video Registers */
AM_RANGE(0x10800c, 0x10800d) AM_WRITENOP /* CLR INT Video */
- AM_RANGE(0x200000, 0x203fff) AM_READWRITE(SMH_RAM, paletteram16_xxxxBBBBRRRRGGGG_word_w) AM_BASE_GENERIC(paletteram) /* Palette */
+ AM_RANGE(0x200000, 0x203fff) AM_RAM_WRITE(paletteram16_xxxxBBBBRRRRGGGG_word_w) AM_BASE_GENERIC(paletteram) /* Palette */
AM_RANGE(0x440000, 0x440fff) AM_RAM AM_BASE(&wrally_spriteram) /* Sprite RAM */
AM_RANGE(0x700000, 0x700001) AM_READ_PORT("DSW")
AM_RANGE(0x700002, 0x700003) AM_READ_PORT("P1_P2")
diff --git a/src/mame/drivers/xexex.c b/src/mame/drivers/xexex.c
index 305127ec823..109e57663e4 100644
--- a/src/mame/drivers/xexex.c
+++ b/src/mame/drivers/xexex.c
@@ -376,7 +376,7 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x100000, 0x17ffff) AM_ROM
AM_RANGE(0x180000, 0x181fff) AM_READWRITE(K056832_ram_word_r, K056832_ram_word_w)
AM_RANGE(0x182000, 0x183fff) AM_READWRITE(K056832_ram_word_r, K056832_ram_word_w)
- AM_RANGE(0x190000, 0x191fff) AM_READWRITE(K056832_rom_word_r, SMH_ROM) // Passthrough to tile roms
+ AM_RANGE(0x190000, 0x191fff) AM_READ(K056832_rom_word_r) // Passthrough to tile roms
AM_RANGE(0x1a0000, 0x1a1fff) AM_READ(K053250_0_rom_r)
AM_RANGE(0x1b0000, 0x1b1fff) AM_RAM_WRITE(paletteram16_xrgb_word_be_w) AM_BASE_GENERIC(paletteram)
diff --git a/src/mame/drivers/xmen.c b/src/mame/drivers/xmen.c
index 43f81826515..f4442e59319 100644
--- a/src/mame/drivers/xmen.c
+++ b/src/mame/drivers/xmen.c
@@ -182,7 +182,6 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank4")
- AM_RANGE(0x8000, 0xbfff) AM_WRITE(SMH_ROM)
AM_RANGE(0xc000, 0xdfff) AM_RAM
AM_RANGE(0xe000, 0xe22f) AM_DEVREADWRITE("konami", k054539_r, k054539_w)
AM_RANGE(0xe800, 0xe801) AM_MIRROR(0x0400) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
@@ -199,7 +198,7 @@ static ADDRESS_MAP_START( 6p_main_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x101000, 0x101fff) AM_RAM
AM_RANGE(0x102000, 0x102fff) AM_RAM AM_BASE(&xmen6p_spriteramright) /* sprites (screen 2) */
AM_RANGE(0x103000, 0x103fff) AM_RAM /* 6p - a buffer? */
- AM_RANGE(0x104000, 0x104fff) AM_READWRITE(SMH_RAM,paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
+ AM_RANGE(0x104000, 0x104fff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x108000, 0x108001) AM_WRITE(eeprom_w)
AM_RANGE(0x108020, 0x108027) AM_WRITE(K053246_word_w) /* sprites */
AM_RANGE(0x10804c, 0x10804d) AM_WRITE(sound_cmd_w)
@@ -216,35 +215,35 @@ static ADDRESS_MAP_START( 6p_main_map, ADDRESS_SPACE_PROGRAM, 16 )
/* AM_RANGE(0x18c000, 0x197fff) AM_WRITE(K052109_lsb_w) AM_BASE(&xmen6p_tilemapleft) */
AM_RANGE(0x18c000, 0x197fff) AM_RAM AM_BASE(&xmen6p_tilemapleft) /* left tilemap (p1,p2,p3 counters) */
/*
- AM_RANGE(0x1ac000, 0x1af7ff) AM_READ(SMH_RAM)
- AM_RANGE(0x1ac000, 0x1af7ff) AM_WRITE(SMH_RAM)
+ AM_RANGE(0x1ac000, 0x1af7ff) AM_READONLY
+ AM_RANGE(0x1ac000, 0x1af7ff) AM_WRITEONLY
- AM_RANGE(0x1b0000, 0x1b37ff) AM_READ(SMH_RAM)
- AM_RANGE(0x1b0000, 0x1b37ff) AM_WRITE(SMH_RAM)
+ AM_RANGE(0x1b0000, 0x1b37ff) AM_READONLY
+ AM_RANGE(0x1b0000, 0x1b37ff) AM_WRITEONLY
- AM_RANGE(0x1b4000, 0x1b77ff) AM_READ(SMH_RAM)
- AM_RANGE(0x1b4000, 0x1b77ff) AM_WRITE(SMH_RAM)
+ AM_RANGE(0x1b4000, 0x1b77ff) AM_READONLY
+ AM_RANGE(0x1b4000, 0x1b77ff) AM_WRITEONLY
*/
AM_RANGE(0x1ac000, 0x1b7fff) AM_RAM AM_BASE(&xmen6p_tilemapright) /* right tilemap */
/* what are the regions below buffers? (used by hw or software?) */
/*
- AM_RANGE(0x1cc000, 0x1cf7ff) AM_READ(SMH_RAM)
- AM_RANGE(0x1cc000, 0x1cf7ff) AM_WRITE(SMH_RAM)
+ AM_RANGE(0x1cc000, 0x1cf7ff) AM_READONLY
+ AM_RANGE(0x1cc000, 0x1cf7ff) AM_WRITEONLY
- AM_RANGE(0x1d0000, 0x1d37ff) AM_READ(SMH_RAM)
- AM_RANGE(0x1d0000, 0x1d37ff) AM_WRITE(SMH_RAM)
+ AM_RANGE(0x1d0000, 0x1d37ff) AM_READONLY
+ AM_RANGE(0x1d0000, 0x1d37ff) AM_WRITEONLY
*/
AM_RANGE(0x1cc000, 0x1d7fff) AM_RAM /* tilemap ? */
/* whats the stuff below, buffers? */
/*
- AM_RANGE(0x1ec000, 0x1ef7ff) AM_READ(SMH_RAM)
- AM_RANGE(0x1ec000, 0x1ef7ff) AM_WRITE(SMH_RAM)
- AM_RANGE(0x1f0000, 0x1f37ff) AM_READ(SMH_RAM)
- AM_RANGE(0x1f0000, 0x1f37ff) AM_WRITE(SMH_RAM)
- AM_RANGE(0x1f4000, 0x1f77ff) AM_READ(SMH_RAM)
- AM_RANGE(0x1f4000, 0x1f77ff) AM_WRITE(SMH_RAM)
+ AM_RANGE(0x1ec000, 0x1ef7ff) AM_READONLY
+ AM_RANGE(0x1ec000, 0x1ef7ff) AM_WRITEONLY
+ AM_RANGE(0x1f0000, 0x1f37ff) AM_READONLY
+ AM_RANGE(0x1f0000, 0x1f37ff) AM_WRITEONLY
+ AM_RANGE(0x1f4000, 0x1f77ff) AM_READONLY
+ AM_RANGE(0x1f4000, 0x1f77ff) AM_WRITEONLY
*/
AM_RANGE(0x1ec000, 0x1f7fff) AM_RAM /* tilemap ? */
ADDRESS_MAP_END
diff --git a/src/mame/drivers/yunsun16.c b/src/mame/drivers/yunsun16.c
index 3ff894a0ffd..5202cfc61ab 100644
--- a/src/mame/drivers/yunsun16.c
+++ b/src/mame/drivers/yunsun16.c
@@ -118,17 +118,17 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x800018, 0x800019) AM_READ_PORT("SYSTEM")
AM_RANGE(0x80001a, 0x80001b) AM_READ_PORT("DSW1")
AM_RANGE(0x80001c, 0x80001d) AM_READ_PORT("DSW2")
- AM_RANGE(0x800030, 0x800031) AM_WRITE(SMH_NOP) // ? (value: don't care)
- AM_RANGE(0x800100, 0x800101) AM_WRITE(SMH_NOP) // ? $9100
- AM_RANGE(0x800102, 0x800103) AM_WRITE(SMH_NOP) // ? $9080
- AM_RANGE(0x800104, 0x800105) AM_WRITE(SMH_NOP) // ? $90c0
- AM_RANGE(0x80010a, 0x80010b) AM_WRITE(SMH_NOP) // ? $9000
+ AM_RANGE(0x800030, 0x800031) AM_WRITENOP // ? (value: don't care)
+ AM_RANGE(0x800100, 0x800101) AM_WRITENOP // ? $9100
+ AM_RANGE(0x800102, 0x800103) AM_WRITENOP // ? $9080
+ AM_RANGE(0x800104, 0x800105) AM_WRITENOP // ? $90c0
+ AM_RANGE(0x80010a, 0x80010b) AM_WRITENOP // ? $9000
AM_RANGE(0x80010c, 0x80010f) AM_RAM AM_BASE_MEMBER(yunsun16_state, scrollram_1) // Scrolling
AM_RANGE(0x800114, 0x800117) AM_RAM AM_BASE_MEMBER(yunsun16_state, scrollram_0) // Scrolling
AM_RANGE(0x800154, 0x800155) AM_RAM AM_BASE_MEMBER(yunsun16_state, priorityram) // Priority
AM_RANGE(0x800180, 0x800181) AM_WRITE(yunsun16_sound_bank_w) // Sound
AM_RANGE(0x800188, 0x800189) AM_DEVREADWRITE8("oki", okim6295_r, okim6295_w, 0x00ff) // Sound
- AM_RANGE(0x8001fe, 0x8001ff) AM_WRITE(SMH_NOP) // ? 0 (during int)
+ AM_RANGE(0x8001fe, 0x8001ff) AM_WRITENOP // ? 0 (during int)
AM_RANGE(0x900000, 0x903fff) AM_RAM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE_GENERIC(paletteram) // Palette
AM_RANGE(0x908000, 0x90bfff) AM_RAM_WRITE(yunsun16_vram_1_w) AM_BASE_MEMBER(yunsun16_state, vram_1) // Layer 1
AM_RANGE(0x90c000, 0x90ffff) AM_RAM_WRITE(yunsun16_vram_0_w) AM_BASE_MEMBER(yunsun16_state, vram_0) // Layer 0
diff --git a/src/mame/drivers/yunsung8.c b/src/mame/drivers/yunsung8.c
index ca4e6be5dc7..157d69950af 100644
--- a/src/mame/drivers/yunsung8.c
+++ b/src/mame/drivers/yunsung8.c
@@ -114,7 +114,7 @@ static ADDRESS_MAP_START( port_map, ADDRESS_SPACE_IO, 8 )
AM_RANGE(0x03, 0x03) AM_READ_PORT("DSW1")
AM_RANGE(0x04, 0x04) AM_READ_PORT("DSW2")
AM_RANGE(0x06, 0x06) AM_WRITE(yunsung8_flipscreen_w ) // Flip Screen
- AM_RANGE(0x07, 0x07) AM_WRITE(SMH_NOP ) // ? (end of IRQ, random value)
+ AM_RANGE(0x07, 0x07) AM_WRITENOP // ? (end of IRQ, random value)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/zaccaria.c b/src/mame/drivers/zaccaria.c
index 195d329337b..4a13e2293c8 100644
--- a/src/mame/drivers/zaccaria.c
+++ b/src/mame/drivers/zaccaria.c
@@ -314,7 +314,7 @@ static WRITE8_HANDLER( nmienable_w )
static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x5fff) AM_ROM
- AM_RANGE(0x6000, 0x63ff) AM_READ(SMH_RAM)
+ AM_RANGE(0x6000, 0x63ff) AM_READONLY
AM_RANGE(0x6400, 0x6407) AM_READ(zaccaria_prot1_r)
AM_RANGE(0x6000, 0x67ff) AM_WRITE(zaccaria_videoram_w) AM_BASE(&zaccaria_videoram) /* 6400-67ff is 4 bits wide */
AM_RANGE(0x6800, 0x683f) AM_WRITE(zaccaria_attributes_w) AM_BASE(&zaccaria_attributesram)
diff --git a/src/mame/drivers/zn.c b/src/mame/drivers/zn.c
index 6d4d2f1c9b8..fe092212479 100644
--- a/src/mame/drivers/zn.c
+++ b/src/mame/drivers/zn.c
@@ -1215,7 +1215,7 @@ static ADDRESS_MAP_START( fx1a_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xc000, 0xdfff) AM_RAM
AM_RANGE(0xe000, 0xe003) AM_DEVREADWRITE("ymsnd", ym2610_r, ym2610_w)
- AM_RANGE(0xe200, 0xe200) AM_READWRITE(SMH_NOP, taitosound_slave_port_w)
+ AM_RANGE(0xe200, 0xe200) AM_READNOP AM_WRITE(taitosound_slave_port_w)
AM_RANGE(0xe201, 0xe201) AM_READWRITE(taitosound_slave_comm_r, taitosound_slave_comm_w)
AM_RANGE(0xe400, 0xe403) AM_WRITENOP /* pan */
AM_RANGE(0xee00, 0xee00) AM_NOP /* ? */
@@ -1477,10 +1477,10 @@ static DRIVER_INIT( coh1000w )
{
const device_config *ide = devtag_get_device(machine, "ide");
- memory_install_read_bank_handler ( cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x1f000000, 0x1f1fffff, 0, 0, "bank1" );
- memory_install_write32_handler ( cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x1f000000, 0x1f000003, 0, 0, (write32_space_func)SMH_NOP );
+ memory_install_read_bank_handler ( cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x1f000000, 0x1f1fffff, 0, 0, "bank1" );
+ memory_nop_write ( cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x1f000000, 0x1f000003, 0, 0 );
memory_install_readwrite32_device_handler( cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), ide, 0x1f7e4000, 0x1f7e4fff, 0, 0, ide_controller32_r, ide_controller32_w );
- memory_install_readwrite32_handler ( cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x1f7e8000, 0x1f7e8003, 0, 0, (read32_space_func)SMH_NOP, (write32_space_func)SMH_NOP );
+ memory_nop_readwrite ( cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x1f7e8000, 0x1f7e8003, 0, 0 );
memory_install_readwrite32_device_handler( cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), ide, 0x1f7f4000, 0x1f7f4fff, 0, 0, ide_controller32_r, ide_controller32_w );
zn_driver_init(machine);
@@ -2151,7 +2151,7 @@ static DRIVER_INIT( coh1000a )
const device_config *ide = devtag_get_device(machine, "ide");
memory_install_read32_device_handler( cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), ide, 0x1fbfff8c, 0x1fbfff8f, 0, 0, jdredd_idestat_r );
- memory_install_write32_handler ( cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x1fbfff8c, 0x1fbfff8f, 0, 0, (write32_space_func)SMH_NOP );
+ memory_nop_write ( cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x1fbfff8c, 0x1fbfff8f, 0, 0 );
memory_install_readwrite32_device_handler( cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), ide, 0x1fbfff90, 0x1fbfff9f, 0, 0, jdredd_ide_r, jdredd_ide_w );
}
diff --git a/src/mame/drivers/zodiack.c b/src/mame/drivers/zodiack.c
index 7c922da58ed..64c70d28178 100644
--- a/src/mame/drivers/zodiack.c
+++ b/src/mame/drivers/zodiack.c
@@ -128,7 +128,7 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x6083, 0x6083) AM_READ_PORT("IN0")
AM_RANGE(0x6084, 0x6084) AM_READ_PORT("IN1")
AM_RANGE(0x6090, 0x6090) AM_READWRITE(soundlatch_r, zodiac_master_soundlatch_w)
- AM_RANGE(0x7000, 0x7000) AM_READWRITE(SMH_NOP,watchdog_reset_w) /* NOP??? */
+ AM_RANGE(0x7000, 0x7000) AM_READNOP AM_WRITE(watchdog_reset_w) /* NOP??? */
AM_RANGE(0x7100, 0x7100) AM_WRITE(zodiac_master_interrupt_enable_w)
AM_RANGE(0x7200, 0x7200) AM_WRITE(zodiack_flipscreen_w)
AM_RANGE(0x9000, 0x903f) AM_RAM_WRITE(zodiack_attributes_w) AM_BASE_MEMBER(espial_state, attributeram)
diff --git a/src/mame/machine/atari.c b/src/mame/machine/atari.c
index c6df7855467..5f70708e07a 100644
--- a/src/mame/machine/atari.c
+++ b/src/mame/machine/atari.c
@@ -105,13 +105,13 @@ void a600xl_mmu(running_machine *machine, UINT8 new_mmu)
if ( new_mmu & 0x80 )
{
logerror("%s MMU SELFTEST RAM\n", machine->gamedrv->name);
- memory_install_readwrite8_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x5000, 0x57ff, 0, 0, (read8_space_func)SMH_NOP, (write8_space_func)SMH_NOP);
+ memory_nop_readwrite(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x5000, 0x57ff, 0, 0);
}
else
{
logerror("%s MMU SELFTEST ROM\n", machine->gamedrv->name);
memory_install_read_bank_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x5000, 0x57ff, 0, 0, "bank2");
- memory_install_write8_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x5000, 0x57ff, 0, 0, (write8_space_func)SMH_UNMAP);
+ memory_unmap_write(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x5000, 0x57ff, 0, 0);
memory_set_bankptr(machine, "bank2", memory_region(machine, "maincpu") + 0x5000);
}
}
diff --git a/src/mame/machine/midtunit.c b/src/mame/machine/midtunit.c
index 24504aec410..78ff269bd2b 100644
--- a/src/mame/machine/midtunit.c
+++ b/src/mame/machine/midtunit.c
@@ -520,7 +520,7 @@ DRIVER_INIT( jdreddp )
init_tunit_generic(machine, SOUND_ADPCM_LARGE);
/* looks like the watchdog needs to be disabled */
- memory_install_write16_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x01d81060, 0x01d8107f, 0, 0, (write16_space_func)SMH_NOP);
+ memory_nop_write(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x01d81060, 0x01d8107f, 0, 0);
/* protection */
memory_install_readwrite16_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x1b00000, 0x1bfffff, 0, 0, jdredd_prot_r, jdredd_prot_w);
diff --git a/src/mame/machine/scramble.c b/src/mame/machine/scramble.c
index 08ac4ce4464..2dfead12578 100644
--- a/src/mame/machine/scramble.c
+++ b/src/mame/machine/scramble.c
@@ -243,14 +243,14 @@ DRIVER_INIT( mariner )
{
/* extra ROM */
memory_install_read_bank_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x5800, 0x67ff, 0, 0, "bank1");
- memory_install_write8_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x5800, 0x67ff, 0, 0, (write8_space_func)SMH_UNMAP);
+ memory_unmap_write(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x5800, 0x67ff, 0, 0);
memory_set_bankptr(machine, "bank1", memory_region(machine, "maincpu") + 0x5800);
memory_install_read8_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x9008, 0x9008, 0, 0, mariner_protection_2_r);
memory_install_read8_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0xb401, 0xb401, 0, 0, mariner_protection_1_r);
/* ??? (it's NOT a background enable) */
- /*memory_install_write8_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x6803, 0x6803, 0, 0, (write8_space_func)SMH_NOP);*/
+ /*memory_nop_write(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x6803, 0x6803, 0, 0);*/
}
#ifdef UNUSED_FUNCTION
@@ -335,8 +335,8 @@ DRIVER_INIT( cavelon )
/* A15 switches memory banks */
memory_install_readwrite8_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x8000, 0xffff, 0, 0, cavelon_banksw_r, cavelon_banksw_w);
- memory_install_write8_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x2000, 0x2000, 0, 0, (write8_space_func)SMH_NOP); /* ??? */
- memory_install_write8_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x3800, 0x3801, 0, 0, (write8_space_func)SMH_NOP); /* looks suspicously like
+ memory_nop_write(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x2000, 0x2000, 0, 0); /* ??? */
+ memory_nop_write(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x3800, 0x3801, 0, 0); /* looks suspicously like
an AY8910, but not sure */
state_save_register_global(machine, cavelon_bank);
}
diff --git a/src/mame/machine/seicop.c b/src/mame/machine/seicop.c
index cf18d671541..efe40cda751 100644
--- a/src/mame/machine/seicop.c
+++ b/src/mame/machine/seicop.c
@@ -2115,10 +2115,10 @@ WRITE16_HANDLER( copdxbl_0_w )
case (0x478/2):
{
/*
- AM_RANGE(0x100800, 0x100fff) AM_READWRITE(SMH_RAM,legionna_background_w) AM_BASE(&legionna_back_data)
- AM_RANGE(0x101000, 0x1017ff) AM_READWRITE(SMH_RAM,legionna_foreground_w) AM_BASE(&legionna_fore_data)
- AM_RANGE(0x101800, 0x101fff) AM_READWRITE(SMH_RAM,legionna_midground_w) AM_BASE(&legionna_mid_data)
- AM_RANGE(0x102000, 0x102fff) AM_READWRITE(SMH_RAM,legionna_text_w) AM_BASE(&legionna_textram)
+ AM_RANGE(0x100800, 0x100fff) AM_RAM_WRITE(legionna_background_w) AM_BASE(&legionna_back_data)
+ AM_RANGE(0x101000, 0x1017ff) AM_RAM_WRITE(legionna_foreground_w) AM_BASE(&legionna_fore_data)
+ AM_RANGE(0x101800, 0x101fff) AM_RAM_WRITE(legionna_midground_w) AM_BASE(&legionna_mid_data)
+ AM_RANGE(0x102000, 0x102fff) AM_RAM_WRITE(legionna_text_w) AM_BASE(&legionna_textram)
*/
break;
}
diff --git a/src/mame/machine/tnzs.c b/src/mame/machine/tnzs.c
index 12b8635928a..fedbb9c64b8 100644
--- a/src/mame/machine/tnzs.c
+++ b/src/mame/machine/tnzs.c
@@ -514,7 +514,7 @@ DRIVER_INIT( drtoppel )
state->mcu_type = MCU_DRTOPPEL;
/* drtoppel writes to the palette RAM area even if it has PROMs! We have to patch it out. */
- memory_install_write8_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0xf800, 0xfbff, 0, 0, (write8_space_func)SMH_NOP);
+ memory_nop_write(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0xf800, 0xfbff, 0, 0);
}
DRIVER_INIT( chukatai )
diff --git a/src/mame/machine/williams.c b/src/mame/machine/williams.c
index 648a66c267b..e0373c87d71 100644
--- a/src/mame/machine/williams.c
+++ b/src/mame/machine/williams.c
@@ -780,13 +780,13 @@ WRITE8_HANDLER( defender_bank_select_w )
case 8:
case 9:
memory_install_read_bank_handler(space, 0xc000, 0xcfff, 0, 0, "bank1");
- memory_install_write8_handler(space, 0xc000, 0xcfff, 0, 0, (write8_space_func)SMH_UNMAP);
+ memory_unmap_write(space, 0xc000, 0xcfff, 0, 0);
memory_set_bank(space->machine, "bank1", vram_bank - 1);
break;
/* pages A-F are not connected */
default:
- memory_install_readwrite8_handler(space, 0xc000, 0xcfff, 0, 0, (read8_space_func)SMH_NOP, (write8_space_func)SMH_NOP);
+ memory_nop_readwrite(space, 0xc000, 0xcfff, 0, 0);
break;
}
}
diff --git a/src/mame/video/combatsc.c b/src/mame/video/combatsc.c
index e6ff7bad2a8..0a18f0b5460 100644
--- a/src/mame/video/combatsc.c
+++ b/src/mame/video/combatsc.c
@@ -420,7 +420,7 @@ WRITE8_HANDLER( combascb_bankselect_w )
else
{
memory_install_read_bank_handler(space, 0x4000, 0x7fff, 0, 0, "bank1"); /* banked ROM */
- memory_install_write8_handler(space, 0x4000, 0x7fff, 0, 0, (write8_space_func)SMH_UNMAP); /* banked ROM */
+ memory_unmap_write(space, 0x4000, 0x7fff, 0, 0); /* banked ROM */
}
}
}
diff --git a/src/mame/video/qix.c b/src/mame/video/qix.c
index d12be1368b4..1e9556ffd2c 100644
--- a/src/mame/video/qix.c
+++ b/src/mame/video/qix.c
@@ -373,8 +373,8 @@ static ADDRESS_MAP_START( qix_video_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x8c01, 0x8c01) AM_MIRROR(0x03fe) AM_READWRITE(qix_video_firq_ack_r, qix_video_firq_ack_w)
AM_RANGE(0x9000, 0x93ff) AM_RAM_WRITE(qix_paletteram_w) AM_BASE_MEMBER(qix_state, paletteram)
AM_RANGE(0x9400, 0x9400) AM_MIRROR(0x03fc) AM_READWRITE(qix_addresslatch_r, qix_addresslatch_w)
- AM_RANGE(0x9402, 0x9403) AM_MIRROR(0x03fc) AM_WRITE(SMH_RAM) AM_BASE_MEMBER(qix_state, videoram_address)
- AM_RANGE(0x9800, 0x9800) AM_MIRROR(0x03ff) AM_READ(SMH_RAM) AM_BASE_MEMBER(qix_state, scanline_latch)
+ AM_RANGE(0x9402, 0x9403) AM_MIRROR(0x03fc) AM_WRITEONLY AM_BASE_MEMBER(qix_state, videoram_address)
+ AM_RANGE(0x9800, 0x9800) AM_MIRROR(0x03ff) AM_READONLY AM_BASE_MEMBER(qix_state, scanline_latch)
AM_RANGE(0x9c00, 0x9c00) AM_MIRROR(0x03fe) AM_DEVWRITE("vid_u18", mc6845_address_w)
AM_RANGE(0x9c01, 0x9c01) AM_MIRROR(0x03fe) AM_DEVREADWRITE("vid_u18", mc6845_register_r, mc6845_register_w)
AM_RANGE(0xa000, 0xffff) AM_ROM
@@ -391,8 +391,8 @@ static ADDRESS_MAP_START( zookeep_video_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x8c01, 0x8c01) AM_MIRROR(0x03fe) AM_READWRITE(qix_video_firq_ack_r, qix_video_firq_ack_w)
AM_RANGE(0x9000, 0x93ff) AM_RAM_WRITE(qix_paletteram_w) AM_BASE_MEMBER(qix_state, paletteram)
AM_RANGE(0x9400, 0x9400) AM_MIRROR(0x03fc) AM_READWRITE(qix_addresslatch_r, qix_addresslatch_w)
- AM_RANGE(0x9402, 0x9403) AM_MIRROR(0x03fc) AM_WRITE(SMH_RAM) AM_BASE_MEMBER(qix_state, videoram_address)
- AM_RANGE(0x9800, 0x9800) AM_MIRROR(0x03ff) AM_READ(SMH_RAM) AM_BASE_MEMBER(qix_state, scanline_latch)
+ AM_RANGE(0x9402, 0x9403) AM_MIRROR(0x03fc) AM_WRITEONLY AM_BASE_MEMBER(qix_state, videoram_address)
+ AM_RANGE(0x9800, 0x9800) AM_MIRROR(0x03ff) AM_READONLY AM_BASE_MEMBER(qix_state, scanline_latch)
AM_RANGE(0x9c00, 0x9c00) AM_MIRROR(0x03fe) AM_DEVWRITE("vid_u18", mc6845_address_w)
AM_RANGE(0x9c01, 0x9c01) AM_MIRROR(0x03fe) AM_DEVREADWRITE("vid_u18", mc6845_register_r, mc6845_register_w)
AM_RANGE(0xa000, 0xbfff) AM_ROMBANK("bank1")
@@ -409,9 +409,9 @@ static ADDRESS_MAP_START( slither_video_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x8c01, 0x8c01) AM_MIRROR(0x03fe) AM_READWRITE(qix_video_firq_ack_r, qix_video_firq_ack_w)
AM_RANGE(0x9000, 0x93ff) AM_RAM_WRITE(qix_paletteram_w) AM_BASE_MEMBER(qix_state, paletteram)
AM_RANGE(0x9400, 0x9400) AM_MIRROR(0x03fc) AM_READWRITE(qix_addresslatch_r, slither_addresslatch_w)
- AM_RANGE(0x9401, 0x9401) AM_MIRROR(0x03fc) AM_WRITE(SMH_RAM) AM_BASE_MEMBER(qix_state, videoram_mask)
- AM_RANGE(0x9402, 0x9403) AM_MIRROR(0x03fc) AM_WRITE(SMH_RAM) AM_BASE_MEMBER(qix_state, videoram_address)
- AM_RANGE(0x9800, 0x9800) AM_MIRROR(0x03ff) AM_READ(SMH_RAM) AM_BASE_MEMBER(qix_state, scanline_latch)
+ AM_RANGE(0x9401, 0x9401) AM_MIRROR(0x03fc) AM_WRITEONLY AM_BASE_MEMBER(qix_state, videoram_mask)
+ AM_RANGE(0x9402, 0x9403) AM_MIRROR(0x03fc) AM_WRITEONLY AM_BASE_MEMBER(qix_state, videoram_address)
+ AM_RANGE(0x9800, 0x9800) AM_MIRROR(0x03ff) AM_READONLY AM_BASE_MEMBER(qix_state, scanline_latch)
AM_RANGE(0x9c00, 0x9c00) AM_MIRROR(0x03fe) AM_DEVWRITE("vid_u18", mc6845_address_w)
AM_RANGE(0x9c01, 0x9c01) AM_MIRROR(0x03fe) AM_DEVREADWRITE("vid_u18", mc6845_register_r, mc6845_register_w)
AM_RANGE(0xa000, 0xffff) AM_ROM
diff --git a/src/mame/video/taitoic.c b/src/mame/video/taitoic.c
index 9f6a34694b7..a3cc48203ba 100644
--- a/src/mame/video/taitoic.c
+++ b/src/mame/video/taitoic.c
@@ -587,7 +587,7 @@ static int has_write_handler8(const device_config *cpu, write8_space_func handle
if (space != NULL && space->map != NULL)
for (entry = space->map->entrylist; entry != NULL; entry = entry->next)
- if (entry->write.shandler8 == handler)
+ if (entry->write.type == AMH_HANDLER && entry->write.handler.write.shandler8 == handler)
return 1;
}
@@ -603,7 +603,7 @@ static int has_write_handler(const device_config *cpu, write16_space_func handle
if (space != NULL && space->map != NULL)
for (entry = space->map->entrylist; entry != NULL; entry = entry->next)
- if (entry->write.shandler16 == handler)
+ if (entry->write.type == AMH_HANDLER && entry->write.handler.write.shandler16 == handler)
return 1;
}