summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Aaron Giles <aaron@aarongiles.com>2008-03-09 21:59:57 +0000
committer Aaron Giles <aaron@aarongiles.com>2008-03-09 21:59:57 +0000
commitddfc0c32593bece374c5d2d3d70a26776b9c9ee2 (patch)
tree258c2f68f84d66b9308d0e14be0a28d1f741454f
parentac9778cdb0cb5e8b8cbb4e5c4a123f18919b9a40 (diff)
WIP check-in. Things work now, but I'm still working on the code.
Converted address maps to tokens. Changed the address_map structure to house global map-wide information and hung a list of entries off of it corresponding to each address range. Introduced new functions address_map_alloc() and address_map_free() to build/destroy these structures. Updated all code as necessary. Fixed several instances of porttagtohandler*() in the address maps. Drivers should use AM_READ_PORT() macros instead. ADDRESS_MAP_EXTERN() now is required to specify the number of databits, just like ADDRESS_MAP_START. Removed ADDRESS_MAP_FLAGS() grossness. There are now three new macros which replace its former usage. ADDRESS_MAP_GLOBAL_MASK(mask) specifies a global address-space-wide mask on all addresses. Useful for cases where one or more address lines simply are not used at all. And ADDRESS_MAP_UNMAP_LOW/HIGH specifies the behavior of unmapped reads (do they come back as 0 or ~0). Changed internal memory mapping behavior to keep only a single address map and store the byte-adjusted values next in the address map entries rather than maintaining two separate maps. Many other small internal changes/cleanups.
-rw-r--r--src/emu/cheat.c52
-rw-r--r--src/emu/cpu/cop400/cop410.c2
-rw-r--r--src/emu/cpu/cop400/cop420.c2
-rw-r--r--src/emu/cpu/dsp56k/dsp56k.c6
-rw-r--r--src/emu/cpu/e132xs/e132xs.c32
-rw-r--r--src/emu/cpu/h83002/h83002.c10
-rw-r--r--src/emu/cpu/i8051/i8051.c6
-rw-r--r--src/emu/cpu/i960/i960.c6
-rw-r--r--src/emu/cpu/m37710/m37710.c6
-rw-r--r--src/emu/cpu/m6502/m4510.c2
-rw-r--r--src/emu/cpu/m6502/m6502.c2
-rw-r--r--src/emu/cpu/m6502/m6509.c2
-rw-r--r--src/emu/cpu/m6800/m6800.c2
-rw-r--r--src/emu/cpu/mips/mips3com.c4
-rw-r--r--src/emu/cpu/mips/mips3com.h6
-rw-r--r--src/emu/cpu/mips/r3000.c20
-rw-r--r--src/emu/cpu/pic16c5x/pic16c5x.c20
-rw-r--r--src/emu/cpu/sh4/sh4.c2
-rw-r--r--src/emu/cpu/sharc/sharc.c2
-rw-r--r--src/emu/cpu/ssp1610/ssp1610.c4
-rw-r--r--src/emu/cpu/tlcs90/tlcs90.c8
-rw-r--r--src/emu/cpu/tms32010/tms32010.c2
-rw-r--r--src/emu/cpu/tms32031/tms32031.c4
-rw-r--r--src/emu/cpu/tms32051/tms32051.c4
-rw-r--r--src/emu/cpu/tms7000/tms7000.c2
-rw-r--r--src/emu/cpuexec.h2
-rw-r--r--src/emu/cpuintrf.h7
-rw-r--r--src/emu/inptport.c2
-rw-r--r--src/emu/mconfig.c16
-rw-r--r--src/emu/mconfig.h13
-rw-r--r--src/emu/memory.c648
-rw-r--r--src/emu/memory.h402
-rw-r--r--src/emu/validity.c141
-rw-r--r--src/emu/video.c5
-rw-r--r--src/mame/audio/cinemat.c2
-rw-r--r--src/mame/audio/dcs.c20
-rw-r--r--src/mame/audio/exidy.c6
-rw-r--r--src/mame/audio/irem.c2
-rw-r--r--src/mame/audio/mcr.c14
-rw-r--r--src/mame/audio/n8080.c2
-rw-r--r--src/mame/audio/namco54.h6
-rw-r--r--src/mame/audio/namcoc7x.h6
-rw-r--r--src/mame/audio/redalert.c4
-rw-r--r--src/mame/audio/scramble.c2
-rw-r--r--src/mame/audio/seibu.h8
-rw-r--r--src/mame/audio/t5182.c2
-rw-r--r--src/mame/audio/t5182.h4
-rw-r--r--src/mame/audio/taito_en.h2
-rw-r--r--src/mame/drivers/20pacgal.c2
-rw-r--r--src/mame/drivers/40love.c2
-rw-r--r--src/mame/drivers/4enraya.c2
-rw-r--r--src/mame/drivers/acefruit.c2
-rw-r--r--src/mame/drivers/aerofgt.c8
-rw-r--r--src/mame/drivers/airbustr.c6
-rw-r--r--src/mame/drivers/alg.c6
-rw-r--r--src/mame/drivers/alpha68k.c8
-rw-r--r--src/mame/drivers/ambush.c2
-rw-r--r--src/mame/drivers/amidar.c4
-rw-r--r--src/mame/drivers/ampoker2.c2
-rw-r--r--src/mame/drivers/angelkds.c4
-rw-r--r--src/mame/drivers/appoooh.c2
-rw-r--r--src/mame/drivers/aquarium.c4
-rw-r--r--src/mame/drivers/arcadia.c2
-rw-r--r--src/mame/drivers/argus.c8
-rw-r--r--src/mame/drivers/arkanoid.c2
-rw-r--r--src/mame/drivers/armedf.c4
-rw-r--r--src/mame/drivers/ashnojoe.c2
-rw-r--r--src/mame/drivers/asteroid.c6
-rw-r--r--src/mame/drivers/astinvad.c6
-rw-r--r--src/mame/drivers/astrocde.c2
-rw-r--r--src/mame/drivers/astrof.c8
-rw-r--r--src/mame/drivers/atarifb.c8
-rw-r--r--src/mame/drivers/atarigx2.c2
-rw-r--r--src/mame/drivers/ataxx.c4
-rw-r--r--src/mame/drivers/attckufo.c2
-rw-r--r--src/mame/drivers/avalnche.c2
-rw-r--r--src/mame/drivers/bagman.c4
-rw-r--r--src/mame/drivers/balsente.c2
-rw-r--r--src/mame/drivers/bankp.c2
-rw-r--r--src/mame/drivers/batman.c3
-rw-r--r--src/mame/drivers/battlex.c4
-rw-r--r--src/mame/drivers/bbusters.c8
-rw-r--r--src/mame/drivers/beaminv.c2
-rw-r--r--src/mame/drivers/berzerk.c2
-rw-r--r--src/mame/drivers/bfcobra.c2
-rw-r--r--src/mame/drivers/bigevglf.c12
-rw-r--r--src/mame/drivers/bigfghtr.c2
-rw-r--r--src/mame/drivers/bishjan.c2
-rw-r--r--src/mame/drivers/bking.c6
-rw-r--r--src/mame/drivers/blktiger.c2
-rw-r--r--src/mame/drivers/blstroid.c2
-rw-r--r--src/mame/drivers/bombjack.c2
-rw-r--r--src/mame/drivers/boxer.c2
-rw-r--r--src/mame/drivers/bsktball.c2
-rw-r--r--src/mame/drivers/bublbobl.c2
-rw-r--r--src/mame/drivers/buggychl.c4
-rw-r--r--src/mame/drivers/bzone.c4
-rw-r--r--src/mame/drivers/cabal.c4
-rw-r--r--src/mame/drivers/calorie.c2
-rw-r--r--src/mame/drivers/canyon.c2
-rw-r--r--src/mame/drivers/carjmbre.c4
-rw-r--r--src/mame/drivers/carrera.c4
-rw-r--r--src/mame/drivers/cave.c20
-rw-r--r--src/mame/drivers/cball.c2
-rw-r--r--src/mame/drivers/cbasebal.c2
-rw-r--r--src/mame/drivers/cchasm.c2
-rw-r--r--src/mame/drivers/cclimber.c8
-rw-r--r--src/mame/drivers/centiped.c10
-rw-r--r--src/mame/drivers/changela.c4
-rw-r--r--src/mame/drivers/cheekyms.c2
-rw-r--r--src/mame/drivers/cherrym.c2
-rw-r--r--src/mame/drivers/cherrym2.c2
-rw-r--r--src/mame/drivers/chinsan.c2
-rw-r--r--src/mame/drivers/cinemat.c8
-rw-r--r--src/mame/drivers/clayshoo.c2
-rw-r--r--src/mame/drivers/cliffhgr.c2
-rw-r--r--src/mame/drivers/coinmstr.c8
-rw-r--r--src/mame/drivers/cop01.c14
-rw-r--r--src/mame/drivers/copsnrob.c2
-rw-r--r--src/mame/drivers/couple.c2
-rw-r--r--src/mame/drivers/cowrace.c4
-rw-r--r--src/mame/drivers/cps1.c20
-rw-r--r--src/mame/drivers/cps2.c2
-rw-r--r--src/mame/drivers/crbaloon.c10
-rw-r--r--src/mame/drivers/crospang.c4
-rw-r--r--src/mame/drivers/crshrace.c4
-rw-r--r--src/mame/drivers/cshooter.c8
-rw-r--r--src/mame/drivers/cubocd32.c2
-rw-r--r--src/mame/drivers/cultures.c2
-rw-r--r--src/mame/drivers/cvs.c6
-rw-r--r--src/mame/drivers/dacholer.c4
-rw-r--r--src/mame/drivers/darius.c4
-rw-r--r--src/mame/drivers/dbz.c2
-rw-r--r--src/mame/drivers/dcheese.c4
-rw-r--r--src/mame/drivers/ddenlovr.c54
-rw-r--r--src/mame/drivers/ddragon.c2
-rw-r--r--src/mame/drivers/deco_mlc.c4
-rw-r--r--src/mame/drivers/deniam.c4
-rw-r--r--src/mame/drivers/destroyr.c2
-rw-r--r--src/mame/drivers/discoboy.c8
-rw-r--r--src/mame/drivers/djboy.c6
-rw-r--r--src/mame/drivers/dkong.c4
-rw-r--r--src/mame/drivers/dlair.c2
-rw-r--r--src/mame/drivers/docastle.c2
-rw-r--r--src/mame/drivers/dominob.c2
-rw-r--r--src/mame/drivers/dooyong.c12
-rw-r--r--src/mame/drivers/dorachan.c2
-rw-r--r--src/mame/drivers/dotrikun.c4
-rw-r--r--src/mame/drivers/dribling.c4
-rw-r--r--src/mame/drivers/drmicro.c4
-rw-r--r--src/mame/drivers/dwarfd.c2
-rw-r--r--src/mame/drivers/dynadice.c2
-rw-r--r--src/mame/drivers/dynax.c22
-rw-r--r--src/mame/drivers/egghunt.c4
-rw-r--r--src/mame/drivers/enigma2.c4
-rw-r--r--src/mame/drivers/epos.c8
-rw-r--r--src/mame/drivers/esd16.c4
-rw-r--r--src/mame/drivers/esh.c2
-rw-r--r--src/mame/drivers/espial.c2
-rw-r--r--src/mame/drivers/exctsccr.c2
-rw-r--r--src/mame/drivers/f1gp.c4
-rw-r--r--src/mame/drivers/firetrk.c6
-rw-r--r--src/mame/drivers/flstory.c2
-rw-r--r--src/mame/drivers/flyball.c2
-rw-r--r--src/mame/drivers/fortecar.c2
-rw-r--r--src/mame/drivers/freekick.c12
-rw-r--r--src/mame/drivers/frogger.c4
-rw-r--r--src/mame/drivers/fromanc2.c8
-rw-r--r--src/mame/drivers/fromance.c10
-rw-r--r--src/mame/drivers/funkybee.c4
-rw-r--r--src/mame/drivers/funybubl.c4
-rw-r--r--src/mame/drivers/fuukifg2.c4
-rw-r--r--src/mame/drivers/fuukifg3.c4
-rw-r--r--src/mame/drivers/gaelco3d.c2
-rw-r--r--src/mame/drivers/gaiden.c2
-rw-r--r--src/mame/drivers/galaxia.c4
-rw-r--r--src/mame/drivers/galaxian.c20
-rw-r--r--src/mame/drivers/galivan.c12
-rw-r--r--src/mame/drivers/gauntlet.c4
-rw-r--r--src/mame/drivers/gladiatr.c8
-rw-r--r--src/mame/drivers/goldstar.c2
-rw-r--r--src/mame/drivers/gottlieb.c6
-rw-r--r--src/mame/drivers/gpworld.c2
-rw-r--r--src/mame/drivers/grchamp.c4
-rw-r--r--src/mame/drivers/gstriker.c4
-rw-r--r--src/mame/drivers/gsword.c8
-rw-r--r--src/mame/drivers/gtipoker.c2
-rw-r--r--src/mame/drivers/gundealr.c2
-rw-r--r--src/mame/drivers/gyruss.c2
-rw-r--r--src/mame/drivers/hal21.c2
-rw-r--r--src/mame/drivers/hanaawas.c4
-rw-r--r--src/mame/drivers/harddriv.c34
-rw-r--r--src/mame/drivers/hitme.c2
-rw-r--r--src/mame/drivers/hnayayoi.c12
-rw-r--r--src/mame/drivers/hng64.c2
-rw-r--r--src/mame/drivers/holeland.c4
-rw-r--r--src/mame/drivers/homerun.c2
-rw-r--r--src/mame/drivers/hyhoo.c4
-rw-r--r--src/mame/drivers/imolagp.c4
-rw-r--r--src/mame/drivers/intrscti.c2
-rw-r--r--src/mame/drivers/inufuku.c4
-rw-r--r--src/mame/drivers/ironhors.c2
-rw-r--r--src/mame/drivers/istellar.c6
-rw-r--r--src/mame/drivers/itech8.c2
-rw-r--r--src/mame/drivers/jack.c4
-rw-r--r--src/mame/drivers/jcross.c2
-rw-r--r--src/mame/drivers/jongkyo.c2
-rw-r--r--src/mame/drivers/jrpacman.c2
-rw-r--r--src/mame/drivers/kaneko16.c2
-rw-r--r--src/mame/drivers/kchamp.c16
-rw-r--r--src/mame/drivers/kingobox.c8
-rw-r--r--src/mame/drivers/kingpin.c4
-rw-r--r--src/mame/drivers/kinst.c2
-rw-r--r--src/mame/drivers/kncljoe.c2
-rw-r--r--src/mame/drivers/koikoi.c2
-rw-r--r--src/mame/drivers/kyugo.c4
-rw-r--r--src/mame/drivers/ladybug.c2
-rw-r--r--src/mame/drivers/laserbas.c2
-rw-r--r--src/mame/drivers/lasso.c2
-rw-r--r--src/mame/drivers/lastfght.c2
-rw-r--r--src/mame/drivers/leland.c4
-rw-r--r--src/mame/drivers/lgp.c4
-rw-r--r--src/mame/drivers/lkage.c4
-rw-r--r--src/mame/drivers/lockon.c10
-rw-r--r--src/mame/drivers/looping.c2
-rw-r--r--src/mame/drivers/lsasquad.c4
-rw-r--r--src/mame/drivers/lvcards.c2
-rw-r--r--src/mame/drivers/lwings.c6
-rw-r--r--src/mame/drivers/m52.c2
-rw-r--r--src/mame/drivers/m62.c18
-rw-r--r--src/mame/drivers/m72.c10
-rw-r--r--src/mame/drivers/m90.c8
-rw-r--r--src/mame/drivers/macs.c2
-rw-r--r--src/mame/drivers/magmax.c4
-rw-r--r--src/mame/drivers/mainsnk.c2
-rw-r--r--src/mame/drivers/marineb.c4
-rw-r--r--src/mame/drivers/marinedt.c4
-rw-r--r--src/mame/drivers/mario.c2
-rw-r--r--src/mame/drivers/marvins.c2
-rw-r--r--src/mame/drivers/mastboy.c2
-rw-r--r--src/mame/drivers/matmania.c4
-rw-r--r--src/mame/drivers/maxaflex.c2
-rw-r--r--src/mame/drivers/mayumi.c4
-rw-r--r--src/mame/drivers/mazerbla.c18
-rw-r--r--src/mame/drivers/mcatadv.c8
-rw-r--r--src/mame/drivers/mcr.c20
-rw-r--r--src/mame/drivers/mcr3.c10
-rw-r--r--src/mame/drivers/mcr68.c11
-rw-r--r--src/mame/drivers/megadriv.c2
-rw-r--r--src/mame/drivers/megaplay.c4
-rw-r--r--src/mame/drivers/megasys1.c16
-rw-r--r--src/mame/drivers/megatech.c2
-rw-r--r--src/mame/drivers/megazone.c4
-rw-r--r--src/mame/drivers/meijinsn.c2
-rw-r--r--src/mame/drivers/metro.c4
-rw-r--r--src/mame/drivers/mexico86.c4
-rw-r--r--src/mame/drivers/mgolf.c2
-rw-r--r--src/mame/drivers/midtunit.c2
-rw-r--r--src/mame/drivers/midzeus.c4
-rw-r--r--src/mame/drivers/mitchell.c12
-rw-r--r--src/mame/drivers/mjkjidai.c4
-rw-r--r--src/mame/drivers/mjsister.c4
-rw-r--r--src/mame/drivers/model1.c2
-rw-r--r--src/mame/drivers/mogura.c4
-rw-r--r--src/mame/drivers/mosaic.c8
-rw-r--r--src/mame/drivers/mouser.c4
-rw-r--r--src/mame/drivers/mquake.c2
-rw-r--r--src/mame/drivers/mrflea.c8
-rw-r--r--src/mame/drivers/mrjong.c4
-rw-r--r--src/mame/drivers/msisaac.c4
-rw-r--r--src/mame/drivers/mw8080bw.c42
-rw-r--r--src/mame/drivers/mystston.c8
-rw-r--r--src/mame/drivers/n8080.c4
-rw-r--r--src/mame/drivers/nbmj8688.c28
-rw-r--r--src/mame/drivers/nbmj8891.c34
-rw-r--r--src/mame/drivers/nbmj8991.c18
-rw-r--r--src/mame/drivers/nbmj9195.c100
-rw-r--r--src/mame/drivers/ninjakd2.c2
-rw-r--r--src/mame/drivers/niyanpai.c4
-rw-r--r--src/mame/drivers/nmg5.c2
-rw-r--r--src/mame/drivers/nmk16.c10
-rw-r--r--src/mame/drivers/nova2001.c2
-rw-r--r--src/mame/drivers/nycaptor.c4
-rw-r--r--src/mame/drivers/nyny.c4
-rw-r--r--src/mame/drivers/ojankohs.c14
-rw-r--r--src/mame/drivers/omegrace.c4
-rw-r--r--src/mame/drivers/onetwo.c4
-rw-r--r--src/mame/drivers/pacman.c20
-rw-r--r--src/mame/drivers/paranoia.c2
-rw-r--r--src/mame/drivers/pass.c4
-rw-r--r--src/mame/drivers/pastelg.c4
-rw-r--r--src/mame/drivers/pbaction.c2
-rw-r--r--src/mame/drivers/peplus.c2
-rw-r--r--src/mame/drivers/pipedrm.c6
-rw-r--r--src/mame/drivers/pipeline.c2
-rw-r--r--src/mame/drivers/pitnrun.c8
-rw-r--r--src/mame/drivers/pkscram.c2
-rw-r--r--src/mame/drivers/playch10.c2
-rw-r--r--src/mame/drivers/plygonet.c2
-rw-r--r--src/mame/drivers/polepos.c2
-rw-r--r--src/mame/drivers/polyplay.c2
-rw-r--r--src/mame/drivers/poolshrk.c2
-rw-r--r--src/mame/drivers/popeye.c4
-rw-r--r--src/mame/drivers/powerins.c4
-rw-r--r--src/mame/drivers/ppmast93.c2
-rw-r--r--src/mame/drivers/prehisle.c4
-rw-r--r--src/mame/drivers/psikyo.c12
-rw-r--r--src/mame/drivers/psychic5.c2
-rw-r--r--src/mame/drivers/punchout.c4
-rw-r--r--src/mame/drivers/pushman.c6
-rw-r--r--src/mame/drivers/qix.c2
-rw-r--r--src/mame/drivers/quizdna.c8
-rw-r--r--src/mame/drivers/quizo.c2
-rw-r--r--src/mame/drivers/rallyx.c2
-rw-r--r--src/mame/drivers/rampart.c2
-rw-r--r--src/mame/drivers/rcasino.c2
-rw-r--r--src/mame/drivers/redalert.c12
-rw-r--r--src/mame/drivers/relief.c3
-rw-r--r--src/mame/drivers/retofinv.c2
-rw-r--r--src/mame/drivers/route16.c2
-rw-r--r--src/mame/drivers/royalmah.c20
-rw-r--r--src/mame/drivers/rpunch.c4
-rw-r--r--src/mame/drivers/sandscrp.c2
-rw-r--r--src/mame/drivers/sangho.c8
-rw-r--r--src/mame/drivers/sauro.c4
-rw-r--r--src/mame/drivers/sbrkout.c2
-rw-r--r--src/mame/drivers/scobra.c12
-rw-r--r--src/mame/drivers/scotrsht.c2
-rw-r--r--src/mame/drivers/scramble.c22
-rw-r--r--src/mame/drivers/seattle.c2
-rw-r--r--src/mame/drivers/segae.c4
-rw-r--r--src/mame/drivers/segag80r.c4
-rw-r--r--src/mame/drivers/segag80v.c2
-rw-r--r--src/mame/drivers/segahang.c24
-rw-r--r--src/mame/drivers/segald.c2
-rw-r--r--src/mame/drivers/segaorun.c10
-rw-r--r--src/mame/drivers/segas16a.c13
-rw-r--r--src/mame/drivers/segas16b.c11
-rw-r--r--src/mame/drivers/segas18.c11
-rw-r--r--src/mame/drivers/segas32.c11
-rw-r--r--src/mame/drivers/segaxbd.c15
-rw-r--r--src/mame/drivers/segaybd.c14
-rw-r--r--src/mame/drivers/seicross.c2
-rw-r--r--src/mame/drivers/senjyo.c4
-rw-r--r--src/mame/drivers/seta.c4
-rw-r--r--src/mame/drivers/sf.c4
-rw-r--r--src/mame/drivers/sg1000a.c4
-rw-r--r--src/mame/drivers/sgladiat.c2
-rw-r--r--src/mame/drivers/shangha3.c4
-rw-r--r--src/mame/drivers/shangkid.c8
-rw-r--r--src/mame/drivers/shisen.c8
-rw-r--r--src/mame/drivers/shougi.c2
-rw-r--r--src/mame/drivers/sidearms.c4
-rw-r--r--src/mame/drivers/skyarmy.c4
-rw-r--r--src/mame/drivers/skydiver.c2
-rw-r--r--src/mame/drivers/skylncr.c2
-rw-r--r--src/mame/drivers/slapfght.c12
-rw-r--r--src/mame/drivers/snk68.c4
-rw-r--r--src/mame/drivers/snowbros.c12
-rw-r--r--src/mame/drivers/solomon.c2
-rw-r--r--src/mame/drivers/spacefb.c4
-rw-r--r--src/mame/drivers/speedatk.c4
-rw-r--r--src/mame/drivers/speedbal.c4
-rw-r--r--src/mame/drivers/speedspn.c4
-rw-r--r--src/mame/drivers/speglsht.c2
-rw-r--r--src/mame/drivers/splash.c2
-rw-r--r--src/mame/drivers/sprcros2.c6
-rw-r--r--src/mame/drivers/sprint4.c2
-rw-r--r--src/mame/drivers/srmp2.c4
-rw-r--r--src/mame/drivers/srmp5.c2
-rw-r--r--src/mame/drivers/ssingles.c2
-rw-r--r--src/mame/drivers/sspeedr.c4
-rw-r--r--src/mame/drivers/sstrangr.c2
-rw-r--r--src/mame/drivers/st0016.c4
-rw-r--r--src/mame/drivers/suna16.c14
-rw-r--r--src/mame/drivers/suna8.c32
-rw-r--r--src/mame/drivers/superdq.c2
-rw-r--r--src/mame/drivers/superqix.c2
-rw-r--r--src/mame/drivers/suprgolf.c2
-rw-r--r--src/mame/drivers/suprridr.c4
-rw-r--r--src/mame/drivers/suprslam.c4
-rw-r--r--src/mame/drivers/system1.c22
-rw-r--r--src/mame/drivers/system16.c10
-rw-r--r--src/mame/drivers/system18.c8
-rw-r--r--src/mame/drivers/tail2nos.c4
-rw-r--r--src/mame/drivers/taitosj.c2
-rw-r--r--src/mame/drivers/tankbust.c4
-rw-r--r--src/mame/drivers/taotaido.c4
-rw-r--r--src/mame/drivers/taxidrvr.c4
-rw-r--r--src/mame/drivers/tecmosys.c4
-rw-r--r--src/mame/drivers/tehkanwc.c2
-rw-r--r--src/mame/drivers/terracre.c6
-rw-r--r--src/mame/drivers/thayers.c2
-rw-r--r--src/mame/drivers/thepit.c2
-rw-r--r--src/mame/drivers/thief.c2
-rw-r--r--src/mame/drivers/tiamc1.c4
-rw-r--r--src/mame/drivers/tigeroad.c6
-rw-r--r--src/mame/drivers/timelimt.c6
-rw-r--r--src/mame/drivers/timeplt.c2
-rw-r--r--src/mame/drivers/tnzs.c4
-rw-r--r--src/mame/drivers/toaplan1.c12
-rw-r--r--src/mame/drivers/toaplan2.c4
-rw-r--r--src/mame/drivers/trackfld.c4
-rw-r--r--src/mame/drivers/trvmadns.c2
-rw-r--r--src/mame/drivers/tsamurai.c10
-rw-r--r--src/mame/drivers/tubep.c12
-rw-r--r--src/mame/drivers/tumbleb.c2
-rw-r--r--src/mame/drivers/turbo.c2
-rw-r--r--src/mame/drivers/twincobr.c2
-rw-r--r--src/mame/drivers/tx1.c4
-rw-r--r--src/mame/drivers/uapce.c2
-rw-r--r--src/mame/drivers/ultraman.c2
-rw-r--r--src/mame/drivers/ultratnk.c2
-rw-r--r--src/mame/drivers/upscope.c2
-rw-r--r--src/mame/drivers/vastar.c6
-rw-r--r--src/mame/drivers/vegas.c4
-rw-r--r--src/mame/drivers/vicdual.c40
-rw-r--r--src/mame/drivers/victory.c2
-rw-r--r--src/mame/drivers/vigilant.c16
-rw-r--r--src/mame/drivers/vindictr.c3
-rw-r--r--src/mame/drivers/vroulet.c2
-rw-r--r--src/mame/drivers/wardner.c4
-rw-r--r--src/mame/drivers/welltris.c4
-rw-r--r--src/mame/drivers/wink.c4
-rw-r--r--src/mame/drivers/xybots.c2
-rw-r--r--src/mame/drivers/xyonix.c2
-rw-r--r--src/mame/drivers/yumefuda.c2
-rw-r--r--src/mame/drivers/yunsun16.c2
-rw-r--r--src/mame/drivers/yunsung8.c2
-rw-r--r--src/mame/drivers/zn.c33
-rw-r--r--src/mame/drivers/zodiack.c2
-rw-r--r--src/mame/includes/cps1.h3
-rw-r--r--src/mame/includes/leland.h8
-rw-r--r--src/mame/machine/asic65.c2
-rw-r--r--src/mame/machine/namco50.h12
-rw-r--r--src/mame/video/bfm_adr2.h2
-rw-r--r--src/mame/video/taitoic.c7
437 files changed, 2018 insertions, 1746 deletions
diff --git a/src/emu/cheat.c b/src/emu/cheat.c
index 6c35586bc31..e807f3cdeb7 100644
--- a/src/emu/cheat.c
+++ b/src/emu/cheat.c
@@ -410,7 +410,7 @@ struct SearchRegion
UINT8 flags;
UINT8 * cachedPointer;
- const address_map
+ const address_map_entry
* writeHandler;
UINT8 * first;
@@ -8922,7 +8922,7 @@ static void RestoreRegionBackup(SearchRegion * region)
static UINT8 DefaultEnableRegion(running_machine *machine, SearchRegion * region, SearchInfo * info)
{
- write8_machine_func handler = region->writeHandler->write.handler8;
+ write8_machine_func handler = region->writeHandler->write.mhandler8;
FPTR handlerAddress = (FPTR)handler;
switch(info->searchSpeed)
@@ -8939,7 +8939,7 @@ static UINT8 DefaultEnableRegion(running_machine *machine, SearchRegion * region
}
#endif
- if( (handler == MWA8_RAM) && (!region->writeHandler->base))
+ if( (handler == MWA8_RAM) && (!region->writeHandler->baseptr))
return 1;
#ifndef MESS
@@ -8981,7 +8981,7 @@ static UINT8 DefaultEnableRegion(running_machine *machine, SearchRegion * region
if( (handler == MWA8_NOP) || (handler == MWA8_ROM))
return 0;
- if( (handlerAddress > STATIC_COUNT) && (!region->writeHandler->base))
+ if( (handlerAddress > STATIC_COUNT) && (!region->writeHandler->baseptr))
return 0;
return 1;
@@ -9155,37 +9155,31 @@ static void BuildSearchRegions(running_machine *machine, SearchInfo * info)
if(info->targetIdx < cpu_gettotalcpu())
{
const address_map * map = NULL;
+ const address_map_entry * entry;
SearchRegion * traverse;
int count = 0;
map = memory_get_map(info->targetIdx, ADDRESS_SPACE_PROGRAM);
-
- while(!IS_AMENTRY_END(map))
- {
- if(!IS_AMENTRY_EXTENDED(map) && map->write.handler)
+ for (entry = map->entrylist; entry != NULL; entry = entry->next)
+ if (entry->write.handler)
count++;
- map++;
- }
-
info->regionList = calloc(sizeof(SearchRegion), count);
info->regionListLength = count;
traverse = info->regionList;
- map = memory_get_map(info->targetIdx, ADDRESS_SPACE_PROGRAM);
-
- while(!IS_AMENTRY_END(map))
+ for (entry = map->entrylist; entry != NULL; entry = entry->next)
{
- if(!IS_AMENTRY_EXTENDED(map) && map->write.handler)
+ if (entry->write.handler)
{
- UINT32 length = (map->end - map->start) + 1;
+ UINT32 length = (entry->end - entry->start) + 1;
- traverse->address = map->start;
+ traverse->address = entry->start;
traverse->length = length;
traverse->targetIdx = info->targetIdx;
traverse->targetType = info->targetType;
- traverse->writeHandler = map;
+ traverse->writeHandler = entry;
traverse->first = NULL;
traverse->last = NULL;
@@ -9200,8 +9194,6 @@ static void BuildSearchRegions(running_machine *machine, SearchInfo * info)
traverse++;
}
-
- map++;
}
}
}
@@ -10475,23 +10467,17 @@ static void DoSearch(SearchInfo * search)
static UINT8 ** LookupHandlerMemory(UINT8 cpu, UINT32 address, UINT32 * outRelativeAddress)
{
const address_map * map = memory_get_map(cpu, ADDRESS_SPACE_PROGRAM);
-
- while(!IS_AMENTRY_END(map))
- {
- if(!IS_AMENTRY_EXTENDED(map) && map->write.handler)
+ const address_map_entry *entry;
+
+ for (entry = map->entrylist; entry != NULL; entry = entry->next)
+ if (entry->write.handler != NULL && (address >= entry->start) && (address <= entry->end))
{
- if((address >= map->start) && (address <= map->end))
- {
- if(outRelativeAddress)
- *outRelativeAddress = address - map->start;
+ if(outRelativeAddress)
+ *outRelativeAddress = address - entry->start;
- return (UINT8 **)map->base;
- }
+ return (UINT8 **)entry->baseptr;
}
- map++;
- }
-
return NULL;
}
diff --git a/src/emu/cpu/cop400/cop410.c b/src/emu/cpu/cop400/cop410.c
index ef517d20017..b2112635022 100644
--- a/src/emu/cpu/cop400/cop410.c
+++ b/src/emu/cpu/cop400/cop410.c
@@ -356,7 +356,7 @@ void cop410_get_info(UINT32 state, cpuinfo *info)
#endif /* ENABLE_DEBUGGER */
case CPUINFO_PTR_INSTRUCTION_COUNTER: info->icount = &cop410_ICount; break;
case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_DATA:
- info->internal_map = construct_map_cop410_RAM; break;
+ info->internal_map8 = address_map_cop410_RAM; break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
case CPUINFO_STR_NAME: strcpy(info->s, "COP410"); break;
diff --git a/src/emu/cpu/cop400/cop420.c b/src/emu/cpu/cop400/cop420.c
index 648a165f8fd..0fc9ec4a11a 100644
--- a/src/emu/cpu/cop400/cop420.c
+++ b/src/emu/cpu/cop400/cop420.c
@@ -385,7 +385,7 @@ void cop420_get_info(UINT32 state, cpuinfo *info)
#endif /* ENABLE_DEBUGGER */
case CPUINFO_PTR_INSTRUCTION_COUNTER: info->icount = &cop420_ICount; break;
case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_DATA:
- info->internal_map = construct_map_cop420_RAM; break;
+ info->internal_map8 = address_map_cop420_RAM; break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
case CPUINFO_STR_NAME: strcpy(info->s, "COP420"); break;
diff --git a/src/emu/cpu/dsp56k/dsp56k.c b/src/emu/cpu/dsp56k/dsp56k.c
index a47cd8623e8..9df069384f7 100644
--- a/src/emu/cpu/dsp56k/dsp56k.c
+++ b/src/emu/cpu/dsp56k/dsp56k.c
@@ -1242,11 +1242,11 @@ void dsp56k_get_info(UINT32 state, cpuinfo *info)
#endif /* ENABLE_DEBUGGER */
case CPUINFO_PTR_INSTRUCTION_COUNTER: info->icount = &dsp56k_icount; break;
case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_DATA:
- info->internal_map = construct_map_dsp56156_x_data_memory; break;
+ info->internal_map16 = address_map_dsp56156_x_data_memory; break;
case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_PROGRAM:
- info->internal_map = construct_map_dsp56156_program_memory; break;
+ info->internal_map16 = address_map_dsp56156_program_memory; break;
case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_IO:
- info->internal_map = 0; break;
+ info->internal_map16 = 0; break;
// --- the following bits of info are returned as NULL-terminated strings ---
diff --git a/src/emu/cpu/e132xs/e132xs.c b/src/emu/cpu/e132xs/e132xs.c
index 638741d0108..1a3763d8b86 100644
--- a/src/emu/cpu/e132xs/e132xs.c
+++ b/src/emu/cpu/e132xs/e132xs.c
@@ -5090,8 +5090,8 @@ static void hyperstone_get_info(UINT32 state, cpuinfo *info)
#endif /* ENABLE_DEBUGGER */
case CPUINFO_PTR_INSTRUCTION_COUNTER: info->icount = &hyperstone_ICount; break;
- case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_DATA: info->internal_map = 0; break;
- case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_IO: info->internal_map = 0; break;
+ case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_DATA: info->internal_map16 = NULL; break;
+ case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_IO: info->internal_map16 = NULL; break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
case CPUINFO_STR_CORE_FAMILY: strcpy(info->s, "Hyperstone CPU"); break;
@@ -5245,7 +5245,7 @@ void e116t_get_info(UINT32 state, cpuinfo *info)
case CPUINFO_INT_DATABUS_WIDTH + ADDRESS_SPACE_PROGRAM: info->i = 16; break;
case CPUINFO_INT_DATABUS_WIDTH + ADDRESS_SPACE_IO: info->i = 16; break;
- case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_PROGRAM: info->internal_map = construct_map_e116_4k_iram_map; break;
+ case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_PROGRAM: info->internal_map16 = address_map_e116_4k_iram_map; break;
/* --- the following bits of info are returned as pointers to data or functions --- */
case CPUINFO_PTR_INIT: info->init = e116t_init; break;
@@ -5268,7 +5268,7 @@ void e116xt_get_info(UINT32 state, cpuinfo *info)
case CPUINFO_INT_DATABUS_WIDTH + ADDRESS_SPACE_PROGRAM: info->i = 16; break;
case CPUINFO_INT_DATABUS_WIDTH + ADDRESS_SPACE_IO: info->i = 16; break;
- case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_PROGRAM: info->internal_map = construct_map_e116_8k_iram_map; break;
+ case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_PROGRAM: info->internal_map16 = address_map_e116_8k_iram_map; break;
/* --- the following bits of info are returned as pointers to data or functions --- */
case CPUINFO_PTR_INIT: info->init = e116xt_init; break;
@@ -5291,7 +5291,7 @@ void e116xs_get_info(UINT32 state, cpuinfo *info)
case CPUINFO_INT_DATABUS_WIDTH + ADDRESS_SPACE_PROGRAM: info->i = 16; break;
case CPUINFO_INT_DATABUS_WIDTH + ADDRESS_SPACE_IO: info->i = 16; break;
- case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_PROGRAM: info->internal_map = construct_map_e116_16k_iram_map; break;
+ case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_PROGRAM: info->internal_map16 = address_map_e116_16k_iram_map; break;
/* --- the following bits of info are returned as pointers to data or functions --- */
case CPUINFO_PTR_INIT: info->init = e116xs_init; break;
@@ -5314,7 +5314,7 @@ void e116xsr_get_info(UINT32 state, cpuinfo *info)
case CPUINFO_INT_DATABUS_WIDTH + ADDRESS_SPACE_PROGRAM: info->i = 16; break;
case CPUINFO_INT_DATABUS_WIDTH + ADDRESS_SPACE_IO: info->i = 16; break;
- case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_PROGRAM: info->internal_map = construct_map_e116_16k_iram_map; break;
+ case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_PROGRAM: info->internal_map16 = address_map_e116_16k_iram_map; break;
/* --- the following bits of info are returned as pointers to data or functions --- */
case CPUINFO_PTR_INIT: info->init = e116xsr_init; break;
@@ -5337,7 +5337,7 @@ void e132n_get_info(UINT32 state, cpuinfo *info)
case CPUINFO_INT_DATABUS_WIDTH + ADDRESS_SPACE_PROGRAM: info->i = 32; break;
case CPUINFO_INT_DATABUS_WIDTH + ADDRESS_SPACE_IO: info->i = 32; break;
- case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_PROGRAM: info->internal_map = construct_map_e132_4k_iram_map; break;
+ case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_PROGRAM: info->internal_map32 = address_map_e132_4k_iram_map; break;
/* --- the following bits of info are returned as pointers to data or functions --- */
case CPUINFO_PTR_INIT: info->init = e132n_init; break;
@@ -5360,7 +5360,7 @@ void e132t_get_info(UINT32 state, cpuinfo *info)
case CPUINFO_INT_DATABUS_WIDTH + ADDRESS_SPACE_PROGRAM: info->i = 32; break;
case CPUINFO_INT_DATABUS_WIDTH + ADDRESS_SPACE_IO: info->i = 32; break;
- case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_PROGRAM: info->internal_map = construct_map_e132_4k_iram_map; break;
+ case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_PROGRAM: info->internal_map32 = address_map_e132_4k_iram_map; break;
/* --- the following bits of info are returned as pointers to data or functions --- */
case CPUINFO_PTR_INIT: info->init = e132t_init; break;
@@ -5383,7 +5383,7 @@ void e132xn_get_info(UINT32 state, cpuinfo *info)
case CPUINFO_INT_DATABUS_WIDTH + ADDRESS_SPACE_PROGRAM: info->i = 32; break;
case CPUINFO_INT_DATABUS_WIDTH + ADDRESS_SPACE_IO: info->i = 32; break;
- case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_PROGRAM: info->internal_map = construct_map_e132_8k_iram_map; break;
+ case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_PROGRAM: info->internal_map32 = address_map_e132_8k_iram_map; break;
/* --- the following bits of info are returned as pointers to data or functions --- */
case CPUINFO_PTR_INIT: info->init = e132xn_init; break;
@@ -5406,7 +5406,7 @@ void e132xt_get_info(UINT32 state, cpuinfo *info)
case CPUINFO_INT_DATABUS_WIDTH + ADDRESS_SPACE_PROGRAM: info->i = 32; break;
case CPUINFO_INT_DATABUS_WIDTH + ADDRESS_SPACE_IO: info->i = 32; break;
- case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_PROGRAM: info->internal_map = construct_map_e132_8k_iram_map; break;
+ case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_PROGRAM: info->internal_map32 = address_map_e132_8k_iram_map; break;
/* --- the following bits of info are returned as pointers to data or functions --- */
case CPUINFO_PTR_INIT: info->init = e132xt_init; break;
@@ -5429,7 +5429,7 @@ void e132xs_get_info(UINT32 state, cpuinfo *info)
case CPUINFO_INT_DATABUS_WIDTH + ADDRESS_SPACE_PROGRAM: info->i = 32; break;
case CPUINFO_INT_DATABUS_WIDTH + ADDRESS_SPACE_IO: info->i = 32; break;
- case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_PROGRAM: info->internal_map = construct_map_e132_16k_iram_map; break;
+ case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_PROGRAM: info->internal_map32 = address_map_e132_16k_iram_map; break;
/* --- the following bits of info are returned as pointers to data or functions --- */
case CPUINFO_PTR_INIT: info->init = e132xs_init; break;
@@ -5452,7 +5452,7 @@ void e132xsr_get_info(UINT32 state, cpuinfo *info)
case CPUINFO_INT_DATABUS_WIDTH + ADDRESS_SPACE_PROGRAM: info->i = 32; break;
case CPUINFO_INT_DATABUS_WIDTH + ADDRESS_SPACE_IO: info->i = 32; break;
- case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_PROGRAM: info->internal_map = construct_map_e132_16k_iram_map; break;
+ case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_PROGRAM: info->internal_map32 = address_map_e132_16k_iram_map; break;
/* --- the following bits of info are returned as pointers to data or functions --- */
case CPUINFO_PTR_INIT: info->init = e132xsr_init; break;
@@ -5475,7 +5475,7 @@ void gms30c2116_get_info(UINT32 state, cpuinfo *info)
case CPUINFO_INT_DATABUS_WIDTH + ADDRESS_SPACE_PROGRAM: info->i = 16; break;
case CPUINFO_INT_DATABUS_WIDTH + ADDRESS_SPACE_IO: info->i = 16; break;
- case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_PROGRAM: info->internal_map = construct_map_e116_4k_iram_map; break;
+ case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_PROGRAM: info->internal_map16 = address_map_e116_4k_iram_map; break;
/* --- the following bits of info are returned as pointers to data or functions --- */
case CPUINFO_PTR_INIT: info->init = gms30c2116_init; break;
@@ -5498,7 +5498,7 @@ void gms30c2132_get_info(UINT32 state, cpuinfo *info)
case CPUINFO_INT_DATABUS_WIDTH + ADDRESS_SPACE_PROGRAM: info->i = 32; break;
case CPUINFO_INT_DATABUS_WIDTH + ADDRESS_SPACE_IO: info->i = 32; break;
- case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_PROGRAM: info->internal_map = construct_map_e132_4k_iram_map; break;
+ case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_PROGRAM: info->internal_map32 = address_map_e132_4k_iram_map; break;
/* --- the following bits of info are returned as pointers to data or functions --- */
case CPUINFO_PTR_INIT: info->init = gms30c2132_init; break;
@@ -5521,7 +5521,7 @@ void gms30c2216_get_info(UINT32 state, cpuinfo *info)
case CPUINFO_INT_DATABUS_WIDTH + ADDRESS_SPACE_PROGRAM: info->i = 16; break;
case CPUINFO_INT_DATABUS_WIDTH + ADDRESS_SPACE_IO: info->i = 16; break;
- case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_PROGRAM: info->internal_map = construct_map_e116_8k_iram_map; break;
+ case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_PROGRAM: info->internal_map16 = address_map_e116_8k_iram_map; break;
/* --- the following bits of info are returned as pointers to data or functions --- */
case CPUINFO_PTR_INIT: info->init = gms30c2216_init; break;
@@ -5544,7 +5544,7 @@ void gms30c2232_get_info(UINT32 state, cpuinfo *info)
case CPUINFO_INT_DATABUS_WIDTH + ADDRESS_SPACE_PROGRAM: info->i = 32; break;
case CPUINFO_INT_DATABUS_WIDTH + ADDRESS_SPACE_IO: info->i = 32; break;
- case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_PROGRAM: info->internal_map = construct_map_e132_8k_iram_map; break;
+ case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_PROGRAM: info->internal_map32 = address_map_e132_8k_iram_map; break;
/* --- the following bits of info are returned as pointers to data or functions --- */
case CPUINFO_PTR_INIT: info->init = gms30c2232_init; break;
diff --git a/src/emu/cpu/h83002/h83002.c b/src/emu/cpu/h83002/h83002.c
index ad0a85218ff..ece79971147 100644
--- a/src/emu/cpu/h83002/h83002.c
+++ b/src/emu/cpu/h83002/h83002.c
@@ -4101,9 +4101,9 @@ void h8_3002_get_info(UINT32 state, cpuinfo *info)
case CPUINFO_INT_ADDRBUS_SHIFT + ADDRESS_SPACE_IO: info->i = 0; break;
// Internal maps
- case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_PROGRAM: info->internal_map = construct_map_h8_3002_internal_map; break;
- case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_DATA: info->internal_map = 0; break;
- case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_IO: info->internal_map = 0; break;
+ case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_PROGRAM: info->internal_map16 = address_map_h8_3002_internal_map; break;
+ case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_DATA: info->internal_map16 = NULL; break;
+ case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_IO: info->internal_map16 = NULL; break;
// CPU misc parameters
case CPUINFO_STR_NAME: strcpy(info->s, "H8/3002"); break;
@@ -4150,7 +4150,7 @@ void h8_3044_get_info(UINT32 state, cpuinfo *info)
{
switch (state)
{
- case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_PROGRAM: info->internal_map = construct_map_h8_3044_internal_map; break;
+ case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_PROGRAM: info->internal_map16 = address_map_h8_3044_internal_map; break;
case CPUINFO_STR_NAME: strcpy(info->s, "H8/3044"); break;
default:
h8_3002_get_info(state,info);
@@ -4161,7 +4161,7 @@ void h8_3007_get_info(UINT32 state, cpuinfo *info)
{
switch (state)
{
- case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_PROGRAM: info->internal_map = construct_map_h8_3007_internal_map; break;
+ case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_PROGRAM: info->internal_map16 = address_map_h8_3007_internal_map; break;
case CPUINFO_PTR_INIT: info->init = h8_3007_init; break;
case CPUINFO_STR_NAME: strcpy(info->s, "H8/3007"); break;
default:
diff --git a/src/emu/cpu/i8051/i8051.c b/src/emu/cpu/i8051/i8051.c
index 16eaad3f05f..4b63e5d280c 100644
--- a/src/emu/cpu/i8051/i8051.c
+++ b/src/emu/cpu/i8051/i8051.c
@@ -2484,9 +2484,9 @@ void i8051_get_info(UINT32 state, cpuinfo *info)
#endif /* ENABLE_DEBUGGER */
case CPUINFO_PTR_INSTRUCTION_COUNTER: info->icount = &i8051_icount; break;
- case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_PROGRAM: info->internal_map = 0; break;
- case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_DATA: info->internal_map = 0; break;
- case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_IO: info->internal_map = 0; break;
+ case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_PROGRAM: info->internal_map8 = NULL; break;
+ case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_DATA: info->internal_map8 = NULL; break;
+ case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_IO: info->internal_map8 = NULL; break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
case CPUINFO_STR_NAME: strcpy(info->s, "I8051"); break;
diff --git a/src/emu/cpu/i960/i960.c b/src/emu/cpu/i960/i960.c
index ee9b8f7ec1d..8c36ca9ed35 100644
--- a/src/emu/cpu/i960/i960.c
+++ b/src/emu/cpu/i960/i960.c
@@ -2142,9 +2142,9 @@ void i960_get_info(UINT32 state, cpuinfo *info)
case CPUINFO_INT_LOGADDR_WIDTH + ADDRESS_SPACE_IO: info->i = 0; break;
// Internal maps
- case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_PROGRAM: info->internal_map = 0; break;
- case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_DATA: info->internal_map = 0; break;
- case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_IO: info->internal_map = 0; break;
+ case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_PROGRAM: info->internal_map32 = NULL; break;
+ case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_DATA: info->internal_map32 = NULL; break;
+ case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_IO: info->internal_map32 = NULL; break;
// CPU misc parameters
case CPUINFO_STR_NAME: strcpy(info->s, "i960KB"); break;
diff --git a/src/emu/cpu/m37710/m37710.c b/src/emu/cpu/m37710/m37710.c
index 45d018d6b2c..4b917abfacb 100644
--- a/src/emu/cpu/m37710/m37710.c
+++ b/src/emu/cpu/m37710/m37710.c
@@ -1229,9 +1229,9 @@ void m37710_get_info(UINT32 state, cpuinfo *info)
#endif /* ENABLE_DEBUGGER */
case CPUINFO_PTR_INSTRUCTION_COUNTER: info->icount = &m37710_ICount; break;
- case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_PROGRAM: info->internal_map = construct_map_m37710_internal_map; break;
- case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_DATA: info->internal_map = 0; break;
- case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_IO: info->internal_map = 0; break;
+ case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_PROGRAM: info->internal_map16 = address_map_m37710_internal_map; break;
+ case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_DATA: info->internal_map16 = NULL; break;
+ case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_IO: info->internal_map8 = NULL; break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
case CPUINFO_STR_NAME: strcpy(info->s, "M37710"); break;
diff --git a/src/emu/cpu/m6502/m4510.c b/src/emu/cpu/m6502/m4510.c
index 6384a9c1f0e..2f85e145799 100644
--- a/src/emu/cpu/m6502/m4510.c
+++ b/src/emu/cpu/m6502/m4510.c
@@ -498,7 +498,7 @@ void m4510_get_info(UINT32 state, cpuinfo *info)
case CPUINFO_PTR_DISASSEMBLE: info->disassemble = m4510_dasm; break;
#endif
case CPUINFO_PTR_INSTRUCTION_COUNTER: info->icount = &m4510_ICount; break;
- case CPUINFO_PTR_INTERNAL_MEMORY_MAP: info->internal_map = construct_map_m4510_mem; break;
+ case CPUINFO_PTR_INTERNAL_MEMORY_MAP: info->internal_map8 = address_map_m4510_mem; break;
case CPUINFO_PTR_TRANSLATE: info->translate = m4510_translate; break;
case CPUINFO_PTR_M6502_READINDEXED_CALLBACK: info->f = (genf *) m4510.rdmem_id; break;
case CPUINFO_PTR_M6502_WRITEINDEXED_CALLBACK: info->f = (genf *) m4510.wrmem_id; break;
diff --git a/src/emu/cpu/m6502/m6502.c b/src/emu/cpu/m6502/m6502.c
index 541586cdede..d94e8437123 100644
--- a/src/emu/cpu/m6502/m6502.c
+++ b/src/emu/cpu/m6502/m6502.c
@@ -834,7 +834,7 @@ void m6510_get_info(UINT32 state, cpuinfo *info)
#ifdef ENABLE_DEBUGGER
case CPUINFO_PTR_DISASSEMBLE: info->disassemble = m6510_dasm; break;
#endif
- case CPUINFO_PTR_INTERNAL_MEMORY_MAP: info->internal_map = construct_map_m6510_mem; break;
+ case CPUINFO_PTR_INTERNAL_MEMORY_MAP: info->internal_map8 = address_map_m6510_mem; break;
case CPUINFO_PTR_M6510_PORTREAD: info->f = (genf *) m6502.port_read; break;
case CPUINFO_PTR_M6510_PORTWRITE: info->f = (genf *) m6502.port_write; break;
diff --git a/src/emu/cpu/m6502/m6509.c b/src/emu/cpu/m6502/m6509.c
index dbeed825a41..93157427d6d 100644
--- a/src/emu/cpu/m6502/m6509.c
+++ b/src/emu/cpu/m6502/m6509.c
@@ -376,7 +376,7 @@ void m6509_get_info(UINT32 state, cpuinfo *info)
case CPUINFO_PTR_DISASSEMBLE: info->disassemble = m6502_dasm; break;
#endif
case CPUINFO_PTR_INSTRUCTION_COUNTER: info->icount = &m6502_ICount; break;
- case CPUINFO_PTR_INTERNAL_MEMORY_MAP: info->internal_map = construct_map_m6509_mem; break;
+ case CPUINFO_PTR_INTERNAL_MEMORY_MAP: info->internal_map8 = address_map_m6509_mem; break;
case CPUINFO_PTR_M6502_READINDEXED_CALLBACK: info->f = (genf *) m6509.rdmem_id; break;
case CPUINFO_PTR_M6502_WRITEINDEXED_CALLBACK: info->f = (genf *) m6509.wrmem_id; break;
diff --git a/src/emu/cpu/m6800/m6800.c b/src/emu/cpu/m6800/m6800.c
index 7b6e8a8d1c5..11f686847b4 100644
--- a/src/emu/cpu/m6800/m6800.c
+++ b/src/emu/cpu/m6800/m6800.c
@@ -2766,7 +2766,7 @@ void m6803_get_info(UINT32 state, cpuinfo *info)
case CPUINFO_PTR_DISASSEMBLE: info->disassemble = m6803_dasm; break;
#endif /* ENABLE_DEBUGGER */
- case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_PROGRAM: info->internal_map = construct_map_m6803_mem; break;
+ case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_PROGRAM: info->internal_map8 = address_map_m6803_mem; break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
case CPUINFO_STR_NAME: strcpy(info->s, "M6803"); break;
diff --git a/src/emu/cpu/mips/mips3com.c b/src/emu/cpu/mips/mips3com.c
index c1d4b910389..301b2a48c9d 100644
--- a/src/emu/cpu/mips/mips3com.c
+++ b/src/emu/cpu/mips/mips3com.c
@@ -47,7 +47,7 @@ static void program_write_qword_masked_32le(offs_t offset, UINT64 data, UINT64 m
PRIVATE GLOBAL VARIABLES
***************************************************************************/
-static const memory_handlers be_memory =
+static const memory_accessors be_memory =
{
program_read_byte_32be,
program_read_word_32be,
@@ -64,7 +64,7 @@ static const memory_handlers be_memory =
program_write_qword_masked_32be
};
-static const memory_handlers le_memory =
+static const memory_accessors le_memory =
{
program_read_byte_32le,
program_read_word_32le,
diff --git a/src/emu/cpu/mips/mips3com.h b/src/emu/cpu/mips/mips3com.h
index a2186abd47e..a664140b3e2 100644
--- a/src/emu/cpu/mips/mips3com.h
+++ b/src/emu/cpu/mips/mips3com.h
@@ -145,8 +145,8 @@ typedef enum _mips3_flavor mips3_flavor;
***************************************************************************/
/* memory access function table */
-typedef struct _memory_handlers memory_handlers;
-struct _memory_handlers
+typedef struct _memory_accessors memory_accessors;
+struct _memory_accessors
{
UINT8 (*readbyte)(offs_t);
UINT16 (*readhalf)(offs_t);
@@ -197,7 +197,7 @@ struct _mips3_state
/* memory accesses */
UINT8 bigendian;
- memory_handlers memory;
+ memory_accessors memory;
/* cache memory */
UINT32 * icache;
diff --git a/src/emu/cpu/mips/r3000.c b/src/emu/cpu/mips/r3000.c
index 4933fd4e719..6449c5b3a87 100644
--- a/src/emu/cpu/mips/r3000.c
+++ b/src/emu/cpu/mips/r3000.c
@@ -119,12 +119,12 @@
typedef struct
{
UINT8 (*readbyte)(offs_t);
- UINT16 (*readword)(offs_t);
- UINT32 (*readlong)(offs_t);
+ UINT16 (*readword)(offs_t);
+ UINT32 (*readlong)(offs_t);
void (*writebyte)(offs_t, UINT8);
void (*writeword)(offs_t, UINT16);
void (*writelong)(offs_t, UINT32);
-} memory_handlers;
+} memory_accessors;
/* R3000 Registers */
typedef struct
@@ -156,9 +156,9 @@ typedef struct
/* memory accesses */
UINT8 bigendian;
- memory_handlers cur;
- const memory_handlers *memory_hand;
- const memory_handlers *cache_hand;
+ memory_accessors cur;
+ const memory_accessors *memory_hand;
+ const memory_accessors *cache_hand;
/* cache memory */
UINT32 * cache;
@@ -215,25 +215,25 @@ static int r3000_icount;
static r3000_regs r3000;
-static const memory_handlers be_memory =
+static const memory_accessors be_memory =
{
program_read_byte_32be, program_read_word_32be, program_read_dword_32be,
program_write_byte_32be, program_write_word_32be, program_write_dword_32be
};
-static const memory_handlers le_memory =
+static const memory_accessors le_memory =
{
program_read_byte_32le, program_read_word_32le, program_read_dword_32le,
program_write_byte_32le, program_write_word_32le, program_write_dword_32le
};
-static const memory_handlers be_cache =
+static const memory_accessors be_cache =
{
readcache_be, readcache_be_word, readcache_be_dword,
writecache_be, writecache_be_word, writecache_be_dword
};
-static const memory_handlers le_cache =
+static const memory_accessors le_cache =
{
readcache_le, readcache_le_word, readcache_le_dword,
writecache_le, writecache_le_word, writecache_le_dword
diff --git a/src/emu/cpu/pic16c5x/pic16c5x.c b/src/emu/cpu/pic16c5x/pic16c5x.c
index d9cafe4b198..fdbad76d9ab 100644
--- a/src/emu/cpu/pic16c5x/pic16c5x.c
+++ b/src/emu/cpu/pic16c5x/pic16c5x.c
@@ -1102,8 +1102,8 @@ void pic16C54_get_info(UINT32 state, cpuinfo *info)
{
/* --- the following bits of info are returned as pointers to data or functions --- */
case CPUINFO_PTR_RESET: info->reset = pic16C54_reset; break;
- case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_PROGRAM: info->internal_map = construct_map_pic16c54_rom; break;
- case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_DATA: info->internal_map = construct_map_pic16c54_ram; break;
+ case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_PROGRAM: info->internal_map16 = address_map_pic16c54_rom; break;
+ case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_DATA: info->internal_map8 = address_map_pic16c54_ram; break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
case CPUINFO_STR_NAME: strcpy(info->s, "PIC16C54"); break;
@@ -1154,8 +1154,8 @@ void pic16C55_get_info(UINT32 state, cpuinfo *info)
{
/* --- the following bits of info are returned as pointers to data or functions --- */
case CPUINFO_PTR_RESET: info->reset = pic16C55_reset; break;
- case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_PROGRAM: info->internal_map = construct_map_pic16c55_rom; break;
- case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_DATA: info->internal_map = construct_map_pic16c55_ram; break;
+ case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_PROGRAM: info->internal_map16 = address_map_pic16c55_rom; break;
+ case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_DATA: info->internal_map8 = address_map_pic16c55_ram; break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
case CPUINFO_STR_NAME: strcpy(info->s, "PIC16C55"); break;
@@ -1206,8 +1206,8 @@ void pic16C56_get_info(UINT32 state, cpuinfo *info)
{
/* --- the following bits of info are returned as pointers to data or functions --- */
case CPUINFO_PTR_RESET: info->reset = pic16C56_reset; break;
- case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_PROGRAM: info->internal_map = construct_map_pic16c56_rom; break;
- case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_DATA: info->internal_map = construct_map_pic16c56_ram; break;
+ case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_PROGRAM: info->internal_map16 = address_map_pic16c56_rom; break;
+ case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_DATA: info->internal_map8 = address_map_pic16c56_ram; break;
case CPUINFO_INT_ADDRBUS_WIDTH + ADDRESS_SPACE_PROGRAM: info->i = 10; break;
@@ -1263,8 +1263,8 @@ void pic16C57_get_info(UINT32 state, cpuinfo *info)
{
/* --- the following bits of info are returned as pointers to data or functions --- */
case CPUINFO_PTR_RESET: info->reset = pic16C57_reset; break;
- case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_PROGRAM: info->internal_map = construct_map_pic16c57_rom; break;
- case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_DATA: info->internal_map = construct_map_pic16c57_ram; break;
+ case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_PROGRAM: info->internal_map16 = address_map_pic16c57_rom; break;
+ case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_DATA: info->internal_map8 = address_map_pic16c57_ram; break;
case CPUINFO_INT_ADDRBUS_WIDTH + ADDRESS_SPACE_PROGRAM: info->i = 11; break;
case CPUINFO_INT_ADDRBUS_WIDTH + ADDRESS_SPACE_DATA: info->i = 7; break;
@@ -1321,8 +1321,8 @@ void pic16C58_get_info(UINT32 state, cpuinfo *info)
{
/* --- the following bits of info are returned as pointers to data or functions --- */
case CPUINFO_PTR_RESET: info->reset = pic16C58_reset; break;
- case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_PROGRAM: info->internal_map = construct_map_pic16c58_rom; break;
- case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_DATA: info->internal_map = construct_map_pic16c58_ram; break;
+ case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_PROGRAM: info->internal_map16 = address_map_pic16c58_rom; break;
+ case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_DATA: info->internal_map8 = address_map_pic16c58_ram; break;
case CPUINFO_INT_ADDRBUS_WIDTH + ADDRESS_SPACE_PROGRAM: info->i = 11; break;
case CPUINFO_INT_ADDRBUS_WIDTH + ADDRESS_SPACE_DATA: info->i = 7; break;
diff --git a/src/emu/cpu/sh4/sh4.c b/src/emu/cpu/sh4/sh4.c
index c7643809c7d..42064a4ab52 100644
--- a/src/emu/cpu/sh4/sh4.c
+++ b/src/emu/cpu/sh4/sh4.c
@@ -5096,7 +5096,7 @@ void sh4_get_info(UINT32 state, cpuinfo *info)
case CPUINFO_INT_ADDRBUS_WIDTH + ADDRESS_SPACE_IO: info->i = 8; break;
case CPUINFO_INT_ADDRBUS_SHIFT + ADDRESS_SPACE_IO: info->i = 0; break;
- case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_PROGRAM: info->internal_map = construct_map_sh4_internal_map; break;
+ case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_PROGRAM: info->internal_map64 = address_map_sh4_internal_map; break;
case CPUINFO_INT_INPUT_STATE + SH4_IRL0: info->i = sh4.irq_line_state[SH4_IRL0]; break;
case CPUINFO_INT_INPUT_STATE + SH4_IRL1: info->i = sh4.irq_line_state[SH4_IRL1]; break;
diff --git a/src/emu/cpu/sharc/sharc.c b/src/emu/cpu/sharc/sharc.c
index d61d55d9782..85f13571da3 100644
--- a/src/emu/cpu/sharc/sharc.c
+++ b/src/emu/cpu/sharc/sharc.c
@@ -1102,7 +1102,7 @@ static void sharc_get_info(UINT32 state, cpuinfo *info)
case CPUINFO_PTR_INSTRUCTION_COUNTER: info->icount = &sharc_icount; break;
case CPUINFO_PTR_READ: info->read = sharc_debug_read; break;
case CPUINFO_PTR_READOP: info->readop = sharc_debug_readop; break;
- case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_PROGRAM: info->internal_map = construct_map_internal_pgm; break;
+ case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_PROGRAM: info->internal_map64 = address_map_internal_pgm; break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
case CPUINFO_STR_CORE_FAMILY: strcpy(info->s, "SHARC"); break;
diff --git a/src/emu/cpu/ssp1610/ssp1610.c b/src/emu/cpu/ssp1610/ssp1610.c
index c65ba7bba5e..5c5486efff3 100644
--- a/src/emu/cpu/ssp1610/ssp1610.c
+++ b/src/emu/cpu/ssp1610/ssp1610.c
@@ -823,8 +823,8 @@ void ssp1610_get_info(UINT32 state, cpuinfo *info)
#endif /* ENABLE_DEBUGGER */
case CPUINFO_PTR_INSTRUCTION_COUNTER: info->icount = &ssp1610_ICount; break;
- case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_DATA: info->internal_map = 0; break;
- case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_IO: info->internal_map = 0; break;
+ case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_DATA: info->internal_map16 = NULL; break;
+ case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_IO: info->internal_map16 = NULL; break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
case CPUINFO_STR_CORE_FAMILY: strcpy(info->s, "SSP1610 CPU"); break;
diff --git a/src/emu/cpu/tlcs90/tlcs90.c b/src/emu/cpu/tlcs90/tlcs90.c
index 644cc7ab6b2..15f5efcb15c 100644
--- a/src/emu/cpu/tlcs90/tlcs90.c
+++ b/src/emu/cpu/tlcs90/tlcs90.c
@@ -2788,7 +2788,7 @@ void tmp90840_get_info(UINT32 state, cpuinfo *info)
case CPUINFO_PTR_DISASSEMBLE: info->disassemble = t90_dasm; break;
#endif
case CPUINFO_PTR_INSTRUCTION_COUNTER: info->icount = &t90_ICount; break;
- case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_PROGRAM: info->internal_map = construct_map_tmp90840_mem; break;
+ case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_PROGRAM: info->internal_map8 = address_map_tmp90840_mem; break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
@@ -2834,7 +2834,7 @@ void tmp90841_get_info(UINT32 state, cpuinfo *info)
{
/* --- the following bits of info are returned as 64-bit signed integers --- */
- case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_PROGRAM: info->internal_map = construct_map_tmp90841_mem; return;
+ case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_PROGRAM: info->internal_map8 = address_map_tmp90841_mem; return;
/* --- the following bits of info are returned as NULL-terminated strings --- */
@@ -2850,7 +2850,7 @@ void tmp91640_get_info(UINT32 state, cpuinfo *info)
{
/* --- the following bits of info are returned as 64-bit signed integers --- */
- case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_PROGRAM: info->internal_map = construct_map_tmp91640_mem; return;
+ case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_PROGRAM: info->internal_map8 = address_map_tmp91640_mem; return;
/* --- the following bits of info are returned as NULL-terminated strings --- */
@@ -2866,7 +2866,7 @@ void tmp91641_get_info(UINT32 state, cpuinfo *info)
{
/* --- the following bits of info are returned as 64-bit signed integers --- */
- case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_PROGRAM: info->internal_map = construct_map_tmp91641_mem; return;
+ case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_PROGRAM: info->internal_map8 = address_map_tmp91641_mem; return;
/* --- the following bits of info are returned as NULL-terminated strings --- */
diff --git a/src/emu/cpu/tms32010/tms32010.c b/src/emu/cpu/tms32010/tms32010.c
index 390ddd4227e..825040ea2d7 100644
--- a/src/emu/cpu/tms32010/tms32010.c
+++ b/src/emu/cpu/tms32010/tms32010.c
@@ -934,7 +934,7 @@ void tms32010_get_info(UINT32 state, cpuinfo *info)
case CPUINFO_PTR_DISASSEMBLE: info->disassemble = tms32010_dasm; break;
#endif /* ENABLE_DEBUGGER */
case CPUINFO_PTR_INSTRUCTION_COUNTER: info->icount = &tms32010_icount; break;
- case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_DATA: info->internal_map = construct_map_tms32010_ram; break;
+ case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_DATA: info->internal_map16 = address_map_tms32010_ram; break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
case CPUINFO_STR_NAME: strcpy(info->s, "TMS32010"); break;
diff --git a/src/emu/cpu/tms32031/tms32031.c b/src/emu/cpu/tms32031/tms32031.c
index 1e4101e4a2f..dca1be5fa75 100644
--- a/src/emu/cpu/tms32031/tms32031.c
+++ b/src/emu/cpu/tms32031/tms32031.c
@@ -818,7 +818,7 @@ void tms32031_get_info(UINT32 state, cpuinfo *info)
case CPUINFO_PTR_DISASSEMBLE: info->disassemble = tms32031_dasm; break;
#endif /* ENABLE_DEBUGGER */
case CPUINFO_PTR_INSTRUCTION_COUNTER: info->icount = &tms32031_icount; break;
- case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_PROGRAM: info->internal_map = construct_map_internal_32031; break;
+ case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_PROGRAM: info->internal_map32 = address_map_internal_32031; break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
case CPUINFO_STR_NAME: strcpy(info->s, "TMS32031"); break;
@@ -889,7 +889,7 @@ void tms32032_get_info(UINT32 state, cpuinfo *info)
{
/* --- the following bits of info are returned as pointers to data or functions --- */
case CPUINFO_PTR_RESET: info->reset = tms32032_reset; break;
- case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_PROGRAM: info->internal_map = construct_map_internal_32032; break;
+ case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_PROGRAM: info->internal_map32 = address_map_internal_32032; break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
case CPUINFO_STR_NAME: strcpy(info->s, "TMS32032"); break;
diff --git a/src/emu/cpu/tms32051/tms32051.c b/src/emu/cpu/tms32051/tms32051.c
index c515edfea05..606d062a453 100644
--- a/src/emu/cpu/tms32051/tms32051.c
+++ b/src/emu/cpu/tms32051/tms32051.c
@@ -633,8 +633,8 @@ static void tms_get_info(UINT32 state, cpuinfo *info)
#endif /* ENABLE_DEBUGGER */
case CPUINFO_PTR_READ: info->read = tms_debug_read; break;
case CPUINFO_PTR_INSTRUCTION_COUNTER: info->icount = &tms_icount; break;
- case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_PROGRAM: info->internal_map = construct_map_internal_pgm; break;
- case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_DATA: info->internal_map = construct_map_internal_data; break;
+ case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_PROGRAM: info->internal_map16 = address_map_internal_pgm; break;
+ case CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACE_DATA: info->internal_map16 = address_map_internal_data; break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
case CPUINFO_STR_CORE_FAMILY: strcpy(info->s, "TMS3205x"); break;
diff --git a/src/emu/cpu/tms7000/tms7000.c b/src/emu/cpu/tms7000/tms7000.c
index dacda217059..d89cd68cf73 100644
--- a/src/emu/cpu/tms7000/tms7000.c
+++ b/src/emu/cpu/tms7000/tms7000.c
@@ -337,7 +337,7 @@ void tms7000_get_info(UINT32 state, cpuinfo *info)
case CPUINFO_PTR_DISASSEMBLE: info->disassemble = tms7000_dasm; break;
#endif
case CPUINFO_PTR_INSTRUCTION_COUNTER: info->icount = &tms7000_icount; break;
- case CPUINFO_PTR_INTERNAL_MEMORY_MAP: info->internal_map = construct_map_tms7000_mem; break;
+ case CPUINFO_PTR_INTERNAL_MEMORY_MAP: info->internal_map8 = address_map_tms7000_mem; break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
case CPUINFO_STR_NAME: strcpy(info->s = cpuintrf_temp_str(), "TMS7000"); break;
diff --git a/src/emu/cpuexec.h b/src/emu/cpuexec.h
index 474eb1e7f98..facc3d4497e 100644
--- a/src/emu/cpuexec.h
+++ b/src/emu/cpuexec.h
@@ -258,7 +258,7 @@ struct _cpu_config
cpu_type type; /* index for the CPU type */
int flags; /* flags; see #defines below */
int clock; /* in Hertz */
- construct_map_t construct_map[ADDRESS_SPACES][2]; /* 2 memory maps per address space */
+ const addrmap_token *address_map[ADDRESS_SPACES][2]; /* 2 memory maps per address space */
void (*vblank_interrupt)(running_machine *machine, int cpunum); /* for interrupts tied to VBLANK */
int vblank_interrupts_per_frame;/* usually 1 */
const char * vblank_interrupt_screen; /* the screen that causes the VBLANK interrupt */
diff --git a/src/emu/cpuintrf.h b/src/emu/cpuintrf.h
index d3d91c1acce..76769aca0df 100644
--- a/src/emu/cpuintrf.h
+++ b/src/emu/cpuintrf.h
@@ -130,7 +130,7 @@ enum
CPUINFO_PTR_READOP, /* R/O: int (*readop)(UINT32 offset, int size, UINT64 *value) */
CPUINFO_PTR_DEBUG_SETUP_COMMANDS, /* R/O: void (*setup_commands)(void) */
CPUINFO_PTR_INSTRUCTION_COUNTER, /* R/O: int *icount */
- CPUINFO_PTR_INTERNAL_MEMORY_MAP, /* R/O: construct_map_t map */
+ CPUINFO_PTR_INTERNAL_MEMORY_MAP, /* R/O: const addrmap_token *map */
CPUINFO_PTR_INTERNAL_MEMORY_MAP_LAST = CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACES - 1,
CPUINFO_PTR_DEBUG_REGISTER_LIST, /* R/O: int *list: list of registers for the debugger */
@@ -238,7 +238,10 @@ union _cpuinfo
cpu_readop_func readop; /* CPUINFO_PTR_READOP */
cpu_setup_commands_func setup_commands; /* CPUINFO_PTR_DEBUG_SETUP_COMMANDS */
int * icount; /* CPUINFO_PTR_INSTRUCTION_COUNTER */
- construct_map_t internal_map; /* CPUINFO_PTR_INTERNAL_MEMORY_MAP */
+ const addrmap8_token * internal_map8; /* CPUINFO_PTR_INTERNAL_MEMORY_MAP */
+ const addrmap16_token * internal_map16; /* CPUINFO_PTR_INTERNAL_MEMORY_MAP */
+ const addrmap32_token * internal_map32; /* CPUINFO_PTR_INTERNAL_MEMORY_MAP */
+ const addrmap64_token * internal_map64; /* CPUINFO_PTR_INTERNAL_MEMORY_MAP */
};
diff --git a/src/emu/inptport.c b/src/emu/inptport.c
index 4c87faac3e3..25f65786080 100644
--- a/src/emu/inptport.c
+++ b/src/emu/inptport.c
@@ -2253,7 +2253,7 @@ static void input_port_detokenize(input_port_init_params *param, const input_por
#endif /* MESS */
default:
- fatalerror("unknown port entry type");
+ fatalerror("Invalid token %d in input ports\n", entrytype);
break;
}
}
diff --git a/src/emu/mconfig.c b/src/emu/mconfig.c
index 38195ab0bd0..fa6ba3fc961 100644
--- a/src/emu/mconfig.c
+++ b/src/emu/mconfig.c
@@ -349,20 +349,20 @@ static void machine_config_detokenize(machine_config *config, const machine_conf
case MCONFIG_TOKEN_CPU_PROGRAM_MAP:
assert(cpu != NULL);
- cpu->construct_map[ADDRESS_SPACE_PROGRAM][0] = (construct_map_t)TOKEN_GET_PTR(tokens, voidptr);
- cpu->construct_map[ADDRESS_SPACE_PROGRAM][1] = (construct_map_t)TOKEN_GET_PTR(tokens, voidptr);
+ cpu->address_map[ADDRESS_SPACE_PROGRAM][0] = TOKEN_GET_PTR(tokens, addrmap);
+ cpu->address_map[ADDRESS_SPACE_PROGRAM][1] = TOKEN_GET_PTR(tokens, addrmap);
break;
case MCONFIG_TOKEN_CPU_DATA_MAP:
assert(cpu != NULL);
- cpu->construct_map[ADDRESS_SPACE_DATA][0] = (construct_map_t)TOKEN_GET_PTR(tokens, voidptr);
- cpu->construct_map[ADDRESS_SPACE_DATA][1] = (construct_map_t)TOKEN_GET_PTR(tokens, voidptr);
+ cpu->address_map[ADDRESS_SPACE_DATA][0] = TOKEN_GET_PTR(tokens, addrmap);
+ cpu->address_map[ADDRESS_SPACE_DATA][1] = TOKEN_GET_PTR(tokens, addrmap);
break;
case MCONFIG_TOKEN_CPU_IO_MAP:
assert(cpu != NULL);
- cpu->construct_map[ADDRESS_SPACE_IO][0] = (construct_map_t)TOKEN_GET_PTR(tokens, voidptr);
- cpu->construct_map[ADDRESS_SPACE_IO][1] = (construct_map_t)TOKEN_GET_PTR(tokens, voidptr);
+ cpu->address_map[ADDRESS_SPACE_IO][0] = TOKEN_GET_PTR(tokens, addrmap);
+ cpu->address_map[ADDRESS_SPACE_IO][1] = TOKEN_GET_PTR(tokens, addrmap);
break;
case MCONFIG_TOKEN_CPU_VBLANK_INT:
@@ -522,6 +522,10 @@ static void machine_config_detokenize(machine_config *config, const machine_conf
sound->route[sound->routes].target = TOKEN_GET_STRING(tokens);
sound->routes++;
break;
+
+ default:
+ fatalerror("Invalid token %d in machine config\n", entrytype);
+ break;
}
}
}
diff --git a/src/emu/mconfig.h b/src/emu/mconfig.h
index 5d23146ea70..93c56080167 100644
--- a/src/emu/mconfig.h
+++ b/src/emu/mconfig.h
@@ -162,6 +162,7 @@ union _machine_config_token
TOKEN_COMMON_FIELDS
const machine_config_token *tokenptr;
const gfx_decode_entry *gfxdecode;
+ const addrmap_token *addrmap;
device_type devtype;
void (*interrupt)(running_machine *machine, int cpunum);
driver_init_func driver_init;
@@ -272,18 +273,18 @@ union _machine_config_token
#define MDRV_CPU_PROGRAM_MAP(_map1, _map2) \
TOKEN_UINT32_PACK1(MCONFIG_TOKEN_CPU_PROGRAM_MAP, 8), \
- TOKEN_PTR(voidptr, construct_map_##_map1), \
- TOKEN_PTR(voidptr, construct_map_##_map2), \
+ TOKEN_PTR(voidptr, address_map_##_map1), \
+ TOKEN_PTR(voidptr, address_map_##_map2), \
#define MDRV_CPU_DATA_MAP(_map1, _map2) \
TOKEN_UINT32_PACK1(MCONFIG_TOKEN_CPU_DATA_MAP, 8), \
- TOKEN_PTR(voidptr, construct_map_##_map1), \
- TOKEN_PTR(voidptr, construct_map_##_map2), \
+ TOKEN_PTR(voidptr, address_map_##_map1), \
+ TOKEN_PTR(voidptr, address_map_##_map2), \
#define MDRV_CPU_IO_MAP(_map1, _map2) \
TOKEN_UINT32_PACK1(MCONFIG_TOKEN_CPU_IO_MAP, 8), \
- TOKEN_PTR(voidptr, construct_map_##_map1), \
- TOKEN_PTR(voidptr, construct_map_##_map2), \
+ TOKEN_PTR(voidptr, address_map_##_map1), \
+ TOKEN_PTR(voidptr, address_map_##_map2), \
#define MDRV_CPU_VBLANK_INT(_tag, _func) \
TOKEN_UINT32_PACK1(MCONFIG_TOKEN_CPU_VBLANK_INT, 8), \
diff --git a/src/emu/memory.c b/src/emu/memory.c
index cfb3b2a55b2..1ceddead63c 100644
--- a/src/emu/memory.c
+++ b/src/emu/memory.c
@@ -233,9 +233,8 @@ struct _addrspace_data
UINT64 unmap; /* unmapped value */
table_data read; /* memory read lookup table */
table_data write; /* memory write lookup table */
- const data_accessors * accessors; /* pointer to the memory accessors */
+ const data_accessors * accessors; /* pointer to the memory accessors */
address_map * map; /* original memory map */
- address_map * adjmap; /* adjusted memory map */
};
typedef struct _cpu_data cpu_data;
@@ -371,6 +370,8 @@ INLINE void force_opbase_update(void)
FUNCTION PROTOTYPES
-------------------------------------------------*/
+static void address_map_detokenize(address_map *map, const addrmap_token *tokens);
+
static void init_cpudata(void);
static void init_addrspace(UINT8 cpunum, UINT8 spacenum);
static void preflight_memory(void);
@@ -387,9 +388,9 @@ static void release_subtable(table_data *tabledata, UINT8 subentry);
static UINT8 *open_subtable(table_data *tabledata, offs_t l1index);
static void close_subtable(table_data *tabledata, offs_t l1index);
static void allocate_memory(void);
-static void *allocate_memory_block(int cpunum, int spacenum, offs_t start, offs_t end, void *memory);
+static void *allocate_memory_block(int cpunum, int spacenum, offs_t bytestart, offs_t byteend, void *memory);
static void register_for_save(int cpunum, int spacenum, offs_t start, void *base, size_t numbytes);
-static address_map *assign_intersecting_blocks(addrspace_data *space, offs_t start, offs_t end, UINT8 *base);
+static address_map_entry *assign_intersecting_blocks(addrspace_data *space, offs_t start, offs_t end, UINT8 *base);
static void find_memory(void);
static void *memory_find_base(int cpunum, int spacenum, int readwrite, offs_t offset);
static genf *get_static_handler(int databits, int readorwrite, int spacenum, int which);
@@ -468,9 +469,11 @@ static void memory_exit(running_machine *machine)
for (cpunum = 0; cpunum < MAX_CPU; cpunum++)
for (spacenum = 0; spacenum < ADDRESS_SPACES; spacenum++)
{
- if (cpudata[cpunum].space[spacenum].read.table)
+ if (cpudata[cpunum].space[spacenum].map != NULL)
+ address_map_free(cpudata[cpunum].space[spacenum].map);
+ if (cpudata[cpunum].space[spacenum].read.table != NULL)
free(cpudata[cpunum].space[spacenum].read.table);
- if (cpudata[cpunum].space[spacenum].write.table)
+ if (cpudata[cpunum].space[spacenum].write.table != NULL)
free(cpudata[cpunum].space[spacenum].write.table);
}
}
@@ -546,6 +549,158 @@ void memory_set_context(int activecpu)
/*-------------------------------------------------
+ address_map_detokenize - detokenize an array
+ of address map tokens
+-------------------------------------------------*/
+
+static void address_map_detokenize(address_map *map, const addrmap_token *tokens)
+{
+ address_map_entry **entryptr;
+ address_map_entry *entry;
+ UINT8 spacenum, databits;
+ UINT32 entrytype;
+
+ /* check the first token */
+ TOKEN_GET_UINT32_UNPACK3(tokens, entrytype, 8, spacenum, 8, databits, 8);
+ if (entrytype != ADDRMAP_TOKEN_START)
+ fatalerror("Address map missing ADDRMAP_TOKEN_START!");
+ if (spacenum >= ADDRESS_SPACES)
+ fatalerror("Invalid address space %d for memory map!", spacenum);
+ if (databits != 8 && databits != 16 && databits != 32 && databits != 64)
+ fatalerror("Invalid data bits %d for memory map!", databits);
+ if (map->spacenum != 0 && map->spacenum != spacenum)
+ fatalerror("Included a mismatched address map (space %d) for an existing map of type %d!\n", spacenum, map->spacenum);
+ if (map->databits != 0 && map->databits != databits)
+ fatalerror("Included a mismatched address map (databits %d) for an existing map with databits %d!\n", databits, map->databits);
+
+ /* fill in the map values */
+ map->spacenum = spacenum;
+ map->databits = databits;
+
+ /* find the end of the list */
+ for (entryptr = &map->entrylist; *entryptr != NULL; entryptr = &(*entryptr)->next) ;
+ entry = NULL;
+
+ /* loop over tokens until we hit the end */
+ while (entrytype != ADDRMAP_TOKEN_END)
+ {
+ /* unpack the token from the first entry */
+ TOKEN_GET_UINT32_UNPACK1(tokens, entrytype, 8);
+ switch (entrytype)
+ {
+ /* end */
+ case ADDRMAP_TOKEN_END:
+ break;
+
+ /* including */
+ case ADDRMAP_TOKEN_INCLUDE:
+ address_map_detokenize(map, TOKEN_GET_PTR(tokens, tokenptr));
+ for (entryptr = &map->entrylist; *entryptr != NULL; entryptr = &(*entryptr)->next) ;
+ entry = NULL;
+ break;
+
+ /* global flags */
+ case ADDRMAP_TOKEN_GLOBAL_MASK:
+ TOKEN_UNGET_UINT32(tokens);
+ TOKEN_GET_UINT64_UNPACK2(tokens, entrytype, 8, map->globalmask, 32);
+ break;
+
+ case ADDRMAP_TOKEN_UNMAP_VALUE:
+ TOKEN_UNGET_UINT32(tokens);
+ TOKEN_GET_UINT32_UNPACK2(tokens, entrytype, 8, map->unmapval, 1);
+ break;
+
+ /* start a new range */
+ case ADDRMAP_TOKEN_RANGE:
+ entry = *entryptr = malloc_or_die(sizeof(**entryptr));
+ entryptr = &entry->next;
+ memset(entry, 0, sizeof(*entry));
+ TOKEN_GET_UINT64_UNPACK2(tokens, entry->start, 32, entry->end, 32);
+ break;
+
+ case ADDRMAP_TOKEN_MASK:
+ TOKEN_UNGET_UINT32(tokens);
+ TOKEN_GET_UINT64_UNPACK2(tokens, entrytype, 8, entry->mask, 32);
+ break;
+
+ case ADDRMAP_TOKEN_MIRROR:
+ TOKEN_UNGET_UINT32(tokens);
+ TOKEN_GET_UINT64_UNPACK2(tokens, entrytype, 8, entry->mirror, 32);
+ break;
+
+ case ADDRMAP_TOKEN_READ:
+ entry->read = TOKEN_GET_PTR(tokens, read);
+ entry->read_name = TOKEN_GET_STRING(tokens);
+ break;
+
+ case ADDRMAP_TOKEN_WRITE:
+ entry->write = TOKEN_GET_PTR(tokens, write);
+ entry->write_name = TOKEN_GET_STRING(tokens);
+ break;
+
+ case ADDRMAP_TOKEN_DEVICE_READ:
+ entry->read = TOKEN_GET_PTR(tokens, read);
+ entry->read_name = TOKEN_GET_STRING(tokens);
+ entry->read_devtype = TOKEN_GET_PTR(tokens, devtype);
+ entry->read_devtag = TOKEN_GET_STRING(tokens);
+ break;
+
+ case ADDRMAP_TOKEN_DEVICE_WRITE:
+ entry->write = TOKEN_GET_PTR(tokens, write);
+ entry->write_name = TOKEN_GET_STRING(tokens);
+ entry->write_devtype = TOKEN_GET_PTR(tokens, devtype);
+ entry->write_devtag = TOKEN_GET_STRING(tokens);
+ break;
+
+ case ADDRMAP_TOKEN_READ_PORT:
+ switch (map->databits)
+ {
+ case 8: entry->read.mhandler8 = port_tag_to_handler8(TOKEN_GET_STRING(tokens)); break;
+ case 16: entry->read.mhandler16 = port_tag_to_handler16(TOKEN_GET_STRING(tokens)); break;
+ case 32: entry->read.mhandler32 = port_tag_to_handler32(TOKEN_GET_STRING(tokens)); break;
+ case 64: entry->read.mhandler64 = port_tag_to_handler64(TOKEN_GET_STRING(tokens)); break;
+ }
+ break;
+
+ case ADDRMAP_TOKEN_REGION:
+ TOKEN_UNGET_UINT32(tokens);
+ TOKEN_GET_UINT64_UNPACK3(tokens, entrytype, 8, entry->region, 24, entry->region_offs, 32);
+ break;
+
+ case ADDRMAP_TOKEN_SHARE:
+ TOKEN_UNGET_UINT32(tokens);
+ TOKEN_GET_UINT32_UNPACK2(tokens, entrytype, 8, entry->share, 24);
+ break;
+
+ case ADDRMAP_TOKEN_BASEPTR:
+ entry->baseptr = (void **)TOKEN_GET_PTR(tokens, voidptr);
+ break;
+
+ case ADDRMAP_TOKEN_BASE_MEMBER:
+ TOKEN_UNGET_UINT32(tokens);
+ TOKEN_GET_UINT32_UNPACK2(tokens, entrytype, 8, entry->baseptroffs_plus1, 24);
+ entry->baseptroffs_plus1++;
+ break;
+
+ case ADDRMAP_TOKEN_SIZEPTR:
+ entry->sizeptr = TOKEN_GET_PTR(tokens, sizeptr);
+ break;
+
+ case ADDRMAP_TOKEN_SIZE_MEMBER:
+ TOKEN_UNGET_UINT32(tokens);
+ TOKEN_GET_UINT32_UNPACK2(tokens, entrytype, 8, entry->sizeptroffs_plus1, 24);
+ entry->sizeptroffs_plus1++;
+ break;
+
+ default:
+ fatalerror("Invalid token %d in address map\n", entrytype);
+ break;
+ }
+ }
+}
+
+
+/*-------------------------------------------------
memory_get_map - return a pointer to a CPU's
memory map
-------------------------------------------------*/
@@ -1087,25 +1242,45 @@ UINT64 *_memory_install_readwrite64_handler(int cpunum, int spacenum, offs_t sta
/*-------------------------------------------------
- construct_address_map - build address map
+ address_map_alloc - build and allocate an
+ address map
-------------------------------------------------*/
-void construct_address_map(address_map *map, const machine_config *drv, int cpunum, int spacenum)
+address_map *address_map_alloc(const machine_config *config, int cpunum, int spacenum)
{
- int cputype = drv->cpu[cpunum].type;
- construct_map_t internal_map = (construct_map_t)cputype_get_info_fct(cputype, CPUINFO_PTR_INTERNAL_MEMORY_MAP + spacenum);
-
- map->flags = AM_FLAGS_END;
+ int cputype = config->cpu[cpunum].type;
+ const addrmap_token *internal_map = (const addrmap_token *)cputype_get_info_ptr(cputype, CPUINFO_PTR_INTERNAL_MEMORY_MAP + spacenum);
+ address_map *map;
+
+ map = malloc_or_die(sizeof(*map));
+ memset(map, 0, sizeof(*map));
/* start by constructing the internal CPU map */
- if (internal_map)
- map = (*internal_map)(Machine, map);
+ if (internal_map != NULL)
+ address_map_detokenize(map, internal_map);
/* construct the standard map */
- if (drv->cpu[cpunum].construct_map[spacenum][0])
- map = (*drv->cpu[cpunum].construct_map[spacenum][0])(Machine, map);
- if (drv->cpu[cpunum].construct_map[spacenum][1])
- map = (*drv->cpu[cpunum].construct_map[spacenum][1])(Machine, map);
+ if (config->cpu[cpunum].address_map[spacenum][0] != NULL)
+ address_map_detokenize(map, config->cpu[cpunum].address_map[spacenum][0]);
+ if (config->cpu[cpunum].address_map[spacenum][1] != NULL)
+ address_map_detokenize(map, config->cpu[cpunum].address_map[spacenum][1]);
+
+ return map;
+}
+
+
+void address_map_free(address_map *map)
+{
+ /* free all entries */
+ while (map->entrylist != NULL)
+ {
+ address_map_entry *entry = map->entrylist;
+ map->entrylist = entry->next;
+ free(entry);
+ }
+
+ /* free the map */
+ free(map);
}
@@ -1187,7 +1362,6 @@ static void init_addrspace(UINT8 cpunum, UINT8 spacenum)
space->mask = SPACE_SHIFT_END(space, space->rawmask);
space->accessors = &memory_accessors[spacenum][accessorindex][cputype_endianness(cputype) == CPU_IS_LE ? 0 : 1];
space->map = NULL;
- space->adjmap = NULL;
/* if there's nothing here, just punt */
if (space->abits == 0)
@@ -1196,54 +1370,53 @@ static void init_addrspace(UINT8 cpunum, UINT8 spacenum)
/* construct the combined memory map */
{
- /* allocate and clear memory for 2 copies of the map */
- address_map *map = auto_malloc(sizeof(space->map[0]) * MAX_ADDRESS_MAP_SIZE * 4);
- memset(map, 0, sizeof(space->map[0]) * MAX_ADDRESS_MAP_SIZE * 4);
-
- /* make pointers to the standard and adjusted maps */
- space->map = map;
- space->adjmap = &map[MAX_ADDRESS_MAP_SIZE * 2];
-
- construct_address_map(map, Machine->config, cpunum, spacenum);
+ address_map_entry *entry;
+
+ /* allocate the address map */
+ space->map = address_map_alloc(Machine->config, cpunum, spacenum);
/* convert implicit ROM entries to map to the memory region */
if (spacenum == ADDRESS_SPACE_PROGRAM && memory_region(REGION_CPU1 + cpunum))
- for (map = space->map; !IS_AMENTRY_END(map); map++)
- if (!IS_AMENTRY_EXTENDED(map) && HANDLER_IS_ROM(map->read.handler) && !map->region)
+ for (entry = space->map->entrylist; entry != NULL; entry = entry->next)
+ if (HANDLER_IS_ROM(entry->read.handler) && entry->region == 0)
{
- offs_t end = SPACE_SHIFT_END(space, map->end);
+ offs_t end = SPACE_SHIFT_END(space, entry->end);
/* make sure they fit within the memory region before doing so, however */
if (end < memory_region_length(REGION_CPU1 + cpunum))
{
- map->region = REGION_CPU1 + cpunum;
- map->region_offs = SPACE_SHIFT(space, map->start);
+ entry->region = REGION_CPU1 + cpunum;
+ entry->region_offs = SPACE_SHIFT(space, entry->start);
}
}
/* convert region-relative entries to their memory pointers */
- for (map = space->map; !IS_AMENTRY_END(map); map++)
- if (map->region)
- map->memory = memory_region(map->region) + map->region_offs;
+ for (entry = space->map->entrylist; entry != NULL; entry = entry->next)
+ if (entry->region != 0)
+ entry->memory = memory_region(entry->region) + entry->region_offs;
/* make the adjusted map */
- memcpy(space->adjmap, space->map, sizeof(space->map[0]) * MAX_ADDRESS_MAP_SIZE * 2);
- for (map = space->adjmap; !IS_AMENTRY_END(map); map++)
- if (!IS_AMENTRY_EXTENDED(map))
- adjust_addresses(space, &map->start, &map->end, &map->mask, &map->mirror);
+ for (entry = space->map->entrylist; entry != NULL; entry = entry->next)
+ {
+ entry->bytestart = entry->start;
+ entry->byteend = entry->end;
+ entry->bytemirror = entry->mirror;
+ entry->bytemask = entry->mask;
+ adjust_addresses(space, &entry->bytestart, &entry->byteend, &entry->bytemask, &entry->bytemirror);
+ }
/* validate adjusted addresses against implicit regions */
- for (map = space->adjmap; !IS_AMENTRY_END(map); map++)
- if (map->region && map->share == 0 && !map->base)
+ for (entry = space->map->entrylist; entry != NULL; entry = entry->next)
+ if (entry->region != 0 && entry->share == 0 && entry->baseptr == NULL)
{
- UINT8 *base = memory_region(map->region);
- offs_t length = memory_region_length(map->region);
+ UINT8 *base = memory_region(entry->region);
+ offs_t length = memory_region_length(entry->region);
/* validate the region */
- if (!base)
- fatalerror("Error: CPU %d space %d memory map entry %X-%X references non-existant region %d", cpunum, spacenum, map->start, map->end, map->region);
- if (map->region_offs + (map->end - map->start + 1) > length)
- fatalerror("Error: CPU %d space %d memory map entry %X-%X extends beyond region %d size (%X)", cpunum, spacenum, map->start, map->end, map->region, length);
+ if (base == NULL)
+ fatalerror("Error: CPU %d space %d memory map entry %X-%X references non-existant region %d", cpunum, spacenum, entry->start, entry->end, entry->region);
+ if (entry->region_offs + (entry->byteend - entry->bytestart + 1) > length)
+ fatalerror("Error: CPU %d space %d memory map entry %X-%X extends beyond region %d size (%X)", cpunum, spacenum, entry->start, entry->end, entry->region, length);
}
}
@@ -1286,78 +1459,46 @@ static void preflight_memory(void)
if (cpudata[cpunum].spacemask & (1 << spacenum))
{
addrspace_data *space = &cpudata[cpunum].space[spacenum];
- const address_map *map;
+ const address_map_entry *entry;
- /* scan the adjusted map */
- for (map = space->adjmap; map && !IS_AMENTRY_END(map); map++)
+ if (space->map->globalmask != 0)
{
- /* look for extended flags */
- if (IS_AMENTRY_EXTENDED(map))
- {
- UINT32 flags = AM_EXTENDED_FLAGS(map);
- UINT32 val;
-
- /* if we specify an address space, make sure it matches the current space */
- if (flags & AMEF_SPECIFIES_SPACE)
- {
- val = (flags & AMEF_SPACE_MASK) >> AMEF_SPACE_SHIFT;
- if (val != spacenum)
- fatalerror("cpu #%d has address space %d handlers in place of address space %d handlers!", cpunum, val, spacenum);
- }
-
- /* if we specify an databus width, make sure it matches the current address space's */
- if (flags & AMEF_SPECIFIES_DBITS)
- {
- val = (flags & AMEF_DBITS_MASK) >> AMEF_DBITS_SHIFT;
- val = (val + 1) * 8;
- if (val != space->dbits)
- fatalerror("cpu #%d uses wrong %d-bit handlers for address space %d (should be %d-bit)!", cpunum, val, spacenum, space->dbits);
- }
+ space->rawmask = space->map->globalmask;
+ space->mask = SPACE_SHIFT_END(space, space->rawmask);
+ }
+ space->unmap = (space->map->unmapval == 0) ? 0 : ~0;
- /* if we specify an addressbus width, adjust the mask */
- if (flags & AMEF_SPECIFIES_ABITS)
- {
- space->rawmask = 0xffffffffUL >> (32 - ((flags & AMEF_ABITS_MASK) >> AMEF_ABITS_SHIFT));
- space->mask = SPACE_SHIFT_END(space, space->rawmask);
- }
+ /* scan the adjusted map */
+ for (entry = space->map->entrylist; entry != NULL; entry = entry->next)
+ {
+ int bank = -1;
- /* if we specify an unmap value, set it */
- if (flags & AMEF_SPECIFIES_UNMAP)
- space->unmap = ((flags & AMEF_UNMAP_MASK) == 0) ? (UINT64)0 : (UINT64)-1;
- }
+ /* look for a bank handler in eithe read or write */
+ if (HANDLER_IS_BANK(entry->read.handler))
+ bank = HANDLER_TO_BANK(entry->read.handler);
+ else if (HANDLER_IS_BANK(entry->write.handler))
+ bank = HANDLER_TO_BANK(entry->write.handler);
- /* otherwise, just track banks and hardcoded memory pointers */
- else
+ /* if we got one, add the data */
+ if (bank >= 1 && bank <= MAX_EXPLICIT_BANKS)
{
- int bank = -1;
-
- /* look for a bank handler in eithe read or write */
- if (HANDLER_IS_BANK(map->read.handler))
- bank = HANDLER_TO_BANK(map->read.handler);
- else if (HANDLER_IS_BANK(map->write.handler))
- bank = HANDLER_TO_BANK(map->write.handler);
-
- /* if we got one, add the data */
- if (bank >= 1 && bank <= MAX_EXPLICIT_BANKS)
- {
- bank_data *bdata = &bankdata[bank];
-
- /* wire up state saving for the entry the first time we see it */
- if (!bdata->used)
- state_save_register_item("memory", bank, bdata->curentry);
-
- bdata->used = TRUE;
- bdata->dynamic = FALSE;
- bdata->cpunum = cpunum;
- bdata->spacenum = spacenum;
- if (bank == HANDLER_TO_BANK(map->read.handler))
- bdata->read = TRUE;
- if (bank == HANDLER_TO_BANK(map->write.handler))
- bdata->write = TRUE;
- bdata->base = map->start;
- bdata->end = map->end;
- bdata->curentry = MAX_BANK_ENTRIES;
- }
+ bank_data *bdata = &bankdata[bank];
+
+ /* wire up state saving for the entry the first time we see it */
+ if (!bdata->used)
+ state_save_register_item("memory", bank, bdata->curentry);
+
+ bdata->used = TRUE;
+ bdata->dynamic = FALSE;
+ bdata->cpunum = cpunum;
+ bdata->spacenum = spacenum;
+ if (bank == HANDLER_TO_BANK(entry->read.handler))
+ bdata->read = TRUE;
+ if (bank == HANDLER_TO_BANK(entry->write.handler))
+ bdata->write = TRUE;
+ bdata->base = entry->bytestart;
+ bdata->end = entry->byteend;
+ bdata->curentry = MAX_BANK_ENTRIES;
}
}
@@ -1386,43 +1527,46 @@ static void populate_memory(void)
if (cpudata[cpunum].spacemask & (1 << spacenum))
{
addrspace_data *space = &cpudata[cpunum].space[spacenum];
- const address_map *map;
/* install the handlers, using the original, unadjusted memory map */
if (space->map != NULL)
{
- /* first find the end */
- for (map = space->map; !IS_AMENTRY_END(map); map++) ;
+ const address_map_entry *last_entry = NULL;
+
+ while (last_entry != space->map->entrylist)
+ {
+ const address_map_entry *entry;
+ int isfixed;
+
+ /* find the entry before the last one we processed */
+ for (entry = space->map->entrylist; entry->next != last_entry; entry = entry->next) ;
+ last_entry = entry;
- /* then work backwards, populating the address map */
- for (map--; map >= space->map; map--)
- if (!IS_AMENTRY_EXTENDED(map))
- {
- int isfixed = (map->memory != NULL) || (map->share != 0);
+ isfixed = (entry->memory != NULL) || (entry->share != 0);
- if (map->read.handler != NULL)
+ if (entry->read.handler != NULL)
+ {
+ void *object = Machine;
+ if (entry->read_devtype != NULL)
{
- void *object = Machine;
- if (map->read_devtype != NULL)
- {
- object = (void *)device_list_find_by_tag(Machine->config->devicelist, map->read_devtype, map->read_devtag);
- if (object == NULL)
- fatalerror("Unidentified object in memory map: type=%s tag=%s\n", devtype_name(map->read_devtype), map->read_devtag);
- }
- install_mem_handler_private(space, 0, space->dbits, map->start, map->end, map->mask, map->mirror, map->read.handler, isfixed, object, map->read_name);
+ object = (void *)device_list_find_by_tag(Machine->config->devicelist, entry->read_devtype, entry->read_devtag);
+ if (object == NULL)
+ fatalerror("Unidentified object in memory map: type=%s tag=%s\n", devtype_name(entry->read_devtype), entry->read_devtag);
}
- if (map->write.handler != NULL)
+ install_mem_handler_private(space, 0, space->dbits, entry->start, entry->end, entry->mask, entry->mirror, entry->read.handler, isfixed, object, entry->read_name);
+ }
+ if (entry->write.handler != NULL)
+ {
+ void *object = Machine;
+ if (entry->write_devtype != NULL)
{
- void *object = Machine;
- if (map->write_devtype != NULL)
- {
- object = (void *)device_list_find_by_tag(Machine->config->devicelist, map->write_devtype, map->write_devtag);
- if (object == NULL)
- fatalerror("Unidentified object in memory map: type=%s tag=%s\n", devtype_name(map->write_devtype), map->write_devtag);
- }
- install_mem_handler_private(space, 1, space->dbits, map->start, map->end, map->mask, map->mirror, map->write.handler, isfixed, object, map->write_name);
+ object = (void *)device_list_find_by_tag(Machine->config->devicelist, entry->write_devtype, entry->write_devtag);
+ if (object == NULL)
+ fatalerror("Unidentified object in memory map: type=%s tag=%s\n", devtype_name(entry->write_devtype), entry->write_devtag);
}
+ install_mem_handler_private(space, 1, space->dbits, entry->start, entry->end, entry->mask, entry->mirror, entry->write.handler, isfixed, object, entry->write_name);
}
+ }
}
}
}
@@ -1455,7 +1599,7 @@ static void install_mem_handler_private(addrspace_data *space, int iswrite, int
/* assign a bank to the adjusted addresses */
handler = (genf *)assign_dynamic_bank(space->cpunum, space->spacenum, temp_start, temp_end, temp_mirror, isfixed, ismasked);
- if (!bank_ptr[HANDLER_TO_BANK(handler)])
+ if (bank_ptr[HANDLER_TO_BANK(handler)] == NULL)
bank_ptr[HANDLER_TO_BANK(handler)] = memory_find_base(space->cpunum, space->spacenum, iswrite, temp_start);
}
@@ -1926,16 +2070,14 @@ static void close_subtable(table_data *tabledata, offs_t l1index)
the need of allocating and registering memory
-------------------------------------------------*/
-static int amentry_needs_backing_store(int cpunum, int spacenum, const address_map *map)
+static int amentry_needs_backing_store(int cpunum, int spacenum, const address_map_entry *entry)
{
FPTR handler;
- if (IS_AMENTRY_EXTENDED(map))
- return 0;
- if (map->base)
+ if (entry->baseptr != NULL || entry->baseptroffs_plus1 != 0)
return 1;
- handler = (FPTR)map->write.handler;
+ handler = (FPTR)entry->write.handler;
if (handler < STATIC_COUNT)
{
if (handler != STATIC_INVALID &&
@@ -1945,12 +2087,12 @@ static int amentry_needs_backing_store(int cpunum, int spacenum, const address_m
return 1;
}
- handler = (FPTR)map->read.handler;
+ handler = (FPTR)entry->read.handler;
if (handler < STATIC_COUNT)
{
if (handler != STATIC_INVALID &&
(handler < STATIC_BANK1 || handler > STATIC_BANK1 + MAX_BANKS - 1) &&
- (handler != STATIC_ROM || spacenum != ADDRESS_SPACE_PROGRAM || map->start >= memory_region_length(REGION_CPU1 + cpunum)) &&
+ (handler != STATIC_ROM || spacenum != ADDRESS_SPACE_PROGRAM || entry->start >= memory_region_length(REGION_CPU1 + cpunum)) &&
handler != STATIC_NOP &&
handler != STATIC_UNMAP)
return 1;
@@ -1975,22 +2117,23 @@ static void allocate_memory(void)
if (cpudata[cpunum].spacemask & (1 << spacenum))
{
addrspace_data *space = &cpudata[cpunum].space[spacenum];
- address_map *map, *unassigned = NULL;
+ address_map_entry *unassigned = NULL;
+ address_map_entry *entry;
int start_count = memory_block_count;
int i;
/* make a first pass over the memory map and track blocks with hardcoded pointers */
/* we do this to make sure they are found by memory_find_base first */
- for (map = space->adjmap; map && !IS_AMENTRY_END(map); map++)
- if (!IS_AMENTRY_EXTENDED(map) && map->memory != NULL)
- allocate_memory_block(cpunum, spacenum, map->start, map->end, map->memory);
+ for (entry = space->map->entrylist; entry != NULL; entry = entry->next)
+ if (entry->memory != NULL)
+ allocate_memory_block(cpunum, spacenum, entry->bytestart, entry->byteend, entry->memory);
/* loop over all blocks just allocated and assign pointers from them */
for (i = start_count; i < memory_block_count; i++)
unassigned = assign_intersecting_blocks(space, memory_block_list[i].start, memory_block_list[i].end, memory_block_list[i].data);
/* if we don't have an unassigned pointer yet, try to find one */
- if (!unassigned)
+ if (unassigned == NULL)
unassigned = assign_intersecting_blocks(space, ~0, 0, NULL);
/* loop until we've assigned all memory in this space */
@@ -2001,8 +2144,8 @@ static void allocate_memory(void)
void *block;
/* work in MEMORY_BLOCK_SIZE-sized chunks */
- curstart = unassigned->start / MEMORY_BLOCK_SIZE;
- curend = unassigned->end / MEMORY_BLOCK_SIZE;
+ curstart = unassigned->bytestart / MEMORY_BLOCK_SIZE;
+ curend = unassigned->byteend / MEMORY_BLOCK_SIZE;
/* loop while we keep finding unassigned blocks in neighboring MEMORY_BLOCK_SIZE chunks */
do
@@ -2010,14 +2153,14 @@ static void allocate_memory(void)
changed = 0;
/* scan for unmapped blocks in the adjusted map */
- for (map = space->adjmap; map && !IS_AMENTRY_END(map); map++)
- if (!IS_AMENTRY_EXTENDED(map) && map->memory == NULL && map != unassigned && amentry_needs_backing_store(cpunum, spacenum, map))
+ for (entry = space->map->entrylist; entry != NULL; entry = entry->next)
+ if (entry->memory == NULL && entry != unassigned && amentry_needs_backing_store(cpunum, spacenum, entry))
{
offs_t blockstart, blockend;
/* get block start/end blocks for this block */
- blockstart = map->start / MEMORY_BLOCK_SIZE;
- blockend = map->end / MEMORY_BLOCK_SIZE;
+ blockstart = entry->bytestart / MEMORY_BLOCK_SIZE;
+ blockend = entry->byteend / MEMORY_BLOCK_SIZE;
/* if we intersect or are adjacent, adjust the start/end */
if (blockstart <= curend + 1 && blockend >= curstart - 1)
@@ -2047,19 +2190,19 @@ static void allocate_memory(void)
memory block of data
-------------------------------------------------*/
-static void *allocate_memory_block(int cpunum, int spacenum, offs_t start, offs_t end, void *memory)
+static void *allocate_memory_block(int cpunum, int spacenum, offs_t bytestart, offs_t byteend, void *memory)
{
memory_block *block = &memory_block_list[memory_block_count];
int allocatemem = (memory == NULL);
int region;
- VPRINTF(("allocate_memory_block(%d,%d,%08X,%08X,%p)\n", cpunum, spacenum, start, end, memory));
+ VPRINTF(("allocate_memory_block(%d,%d,%08X,%08X,%p)\n", cpunum, spacenum, bytestart, byteend, memory));
/* if we weren't passed a memory block, allocate one and clear it to zero */
if (allocatemem)
{
- memory = auto_malloc(end - start + 1);
- memset(memory, 0, end - start + 1);
+ memory = auto_malloc(byteend - bytestart + 1);
+ memset(memory, 0, byteend - bytestart + 1);
}
/* register for saving, but only if we're not part of a memory region */
@@ -2067,21 +2210,21 @@ static void *allocate_memory_block(int cpunum, int spacenum, offs_t start, offs_
{
UINT8 *region_base = memory_region(region);
UINT32 region_length = memory_region_length(region);
- if (region_base != NULL && region_length != 0 && (UINT8 *)memory >= region_base && ((UINT8 *)memory + (end - start + 1)) < region_base + region_length)
+ if (region_base != NULL && region_length != 0 && (UINT8 *)memory >= region_base && ((UINT8 *)memory + (byteend - bytestart + 1)) < region_base + region_length)
{
VPRINTF(("skipping save of this memory block as it is covered by a memory region\n"));
break;
}
}
if (region == MAX_MEMORY_REGIONS)
- register_for_save(cpunum, spacenum, start, memory, end - start + 1);
+ register_for_save(cpunum, spacenum, bytestart, memory, byteend - bytestart + 1);
/* fill in the tracking block */
block->cpunum = cpunum;
block->spacenum = spacenum;
block->isallocated = allocatemem;
- block->start = start;
- block->end = end;
+ block->start = bytestart;
+ block->end = byteend;
block->data = memory;
memory_block_count++;
return memory;
@@ -2108,40 +2251,39 @@ static void register_for_save(int cpunum, int spacenum, offs_t start, void *base
intersecting blocks and assign their pointers
-------------------------------------------------*/
-static address_map *assign_intersecting_blocks(addrspace_data *space, offs_t start, offs_t end, UINT8 *base)
+static address_map_entry *assign_intersecting_blocks(addrspace_data *space, offs_t start, offs_t end, UINT8 *base)
{
- address_map *map, *unassigned = NULL;
+ address_map_entry *entry, *unassigned = NULL;
/* loop over the adjusted map and assign memory to any blocks we can */
- for (map = space->adjmap; map && !IS_AMENTRY_END(map); map++)
- if (!IS_AMENTRY_EXTENDED(map))
+ for (entry = space->map->entrylist; entry != NULL; entry = entry->next)
+ {
+ /* if we haven't assigned this block yet, do it against the last block */
+ if (entry->memory == NULL)
{
- /* if we haven't assigned this block yet, do it against the last block */
- if (map->memory == NULL)
+ /* inherit shared pointers first */
+ if (entry->share != 0 && shared_ptr[entry->share] != NULL)
{
- /* inherit shared pointers first */
- if (map->share && shared_ptr[map->share])
- {
- map->memory = shared_ptr[map->share];
- VPRINTF(("memory range %08X-%08X -> shared_ptr[%d] [%p]\n", map->start, map->end, map->share, map->memory));
- }
+ entry->memory = shared_ptr[entry->share];
+ VPRINTF(("memory range %08X-%08X -> shared_ptr[%d] [%p]\n", entry->start, entry->end, entry->share, entry->memory));
+ }
- /* otherwise, look for a match in this block */
- else if (map->start >= start && map->end <= end)
- {
- map->memory = base + (map->start - start);
- VPRINTF(("memory range %08X-%08X -> found in block from %08X-%08X [%p]\n", map->start, map->end, start, end, map->memory));
- }
+ /* otherwise, look for a match in this block */
+ else if (entry->bytestart >= start && entry->byteend <= end)
+ {
+ entry->memory = base + (entry->bytestart - start);
+ VPRINTF(("memory range %08X-%08X -> found in block from %08X-%08X [%p]\n", entry->start, entry->end, start, end, entry->memory));
}
+ }
- /* if we're the first match on a shared pointer, assign it now */
- if (map->memory != NULL && map->share && !shared_ptr[map->share])
- shared_ptr[map->share] = map->memory;
+ /* if we're the first match on a shared pointer, assign it now */
+ if (entry->memory != NULL && entry->share && shared_ptr[entry->share] == NULL)
+ shared_ptr[entry->share] = entry->memory;
- /* keep track of the first unassigned entry */
- if (map->memory == NULL && !unassigned && amentry_needs_backing_store(space->cpunum, space->spacenum, map))
- unassigned = map;
- }
+ /* keep track of the first unassigned entry */
+ if (entry->memory == NULL && unassigned == NULL && amentry_needs_backing_store(space->cpunum, space->spacenum, entry))
+ unassigned = entry;
+ }
return unassigned;
}
@@ -2181,32 +2323,35 @@ static void find_memory(void)
if (cpudata[cpunum].spacemask & (1 << spacenum))
{
addrspace_data *space = &cpudata[cpunum].space[spacenum];
- const address_map *map;
+ const address_map_entry *entry;
/* fill in base/size entries, and handle shared memory */
- for (map = space->adjmap; map && !IS_AMENTRY_END(map); map++)
- if (!IS_AMENTRY_EXTENDED(map))
- {
- /* assign base/size values */
- if (map->base != NULL)
- *map->base = map->memory;
- if (map->size != NULL)
- *map->size = map->end - map->start + 1;
- }
+ for (entry = space->map->entrylist; entry != NULL; entry = entry->next)
+ {
+ /* assign base/size values */
+ if (entry->baseptr != NULL)
+ *entry->baseptr = entry->memory;
+ if (entry->baseptroffs_plus1 != 0)
+ *(void **)((UINT8 *)Machine->driver_data + entry->baseptroffs_plus1 - 1) = entry->memory;
+ if (entry->sizeptr != NULL)
+ *entry->sizeptr = entry->byteend - entry->bytestart + 1;
+ if (entry->sizeptroffs_plus1 != 0)
+ *(size_t *)((UINT8 *)Machine->driver_data + entry->sizeptroffs_plus1 - 1) = entry->byteend - entry->bytestart + 1;
+ }
}
/* once this is done, find the starting bases for the banks */
for (banknum = 1; banknum <= MAX_BANKS; banknum++)
if (bankdata[banknum].used)
{
- address_map *map;
+ address_map_entry *entry;
/* set the initial bank pointer */
- for (map = cpudata[bankdata[banknum].cpunum].space[bankdata[banknum].spacenum].adjmap; map && !IS_AMENTRY_END(map); map++)
- if (!IS_AMENTRY_EXTENDED(map) && map->start == bankdata[banknum].base)
+ for (entry = cpudata[bankdata[banknum].cpunum].space[bankdata[banknum].spacenum].map->entrylist; entry != NULL; entry = entry->next)
+ if (entry->bytestart == bankdata[banknum].base)
{
- bank_ptr[banknum] = map->memory;
- VPRINTF(("assigned bank %d pointer to memory from range %08X-%08X [%p]\n", banknum, map->start, map->end, map->memory));
+ bank_ptr[banknum] = entry->memory;
+ VPRINTF(("assigned bank %d pointer to memory from range %08X-%08X [%p]\n", banknum, entry->start, entry->end, entry->memory));
break;
}
@@ -2229,23 +2374,22 @@ static void find_memory(void)
static void *memory_find_base(int cpunum, int spacenum, int readwrite, offs_t offset)
{
addrspace_data *space = &cpudata[cpunum].space[spacenum];
- address_map *map;
+ address_map_entry *entry;
memory_block *block;
int blocknum;
VPRINTF(("memory_find_base(%d,%d,%d,%08X) -> ", cpunum, spacenum, readwrite, offset));
/* look in the adjusted map */
- for (map = space->adjmap; map && !IS_AMENTRY_END(map); map++)
- if (!IS_AMENTRY_EXTENDED(map))
+ for (entry = space->map->entrylist; entry != NULL; entry = entry->next)
+ {
+ offs_t maskoffs = offset & entry->bytemask;
+ if (maskoffs >= entry->bytestart && maskoffs <= entry->byteend)
{
- offs_t maskoffs = offset & map->mask;
- if (maskoffs >= map->start && maskoffs <= map->end)
- {
- VPRINTF(("found in entry %08X-%08X [%p]\n", map->start, map->end, (UINT8 *)map->memory + (maskoffs - map->start)));
- return (UINT8 *)map->memory + (maskoffs - map->start);
- }
+ VPRINTF(("found in entry %08X-%08X [%p]\n", entry->start, entry->end, (UINT8 *)entry->memory + (maskoffs - entry->bytestart)));
+ return (UINT8 *)entry->memory + (maskoffs - entry->bytestart);
}
+ }
/* if not found there, look in the allocated blocks */
for (blocknum = 0, block = memory_block_list; blocknum < memory_block_count; blocknum++, block++)
@@ -2294,7 +2438,7 @@ UINT8 name(offs_t original_address) \
\
/* fall back to the handler */ \
else \
- MEMREADEND((*handler->handler.read.handler8)(handler->object, address)); \
+ MEMREADEND((*handler->handler.read.mhandler8)(handler->object, address)); \
} \
#define READBYTE(name,spacenum,xormacro,handlertype,ignorebits,shiftbytes,masktype) \
@@ -2320,12 +2464,12 @@ UINT8 name(offs_t original_address) \
} \
} \
-#define READBYTE16BE(name,space) READBYTE(name,space,BYTE_XOR_BE, handler16,1,~address & 1,UINT16)
-#define READBYTE16LE(name,space) READBYTE(name,space,BYTE_XOR_LE, handler16,1, address & 1,UINT16)
-#define READBYTE32BE(name,space) READBYTE(name,space,BYTE4_XOR_BE,handler32,2,~address & 3,UINT32)
-#define READBYTE32LE(name,space) READBYTE(name,space,BYTE4_XOR_LE,handler32,2, address & 3,UINT32)
-#define READBYTE64BE(name,space) READBYTE(name,space,BYTE8_XOR_BE,handler64,3,~address & 7,UINT64)
-#define READBYTE64LE(name,space) READBYTE(name,space,BYTE8_XOR_LE,handler64,3, address & 7,UINT64)
+#define READBYTE16BE(name,space) READBYTE(name,space,BYTE_XOR_BE, mhandler16,1,~address & 1,UINT16)
+#define READBYTE16LE(name,space) READBYTE(name,space,BYTE_XOR_LE, mhandler16,1, address & 1,UINT16)
+#define READBYTE32BE(name,space) READBYTE(name,space,BYTE4_XOR_BE,mhandler32,2,~address & 3,UINT32)
+#define READBYTE32LE(name,space) READBYTE(name,space,BYTE4_XOR_LE,mhandler32,2, address & 3,UINT32)
+#define READBYTE64BE(name,space) READBYTE(name,space,BYTE8_XOR_BE,mhandler64,3,~address & 7,UINT64)
+#define READBYTE64LE(name,space) READBYTE(name,space,BYTE8_XOR_LE,mhandler64,3, address & 7,UINT64)
/*-------------------------------------------------
@@ -2350,7 +2494,7 @@ UINT16 name(offs_t original_address) \
\
/* fall back to the handler */ \
else \
- MEMREADEND((*handler->handler.read.handler16)(handler->object, address >> 1, 0));\
+ MEMREADEND((*handler->handler.read.mhandler16)(handler->object, address >> 1, 0));\
} \
#define READWORD(name,spacenum,xormacro,handlertype,ignorebits,shiftbytes,masktype) \
@@ -2376,10 +2520,10 @@ UINT16 name(offs_t original_address) \
} \
} \
-#define READWORD32BE(name,space) READWORD(name,space,WORD_XOR_BE, handler32,2,~address & 2,UINT32)
-#define READWORD32LE(name,space) READWORD(name,space,WORD_XOR_LE, handler32,2, address & 2,UINT32)
-#define READWORD64BE(name,space) READWORD(name,space,WORD2_XOR_BE,handler64,3,~address & 6,UINT64)
-#define READWORD64LE(name,space) READWORD(name,space,WORD2_XOR_LE,handler64,3, address & 6,UINT64)
+#define READWORD32BE(name,space) READWORD(name,space,WORD_XOR_BE, mhandler32,2,~address & 2,UINT32)
+#define READWORD32LE(name,space) READWORD(name,space,WORD_XOR_LE, mhandler32,2, address & 2,UINT32)
+#define READWORD64BE(name,space) READWORD(name,space,WORD2_XOR_BE,mhandler64,3,~address & 6,UINT64)
+#define READWORD64LE(name,space) READWORD(name,space,WORD2_XOR_LE,mhandler64,3, address & 6,UINT64)
/*-------------------------------------------------
@@ -2404,7 +2548,7 @@ UINT32 name(offs_t original_address) \
\
/* fall back to the handler */ \
else \
- MEMREADEND((*handler->handler.read.handler32)(handler->object, address >> 2, 0));\
+ MEMREADEND((*handler->handler.read.mhandler32)(handler->object, address >> 2, 0));\
} \
#define READMASKED32(name,spacenum) \
@@ -2424,7 +2568,7 @@ UINT32 name(offs_t original_address, UINT32 mem_mask) \
\
/* fall back to the handler */ \
else \
- MEMREADEND((*handler->handler.read.handler32)(handler->object, address >> 2, mem_mask));\
+ MEMREADEND((*handler->handler.read.mhandler32)(handler->object, address >> 2, mem_mask));\
} \
#define READDWORD(name,spacenum,xormacro,handlertype,ignorebits,shiftbytes,masktype) \
@@ -2450,8 +2594,8 @@ UINT32 name(offs_t original_address) \
} \
} \
-#define READDWORD64BE(name,space) READDWORD(name,space,DWORD_XOR_BE,handler64,3,~address & 4,UINT64)
-#define READDWORD64LE(name,space) READDWORD(name,space,DWORD_XOR_LE,handler64,3, address & 4,UINT64)
+#define READDWORD64BE(name,space) READDWORD(name,space,DWORD_XOR_BE,mhandler64,3,~address & 4,UINT64)
+#define READDWORD64LE(name,space) READDWORD(name,space,DWORD_XOR_LE,mhandler64,3, address & 4,UINT64)
/*-------------------------------------------------
@@ -2476,7 +2620,7 @@ UINT64 name(offs_t original_address) \
\
/* fall back to the handler */ \
else \
- MEMREADEND((*handler->handler.read.handler64)(handler->object, address >> 3, 0));\
+ MEMREADEND((*handler->handler.read.mhandler64)(handler->object, address >> 3, 0));\
} \
#define READMASKED64(name,spacenum) \
@@ -2496,7 +2640,7 @@ UINT64 name(offs_t original_address, UINT64 mem_mask) \
\
/* fall back to the handler */ \
else \
- MEMREADEND((*handler->handler.read.handler64)(handler->object, address >> 3, mem_mask));\
+ MEMREADEND((*handler->handler.read.mhandler64)(handler->object, address >> 3, mem_mask));\
} \
@@ -2521,7 +2665,7 @@ void name(offs_t original_address, UINT8 data) \
\
/* fall back to the handler */ \
else \
- MEMWRITEEND((*handler->handler.write.handler8)(handler->object, address, data));\
+ MEMWRITEEND((*handler->handler.write.mhandler8)(handler->object, address, data));\
} \
#define WRITEBYTE(name,spacenum,xormacro,handlertype,ignorebits,shiftbytes,masktype) \
@@ -2547,12 +2691,12 @@ void name(offs_t original_address, UINT8 data) \
} \
} \
-#define WRITEBYTE16BE(name,space) WRITEBYTE(name,space,BYTE_XOR_BE, handler16,1,~address & 1,UINT16)
-#define WRITEBYTE16LE(name,space) WRITEBYTE(name,space,BYTE_XOR_LE, handler16,1, address & 1,UINT16)
-#define WRITEBYTE32BE(name,space) WRITEBYTE(name,space,BYTE4_XOR_BE,handler32,2,~address & 3,UINT32)
-#define WRITEBYTE32LE(name,space) WRITEBYTE(name,space,BYTE4_XOR_LE,handler32,2, address & 3,UINT32)
-#define WRITEBYTE64BE(name,space) WRITEBYTE(name,space,BYTE8_XOR_BE,handler64,3,~address & 7,UINT64)
-#define WRITEBYTE64LE(name,space) WRITEBYTE(name,space,BYTE8_XOR_LE,handler64,3, address & 7,UINT64)
+#define WRITEBYTE16BE(name,space) WRITEBYTE(name,space,BYTE_XOR_BE, mhandler16,1,~address & 1,UINT16)
+#define WRITEBYTE16LE(name,space) WRITEBYTE(name,space,BYTE_XOR_LE, mhandler16,1, address & 1,UINT16)
+#define WRITEBYTE32BE(name,space) WRITEBYTE(name,space,BYTE4_XOR_BE,mhandler32,2,~address & 3,UINT32)
+#define WRITEBYTE32LE(name,space) WRITEBYTE(name,space,BYTE4_XOR_LE,mhandler32,2, address & 3,UINT32)
+#define WRITEBYTE64BE(name,space) WRITEBYTE(name,space,BYTE8_XOR_BE,mhandler64,3,~address & 7,UINT64)
+#define WRITEBYTE64LE(name,space) WRITEBYTE(name,space,BYTE8_XOR_LE,mhandler64,3, address & 7,UINT64)
/*-------------------------------------------------
@@ -2577,7 +2721,7 @@ void name(offs_t original_address, UINT16 data) \
\
/* fall back to the handler */ \
else \
- MEMWRITEEND((*handler->handler.write.handler16)(handler->object, address >> 1, data, 0));\
+ MEMWRITEEND((*handler->handler.write.mhandler16)(handler->object, address >> 1, data, 0));\
} \
#define WRITEWORD(name,spacenum,xormacro,handlertype,ignorebits,shiftbytes,masktype) \
@@ -2603,10 +2747,10 @@ void name(offs_t original_address, UINT16 data) \
} \
} \
-#define WRITEWORD32BE(name,space) WRITEWORD(name,space,WORD_XOR_BE, handler32,2,~address & 2,UINT32)
-#define WRITEWORD32LE(name,space) WRITEWORD(name,space,WORD_XOR_LE, handler32,2, address & 2,UINT32)
-#define WRITEWORD64BE(name,space) WRITEWORD(name,space,WORD2_XOR_BE,handler64,3,~address & 6,UINT64)
-#define WRITEWORD64LE(name,space) WRITEWORD(name,space,WORD2_XOR_LE,handler64,3, address & 6,UINT64)
+#define WRITEWORD32BE(name,space) WRITEWORD(name,space,WORD_XOR_BE, mhandler32,2,~address & 2,UINT32)
+#define WRITEWORD32LE(name,space) WRITEWORD(name,space,WORD_XOR_LE, mhandler32,2, address & 2,UINT32)
+#define WRITEWORD64BE(name,space) WRITEWORD(name,space,WORD2_XOR_BE,mhandler64,3,~address & 6,UINT64)
+#define WRITEWORD64LE(name,space) WRITEWORD(name,space,WORD2_XOR_LE,mhandler64,3, address & 6,UINT64)
/*-------------------------------------------------
@@ -2631,7 +2775,7 @@ void name(offs_t original_address, UINT32 data) \
\
/* fall back to the handler */ \
else \
- MEMWRITEEND((*handler->handler.write.handler32)(handler->object, address >> 2, data, 0));\
+ MEMWRITEEND((*handler->handler.write.mhandler32)(handler->object, address >> 2, data, 0));\
} \
#define WRITEMASKED32(name,spacenum) \
@@ -2654,7 +2798,7 @@ void name(offs_t original_address, UINT32 data, UINT32 mem_mask) \
\
/* fall back to the handler */ \
else \
- MEMWRITEEND((*handler->handler.write.handler32)(handler->object, address >> 2, data, mem_mask));\
+ MEMWRITEEND((*handler->handler.write.mhandler32)(handler->object, address >> 2, data, mem_mask));\
} \
#define WRITEDWORD(name,spacenum,xormacro,handlertype,ignorebits,shiftbytes,masktype) \
@@ -2680,8 +2824,8 @@ void name(offs_t original_address, UINT32 data) \
} \
} \
-#define WRITEDWORD64BE(name,space) WRITEDWORD(name,space,DWORD_XOR_BE,handler64,3,~address & 4,UINT64)
-#define WRITEDWORD64LE(name,space) WRITEDWORD(name,space,DWORD_XOR_LE,handler64,3, address & 4,UINT64)
+#define WRITEDWORD64BE(name,space) WRITEDWORD(name,space,DWORD_XOR_BE,mhandler64,3,~address & 4,UINT64)
+#define WRITEDWORD64LE(name,space) WRITEDWORD(name,space,DWORD_XOR_LE,mhandler64,3, address & 4,UINT64)
/*-------------------------------------------------
@@ -2706,7 +2850,7 @@ void name(offs_t original_address, UINT64 data) \
\
/* fall back to the handler */ \
else \
- MEMWRITEEND((*handler->handler.write.handler64)(handler->object, address >> 3, data, 0));\
+ MEMWRITEEND((*handler->handler.write.mhandler64)(handler->object, address >> 3, data, 0));\
} \
#define WRITEMASKED64(name,spacenum) \
@@ -2729,7 +2873,7 @@ void name(offs_t original_address, UINT64 data, UINT64 mem_mask) \
\
/* fall back to the handler */ \
else \
- MEMWRITEEND((*handler->handler.write.handler64)(handler->object, address >> 3, data, mem_mask));\
+ MEMWRITEEND((*handler->handler.write.mhandler64)(handler->object, address >> 3, data, mem_mask));\
} \
diff --git a/src/emu/memory.h b/src/emu/memory.h
index 65fab200bb3..957a14c470f 100644
--- a/src/emu/memory.h
+++ b/src/emu/memory.h
@@ -16,6 +16,7 @@
#include "mamecore.h"
#include "devintrf.h"
+#include "tokenize.h"
@@ -127,10 +128,6 @@ struct _data_accessors
declared within each driver.
***************************************************************************/
-/* ----- definitions for the flags in the address maps ----- */
-#define AM_FLAGS_EXTENDED 0x01 /* this is an extended entry with the below flags in the start field */
-#define AM_FLAGS_END 0x02 /* this is the terminating entry in the array */
-
/* ----- definitions for the extended flags in the address maps ----- */
#define AMEF_SPECIFIES_SPACE 0x00000001 /* set if the address space is specified */
#define AMEF_SPECIFIES_ABITS 0x00000002 /* set if the number of address space bits is specified */
@@ -545,10 +542,14 @@ typedef union _read_handlers read_handlers;
union _read_handlers
{
genf * handler;
- read8_machine_func handler8;
- read16_machine_func handler16;
- read32_machine_func handler32;
- read64_machine_func handler64;
+ read8_machine_func mhandler8;
+ read16_machine_func mhandler16;
+ read32_machine_func mhandler32;
+ read64_machine_func mhandler64;
+ read8_device_func dhandler8;
+ read16_device_func dhandler16;
+ read32_device_func dhandler32;
+ read64_device_func dhandler64;
};
/* ----- a union of all the different write handler types ----- */
@@ -556,17 +557,29 @@ typedef union _write_handlers write_handlers;
union _write_handlers
{
genf * handler;
- write8_machine_func handler8;
- write16_machine_func handler16;
- write32_machine_func handler32;
- write64_machine_func handler64;
+ write8_machine_func mhandler8;
+ write16_machine_func mhandler16;
+ write32_machine_func mhandler32;
+ write64_machine_func mhandler64;
+ write8_device_func dhandler8;
+ write16_device_func dhandler16;
+ write32_device_func dhandler32;
+ write64_device_func dhandler64;
+};
+
+typedef union _memory_handlers memory_handlers;
+union _memory_handlers
+{
+ read_handlers read;
+ write_handlers write;
};
/* ----- a generic address map type ----- */
-typedef struct _address_map address_map;
-struct _address_map
+typedef struct _address_map_entry address_map_entry;
+struct _address_map_entry
{
- UINT32 flags; /* flags and additional info about this entry */
+ address_map_entry * next; /* pointer to the next entry */
+
offs_t start, end; /* start/end values */
offs_t mirror; /* mirror bits */
offs_t mask; /* mask bits */
@@ -578,12 +591,28 @@ struct _address_map
const char * write_name; /* write handler callback name */
device_type write_devtype; /* read device type for device references */
const char * write_devtag; /* read tag for the relevant device */
- void * memory; /* pointer to memory backing this entry */
UINT32 share; /* index of a shared memory block */
- void ** base; /* receives pointer to memory (optional) */
- size_t * size; /* receives size of area in bytes (optional) */
+ void ** baseptr; /* receives pointer to memory (optional) */
+ size_t * sizeptr; /* receives size of area in bytes (optional) */
+ UINT32 baseptroffs_plus1; /* offset of base pointer within driver_data struct, plus 1 */
+ UINT32 sizeptroffs_plus1; /* offset of size pointer within driver_data struct, plus 1 */
UINT32 region; /* region containing the memory backing this entry */
offs_t region_offs; /* offset within the region */
+
+ void * memory; /* pointer to memory backing this entry */
+ offs_t bytestart, byteend; /* byte-adjusted start/end values */
+ offs_t bytemirror; /* byte-adjusted mirror bits */
+ offs_t bytemask; /* byte-adjusted mask bits */
+};
+
+typedef struct _address_map address_map;
+struct _address_map
+{
+ UINT8 spacenum; /* space number of the map */
+ UINT8 databits; /* data bits represented by the map */
+ UINT8 unmapval; /* unmapped memory value */
+ offs_t globalmask; /* global mask */
+ address_map_entry * entrylist; /* list of entries */
};
/* ----- structs to contain internal data ----- */
@@ -599,134 +628,234 @@ struct _address_space
};
+typedef union _addrmap_token addrmap_token;
+union _addrmap_token
+{
+ TOKEN_COMMON_FIELDS
+ const addrmap_token * tokenptr;
+ read_handlers read; /* generic read handlers */
+ write_handlers write; /* generic write handlers */
+ device_type devtype; /* device type */
+ UINT8 ** memptr; /* memory pointer */
+ size_t * sizeptr; /* size pointer */
+};
+
+
+typedef union _addrmap8_token addrmap8_token;
+union _addrmap8_token
+{
+ TOKEN_COMMON_FIELDS
+ const addrmap_token * tokenptr;
+ read8_machine_func mread; /* pointer to native machine read handler */
+ write8_machine_func mwrite; /* pointer to native machine write handler */
+ read8_device_func dread; /* pointer to native device read handler */
+ write8_device_func dwrite; /* pointer to native device write handler */
+ read_handlers read; /* generic read handlers */
+ write_handlers write; /* generic write handlers */
+ device_type devtype; /* device type */
+ UINT8 ** memptr; /* memory pointer */
+ size_t * sizeptr; /* size pointer */
+};
+
+
+typedef union _addrmap16_token addrmap16_token;
+union _addrmap16_token
+{
+ TOKEN_COMMON_FIELDS
+ const addrmap_token * tokenptr;
+ read16_machine_func mread; /* pointer to native read handler */
+ write16_machine_func mwrite; /* pointer to native write handler */
+ read16_device_func dread; /* pointer to native device read handler */
+ write16_device_func dwrite; /* pointer to native device write handler */
+ read8_machine_func mread8; /* pointer to 8-bit machine read handler */
+ write8_machine_func mwrite8; /* pointer to 8-bit machine write handler */
+ read_handlers read; /* generic read handlers */
+ write_handlers write; /* generic write handlers */
+ device_type devtype; /* device type */
+ UINT16 ** memptr; /* memory pointer */
+ size_t * sizeptr; /* size pointer */
+};
+
+
+typedef union _addrmap32_token addrmap32_token;
+union _addrmap32_token
+{
+ TOKEN_COMMON_FIELDS
+ const addrmap_token * tokenptr;
+ read32_machine_func mread; /* pointer to native read handler */
+ write32_machine_func mwrite; /* pointer to native write handler */
+ read32_device_func dread; /* pointer to native device read handler */
+ write32_device_func dwrite; /* pointer to native device write handler */
+ read8_machine_func mread8; /* pointer to 8-bit machine read handler */
+ write8_machine_func mwrite8; /* pointer to 8-bit machine write handler */
+ read16_machine_func mread16; /* pointer to 16-bit machine read handler */
+ write16_machine_func mwrite16; /* pointer to 16-bit machine write handler */
+ read_handlers read; /* generic read handlers */
+ write_handlers write; /* generic write handlers */
+ device_type devtype; /* device type */
+ UINT32 ** memptr; /* memory pointer */
+ size_t * sizeptr; /* size pointer */
+};
+
+
+typedef union _addrmap64_token addrmap64_token;
+union _addrmap64_token
+{
+ TOKEN_COMMON_FIELDS
+ const addrmap_token * tokenptr;
+ read64_machine_func mread; /* pointer to native read handler */
+ write64_machine_func mwrite; /* pointer to native write handler */
+ read64_device_func dread; /* pointer to native device read handler */
+ write64_device_func dwrite; /* pointer to native device write handler */
+ read8_machine_func mread8; /* pointer to 8-bit machine read handler */
+ write8_machine_func mwrite8; /* pointer to 8-bit machine write handler */
+ read16_machine_func mread16; /* pointer to 16-bit machine read handler */
+ write16_machine_func mwrite16; /* pointer to 16-bit machine write handler */
+ read32_machine_func mread32; /* pointer to 32-bit machine read handler */
+ write32_machine_func mwrite32; /* pointer to 32-bit machine write handler */
+ read_handlers read; /* generic read handlers */
+ write_handlers write; /* generic write handlers */
+ device_type devtype; /* device type */
+ UINT64 ** memptr; /* memory pointer */
+ size_t * sizeptr; /* size pointer */
+};
+
/***************************************************************************
ADDRESS MAP ARRAY CONSTRUCTORS
***************************************************************************/
-void construct_address_map(address_map *map, const machine_config *drv, int cpunum, int spacenum);
-
-/* ----- a typedef for pointers to these functions ----- */
-typedef address_map *(*construct_map_t)(running_machine *machine, address_map *map);
-
-/* use this to declare external references to a machine driver */
-#define ADDRESS_MAP_EXTERN(_name) \
-address_map *construct_map_##_name(running_machine *machine, address_map *map) \
-
-/* ----- macros for starting, ending, and setting map flags ----- */
-#define ADDRESS_MAP_START(_name,_space,_bits) \
-address_map *construct_map_##_name(running_machine *machine, address_map *map) \
-{ \
- extern read##_bits##_machine_func port_tag_to_handler##_bits(const char *); \
- typedef read##_bits##_machine_func _rmf_t; \
- typedef write##_bits##_machine_func _wmf_t; \
- typedef read##_bits##_device_func _rdf_t; \
- typedef write##_bits##_device_func _wdf_t; \
- _rmf_t readm; \
- _wmf_t writem; \
- _rdf_t readd; \
- _wdf_t writed; \
- _rmf_t (*port_tag_to_handler)(const char *) = port_tag_to_handler##_bits; \
- UINT##_bits **base; \
- \
- (void)readm; (void)writem; (void)readd; (void)writed; (void)base; \
- (void)port_tag_to_handler; \
- map->flags = AM_FLAGS_EXTENDED; \
- map->start = AMEF_DBITS(_bits) | AMEF_SPACE(_space); \
-
-#define ADDRESS_MAP_FLAGS(_flags) \
- map++; \
- map->flags = AM_FLAGS_EXTENDED; \
- map->start = (_flags); \
-
-#define ADDRESS_MAP_END \
- map++; \
- map->flags = AM_FLAGS_END; \
- return map; \
-} \
-
-/* ----- each map entry begins with one of these ----- */
-#define AM_RANGE(_start,_end) \
- map++; \
- map->flags = 0; \
- map->start = (_start); \
- map->end = (_end); \
-
-/* ----- these are optional entries after each map entry ----- */
-#define AM_MASK(_mask) \
- map->mask = (_mask); \
-
-#define AM_MIRROR(_mirror) \
- map->mirror = (_mirror); \
-
-#define AM_READ(_handler) \
- map->read.handler = (genf *)(readm = _handler); \
- map->read_name = #_handler; \
-
-#define AM_READ_PORT(_tag) \
- AM_READ((*port_tag_to_handler)(_tag)) \
-
-#define AM_DEVREAD(_type, _tag, _handler) \
- map->read.handler = (genf *)(readd = _handler); \
- map->read_name = #_handler; \
- map->read_devtype = _type; \
- map->read_devtag = _tag; \
-
-#define AM_WRITE(_handler) \
- map->write.handler = (genf *)(writem = _handler); \
- map->write_name = #_handler; \
-
-#define AM_DEVWRITE(_type, _tag, _handler) \
- map->write.handler = (genf *)(writed = _handler); \
- map->write_name = #_handler; \
- map->write_devtype = _type; \
- map->write_devtag = _tag; \
-
-#define AM_REGION(_region, _offs) \
- map->region = (_region); \
- map->region_offs = (_offs); \
-
-#define AM_SHARE(_index) \
- map->share = _index; \
-
-#define AM_BASE(_base) \
- map->base = (void **)(base = _base); \
-
-#define AM_BASE_MEMBER(_struct, _member) \
- if (machine != NULL && machine->driver_data != NULL) \
- map->base = (void **)(base = &((_struct *)machine->driver_data)->_member);\
-
-#define AM_SIZE(_size) \
- map->size = _size; \
-
-#define AM_SIZE_MEMBER(_struct, _member) \
- if (machine != NULL && machine->driver_data != NULL) \
- map->size = &((_struct *)machine->driver_data)->_member; \
+#define address_map_0 NULL
-/* ----- common shortcuts ----- */
-#define AM_READWRITE(_read,_write) AM_READ(_read) AM_WRITE(_write)
-#define AM_DEVREADWRITE(_type,_tag,_read,_write) AM_DEVREAD(_type,_tag,_read) AM_DEVWRITE(_type,_tag,_write)
-#define AM_ROM AM_READ((_rmf_t)STATIC_ROM)
-#define AM_RAM AM_READWRITE((_rmf_t)STATIC_RAM, (_wmf_t)STATIC_RAM)
-#define AM_WRITEONLY AM_WRITE((_wmf_t)STATIC_RAM)
-#define AM_UNMAP AM_READWRITE((_rmf_t)STATIC_UNMAP, (_wmf_t)STATIC_UNMAP)
-#define AM_ROMBANK(_bank) AM_READ((_rmf_t)(STATIC_BANK1 + (_bank) - 1))
-#define AM_RAMBANK(_bank) AM_READWRITE((_rmf_t)(STATIC_BANK1 + (_bank) - 1), (_wmf_t)(STATIC_BANK1 + (_bank) - 1))
-#define AM_NOP AM_READWRITE((_rmf_t)STATIC_NOP, (_wmf_t)STATIC_NOP)
-#define AM_READNOP AM_READ((_rmf_t)STATIC_NOP)
-#define AM_WRITENOP AM_WRITE((_wmf_t)STATIC_NOP)
+enum
+{
+ ADDRMAP_TOKEN_INVALID,
+
+ ADDRMAP_TOKEN_START,
+ ADDRMAP_TOKEN_END,
+ ADDRMAP_TOKEN_INCLUDE,
+
+ ADDRMAP_TOKEN_GLOBAL_MASK,
+ ADDRMAP_TOKEN_UNMAP_VALUE,
+
+ ADDRMAP_TOKEN_RANGE,
+ ADDRMAP_TOKEN_MASK,
+ ADDRMAP_TOKEN_MIRROR,
+ ADDRMAP_TOKEN_READ,
+ ADDRMAP_TOKEN_WRITE,
+ ADDRMAP_TOKEN_DEVICE_READ,
+ ADDRMAP_TOKEN_DEVICE_WRITE,
+ ADDRMAP_TOKEN_READ_PORT,
+ ADDRMAP_TOKEN_REGION,
+ ADDRMAP_TOKEN_SHARE,
+ ADDRMAP_TOKEN_BASEPTR,
+ ADDRMAP_TOKEN_BASE_MEMBER,
+ ADDRMAP_TOKEN_SIZEPTR,
+ ADDRMAP_TOKEN_SIZE_MEMBER
+};
+/* start/end tags for the address map */
+#define ADDRESS_MAP_START(_name, _space, _bits) \
+ const addrmap##_bits##_token address_map_##_name[] = { \
+ TOKEN_UINT32_PACK3(ADDRMAP_TOKEN_START, 8, _space, 8, _bits, 8),
+
+#define ADDRESS_MAP_END \
+ TOKEN_UINT32_PACK1(ADDRMAP_TOKEN_END, 8) };
+
+/* use this to declare external references to an address map */
+#define ADDRESS_MAP_EXTERN(_name, _bits) \
+ extern const addrmap##_bits##_token address_map_##_name[]
+
+
+/* global controls */
+#define ADDRESS_MAP_GLOBAL_MASK(_mask) \
+ TOKEN_UINT64_PACK2(ADDRMAP_TOKEN_GLOBAL_MASK, 8, _mask, 32),
+
+#define ADDRESS_MAP_UNMAP_LOW \
+ TOKEN_UINT32_PACK2(ADDRMAP_TOKEN_UNMAP_VALUE, 8, 0, 1),
+
+#define ADDRESS_MAP_UNMAP_HIGH \
+ TOKEN_UINT32_PACK2(ADDRMAP_TOKEN_UNMAP_VALUE, 8, 1, 1),
+
+
+/* importing data from other address maps */
+#define AM_IMPORT_FROM(_name) \
+ TOKEN_UINT32_PACK1(ADDRMAP_TOKEN_INCLUDE, 8), \
+ TOKEN_PTR(tokenptr, address_map_##_name),
-/***************************************************************************
- ADDRESS MAP ARRAY HELPER MACROS
-***************************************************************************/
-/* ----- macros for identifying address map struct markers ----- */
-#define IS_AMENTRY_EXTENDED(ma) (((ma)->flags & AM_FLAGS_EXTENDED) != 0)
-#define IS_AMENTRY_END(ma) (((ma)->flags & AM_FLAGS_END) != 0)
+/* address ranges */
+#define AM_RANGE(_start, _end) \
+ TOKEN_UINT32_PACK1(ADDRMAP_TOKEN_RANGE, 8), \
+ TOKEN_UINT64_PACK2(_start, 32, _end, 32),
-#define AM_EXTENDED_FLAGS(ma) ((ma)->start)
+#define AM_MASK(_mask) \
+ TOKEN_UINT64_PACK2(ADDRMAP_TOKEN_MASK, 8, _mask, 32),
+
+#define AM_MIRROR(_mirror) \
+ TOKEN_UINT64_PACK2(ADDRMAP_TOKEN_MIRROR, 8, _mirror, 32),
+
+#define AM_READ(_handler) \
+ TOKEN_UINT32_PACK1(ADDRMAP_TOKEN_READ, 8), \
+ TOKEN_PTR(mread, _handler), \
+ TOKEN_STRING(#_handler),
+
+#define AM_WRITE(_handler) \
+ TOKEN_UINT32_PACK1(ADDRMAP_TOKEN_WRITE, 8), \
+ TOKEN_PTR(mwrite, _handler), \
+ TOKEN_STRING(#_handler),
+
+#define AM_DEVREAD(_type, _tag, _handler) \
+ TOKEN_UINT32_PACK1(ADDRMAP_TOKEN_DEVICE_READ, 8), \
+ TOKEN_PTR(dread, _handler), \
+ TOKEN_STRING(#_handler), \
+ TOKEN_PTR(devtype, _type), \
+ TOKEN_STRING(_tag),
+
+#define AM_DEVWRITE(_type, _tag, _handler) \
+ TOKEN_UINT32_PACK1(ADDRMAP_TOKEN_DEVICE_WRITE, 8), \
+ TOKEN_PTR(dwrite, _handler), \
+ TOKEN_STRING(#_handler), \
+ TOKEN_PTR(devtype, _type), \
+ TOKEN_STRING(_tag),
+
+#define AM_READ_PORT(_tag) \
+ TOKEN_UINT32_PACK1(ADDRMAP_TOKEN_READ_PORT, 8), \
+ TOKEN_STRING(_tag),
+
+#define AM_REGION(_region, _offs) \
+ TOKEN_UINT64_PACK3(ADDRMAP_TOKEN_REGION, 8, _region, 24, _offs, 32),
+
+#define AM_SHARE(_index) \
+ TOKEN_UINT32_PACK2(ADDRMAP_TOKEN_SHARE, 8, _index, 24),
+
+#define AM_BASE(_base) \
+ TOKEN_UINT32_PACK1(ADDRMAP_TOKEN_BASEPTR, 8), \
+ TOKEN_PTR(memptr, _base),
+
+#define AM_BASE_MEMBER(_struct, _member) \
+ TOKEN_UINT32_PACK2(ADDRMAP_TOKEN_BASE_MEMBER, 8, offsetof(_struct, _member), 24),
+
+#define AM_SIZE(_size) \
+ TOKEN_UINT32_PACK1(ADDRMAP_TOKEN_SIZEPTR, 8), \
+ TOKEN_PTR(sizeptr, _size),
+
+#define AM_SIZE_MEMBER(_struct, _member) \
+ TOKEN_UINT32_PACK2(ADDRMAP_TOKEN_SIZE_MEMBER, 8, offsetof(_struct, _member), 24),
+
+/* ----- common shortcuts ----- */
+#define AM_READWRITE(_read,_write) AM_READ(_read) AM_WRITE(_write)
+#define AM_DEVREADWRITE(_type,_tag,_read,_write) AM_DEVREAD(_type,_tag,_read) AM_DEVWRITE(_type,_tag,_write)
+#define AM_ROM AM_READ((void *)STATIC_ROM)
+#define AM_RAM AM_READWRITE((void *)STATIC_RAM, (void *)STATIC_RAM)
+#define AM_WRITEONLY AM_WRITE((void *)STATIC_RAM)
+#define AM_UNMAP AM_READWRITE((void *)STATIC_UNMAP, (void *)STATIC_UNMAP)
+#define AM_ROMBANK(_bank) AM_READ((void *)(STATIC_BANK1 + (_bank) - 1))
+#define AM_RAMBANK(_bank) AM_READWRITE((void *)(STATIC_BANK1 + (_bank) - 1), (void *)(STATIC_BANK1 + (_bank) - 1))
+#define AM_NOP AM_READWRITE((void *)STATIC_NOP, (void *)STATIC_NOP)
+#define AM_READNOP AM_READ((void *)STATIC_NOP)
+#define AM_WRITENOP AM_WRITE((void *)STATIC_NOP)
@@ -756,7 +885,6 @@ extern const char *const address_space_names[ADDRESS_SPACES];
#define LEVEL2_BITS (32 - LEVEL1_BITS) /* number of address bits in the level 2 table */
/* ----- other address map constants ----- */
-#define MAX_ADDRESS_MAP_SIZE 256 /* maximum entries in an address map */
#define MAX_MEMORY_BLOCKS 1024 /* maximum memory blocks we can track */
#define MAX_SHARED_POINTERS 256 /* maximum number of shared pointers in memory maps */
#define MEMORY_BLOCK_SIZE 65536 /* size of allocated memory blocks */
@@ -950,6 +1078,8 @@ void memory_init(running_machine *machine);
void memory_set_context(int activecpu);
/* ----- address map functions ----- */
+address_map *address_map_alloc(const machine_config *drv, int cpunum, int spacenum);
+void address_map_free(address_map *map);
const address_map *memory_get_map(int cpunum, int spacenum);
/* ----- opcode base control ---- */
diff --git a/src/emu/validity.c b/src/emu/validity.c
index 85524da4a62..32496c53232 100644
--- a/src/emu/validity.c
+++ b/src/emu/validity.c
@@ -644,123 +644,100 @@ static int validate_cpu(int drivnum, const machine_config *config, const UINT32
{
#define SPACE_SHIFT(a) ((addr_shift < 0) ? ((a) << -addr_shift) : ((a) >> addr_shift))
#define SPACE_SHIFT_END(a) ((addr_shift < 0) ? (((a) << -addr_shift) | ((1 << -addr_shift) - 1)) : ((a) >> addr_shift))
- static const char *const spacename[] = { "program", "data", "I/O" };
int databus_width = cputype_databus_width(cpu->type, spacenum);
int addr_shift = cputype_addrbus_shift(cpu->type, spacenum);
int alignunit = databus_width/8;
- address_map addrmap[MAX_ADDRESS_MAP_SIZE*2];
+ address_map_entry *entry;
address_map *map;
- UINT32 flags;
/* check to see that the same map is not used twice */
- if (cpu->construct_map[spacenum][0] && cpu->construct_map[spacenum][0] == cpu->construct_map[spacenum][1])
+ if (cpu->address_map[spacenum][0] != NULL && cpu->address_map[spacenum][0] == cpu->address_map[spacenum][1])
{
mame_printf_error("%s: %s uses identical memory maps for CPU #%d spacenum %d\n", driver->source_file, driver->name, cpunum, spacenum);
error = TRUE;
}
- /* reset the address map, resetting the base address to a non-NULL value */
- /* because the AM_REGION macro will query non-existant memory regions and */
- /* product valid NULL results */
- memset(addrmap, 0, sizeof(addrmap));
-
/* construct the maps */
- map = addrmap;
- construct_address_map(map, config, cpunum, spacenum);
+ map = address_map_alloc(config, cpunum, spacenum);
/* if this is an empty map, just skip it */
- if (IS_AMENTRY_END(map))
+ if (map->entrylist == NULL)
+ {
+ address_map_free(map);
continue;
+ }
- /* make sure we start with a proper entry */
- if (!IS_AMENTRY_EXTENDED(map))
+ /* validate the global map parameters */
+ if (map->spacenum != spacenum)
+ {
+ mame_printf_error("%s: %s CPU #%d space %d has address space %d handlers!", driver->source_file, driver->name, cpunum, spacenum, map->spacenum);
+ error = TRUE;
+ }
+ if (map->databits != databus_width)
{
- mame_printf_error("%s: %s wrong MEMORY_READ_START for %s space\n", driver->source_file, driver->name, spacename[spacenum]);
+ mame_printf_error("%s: %s cpu #%d uses wrong memory handlers for %s space! (width = %d, memory = %08x)\n", driver->source_file, driver->name, cpunum, address_space_names[spacenum], databus_width, map->databits);
error = TRUE;
}
/* loop over entries and look for errors */
- for ( ; !IS_AMENTRY_END(map); map++)
- if (!IS_AMENTRY_EXTENDED(map))
- {
- UINT32 start = SPACE_SHIFT(map->start);
- UINT32 end = SPACE_SHIFT_END(map->end);
+ for (entry = map->entrylist; entry != NULL; entry = entry->next)
+ {
+ UINT32 start = SPACE_SHIFT(entry->start);
+ UINT32 end = SPACE_SHIFT_END(entry->end);
- /* look for inverted start/end pairs */
- if (end < start)
- {
- mame_printf_error("%s: %s wrong %s memory read handler start = %08x > end = %08x\n", driver->source_file, driver->name, spacename[spacenum], map->start, map->end);
- error = TRUE;
- }
+ /* look for inverted start/end pairs */
+ if (end < start)
+ {
+ mame_printf_error("%s: %s wrong %s memory read handler start = %08x > end = %08x\n", driver->source_file, driver->name, address_space_names[spacenum], entry->start, entry->end);
+ error = TRUE;
+ }
- /* look for misaligned entries */
- if ((start & (alignunit-1)) != 0 || (end & (alignunit-1)) != (alignunit-1))
- {
- mame_printf_error("%s: %s wrong %s memory read handler start = %08x, end = %08x ALIGN = %d\n", driver->source_file, driver->name, spacename[spacenum], map->start, map->end, alignunit);
- error = TRUE;
- }
+ /* look for misaligned entries */
+ if ((start & (alignunit-1)) != 0 || (end & (alignunit-1)) != (alignunit-1))
+ {
+ mame_printf_error("%s: %s wrong %s memory read handler start = %08x, end = %08x ALIGN = %d\n", driver->source_file, driver->name, address_space_names[spacenum], entry->start, entry->end, alignunit);
+ error = TRUE;
+ }
- /* if this is a program space, auto-assign implicit ROM entries */
- if ((FPTR)map->read.handler == STATIC_ROM && !map->region)
- {
- map->region = REGION_CPU1 + cpunum;
- map->region_offs = map->start;
- }
+ /* if this is a program space, auto-assign implicit ROM entries */
+ if ((FPTR)entry->read.handler == STATIC_ROM && !entry->region)
+ {
+ entry->region = REGION_CPU1 + cpunum;
+ entry->region_offs = entry->start;
+ }
- /* if this entry references a memory region, validate it */
- if (map->region && map->share == 0)
- {
- offs_t length = region_length[map->region];
-
- if (length == 0)
- {
- mame_printf_error("%s: %s CPU %d space %d memory map entry %X-%X references non-existant region %d\n", driver->source_file, driver->name, cpunum, spacenum, map->start, map->end, map->region);
- error = TRUE;
- }
- else if (map->region_offs + (end - start + 1) > length)
- {
- mame_printf_error("%s: %s CPU %d space %d memory map entry %X-%X extends beyond region %d size (%X)\n", driver->source_file, driver->name, cpunum, spacenum, map->start, map->end, map->region, length);
- error = TRUE;
- }
- }
+ /* if this entry references a memory region, validate it */
+ if (entry->region && entry->share == 0)
+ {
+ offs_t length = region_length[entry->region];
- /* make sure all devices exist */
- if (map->read_devtype != NULL && device_list_find_by_tag(config->devicelist, map->read_devtype, map->read_devtag) == NULL)
+ if (length == 0)
{
- mame_printf_error("%s: %s CPU %d space %d memory map entry references nonexistant device type %s, tag %s\n", driver->source_file, driver->name, cpunum, spacenum, devtype_name(map->read_devtype), map->read_devtag);
+ mame_printf_error("%s: %s CPU %d space %d memory map entry %X-%X references non-existant region %d\n", driver->source_file, driver->name, cpunum, spacenum, entry->start, entry->end, entry->region);
error = TRUE;
}
- if (map->write_devtype != NULL && device_list_find_by_tag(config->devicelist, map->write_devtype, map->write_devtag) == NULL)
+ else if (entry->region_offs + (end - start + 1) > length)
{
- mame_printf_error("%s: %s CPU %d space %d memory map entry references nonexistant device type %s, tag %s\n", driver->source_file, driver->name, cpunum, spacenum, devtype_name(map->write_devtype), map->write_devtag);
+ mame_printf_error("%s: %s CPU %d space %d memory map entry %X-%X extends beyond region %d size (%X)\n", driver->source_file, driver->name, cpunum, spacenum, entry->start, entry->end, entry->region, length);
error = TRUE;
}
}
- else
- {
- flags = AM_EXTENDED_FLAGS(map);
- if (flags & AMEF_SPECIFIES_SPACE)
- {
- int val = (flags & AMEF_SPACE_MASK) >> AMEF_SPACE_SHIFT;
- if (val != spacenum)
- {
- mame_printf_error("%s: %s CPU #%d space %d has address space %d handlers!", driver->source_file, driver->name, cpunum, spacenum, val);
- error = TRUE;
- }
- }
- /* verify the type of memory handlers */
- if (flags & AMEF_SPECIFIES_DBITS)
- {
- int val = (flags & AMEF_DBITS_MASK) >> AMEF_DBITS_SHIFT;
- val = (val + 1) * 8;
- if (val != databus_width)
- {
- mame_printf_error("%s: %s cpu #%d uses wrong memory handlers for %s space! (width = %d, memory = %08x)\n", driver->source_file, driver->name, cpunum, spacename[spacenum], databus_width, val);
- error = TRUE;
- }
- }
+ /* make sure all devices exist */
+ if (entry->read_devtype != NULL && device_list_find_by_tag(config->devicelist, entry->read_devtype, entry->read_devtag) == NULL)
+ {
+ mame_printf_error("%s: %s CPU %d space %d memory map entry references nonexistant device type %s, tag %s\n", driver->source_file, driver->name, cpunum, spacenum, devtype_name(entry->read_devtype), entry->read_devtag);
+ error = TRUE;
}
+ if (entry->write_devtype != NULL && device_list_find_by_tag(config->devicelist, entry->write_devtype, entry->write_devtag) == NULL)
+ {
+ mame_printf_error("%s: %s CPU %d space %d memory map entry references nonexistant device type %s, tag %s\n", driver->source_file, driver->name, cpunum, spacenum, devtype_name(entry->write_devtype), entry->write_devtag);
+ error = TRUE;
+ }
+ }
+
+ /* release the address map */
+ address_map_free(map);
/* validate the interrupts */
if (cpu->vblank_interrupt != NULL)
diff --git a/src/emu/video.c b/src/emu/video.c
index 3d4ee9908ab..8a5e2e8d17c 100644
--- a/src/emu/video.c
+++ b/src/emu/video.c
@@ -1495,7 +1495,10 @@ void video_frame_update(running_machine *machine, int debug)
{
/* reset partial updates if we're paused or if the debugger is active */
if (video_screen_exists(0) && (mame_is_paused(machine) || debug || mame_debug_is_active()))
- scanline0_callback(machine, machine->screen[0].private_data, 0);
+ {
+ void *param = (void *)machine->primary_screen;
+ scanline0_callback(machine, param, 0);
+ }
/* otherwise, call the video EOF callback */
else if (machine->config->video_eof != NULL)
diff --git a/src/mame/audio/cinemat.c b/src/mame/audio/cinemat.c
index 86b6f0f6f02..60d597f8480 100644
--- a/src/mame/audio/cinemat.c
+++ b/src/mame/audio/cinemat.c
@@ -1538,7 +1538,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( demon_sound_ports, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x03) AM_WRITE(z80ctc_0_w)
AM_RANGE(0x1c, 0x1f) AM_WRITE(z80ctc_0_w)
ADDRESS_MAP_END
diff --git a/src/mame/audio/dcs.c b/src/mame/audio/dcs.c
index 2adbe7cfbaf..ee8a86d3170 100644
--- a/src/mame/audio/dcs.c
+++ b/src/mame/audio/dcs.c
@@ -478,18 +478,18 @@ ADDRESS_MAP_END
*************************************/
static ADDRESS_MAP_START( dcs2_2115_program_map, ADDRESS_SPACE_PROGRAM, 32 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x03ff) AM_RAM AM_BASE(&dcs_internal_program_ram)
ADDRESS_MAP_END
static ADDRESS_MAP_START( dcs2_2104_program_map, ADDRESS_SPACE_PROGRAM, 32 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x01ff) AM_RAM AM_BASE(&dcs_internal_program_ram)
ADDRESS_MAP_END
static ADDRESS_MAP_START( dcs2_2115_data_map, ADDRESS_SPACE_DATA, 16 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0400, 0x0400) AM_READWRITE(input_latch_r, input_latch_ack_w)
AM_RANGE(0x0401, 0x0401) AM_WRITE(output_latch_w)
AM_RANGE(0x0402, 0x0402) AM_READWRITE(output_control_r, output_control_w)
@@ -501,7 +501,7 @@ static ADDRESS_MAP_START( dcs2_2115_data_map, ADDRESS_SPACE_DATA, 16 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( dcs2_2104_data_map, ADDRESS_SPACE_DATA, 16 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0400, 0x0400) AM_READWRITE(input_latch_r, input_latch_ack_w)
AM_RANGE(0x0401, 0x0401) AM_WRITE(output_latch_w)
AM_RANGE(0x0402, 0x0402) AM_READWRITE(output_control_r, output_control_w)
@@ -521,13 +521,13 @@ ADDRESS_MAP_END
*************************************/
static ADDRESS_MAP_START( dsio_program_map, ADDRESS_SPACE_PROGRAM, 32 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x3fff) AM_RAM AM_BASE(&dcs_internal_program_ram)
ADDRESS_MAP_END
static ADDRESS_MAP_START( dsio_data_map, ADDRESS_SPACE_DATA, 16 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x03ff) AM_RAMBANK(20)
AM_RANGE(0x0400, 0x3fdf) AM_RAM
AM_RANGE(0x3fe0, 0x3fff) AM_READWRITE(adsp_control_r, adsp_control_w)
@@ -535,7 +535,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( dsio_io_map, ADDRESS_SPACE_IO, 16 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0400, 0x0400) AM_READWRITE(input_latch_r, input_latch_ack_w)
AM_RANGE(0x0401, 0x0401) AM_WRITE(output_latch_w)
AM_RANGE(0x0402, 0x0402) AM_READWRITE(output_control_r, output_control_w)
@@ -553,13 +553,13 @@ ADDRESS_MAP_END
*************************************/
static ADDRESS_MAP_START( denver_program_map, ADDRESS_SPACE_PROGRAM, 32 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x3fff) AM_RAM AM_BASE(&dcs_internal_program_ram)
ADDRESS_MAP_END
static ADDRESS_MAP_START( denver_data_map, ADDRESS_SPACE_DATA, 16 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x07ff) AM_RAMBANK(20)
AM_RANGE(0x0800, 0x3fdf) AM_RAM
AM_RANGE(0x3fe0, 0x3fff) AM_READWRITE(adsp_control_r, adsp_control_w)
@@ -567,7 +567,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( denver_io_map, ADDRESS_SPACE_IO, 16 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0400, 0x0400) AM_READWRITE(input_latch_r, input_latch_ack_w)
AM_RANGE(0x0401, 0x0401) AM_WRITE(output_latch_w)
AM_RANGE(0x0402, 0x0402) AM_READWRITE(output_control_r, output_control_w)
diff --git a/src/mame/audio/exidy.c b/src/mame/audio/exidy.c
index c4158e7a582..74e0cb6a850 100644
--- a/src/mame/audio/exidy.c
+++ b/src/mame/audio/exidy.c
@@ -821,7 +821,7 @@ static const struct CustomSound_interface venture_custom_interface =
static ADDRESS_MAP_START( venture_audio_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(15) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x007f) AM_MIRROR(0x0780) AM_RAM
AM_RANGE(0x0800, 0x087f) AM_MIRROR(0x0780) AM_READWRITE(exidy_shriot_r, exidy_shriot_w)
AM_RANGE(0x1000, 0x1003) AM_MIRROR(0x07fc) AM_READWRITE(pia_1_r, pia_1_w)
@@ -882,13 +882,13 @@ static READ8_HANDLER( mtrap_voiceio_r )
static ADDRESS_MAP_START( cvsd_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(14) )
+ ADDRESS_MAP_GLOBAL_MASK(0x3fff)
AM_RANGE(0x0000, 0x3fff) AM_ROM
ADDRESS_MAP_END
static ADDRESS_MAP_START( cvsd_iomap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0xff) AM_READWRITE(mtrap_voiceio_r, mtrap_voiceio_w)
ADDRESS_MAP_END
diff --git a/src/mame/audio/irem.c b/src/mame/audio/irem.c
index 8cd40a3d64a..74fe6afcefe 100644
--- a/src/mame/audio/irem.c
+++ b/src/mame/audio/irem.c
@@ -227,7 +227,7 @@ static const struct MSM5205interface irem_msm5205_interface_2 =
/* complete address map verified from Moon Patrol/10 Yard Fight schematics */
/* large map uses 8k ROMs, small map uses 4k ROMs; this is selected via a jumper */
static ADDRESS_MAP_START( m52_small_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(15) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x0fff) AM_WRITE(m52_adpcm_w)
AM_RANGE(0x1000, 0x1fff) AM_WRITE(sound_irq_ack_w)
AM_RANGE(0x2000, 0x7fff) AM_ROM
diff --git a/src/mame/audio/mcr.c b/src/mame/audio/mcr.c
index ce6a4944287..6f669e10841 100644
--- a/src/mame/audio/mcr.c
+++ b/src/mame/audio/mcr.c
@@ -465,7 +465,7 @@ static const struct AY8910interface ssio_ay8910_interface_2 =
/* address map verified from schematics */
static ADDRESS_MAP_START( ssio_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x8000, 0x83ff) AM_MIRROR(0x0c00) AM_RAM
AM_RANGE(0x9000, 0x9003) AM_MIRROR(0x0ffc) AM_READ(ssio_data_r)
@@ -585,7 +585,8 @@ void csdeluxe_reset_w(int state)
/* address map determined by PAL; not verified */
static ADDRESS_MAP_START( csdeluxe_map, ADDRESS_SPACE_PROGRAM, 16 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) | AMEF_ABITS(17) )
+ ADDRESS_MAP_UNMAP_HIGH
+ ADDRESS_MAP_GLOBAL_MASK(0x1ffff)
AM_RANGE(0x000000, 0x007fff) AM_ROM
AM_RANGE(0x018000, 0x018007) AM_READWRITE(csdeluxe_pia_r, csdeluxe_pia_w)
AM_RANGE(0x01c000, 0x01cfff) AM_RAM
@@ -688,7 +689,8 @@ void soundsgood_reset_w(int state)
/* address map determined by PAL; not verified */
static ADDRESS_MAP_START( soundsgood_map, ADDRESS_SPACE_PROGRAM, 16 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) | AMEF_ABITS(19) )
+ ADDRESS_MAP_UNMAP_HIGH
+ ADDRESS_MAP_GLOBAL_MASK(0x7ffff)
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x060000, 0x060007) AM_READWRITE(pia_1_msb_alt_r, pia_1_msb_alt_w)
AM_RANGE(0x070000, 0x070fff) AM_RAM
@@ -780,7 +782,7 @@ void turbocs_reset_w(int state)
/* address map verified from schematics */
static ADDRESS_MAP_START( turbocs_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x07ff) AM_MIRROR(0x3800) AM_RAM
AM_RANGE(0x4000, 0x4003) AM_MIRROR(0x3ffc) AM_READWRITE(pia_0_alt_r, pia_0_alt_w)
AM_RANGE(0x8000, 0xffff) AM_ROM
@@ -906,7 +908,7 @@ void squawkntalk_reset_w(int state)
/* note that jumpers control the ROM sizes; if these are changed, use the alternate */
/* address map below */
static ADDRESS_MAP_START( squawkntalk_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x007f) AM_RAM /* internal RAM */
AM_RANGE(0x0080, 0x0083) AM_MIRROR(0x4f6c) AM_READWRITE(pia_0_r, pia_0_w)
AM_RANGE(0x0090, 0x0093) AM_MIRROR(0x4f6c) AM_READWRITE(pia_1_r, pia_1_w)
@@ -918,7 +920,7 @@ ADDRESS_MAP_END
/* ROM size of 2k */
#ifdef UNUSED_FUNCTION
ADDRESS_MAP_START( squawkntalk_alt_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x007f) AM_RAM /* internal RAM */
AM_RANGE(0x0080, 0x0083) AM_MIRROR(0x676c) AM_READWRITE(pia_0_r, pia_0_w)
AM_RANGE(0x0090, 0x0093) AM_MIRROR(0x676c) AM_READWRITE(pia_1_r, pia_1_w)
diff --git a/src/mame/audio/n8080.c b/src/mame/audio/n8080.c
index 4e2d9b078ae..aceb09344a0 100644
--- a/src/mame/audio/n8080.c
+++ b/src/mame/audio/n8080.c
@@ -517,7 +517,7 @@ static MACHINE_RESET( helifire_sound )
static ADDRESS_MAP_START( n8080_sound_cpu_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(10) )
+ ADDRESS_MAP_GLOBAL_MASK(0x3ff)
AM_RANGE(0x0000, 0x03ff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/mame/audio/namco54.h b/src/mame/audio/namco54.h
index ae250a79c1a..8625b119016 100644
--- a/src/mame/audio/namco54.h
+++ b/src/mame/audio/namco54.h
@@ -5,9 +5,9 @@
#define CPUTAG_54XX "54XX"
-ADDRESS_MAP_EXTERN( namco_54xx_map_program );
-ADDRESS_MAP_EXTERN( namco_54xx_map_data );
-ADDRESS_MAP_EXTERN( namco_54xx_map_io );
+ADDRESS_MAP_EXTERN( namco_54xx_map_program, 8 );
+ADDRESS_MAP_EXTERN( namco_54xx_map_data, 8 );
+ADDRESS_MAP_EXTERN( namco_54xx_map_io, 8 );
void namco_54xx_write(UINT8 data);
diff --git a/src/mame/audio/namcoc7x.h b/src/mame/audio/namcoc7x.h
index faaa68cdc68..733dd6dd5eb 100644
--- a/src/mame/audio/namcoc7x.h
+++ b/src/mame/audio/namcoc7x.h
@@ -13,9 +13,9 @@
#include "sound/c352.h"
#include "cpu/m37710/m37710.h"
-ADDRESS_MAP_EXTERN(namcoc7x_mcu_map);
-ADDRESS_MAP_EXTERN(namcoc7x_mcu_share_map);
-ADDRESS_MAP_EXTERN(namcoc7x_mcu_io);
+ADDRESS_MAP_EXTERN(namcoc7x_mcu_map, 16);
+ADDRESS_MAP_EXTERN(namcoc7x_mcu_share_map, 16);
+ADDRESS_MAP_EXTERN(namcoc7x_mcu_io, 8);
INTERRUPT_GEN( namcoc7x_interrupt );
diff --git a/src/mame/audio/redalert.c b/src/mame/audio/redalert.c
index efc1712ea75..ab7332a6861 100644
--- a/src/mame/audio/redalert.c
+++ b/src/mame/audio/redalert.c
@@ -134,7 +134,7 @@ static const struct AY8910interface redalert_ay8910_interface =
static ADDRESS_MAP_START( redalert_audio_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(15) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x03ff) AM_MIRROR(0x0c00) AM_RAM
AM_RANGE(0x1000, 0x1000) AM_MIRROR(0x0ffe) AM_READWRITE(MRA8_NOP, redalert_AY8910_w)
AM_RANGE(0x1001, 0x1001) AM_MIRROR(0x0ffe) AM_READWRITE(redalert_ay8910_latch_1_r, redalert_ay8910_latch_2_w)
@@ -303,7 +303,7 @@ static WRITE8_HANDLER( demoneye_ay8910_data_w )
static ADDRESS_MAP_START( demoneye_audio_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(14) )
+ ADDRESS_MAP_GLOBAL_MASK(0x3fff)
AM_RANGE(0x0000, 0x007f) AM_RAM
AM_RANGE(0x0500, 0x0503) AM_READWRITE(pia_0_r, pia_0_w)
AM_RANGE(0x2000, 0x3fff) AM_ROM
diff --git a/src/mame/audio/scramble.c b/src/mame/audio/scramble.c
index 67134d9ef33..d45bace4033 100644
--- a/src/mame/audio/scramble.c
+++ b/src/mame/audio/scramble.c
@@ -391,7 +391,7 @@ static ADDRESS_MAP_START( ad2083_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( ad2083_sound_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x01, 0x01) AM_WRITE(ad2083_tms5110_ctrl_w)
AM_RANGE(0x10, 0x10) AM_WRITE(AY8910_control_port_0_w)
AM_RANGE(0x20, 0x20) AM_READWRITE(AY8910_read_port_0_r, AY8910_write_port_0_w)
diff --git a/src/mame/audio/seibu.h b/src/mame/audio/seibu.h
index c1885da8065..564b4611730 100644
--- a/src/mame/audio/seibu.h
+++ b/src/mame/audio/seibu.h
@@ -29,10 +29,10 @@
#include "sound/okim6295.h"
#include "sound/custom.h"
-ADDRESS_MAP_EXTERN(seibu_sound_map);
-ADDRESS_MAP_EXTERN(seibu2_sound_map);
-ADDRESS_MAP_EXTERN(seibu3_sound_map);
-ADDRESS_MAP_EXTERN(seibu3_adpcm_sound_map);
+ADDRESS_MAP_EXTERN(seibu_sound_map, 8);
+ADDRESS_MAP_EXTERN(seibu2_sound_map, 8);
+ADDRESS_MAP_EXTERN(seibu3_sound_map, 8);
+ADDRESS_MAP_EXTERN(seibu3_adpcm_sound_map, 8);
READ16_HANDLER( seibu_main_word_r );
READ8_HANDLER( seibu_main_v30_r );
diff --git a/src/mame/audio/t5182.c b/src/mame/audio/t5182.c
index f640fd2a79c..a43e1306162 100644
--- a/src/mame/audio/t5182.c
+++ b/src/mame/audio/t5182.c
@@ -277,7 +277,7 @@ ADDRESS_MAP_END
// 40 W external ROM banking? (the only 0 bit enables a ROM)
// 50 W test mode status flags (bit 0 = ROM test fail, bit 1 = RAM test fail, bit 2 = YM2151 IRQ not received)
ADDRESS_MAP_START( t5182_io, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(YM2151_register_port_0_w)
AM_RANGE(0x01, 0x01) AM_READWRITE(YM2151_status_port_0_r, YM2151_data_port_0_w)
AM_RANGE(0x10, 0x10) AM_WRITE(t5182_sharedram_semaphore_snd_acquire_w)
diff --git a/src/mame/audio/t5182.h b/src/mame/audio/t5182.h
index 16cf21cf2dc..f274da4f3fa 100644
--- a/src/mame/audio/t5182.h
+++ b/src/mame/audio/t5182.h
@@ -1,8 +1,8 @@
#define CPUTAG_T5182 "T5182"
#define T5182COINPORT "T5182_COIN"
-ADDRESS_MAP_EXTERN( t5182_map );
-ADDRESS_MAP_EXTERN( t5182_io );
+ADDRESS_MAP_EXTERN( t5182_map, 8 );
+ADDRESS_MAP_EXTERN( t5182_io, 8 );
WRITE8_HANDLER( t5182_sound_irq_w );
READ8_HANDLER(t5182_sharedram_semaphore_snd_r);
diff --git a/src/mame/audio/taito_en.h b/src/mame/audio/taito_en.h
index 6c4b0b8b2db..02e21527eae 100644
--- a/src/mame/audio/taito_en.h
+++ b/src/mame/audio/taito_en.h
@@ -23,6 +23,6 @@ void taito_f3_soundsystem_reset(void);
MDRV_SOUND_ROUTE(0, "left", 1.0) \
MDRV_SOUND_ROUTE(1, "right", 1.0) \
-ADDRESS_MAP_EXTERN(f3_sound_map);
+ADDRESS_MAP_EXTERN(f3_sound_map, 16);
extern const struct ES5505interface es5505_interface;
diff --git a/src/mame/drivers/20pacgal.c b/src/mame/drivers/20pacgal.c
index e1e91222c67..2e01ad1d02b 100644
--- a/src/mame/drivers/20pacgal.c
+++ b/src/mame/drivers/20pacgal.c
@@ -217,7 +217,7 @@ ADDRESS_MAP_END
*************************************/
static ADDRESS_MAP_START( 20pacgal_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x3f) AM_NOP /* Z180 internal registers */
AM_RANGE(0x40, 0x7f) AM_NOP /* Z180 internal registers */
AM_RANGE(0x80, 0x80) AM_READ(input_port_0_r)
diff --git a/src/mame/drivers/40love.c b/src/mame/drivers/40love.c
index 1767dc9d37a..3a3c57ea1cb 100644
--- a/src/mame/drivers/40love.c
+++ b/src/mame/drivers/40love.c
@@ -801,7 +801,7 @@ static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( mcu_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(11) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7ff)
AM_RANGE(0x0000, 0x0000) AM_READWRITE(buggychl_68705_portA_r, buggychl_68705_portA_w)
AM_RANGE(0x0001, 0x0001) AM_READWRITE(buggychl_68705_portB_r, buggychl_68705_portB_w)
AM_RANGE(0x0002, 0x0002) AM_READWRITE(buggychl_68705_portC_r, buggychl_68705_portC_w)
diff --git a/src/mame/drivers/4enraya.c b/src/mame/drivers/4enraya.c
index 1beb2277191..1ff59387866 100644
--- a/src/mame/drivers/4enraya.c
+++ b/src/mame/drivers/4enraya.c
@@ -85,7 +85,7 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( main_portmap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(input_port_0_r)
AM_RANGE(0x01, 0x01) AM_READ(input_port_1_r)
AM_RANGE(0x02, 0x02) AM_READ(input_port_2_r)
diff --git a/src/mame/drivers/acefruit.c b/src/mame/drivers/acefruit.c
index 892fd593afe..acfc66244b6 100644
--- a/src/mame/drivers/acefruit.c
+++ b/src/mame/drivers/acefruit.c
@@ -274,7 +274,7 @@ static ADDRESS_MAP_START( acefruit_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( acefruit_io, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS(AMEF_ABITS(8))
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_NOP /* ? */
ADDRESS_MAP_END
diff --git a/src/mame/drivers/aerofgt.c b/src/mame/drivers/aerofgt.c
index 9275e4ff7d6..dfd1bfe75e1 100644
--- a/src/mame/drivers/aerofgt.c
+++ b/src/mame/drivers/aerofgt.c
@@ -225,7 +225,7 @@ static ADDRESS_MAP_START( pspikesc_map, ADDRESS_SPACE_PROGRAM, 16 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( karatblz_map, ADDRESS_SPACE_PROGRAM, 16 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(20) )
+ ADDRESS_MAP_GLOBAL_MASK(0xfffff)
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x080000, 0x081fff) AM_READWRITE(MRA16_RAM, aerofgt_bg1videoram_w) AM_BASE(&aerofgt_bg1videoram)
AM_RANGE(0x082000, 0x083fff) AM_READWRITE(MRA16_RAM, aerofgt_bg2videoram_w) AM_BASE(&aerofgt_bg2videoram)
@@ -260,7 +260,7 @@ static ADDRESS_MAP_START( spinlbrk_map, ADDRESS_SPACE_PROGRAM, 16 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( turbofrc_map, ADDRESS_SPACE_PROGRAM, 16 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(20) )
+ ADDRESS_MAP_GLOBAL_MASK(0xfffff)
AM_RANGE(0x000000, 0x0bffff) AM_ROM
AM_RANGE(0x0c0000, 0x0cffff) AM_RAM /* work RAM */
AM_RANGE(0x0d0000, 0x0d1fff) AM_READWRITE(MRA16_RAM, aerofgt_bg1videoram_w) AM_BASE(&aerofgt_bg1videoram)
@@ -375,7 +375,7 @@ static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( turbofrc_sound_portmap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(aerofgt_sh_bankswitch_w)
AM_RANGE(0x14, 0x14) AM_READWRITE(soundlatch_r, pending_command_clear_w)
AM_RANGE(0x18, 0x18) AM_READWRITE(YM2610_status_port_0_A_r, YM2610_control_port_0_A_w)
@@ -385,7 +385,7 @@ static ADDRESS_MAP_START( turbofrc_sound_portmap, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( aerofgt_sound_portmap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READWRITE(YM2610_status_port_0_A_r, YM2610_control_port_0_A_w)
AM_RANGE(0x01, 0x01) AM_WRITE(YM2610_data_port_0_A_w)
AM_RANGE(0x02, 0x02) AM_READWRITE(YM2610_status_port_0_B_r, YM2610_control_port_0_B_w)
diff --git a/src/mame/drivers/airbustr.c b/src/mame/drivers/airbustr.c
index 92ab60cf79a..f88a195ba37 100644
--- a/src/mame/drivers/airbustr.c
+++ b/src/mame/drivers/airbustr.c
@@ -375,7 +375,7 @@ static ADDRESS_MAP_START( master_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( master_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(master_bankswitch_w)
AM_RANGE(0x01, 0x01) AM_WRITENOP // ???
AM_RANGE(0x02, 0x02) AM_WRITE(master_nmi_trigger_w)
@@ -395,7 +395,7 @@ static ADDRESS_MAP_START( slave_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( slave_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(slave_bankswitch_w)
AM_RANGE(0x02, 0x02) AM_READWRITE(soundcommand2_r, soundcommand_w)
AM_RANGE(0x04, 0x0c) AM_WRITE(airbustr_scrollregs_w)
@@ -414,7 +414,7 @@ static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(sound_bankswitch_w)
AM_RANGE(0x02, 0x02) AM_READWRITE(YM2203_status_port_0_r, YM2203_control_port_0_w)
AM_RANGE(0x03, 0x03) AM_READWRITE(YM2203_read_port_0_r, YM2203_write_port_0_w)
diff --git a/src/mame/drivers/alg.c b/src/mame/drivers/alg.c
index 6f5bdb06571..951a535e332 100644
--- a/src/mame/drivers/alg.c
+++ b/src/mame/drivers/alg.c
@@ -325,7 +325,7 @@ static void alg_cia_1_porta_w(UINT8 data)
*************************************/
static ADDRESS_MAP_START( main_map_r1, ADDRESS_SPACE_PROGRAM, 16 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x000000, 0x07ffff) AM_RAMBANK(1) AM_BASE(&amiga_chip_ram) AM_SIZE(&amiga_chip_ram_size)
AM_RANGE(0xbfd000, 0xbfefff) AM_READWRITE(amiga_cia_r, amiga_cia_w)
AM_RANGE(0xc00000, 0xdfffff) AM_READWRITE(amiga_custom_r, amiga_custom_w) AM_BASE(&amiga_custom_regs)
@@ -338,7 +338,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( main_map_r2, ADDRESS_SPACE_PROGRAM, 16 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x000000, 0x07ffff) AM_RAMBANK(1) AM_BASE(&amiga_chip_ram) AM_SIZE(&amiga_chip_ram_size)
AM_RANGE(0xbfd000, 0xbfefff) AM_READWRITE(amiga_cia_r, amiga_cia_w)
AM_RANGE(0xc00000, 0xdfffff) AM_READWRITE(amiga_custom_r, amiga_custom_w) AM_BASE(&amiga_custom_regs)
@@ -351,7 +351,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( main_map_picmatic, ADDRESS_SPACE_PROGRAM, 16 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x000000, 0x07ffff) AM_RAMBANK(1) AM_BASE(&amiga_chip_ram) AM_SIZE(&amiga_chip_ram_size)
AM_RANGE(0xbfd000, 0xbfefff) AM_READWRITE(amiga_cia_r, amiga_cia_w)
AM_RANGE(0xc00000, 0xdfffff) AM_READWRITE(amiga_custom_r, amiga_custom_w) AM_BASE(&amiga_custom_regs)
diff --git a/src/mame/drivers/alpha68k.c b/src/mame/drivers/alpha68k.c
index 375504f52fc..5c61f719ff9 100644
--- a/src/mame/drivers/alpha68k.c
+++ b/src/mame/drivers/alpha68k.c
@@ -828,7 +828,7 @@ static ADDRESS_MAP_START( tnexspce_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_portmap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READWRITE(soundlatch_r, soundlatch_clear_w)
AM_RANGE(0x08, 0x08) AM_WRITE(DAC_0_signed_data_w)
AM_RANGE(0x0a, 0x0a) AM_WRITE(YM2413_register_port_0_w)
@@ -839,7 +839,7 @@ static ADDRESS_MAP_START( sound_portmap, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( kyros_sound_portmap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x10) AM_WRITE(YM2203_control_port_0_w)
AM_RANGE(0x11, 0x11) AM_WRITE(YM2203_write_port_0_w)
AM_RANGE(0x80, 0x80) AM_WRITE(YM2203_write_port_1_w)
@@ -849,7 +849,7 @@ static ADDRESS_MAP_START( kyros_sound_portmap, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( jongbou_sound_portmap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(AY8910_control_port_0_w)
AM_RANGE(0x01, 0x01) AM_READWRITE(AY8910_read_port_0_r, AY8910_write_port_0_w)
AM_RANGE(0x02, 0x02) AM_WRITE(soundlatch_clear_w)
@@ -857,7 +857,7 @@ static ADDRESS_MAP_START( jongbou_sound_portmap, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( tnexspce_sound_portmap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READWRITE(YM3812_status_port_0_r, YM3812_control_port_0_w)
AM_RANGE(0x20, 0x20) AM_WRITE(YM3812_write_port_0_w)
AM_RANGE(0x3b, 0x3b) AM_READNOP // unknown read port
diff --git a/src/mame/drivers/ambush.c b/src/mame/drivers/ambush.c
index 470ab28adbd..d61a795b3d3 100644
--- a/src/mame/drivers/ambush.c
+++ b/src/mame/drivers/ambush.c
@@ -73,7 +73,7 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( main_portmap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READWRITE(AY8910_read_port_0_r, AY8910_control_port_0_w)
AM_RANGE(0x01, 0x01) AM_WRITE(AY8910_write_port_0_w)
AM_RANGE(0x80, 0x80) AM_READWRITE(AY8910_read_port_1_r, AY8910_control_port_1_w)
diff --git a/src/mame/drivers/amidar.c b/src/mame/drivers/amidar.c
index 8e6391f9189..ecbebfdc16f 100644
--- a/src/mame/drivers/amidar.c
+++ b/src/mame/drivers/amidar.c
@@ -123,13 +123,13 @@ static ADDRESS_MAP_START( amidar_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( amidar_sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x20, 0x20) AM_READ(AY8910_read_port_0_r)
AM_RANGE(0x80, 0x80) AM_READ(AY8910_read_port_1_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( amidar_sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x10) AM_WRITE(AY8910_control_port_0_w)
AM_RANGE(0x20, 0x20) AM_WRITE(AY8910_write_port_0_w)
AM_RANGE(0x40, 0x40) AM_WRITE(AY8910_control_port_1_w)
diff --git a/src/mame/drivers/ampoker2.c b/src/mame/drivers/ampoker2.c
index 132cb942fbb..12ebfbf86b2 100644
--- a/src/mame/drivers/ampoker2.c
+++ b/src/mame/drivers/ampoker2.c
@@ -513,7 +513,7 @@ static ADDRESS_MAP_START( ampoker2_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( ampoker2_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x08, 0x0f) AM_WRITENOP /* inexistent in the real hardware */
AM_RANGE(0x10, 0x10) AM_READ(input_port_0_r)
AM_RANGE(0x11, 0x11) AM_READ(input_port_1_r)
diff --git a/src/mame/drivers/angelkds.c b/src/mame/drivers/angelkds.c
index 418882dafca..a13839b148a 100644
--- a/src/mame/drivers/angelkds.c
+++ b/src/mame/drivers/angelkds.c
@@ -232,7 +232,7 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( main_portmap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(MWA8_NOP) // 00 on start-up, not again
AM_RANGE(0x42, 0x42) AM_WRITE(angelkds_cpu_bank_write)
AM_RANGE(0x43, 0x43) AM_WRITE(MWA8_NOP) // 9a on start-up, not again
@@ -256,7 +256,7 @@ static ADDRESS_MAP_START( sub_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( sub_portmap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READWRITE(YM2203_status_port_0_r, YM2203_control_port_0_w)
AM_RANGE(0x01, 0x01) AM_WRITE(YM2203_write_port_0_w)
AM_RANGE(0x40, 0x40) AM_READWRITE(YM2203_status_port_1_r, YM2203_control_port_1_w)
diff --git a/src/mame/drivers/appoooh.c b/src/mame/drivers/appoooh.c
index e0dad89d106..49b912cbc35 100644
--- a/src/mame/drivers/appoooh.c
+++ b/src/mame/drivers/appoooh.c
@@ -103,7 +103,7 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( main_portmap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READWRITE(input_port_0_r, SN76496_0_w)
AM_RANGE(0x01, 0x01) AM_READWRITE(input_port_1_r, SN76496_1_w)
AM_RANGE(0x02, 0x02) AM_WRITE(SN76496_2_w)
diff --git a/src/mame/drivers/aquarium.c b/src/mame/drivers/aquarium.c
index 5331c991682..18dfe9f5954 100644
--- a/src/mame/drivers/aquarium.c
+++ b/src/mame/drivers/aquarium.c
@@ -182,14 +182,14 @@ static ADDRESS_MAP_START( snd_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( snd_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x01, 0x01) AM_READ(YM2151_status_port_0_r)
AM_RANGE(0x02, 0x02) AM_READ(aquarium_oki_r)
AM_RANGE(0x04, 0x04) AM_READ(soundlatch_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( snd_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(YM2151_register_port_0_w)
AM_RANGE(0x01, 0x01) AM_WRITE(YM2151_data_port_0_w)
AM_RANGE(0x02, 0x02) AM_WRITE(aquarium_oki_w)
diff --git a/src/mame/drivers/arcadia.c b/src/mame/drivers/arcadia.c
index ef5ee109ed5..cee6237ed64 100644
--- a/src/mame/drivers/arcadia.c
+++ b/src/mame/drivers/arcadia.c
@@ -188,7 +188,7 @@ static void arcadia_reset_coins(void)
*************************************/
static ADDRESS_MAP_START( amiga_map, ADDRESS_SPACE_PROGRAM, 16 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x000000, 0x07ffff) AM_RAMBANK(1) AM_BASE(&amiga_chip_ram) AM_SIZE(&amiga_chip_ram_size)
AM_RANGE(0xbfd000, 0xbfefff) AM_READWRITE(amiga_cia_r, amiga_cia_w)
AM_RANGE(0xc00000, 0xdfffff) AM_READWRITE(amiga_custom_r, amiga_custom_w) AM_BASE(&amiga_custom_regs)
diff --git a/src/mame/drivers/argus.c b/src/mame/drivers/argus.c
index 75d4aec3b8c..70af92a8f61 100644
--- a/src/mame/drivers/argus.c
+++ b/src/mame/drivers/argus.c
@@ -455,19 +455,19 @@ static ADDRESS_MAP_START( sound_writemem_c, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_readport_1, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(YM2203_status_port_0_r)
AM_RANGE(0x01, 0x01) AM_READ(YM2203_read_port_0_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_writeport_1, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(YM2203_control_port_0_w)
AM_RANGE(0x01, 0x01) AM_WRITE(YM2203_write_port_0_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_readport_2, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(YM2203_status_port_0_r)
AM_RANGE(0x01, 0x01) AM_READ(YM2203_read_port_0_r)
AM_RANGE(0x80, 0x80) AM_READ(YM2203_status_port_1_r)
@@ -475,7 +475,7 @@ static ADDRESS_MAP_START( sound_readport_2, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_writeport_2, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(YM2203_control_port_0_w)
AM_RANGE(0x01, 0x01) AM_WRITE(YM2203_write_port_0_w)
AM_RANGE(0x80, 0x80) AM_WRITE(YM2203_control_port_1_w)
diff --git a/src/mame/drivers/arkanoid.c b/src/mame/drivers/arkanoid.c
index f9accee4dff..ec75d58dede 100644
--- a/src/mame/drivers/arkanoid.c
+++ b/src/mame/drivers/arkanoid.c
@@ -511,7 +511,7 @@ static ADDRESS_MAP_START( bootleg_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( mcu_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(11) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7ff)
AM_RANGE(0x0000, 0x0000) AM_READWRITE(arkanoid_68705_portA_r, arkanoid_68705_portA_w)
AM_RANGE(0x0001, 0x0001) AM_READ(arkanoid_input_2_r)
AM_RANGE(0x0002, 0x0002) AM_READWRITE(arkanoid_68705_portC_r, arkanoid_68705_portC_w)
diff --git a/src/mame/drivers/armedf.c b/src/mame/drivers/armedf.c
index e6d60b151cf..988d9dab38a 100644
--- a/src/mame/drivers/armedf.c
+++ b/src/mame/drivers/armedf.c
@@ -451,13 +451,13 @@ static READ8_HANDLER( soundlatch_clear_r )
}
static ADDRESS_MAP_START( readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x4, 0x4) AM_READ(soundlatch_clear_r)
AM_RANGE(0x6, 0x6) AM_READ(soundlatch_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x0, 0x0) AM_WRITE(YM3812_control_port_0_w)
AM_RANGE(0x1, 0x1) AM_WRITE(YM3812_write_port_0_w)
AM_RANGE(0x2, 0x2) AM_WRITE(DAC_0_signed_data_w)
diff --git a/src/mame/drivers/ashnojoe.c b/src/mame/drivers/ashnojoe.c
index 74b141536a3..11582d9026c 100644
--- a/src/mame/drivers/ashnojoe.c
+++ b/src/mame/drivers/ashnojoe.c
@@ -163,7 +163,7 @@ static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_portmap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READWRITE(YM2203_status_port_0_r, YM2203_control_port_0_w)
AM_RANGE(0x01, 0x01) AM_READWRITE(YM2203_read_port_0_r, YM2203_write_port_0_w)
AM_RANGE(0x02, 0x02) AM_WRITE(adpcm_data_w)
diff --git a/src/mame/drivers/asteroid.c b/src/mame/drivers/asteroid.c
index acb5a84ec08..5f9c4652efc 100644
--- a/src/mame/drivers/asteroid.c
+++ b/src/mame/drivers/asteroid.c
@@ -216,7 +216,7 @@ static WRITE8_HANDLER( llander_led_w )
*************************************/
static ADDRESS_MAP_START( asteroid_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(15) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x01ff) AM_RAM
AM_RANGE(0x0200, 0x02ff) AM_RAM AM_RAMBANK(1) AM_BASE(&asteroid_ram1)
AM_RANGE(0x0300, 0x03ff) AM_RAM AM_RAMBANK(2) AM_BASE(&asteroid_ram2)
@@ -237,7 +237,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( astdelux_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(15) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x01ff) AM_RAM
AM_RANGE(0x0200, 0x02ff) AM_RAM AM_RAMBANK(1) AM_BASE(&asteroid_ram1)
AM_RANGE(0x0300, 0x03ff) AM_RAM AM_RAMBANK(2) AM_BASE(&asteroid_ram2)
@@ -263,7 +263,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( llander_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(15) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x00ff) AM_RAM AM_MIRROR(0x1f00)
AM_RANGE(0x2000, 0x2000) AM_READ(llander_IN0_r) /* IN0 */
AM_RANGE(0x2400, 0x2407) AM_READ(asteroid_IN1_r) /* IN1 */
diff --git a/src/mame/drivers/astinvad.c b/src/mame/drivers/astinvad.c
index 85c37723476..4185ba33b21 100644
--- a/src/mame/drivers/astinvad.c
+++ b/src/mame/drivers/astinvad.c
@@ -315,7 +315,7 @@ static WRITE8_HANDLER( spaceint_sound2_w )
*************************************/
static ADDRESS_MAP_START( kamikaze_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(14) )
+ ADDRESS_MAP_GLOBAL_MASK(0x3fff)
AM_RANGE(0x0000, 0x1bff) AM_ROM
AM_RANGE(0x1c00, 0x1fff) AM_RAM
AM_RANGE(0x2000, 0x3fff) AM_RAM AM_BASE(&videoram) AM_SIZE(&videoram_size)
@@ -330,13 +330,13 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( kamikaze_portmap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0xff) AM_READWRITE(kamikaze_ppi_r, kamikaze_ppi_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( spaceint_portmap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(input_port_0_r)
AM_RANGE(0x01, 0x01) AM_READ(input_port_1_r)
AM_RANGE(0x02, 0x02) AM_WRITE(spaceint_sound1_w)
diff --git a/src/mame/drivers/astrocde.c b/src/mame/drivers/astrocde.c
index 5b18656f875..eabbb87412a 100644
--- a/src/mame/drivers/astrocde.c
+++ b/src/mame/drivers/astrocde.c
@@ -708,7 +708,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( tenpin_sub_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x90, 0x93) AM_READWRITE(z80ctc_0_r, z80ctc_0_w)
AM_RANGE(0x97, 0x97) AM_READ(soundlatch_r)
AM_RANGE(0x98, 0x98) AM_WRITE(AY8910_control_port_0_w)
diff --git a/src/mame/drivers/astrof.c b/src/mame/drivers/astrof.c
index 0664ebd1be3..27e0c9f246f 100644
--- a/src/mame/drivers/astrof.c
+++ b/src/mame/drivers/astrof.c
@@ -516,8 +516,8 @@ static ADDRESS_MAP_START( astrof_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x8005, 0x8005) AM_MIRROR(0x1ff8) AM_READWRITE(MRA8_NOP, astrof_video_control_2_w)
AM_RANGE(0x8006, 0x8006) AM_MIRROR(0x1ff8) AM_READWRITE(MRA8_NOP, astrof_audio_1_w)
AM_RANGE(0x8007, 0x8007) AM_MIRROR(0x1ff8) AM_READWRITE(MRA8_NOP, astrof_audio_2_w)
- AM_RANGE(0xa000, 0xa000) AM_MIRROR(0x1ff8) AM_READWRITE(port_tag_to_handler("IN"), MWA8_NOP)
- AM_RANGE(0xa001, 0xa001) AM_MIRROR(0x1ff8) AM_READWRITE(port_tag_to_handler("DSW"), MWA8_NOP)
+ AM_RANGE(0xa000, 0xa000) AM_MIRROR(0x1ff8) AM_READ_PORT("IN") AM_WRITENOP
+ AM_RANGE(0xa001, 0xa001) AM_MIRROR(0x1ff8) AM_READ_PORT("DSW") AM_WRITENOP
AM_RANGE(0xa002, 0xa002) AM_MIRROR(0x1ff8) AM_READWRITE(irq_ack_r, MWA8_NOP)
AM_RANGE(0xa003, 0xa007) AM_MIRROR(0x1ff8) AM_NOP
AM_RANGE(0xc000, 0xffff) AM_ROM
@@ -535,8 +535,8 @@ static ADDRESS_MAP_START( spfghmk2_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x8005, 0x8005) AM_MIRROR(0x1ff8) AM_READWRITE(MRA8_NOP, spfghmk2_video_control_2_w)
AM_RANGE(0x8006, 0x8006) AM_MIRROR(0x1ff8) AM_READWRITE(MRA8_NOP, spfghmk2_audio_w)
AM_RANGE(0x8007, 0x8007) AM_MIRROR(0x1ff8) AM_NOP
- AM_RANGE(0xa000, 0xa000) AM_MIRROR(0x1ff8) AM_READWRITE(port_tag_to_handler("IN"), MWA8_NOP)
- AM_RANGE(0xa001, 0xa001) AM_MIRROR(0x1ff8) AM_READWRITE(port_tag_to_handler("DSW"), MWA8_NOP)
+ AM_RANGE(0xa000, 0xa000) AM_MIRROR(0x1ff8) AM_READ_PORT("IN") AM_WRITENOP
+ AM_RANGE(0xa001, 0xa001) AM_MIRROR(0x1ff8) AM_READ_PORT("DSW") AM_WRITENOP
AM_RANGE(0xa002, 0xa002) AM_MIRROR(0x1ff8) AM_READWRITE(irq_ack_r, MWA8_NOP)
AM_RANGE(0xa003, 0xa007) AM_MIRROR(0x1ff8) AM_NOP
AM_RANGE(0xc000, 0xffff) AM_ROM
diff --git a/src/mame/drivers/atarifb.c b/src/mame/drivers/atarifb.c
index b70872bd4b1..6c45261dbaa 100644
--- a/src/mame/drivers/atarifb.c
+++ b/src/mame/drivers/atarifb.c
@@ -149,7 +149,7 @@ static PALETTE_INIT( atarifb )
*************************************/
static ADDRESS_MAP_START( atarifb_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(15) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x01ff) AM_RAM
AM_RANGE(0x0200, 0x025f) AM_READWRITE(MRA8_RAM, atarifb_alpha1_videoram_w) AM_BASE(&atarifb_alphap1_videoram)
AM_RANGE(0x0260, 0x039f) AM_RAM
@@ -170,7 +170,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( atarifb4_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(15) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x01ff) AM_RAM
AM_RANGE(0x0200, 0x025f) AM_READWRITE(MRA8_RAM, atarifb_alpha1_videoram_w) AM_BASE(&atarifb_alphap1_videoram)
AM_RANGE(0x0260, 0x039f) AM_RAM
@@ -192,7 +192,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( abaseb_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(15) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x01ff) AM_RAM
AM_RANGE(0x0200, 0x025f) AM_READWRITE(MRA8_RAM, atarifb_alpha1_videoram_w) AM_BASE(&atarifb_alphap1_videoram)
AM_RANGE(0x0260, 0x039f) AM_RAM
@@ -213,7 +213,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( soccer_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(14) )
+ ADDRESS_MAP_GLOBAL_MASK(0x3fff)
AM_RANGE(0x0000, 0x01ff) AM_RAM
AM_RANGE(0x0200, 0x025f) AM_READWRITE(MRA8_RAM, atarifb_alpha1_videoram_w) AM_BASE(&atarifb_alphap1_videoram)
AM_RANGE(0x0260, 0x039f) AM_RAM
diff --git a/src/mame/drivers/atarigx2.c b/src/mame/drivers/atarigx2.c
index 314baa6571c..72d527eb41a 100644
--- a/src/mame/drivers/atarigx2.c
+++ b/src/mame/drivers/atarigx2.c
@@ -1182,7 +1182,7 @@ static READ32_HANDLER( inputs_01_r )
*************************************/
static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 32 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0xc80000, 0xc80fff) AM_RAM
AM_RANGE(0xca0000, 0xca0fff) AM_READWRITE(atarigx2_protection_r, atarigx2_protection_w) AM_BASE(&protection_base)
diff --git a/src/mame/drivers/ataxx.c b/src/mame/drivers/ataxx.c
index e6d0914ae85..d8cc18d7601 100644
--- a/src/mame/drivers/ataxx.c
+++ b/src/mame/drivers/ataxx.c
@@ -55,7 +55,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( master_map_io, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x04, 0x04) AM_READ(leland_80186_response_r)
AM_RANGE(0x05, 0x05) AM_WRITE(leland_80186_command_hi_w)
AM_RANGE(0x06, 0x06) AM_WRITE(leland_80186_command_lo_w)
@@ -86,7 +86,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( slave_map_io, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x60, 0x7f) AM_READWRITE(ataxx_svram_port_r, ataxx_svram_port_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/attckufo.c b/src/mame/drivers/attckufo.c
index 06abc7f49b2..205e4e9f2ac 100644
--- a/src/mame/drivers/attckufo.c
+++ b/src/mame/drivers/attckufo.c
@@ -83,7 +83,7 @@ static WRITE8_HANDLER(attckufo_io_w)
}
static ADDRESS_MAP_START( cpu_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(14) )
+ ADDRESS_MAP_GLOBAL_MASK(0x3fff)
AM_RANGE(0x0000, 0x0fff) AM_RAM AM_BASE(&mainram)
AM_RANGE(0x1000, 0x100f) AM_READWRITE(attckufo_port_r, attckufo_port_w)
AM_RANGE(0x1400, 0x1403) AM_READWRITE(attckufo_io_r, attckufo_io_w)
diff --git a/src/mame/drivers/avalnche.c b/src/mame/drivers/avalnche.c
index 2b9cc90a522..3a56bd91c51 100644
--- a/src/mame/drivers/avalnche.c
+++ b/src/mame/drivers/avalnche.c
@@ -129,7 +129,7 @@ static WRITE8_HANDLER( avalance_start_lamp_w )
*************************************/
static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(15) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x1fff) AM_RAM AM_BASE(&videoram) AM_SIZE(&videoram_size)
AM_RANGE(0x2000, 0x2000) AM_MIRROR(0x0ffc) AM_READ(input_port_0_r)
AM_RANGE(0x2001, 0x2001) AM_MIRROR(0x0ffc) AM_READ(input_port_1_r)
diff --git a/src/mame/drivers/bagman.c b/src/mame/drivers/bagman.c
index 4f33a197419..c4c98998604 100644
--- a/src/mame/drivers/bagman.c
+++ b/src/mame/drivers/bagman.c
@@ -257,12 +257,12 @@ static ADDRESS_MAP_START( pickin_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x0c, 0x0c) AM_READ(AY8910_read_port_0_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x08, 0x08) AM_WRITE(AY8910_control_port_0_w)
AM_RANGE(0x09, 0x09) AM_WRITE(AY8910_write_port_0_w)
//AM_RANGE(0x56, 0x56) AM_WRITE(MWA8_NOP)
diff --git a/src/mame/drivers/balsente.c b/src/mame/drivers/balsente.c
index 52f993f939f..2fbc9c23a59 100644
--- a/src/mame/drivers/balsente.c
+++ b/src/mame/drivers/balsente.c
@@ -270,7 +270,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( cpu2_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x03) AM_READWRITE(balsente_counter_8253_r, balsente_counter_8253_w)
AM_RANGE(0x08, 0x0f) AM_READ(balsente_counter_state_r)
AM_RANGE(0x08, 0x09) AM_WRITE(balsente_counter_control_w)
diff --git a/src/mame/drivers/bankp.c b/src/mame/drivers/bankp.c
index beaf4e7d834..35f6634ce04 100644
--- a/src/mame/drivers/bankp.c
+++ b/src/mame/drivers/bankp.c
@@ -125,7 +125,7 @@ static ADDRESS_MAP_START( bankp_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( bankp_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READWRITE(input_port_0_r, SN76496_0_w)
AM_RANGE(0x01, 0x01) AM_READWRITE(input_port_1_r, SN76496_1_w)
AM_RANGE(0x02, 0x02) AM_READWRITE(input_port_2_r, SN76496_2_w)
diff --git a/src/mame/drivers/batman.c b/src/mame/drivers/batman.c
index be794e76565..de21d889778 100644
--- a/src/mame/drivers/batman.c
+++ b/src/mame/drivers/batman.c
@@ -118,7 +118,8 @@ static WRITE16_HANDLER( latch_w )
/* addresses in the 1xxxxx region map to /WAIT */
/* addresses in the 2xxxxx region map to /WAIT2 */
static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) | AMEF_ABITS(22) )
+ ADDRESS_MAP_UNMAP_HIGH
+ ADDRESS_MAP_GLOBAL_MASK(0x3fffff)
AM_RANGE(0x000000, 0x0bffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_MIRROR(0x010000) AM_RAM
AM_RANGE(0x120000, 0x120fff) AM_MIRROR(0x01f000) AM_READWRITE(atarigen_eeprom_r, atarigen_eeprom_w) AM_BASE(&atarigen_eeprom) AM_SIZE(&atarigen_eeprom_size)
diff --git a/src/mame/drivers/battlex.c b/src/mame/drivers/battlex.c
index 2c6237eaf60..79551b47bfa 100644
--- a/src/mame/drivers/battlex.c
+++ b/src/mame/drivers/battlex.c
@@ -75,7 +75,7 @@ static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(input_port_0_r)
AM_RANGE(0x01, 0x01) AM_READ(input_port_1_r)
AM_RANGE(0x02, 0x02) AM_READ(input_port_2_r)
@@ -84,7 +84,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x10) AM_WRITE(battlex_flipscreen_w)
/* verify all of these */
AM_RANGE(0x22, 0x22) AM_WRITE(AY8910_write_port_0_w)
diff --git a/src/mame/drivers/bbusters.c b/src/mame/drivers/bbusters.c
index 7111556f2a2..59ab0f3079d 100644
--- a/src/mame/drivers/bbusters.c
+++ b/src/mame/drivers/bbusters.c
@@ -372,13 +372,13 @@ static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(YM2610_status_port_0_A_r)
AM_RANGE(0x02, 0x02) AM_READ(YM2610_status_port_0_B_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(YM2610_control_port_0_A_w)
AM_RANGE(0x01, 0x01) AM_WRITE(YM2610_data_port_0_A_w)
AM_RANGE(0x02, 0x02) AM_WRITE(YM2610_control_port_0_B_w)
@@ -387,13 +387,13 @@ static ADDRESS_MAP_START( sound_writeport, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( sounda_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(YM2608_status_port_0_A_r)
AM_RANGE(0x02, 0x02) AM_READ(YM2608_status_port_0_B_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( sounda_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(YM2608_control_port_0_A_w)
AM_RANGE(0x01, 0x01) AM_WRITE(YM2608_data_port_0_A_w)
AM_RANGE(0x02, 0x02) AM_WRITE(YM2608_control_port_0_B_w)
diff --git a/src/mame/drivers/beaminv.c b/src/mame/drivers/beaminv.c
index c5f955d481e..c809ea7306f 100644
--- a/src/mame/drivers/beaminv.c
+++ b/src/mame/drivers/beaminv.c
@@ -222,7 +222,7 @@ ADDRESS_MAP_END
*************************************/
static ADDRESS_MAP_START( main_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(controller_select_w) /* to be confirmed */
ADDRESS_MAP_END
diff --git a/src/mame/drivers/berzerk.c b/src/mame/drivers/berzerk.c
index fb2f66b647f..648dac383a8 100644
--- a/src/mame/drivers/berzerk.c
+++ b/src/mame/drivers/berzerk.c
@@ -583,7 +583,7 @@ ADDRESS_MAP_END
*************************************/
static ADDRESS_MAP_START( berzerk_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x3f) AM_NOP
AM_RANGE(0x40, 0x47) AM_READWRITE(berzerk_audio_r, berzerk_audio_w)
AM_RANGE(0x48, 0x48) AM_READWRITE(input_port_0_r, MWA8_NOP)
diff --git a/src/mame/drivers/bfcobra.c b/src/mame/drivers/bfcobra.c
index 97e77ee7227..8d1f11b7f4a 100644
--- a/src/mame/drivers/bfcobra.c
+++ b/src/mame/drivers/bfcobra.c
@@ -1090,7 +1090,7 @@ static ADDRESS_MAP_START( z80_prog_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( z80_io_map, ADDRESS_SPACE_IO, 8 )
-ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x23) AM_READWRITE(chipset_r, chipset_w)
AM_RANGE(0x24, 0x24) AM_WRITE(acia6850_0_ctrl_w)
AM_RANGE(0x25, 0x25) AM_WRITE(acia6850_0_data_w)
diff --git a/src/mame/drivers/bigevglf.c b/src/mame/drivers/bigevglf.c
index cdec7c08c6a..e9c1a0ce5aa 100644
--- a/src/mame/drivers/bigevglf.c
+++ b/src/mame/drivers/bigevglf.c
@@ -324,7 +324,7 @@ static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( bigevglf_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(MWA8_NOP) /* video ram enable ???*/
AM_RANGE(0x01, 0x01) AM_WRITE(bigevglf_gfxcontrol_w) /* plane select */
AM_RANGE(0x02, 0x02) AM_WRITE(beg_banking_w)
@@ -334,7 +334,7 @@ static ADDRESS_MAP_START( bigevglf_writeport, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( bigevglf_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x06, 0x06) AM_READ(beg_status_r)
ADDRESS_MAP_END
@@ -356,7 +356,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( bigevglf_sub_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x08, 0x08) AM_WRITE(MWA8_NOP) /*coinlockout_w ???? watchdog ???? */
AM_RANGE(0x0c, 0x0c) AM_WRITE(bigevglf_mcu_w)
AM_RANGE(0x0e, 0x0e) AM_WRITE(MWA8_NOP) /* 0-enable MCU, 1-keep reset line ASSERTED; D0 goes to the input of ls74 and the /Q of this ls74 goes to reset line on 68705 */
@@ -381,7 +381,7 @@ static READ8_HANDLER( sub_cpu_mcu_coin_port_r )
}
static ADDRESS_MAP_START( bigevglf_sub_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(input_port_0_r)
AM_RANGE(0x01, 0x01) AM_READ(MRA8_NOP)
AM_RANGE(0x02, 0x02) AM_READ(input_port_4_r)
@@ -426,7 +426,7 @@ ADDRESS_MAP_END
/* MCU */
static ADDRESS_MAP_START( m68705_readmem, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(11) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7ff)
AM_RANGE(0x0000, 0x0000) AM_READ(bigevglf_68705_portA_r)
AM_RANGE(0x0001, 0x0001) AM_READ(bigevglf_68705_portB_r)
AM_RANGE(0x0002, 0x0002) AM_READ(bigevglf_68705_portC_r)
@@ -435,7 +435,7 @@ static ADDRESS_MAP_START( m68705_readmem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( m68705_writemem, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(11) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7ff)
AM_RANGE(0x0000, 0x0000) AM_WRITE(bigevglf_68705_portA_w)
AM_RANGE(0x0001, 0x0001) AM_WRITE(bigevglf_68705_portB_w)
AM_RANGE(0x0002, 0x0002) AM_WRITE(bigevglf_68705_portC_w)
diff --git a/src/mame/drivers/bigfghtr.c b/src/mame/drivers/bigfghtr.c
index e8de3bc467f..cd4fa1c4348 100644
--- a/src/mame/drivers/bigfghtr.c
+++ b/src/mame/drivers/bigfghtr.c
@@ -362,7 +362,7 @@ static READ8_HANDLER( soundlatch_clear_r )
}
static ADDRESS_MAP_START( soundport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x0, 0x0) AM_WRITE(YM3812_control_port_0_w)
AM_RANGE(0x1, 0x1) AM_WRITE(YM3812_write_port_0_w)
AM_RANGE(0x2, 0x2) AM_WRITE(DAC_0_signed_data_w)
diff --git a/src/mame/drivers/bishjan.c b/src/mame/drivers/bishjan.c
index d3022eb07fc..99dc045f95c 100644
--- a/src/mame/drivers/bishjan.c
+++ b/src/mame/drivers/bishjan.c
@@ -257,7 +257,7 @@ static WRITE16_HANDLER( bishjan_coin_w )
*/
static ADDRESS_MAP_START( bishjan_map, ADDRESS_SPACE_PROGRAM, 16 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(24) )
+ ADDRESS_MAP_GLOBAL_MASK(0xffffff)
AM_RANGE( 0x000000, 0x07ffff ) AM_ROM AM_REGION(REGION_CPU1, 0)
AM_RANGE( 0x080000, 0x0fffff ) AM_ROM AM_REGION(REGION_CPU1, 0)
diff --git a/src/mame/drivers/bking.c b/src/mame/drivers/bking.c
index ef65d37d55e..5b4986da876 100644
--- a/src/mame/drivers/bking.c
+++ b/src/mame/drivers/bking.c
@@ -124,7 +124,7 @@ static ADDRESS_MAP_START( bking_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( bking_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READWRITE(input_port_0_r, bking_xld1_w)
AM_RANGE(0x01, 0x01) AM_READWRITE(input_port_1_r, bking_yld1_w)
AM_RANGE(0x02, 0x02) AM_READWRITE(input_port_2_r, bking_xld2_w)
@@ -143,7 +143,7 @@ static ADDRESS_MAP_START( bking_io_map, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( bking3_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READWRITE(input_port_0_r, bking_xld1_w)
AM_RANGE(0x01, 0x01) AM_READWRITE(input_port_1_r, bking_yld1_w)
AM_RANGE(0x02, 0x02) AM_READWRITE(input_port_2_r, bking_xld2_w)
@@ -246,7 +246,7 @@ static READ8_HANDLER( bking3_68705_portC_r )
}
#endif
static ADDRESS_MAP_START( m68705_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(11) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7ff)
AM_RANGE(0x0000, 0x0000) AM_READWRITE(buggychl_68705_portA_r, buggychl_68705_portA_w)
AM_RANGE(0x0001, 0x0001) AM_READWRITE(buggychl_68705_portB_r, buggychl_68705_portB_w)
AM_RANGE(0x0002, 0x0002) AM_READWRITE(buggychl_68705_portC_r, buggychl_68705_portC_w)
diff --git a/src/mame/drivers/blktiger.c b/src/mame/drivers/blktiger.c
index 168f37b771c..381ebb36e09 100644
--- a/src/mame/drivers/blktiger.c
+++ b/src/mame/drivers/blktiger.c
@@ -74,7 +74,7 @@ static ADDRESS_MAP_START( mem_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( port_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0") AM_WRITE(soundlatch_w)
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1") AM_WRITE(blktiger_bankswitch_w)
AM_RANGE(0x02, 0x02) AM_READ_PORT("IN2")
diff --git a/src/mame/drivers/blstroid.c b/src/mame/drivers/blstroid.c
index 3bc6c6ebb4c..507967880ef 100644
--- a/src/mame/drivers/blstroid.c
+++ b/src/mame/drivers/blstroid.c
@@ -83,7 +83,7 @@ static READ16_HANDLER( inputs_r )
/* full map verified from schematics */
static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x000000, 0x03ffff) AM_MIRROR(0x7c0000) AM_ROM
AM_RANGE(0xff8000, 0xff8001) AM_MIRROR(0x7f81fe) AM_WRITE(watchdog_reset16_w)
AM_RANGE(0xff8200, 0xff8201) AM_MIRROR(0x7f81fe) AM_WRITE(atarigen_scanline_int_ack_w)
diff --git a/src/mame/drivers/bombjack.c b/src/mame/drivers/bombjack.c
index 94a1c729432..2ab20c3c972 100644
--- a/src/mame/drivers/bombjack.c
+++ b/src/mame/drivers/bombjack.c
@@ -176,7 +176,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( bombjack_sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(AY8910_control_port_0_w)
AM_RANGE(0x01, 0x01) AM_WRITE(AY8910_write_port_0_w)
AM_RANGE(0x10, 0x10) AM_WRITE(AY8910_control_port_1_w)
diff --git a/src/mame/drivers/boxer.c b/src/mame/drivers/boxer.c
index b667fdbf2c2..2c395105bc0 100644
--- a/src/mame/drivers/boxer.c
+++ b/src/mame/drivers/boxer.c
@@ -178,7 +178,7 @@ static WRITE8_HANDLER( boxer_led_w )
static ADDRESS_MAP_START( boxer_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(14) )
+ ADDRESS_MAP_GLOBAL_MASK(0x3fff)
AM_RANGE(0x0000, 0x01ff) AM_RAM
AM_RANGE(0x0200, 0x03ff) AM_RAM AM_BASE(&boxer_tile_ram)
AM_RANGE(0x0800, 0x08ff) AM_READ(boxer_input_r)
diff --git a/src/mame/drivers/bsktball.c b/src/mame/drivers/bsktball.c
index 794a91ec287..5b81dbebc8c 100644
--- a/src/mame/drivers/bsktball.c
+++ b/src/mame/drivers/bsktball.c
@@ -72,7 +72,7 @@ static PALETTE_INIT( bsktball )
*************************************/
static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(14) )
+ ADDRESS_MAP_GLOBAL_MASK(0x3fff)
AM_RANGE(0x0000, 0x01ff) AM_RAM /* Zero Page RAM */
AM_RANGE(0x0800, 0x0800) AM_READ(bsktball_in0_r)
AM_RANGE(0x0802, 0x0802) AM_READ(input_port_5_r)
diff --git a/src/mame/drivers/bublbobl.c b/src/mame/drivers/bublbobl.c
index eb735629182..74c2a850ce2 100644
--- a/src/mame/drivers/bublbobl.c
+++ b/src/mame/drivers/bublbobl.c
@@ -377,7 +377,7 @@ ADDRESS_MAP_END
// The 68705 is from a bootleg, the original MCU is a 6801U4
static ADDRESS_MAP_START( bootlegmcu_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(11) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7ff)
AM_RANGE(0x000, 0x000) AM_READWRITE(bublbobl_68705_portA_r, bublbobl_68705_portA_w)
AM_RANGE(0x001, 0x001) AM_READWRITE(bublbobl_68705_portB_r, bublbobl_68705_portB_w)
AM_RANGE(0x002, 0x002) AM_READ(input_port_0_r) // COIN
diff --git a/src/mame/drivers/buggychl.c b/src/mame/drivers/buggychl.c
index fd28df92be9..1b12122de88 100644
--- a/src/mame/drivers/buggychl.c
+++ b/src/mame/drivers/buggychl.c
@@ -232,7 +232,7 @@ static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( mcu_readmem, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(11) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7ff)
AM_RANGE(0x0000, 0x0000) AM_READ(buggychl_68705_portA_r)
AM_RANGE(0x0001, 0x0001) AM_READ(buggychl_68705_portB_r)
AM_RANGE(0x0002, 0x0002) AM_READ(buggychl_68705_portC_r)
@@ -241,7 +241,7 @@ static ADDRESS_MAP_START( mcu_readmem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( mcu_writemem, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(11) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7ff)
AM_RANGE(0x0000, 0x0000) AM_WRITE(buggychl_68705_portA_w)
AM_RANGE(0x0001, 0x0001) AM_WRITE(buggychl_68705_portB_w)
AM_RANGE(0x0002, 0x0002) AM_WRITE(buggychl_68705_portC_w)
diff --git a/src/mame/drivers/bzone.c b/src/mame/drivers/bzone.c
index 9cbb98766ee..b8d857c476d 100644
--- a/src/mame/drivers/bzone.c
+++ b/src/mame/drivers/bzone.c
@@ -311,7 +311,7 @@ static READ8_HANDLER( redbaron_joy_r )
*************************************/
static ADDRESS_MAP_START( bzone_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(15) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x03ff) AM_RAM
AM_RANGE(0x0800, 0x0800) AM_READ(bzone_IN0_r) /* IN0 */
AM_RANGE(0x0a00, 0x0a00) AM_READ(input_port_1_r) /* DSW1 */
@@ -331,7 +331,7 @@ static ADDRESS_MAP_START( bzone_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( redbaron_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(15) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x03ff) AM_RAM
AM_RANGE(0x0800, 0x0800) AM_READ(bzone_IN0_r) /* IN0 */
AM_RANGE(0x0a00, 0x0a00) AM_READ(input_port_1_r) /* DSW1 */
diff --git a/src/mame/drivers/cabal.c b/src/mame/drivers/cabal.c
index 4efbc40ce19..d004f8f14a6 100644
--- a/src/mame/drivers/cabal.c
+++ b/src/mame/drivers/cabal.c
@@ -275,7 +275,7 @@ static ADDRESS_MAP_START( cabalbl_talk1_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( cabalbl_talk1_portmap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(soundlatch3_r)
AM_RANGE(0x01, 0x01) AM_WRITE(cabalbl_adpcm_0_w)
ADDRESS_MAP_END
@@ -285,7 +285,7 @@ static ADDRESS_MAP_START( cabalbl_talk2_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( cabalbl_talk2_portmap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(soundlatch4_r)
AM_RANGE(0x01, 0x01) AM_WRITE(cabalbl_adpcm_1_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/calorie.c b/src/mame/drivers/calorie.c
index 7a10cf3102f..0f87d691594 100644
--- a/src/mame/drivers/calorie.c
+++ b/src/mame/drivers/calorie.c
@@ -224,7 +224,7 @@ static ADDRESS_MAP_START( calorie_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( calorie_sound_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(AY8910_control_port_0_w)
AM_RANGE(0x01, 0x01) AM_READWRITE(AY8910_read_port_0_r, AY8910_write_port_0_w)
AM_RANGE(0x10, 0x10) AM_WRITE(AY8910_control_port_1_w)
diff --git a/src/mame/drivers/canyon.c b/src/mame/drivers/canyon.c
index 7186a9f6c15..842f03f205d 100644
--- a/src/mame/drivers/canyon.c
+++ b/src/mame/drivers/canyon.c
@@ -106,7 +106,7 @@ static WRITE8_HANDLER( canyon_led_w )
*************************************/
static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(14) )
+ ADDRESS_MAP_GLOBAL_MASK(0x3fff)
AM_RANGE(0x0000, 0x00ff) AM_MIRROR(0x100) AM_RAM
AM_RANGE(0x0400, 0x0401) AM_WRITE(canyon_motor_w)
AM_RANGE(0x0500, 0x0500) AM_WRITE(canyon_explode_w)
diff --git a/src/mame/drivers/carjmbre.c b/src/mame/drivers/carjmbre.c
index d6bb819d320..5394b128a28 100644
--- a/src/mame/drivers/carjmbre.c
+++ b/src/mame/drivers/carjmbre.c
@@ -92,13 +92,13 @@ static ADDRESS_MAP_START( carjmbre_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( carjmbre_sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(soundlatch_r)
AM_RANGE(0x24, 0x24) AM_READ(MRA8_NOP) //??
ADDRESS_MAP_END
static ADDRESS_MAP_START( carjmbre_sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x10) AM_WRITE(MWA8_NOP) //?? written on init/0xff sound command reset
AM_RANGE(0x20, 0x20) AM_WRITE(AY8910_control_port_0_w)
AM_RANGE(0x21, 0x21) AM_WRITE(AY8910_write_port_0_w)
diff --git a/src/mame/drivers/carrera.c b/src/mame/drivers/carrera.c
index 6be8e518a28..3bd935992da 100644
--- a/src/mame/drivers/carrera.c
+++ b/src/mame/drivers/carrera.c
@@ -65,7 +65,7 @@ static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(input_port_0_r)
AM_RANGE(0x01, 0x01) AM_READ(input_port_1_r)
AM_RANGE(0x02, 0x02) AM_READ(input_port_2_r)
@@ -75,7 +75,7 @@ static ADDRESS_MAP_START( readport, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x06, 0x06) AM_WRITE(MWA8_NOP) // ?
AM_RANGE(0x08, 0x08) AM_WRITE(AY8910_control_port_0_w)
diff --git a/src/mame/drivers/cave.c b/src/mame/drivers/cave.c
index c4a55c2e162..f0fc194cd51 100644
--- a/src/mame/drivers/cave.c
+++ b/src/mame/drivers/cave.c
@@ -1221,7 +1221,7 @@ static ADDRESS_MAP_START( hotdogst_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( hotdogst_sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x30, 0x30) AM_READ(soundlatch_lo_r ) // From Main CPU
AM_RANGE(0x40, 0x40) AM_READ(soundlatch_hi_r ) //
AM_RANGE(0x50, 0x50) AM_READ(YM2203_status_port_0_r ) // YM2203
@@ -1230,7 +1230,7 @@ static ADDRESS_MAP_START( hotdogst_sound_readport, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( hotdogst_sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(hotdogst_rombank_w ) // ROM bank
AM_RANGE(0x50, 0x50) AM_WRITE(YM2203_control_port_0_w ) // YM2203
AM_RANGE(0x51, 0x51) AM_WRITE(YM2203_write_port_0_w ) //
@@ -1267,13 +1267,13 @@ static ADDRESS_MAP_START( mazinger_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( mazinger_sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x30, 0x30) AM_READ(soundlatch_lo_r ) // From Main CPU
AM_RANGE(0x52, 0x52) AM_READ(YM2203_status_port_0_r ) // YM2203
ADDRESS_MAP_END
static ADDRESS_MAP_START( mazinger_sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(mazinger_rombank_w ) // ROM bank
AM_RANGE(0x10, 0x10) AM_WRITE(soundlatch_ack_w ) // To Main CPU
AM_RANGE(0x50, 0x50) AM_WRITE(YM2203_control_port_0_w ) // YM2203
@@ -1327,7 +1327,7 @@ static ADDRESS_MAP_START( metmqstr_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( metmqstr_sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x20, 0x20) AM_READ(soundflags_r ) // Communication
AM_RANGE(0x30, 0x30) AM_READ(soundlatch_lo_r ) // From Main CPU
AM_RANGE(0x40, 0x40) AM_READ(soundlatch_hi_r ) //
@@ -1335,7 +1335,7 @@ static ADDRESS_MAP_START( metmqstr_sound_readport, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( metmqstr_sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(metmqstr_rombank_w ) // Rom Bank
AM_RANGE(0x50, 0x50) AM_WRITE(YM2151_register_port_0_w ) // YM2151
AM_RANGE(0x51, 0x51) AM_WRITE(YM2151_data_port_0_w ) //
@@ -1372,7 +1372,7 @@ static ADDRESS_MAP_START( pwrinst2_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( pwrinst2_sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(OKIM6295_status_0_r ) // M6295
AM_RANGE(0x08, 0x08) AM_READ(OKIM6295_status_1_r ) //
AM_RANGE(0x40, 0x40) AM_READ(YM2203_status_port_0_r ) // YM2203
@@ -1382,7 +1382,7 @@ static ADDRESS_MAP_START( pwrinst2_sound_readport, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( pwrinst2_sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(OKIM6295_data_0_w ) // M6295
AM_RANGE(0x08, 0x08) AM_WRITE(OKIM6295_data_1_w ) //
AM_RANGE(0x10, 0x17) AM_WRITE(NMK112_okibank_w ) // Samples bank
@@ -1450,7 +1450,7 @@ static ADDRESS_MAP_START( sailormn_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( sailormn_sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x20, 0x20) AM_READ(soundflags_r ) // Communication
AM_RANGE(0x30, 0x30) AM_READ(soundlatch_lo_r ) // From Main CPU
AM_RANGE(0x40, 0x40) AM_READ(soundlatch_hi_r ) //
@@ -1460,7 +1460,7 @@ static ADDRESS_MAP_START( sailormn_sound_readport, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( sailormn_sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(sailormn_rombank_w ) // Rom Bank
AM_RANGE(0x10, 0x10) AM_WRITE(soundlatch_ack_w ) // To Main CPU
AM_RANGE(0x50, 0x50) AM_WRITE(YM2151_register_port_0_w ) // YM2151
diff --git a/src/mame/drivers/cball.c b/src/mame/drivers/cball.c
index b4ccedfc16e..20746c7c10f 100644
--- a/src/mame/drivers/cball.c
+++ b/src/mame/drivers/cball.c
@@ -97,7 +97,7 @@ static WRITE8_HANDLER( cball_wram_w )
static ADDRESS_MAP_START( cpu_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(15) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x03ff) AM_READ(cball_wram_r) AM_MASK(0x7f)
AM_RANGE(0x0400, 0x07ff) AM_READ(MRA8_RAM)
diff --git a/src/mame/drivers/cbasebal.c b/src/mame/drivers/cbasebal.c
index 28f7b168f6b..8ce0ec817e2 100644
--- a/src/mame/drivers/cbasebal.c
+++ b/src/mame/drivers/cbasebal.c
@@ -151,7 +151,7 @@ static ADDRESS_MAP_START( cbasebal_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( cbasebal_portmap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(cbasebal_bankswitch_w)
AM_RANGE(0x01, 0x01) AM_WRITE(eeprom_cs_w)
AM_RANGE(0x02, 0x02) AM_WRITE(eeprom_clock_w)
diff --git a/src/mame/drivers/cchasm.c b/src/mame/drivers/cchasm.c
index ca52f630ea5..a19a4f56eaf 100644
--- a/src/mame/drivers/cchasm.c
+++ b/src/mame/drivers/cchasm.c
@@ -54,7 +54,7 @@ static ADDRESS_MAP_START( sound_memmap, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_portmap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x03) AM_READWRITE(z80ctc_0_r,z80ctc_0_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/cclimber.c b/src/mame/drivers/cclimber.c
index d8c96ecfc16..0909376d509 100644
--- a/src/mame/drivers/cclimber.c
+++ b/src/mame/drivers/cclimber.c
@@ -375,14 +375,14 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( cclimber_portmap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x08, 0x08) AM_WRITE(AY8910_control_port_0_w)
AM_RANGE(0x09, 0x09) AM_WRITE(AY8910_write_port_0_w)
AM_RANGE(0x0c, 0x0c) AM_READ(AY8910_read_port_0_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( yamato_portmap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(yamato_p0_w) /* ??? */
AM_RANGE(0x01, 0x01) AM_WRITE(yamato_p1_w) /* ??? */
ADDRESS_MAP_END
@@ -402,7 +402,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( swimmer_audio_portmap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(AY8910_write_port_0_w)
AM_RANGE(0x01, 0x01) AM_WRITE(AY8910_control_port_0_w)
AM_RANGE(0x80, 0x80) AM_WRITE(AY8910_write_port_1_w)
@@ -410,7 +410,7 @@ static ADDRESS_MAP_START( swimmer_audio_portmap, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( yamato_audio_portmap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(AY8910_control_port_0_w)
AM_RANGE(0x01, 0x01) AM_WRITE(AY8910_write_port_0_w)
AM_RANGE(0x02, 0x02) AM_WRITE(AY8910_control_port_1_w)
diff --git a/src/mame/drivers/centiped.c b/src/mame/drivers/centiped.c
index 5130ddb6ded..376fc01969e 100644
--- a/src/mame/drivers/centiped.c
+++ b/src/mame/drivers/centiped.c
@@ -677,7 +677,7 @@ static READ8_HANDLER( caterplr_AY8910_r )
*************************************/
static ADDRESS_MAP_START( centiped_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(14) )
+ ADDRESS_MAP_GLOBAL_MASK(0x3fff)
AM_RANGE(0x0000, 0x03ff) AM_RAM AM_BASE(&rambase)
AM_RANGE(0x0400, 0x07bf) AM_READWRITE(MRA8_RAM, centiped_videoram_w) AM_BASE(&videoram)
AM_RANGE(0x07c0, 0x07ff) AM_RAM AM_BASE(&spriteram)
@@ -702,7 +702,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( centipdb_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(15) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x03ff) AM_MIRROR(0x4000) AM_RAM
AM_RANGE(0x0400, 0x07bf) AM_MIRROR(0x4000) AM_READWRITE(MRA8_RAM, centiped_videoram_w) AM_BASE(&videoram)
AM_RANGE(0x07c0, 0x07ff) AM_MIRROR(0x4000) AM_RAM AM_BASE(&spriteram)
@@ -736,7 +736,7 @@ ADDRESS_MAP_END
*************************************/
static ADDRESS_MAP_START( milliped_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(15) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x03ff) AM_RAM
AM_RANGE(0x0400, 0x040f) AM_READWRITE(pokey1_r, pokey1_w)
AM_RANGE(0x0800, 0x080f) AM_READWRITE(pokey2_r, pokey2_w)
@@ -769,7 +769,7 @@ ADDRESS_MAP_END
*************************************/
static ADDRESS_MAP_START( warlords_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(15) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x03ff) AM_RAM
AM_RANGE(0x0400, 0x07bf) AM_READWRITE(MRA8_RAM, centiped_videoram_w) AM_BASE(&videoram)
AM_RANGE(0x07c0, 0x07ff) AM_RAM AM_BASE(&spriteram)
@@ -794,7 +794,7 @@ ADDRESS_MAP_END
*************************************/
static ADDRESS_MAP_START( mazeinv_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(15) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x03ff) AM_RAM
AM_RANGE(0x0400, 0x040f) AM_READWRITE(pokey1_r, pokey1_w)
AM_RANGE(0x0800, 0x080f) AM_READWRITE(pokey2_r, pokey2_w)
diff --git a/src/mame/drivers/changela.c b/src/mame/drivers/changela.c
index a56a9b80169..4500bfe6310 100644
--- a/src/mame/drivers/changela.c
+++ b/src/mame/drivers/changela.c
@@ -139,7 +139,7 @@ static WRITE8_HANDLER( changela_68705_ddrC_w )
static ADDRESS_MAP_START( mcu_readmem, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(11) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7ff)
AM_RANGE(0x0000, 0x0000) AM_READ(changela_68705_portA_r)
AM_RANGE(0x0001, 0x0001) AM_READ(changela_68705_portB_r)
AM_RANGE(0x0002, 0x0002) AM_READ(changela_68705_portC_r)
@@ -149,7 +149,7 @@ static ADDRESS_MAP_START( mcu_readmem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( mcu_writemem, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(11) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7ff)
AM_RANGE(0x0000, 0x0000) AM_WRITE(changela_68705_portA_w)
AM_RANGE(0x0001, 0x0001) AM_WRITE(changela_68705_portB_w)
AM_RANGE(0x0002, 0x0002) AM_WRITE(changela_68705_portC_w)
diff --git a/src/mame/drivers/cheekyms.c b/src/mame/drivers/cheekyms.c
index c263c18fa84..4813459617e 100644
--- a/src/mame/drivers/cheekyms.c
+++ b/src/mame/drivers/cheekyms.c
@@ -37,7 +37,7 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(input_port_0_r)
AM_RANGE(0x01, 0x01) AM_READ(input_port_1_r)
AM_RANGE(0x20, 0x3f) AM_WRITE(MWA8_RAM) AM_BASE(&cheekyms_spriteram)
diff --git a/src/mame/drivers/cherrym.c b/src/mame/drivers/cherrym.c
index 23936112bbf..0a7820d6453 100644
--- a/src/mame/drivers/cherrym.c
+++ b/src/mame/drivers/cherrym.c
@@ -139,7 +139,7 @@ static ADDRESS_MAP_START( cm_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( cm_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x01, 0x01) AM_READ(AY8910_read_port_0_r)
AM_RANGE(0x02, 0x02) AM_WRITE(AY8910_write_port_0_w)
AM_RANGE(0x03, 0x03) AM_WRITE(AY8910_control_port_0_w)
diff --git a/src/mame/drivers/cherrym2.c b/src/mame/drivers/cherrym2.c
index 777e72c8122..d91da20b1ef 100644
--- a/src/mame/drivers/cherrym2.c
+++ b/src/mame/drivers/cherrym2.c
@@ -73,7 +73,7 @@ static ADDRESS_MAP_START( cm_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( cm_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x01, 0x01) AM_READ(AY8910_read_port_0_r)
AM_RANGE(0x02, 0x02) AM_WRITE(AY8910_write_port_0_w)
AM_RANGE(0x03, 0x03) AM_WRITE(AY8910_control_port_0_w)
diff --git a/src/mame/drivers/chinsan.c b/src/mame/drivers/chinsan.c
index 46ecf5f6430..a24b99b766e 100644
--- a/src/mame/drivers/chinsan.c
+++ b/src/mame/drivers/chinsan.c
@@ -190,7 +190,7 @@ static ADDRESS_MAP_START( chinsan_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( chinsan_io, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(chinsan_port00_w)
AM_RANGE(0x01, 0x01) AM_READ(chinsan_input_port_0_r)
AM_RANGE(0x02, 0x02) AM_READ(chinsan_input_port_1_r)
diff --git a/src/mame/drivers/cinemat.c b/src/mame/drivers/cinemat.c
index aa9fe324347..1e542da9307 100644
--- a/src/mame/drivers/cinemat.c
+++ b/src/mame/drivers/cinemat.c
@@ -291,23 +291,23 @@ static WRITE8_HANDLER( qb3_ram_bank_w )
*************************************/
static ADDRESS_MAP_START( program_map_4k, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS(AMEF_ABITS(12))
+ ADDRESS_MAP_GLOBAL_MASK(0xfff)
AM_RANGE(0x0000, 0x0fff) AM_ROM
ADDRESS_MAP_END
static ADDRESS_MAP_START( program_map_8k, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS(AMEF_ABITS(14))
+ ADDRESS_MAP_GLOBAL_MASK(0x3fff)
AM_RANGE(0x0000, 0x0fff) AM_MIRROR(0x1000) AM_ROM
AM_RANGE(0x2000, 0x2fff) AM_MIRROR(0x1000) AM_ROM AM_REGION(REGION_CPU1, 0x1000)
ADDRESS_MAP_END
static ADDRESS_MAP_START( program_map_16k, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS(AMEF_ABITS(14))
+ ADDRESS_MAP_GLOBAL_MASK(0x3fff)
AM_RANGE(0x0000, 0x3fff) AM_ROM
ADDRESS_MAP_END
static ADDRESS_MAP_START( program_map_32k, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS(AMEF_ABITS(15))
+ ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x7fff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/clayshoo.c b/src/mame/drivers/clayshoo.c
index edc8a81635a..c89614c1dc3 100644
--- a/src/mame/drivers/clayshoo.c
+++ b/src/mame/drivers/clayshoo.c
@@ -214,7 +214,7 @@ ADDRESS_MAP_END
*************************************/
static ADDRESS_MAP_START( main_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(watchdog_reset_w)
AM_RANGE(0x20, 0x23) AM_READWRITE(ppi8255_0_r, ppi8255_0_w)
AM_RANGE(0x30, 0x33) AM_READWRITE(ppi8255_1_r, ppi8255_1_w)
diff --git a/src/mame/drivers/cliffhgr.c b/src/mame/drivers/cliffhgr.c
index 4bf9ee06b85..4ff424e82f0 100644
--- a/src/mame/drivers/cliffhgr.c
+++ b/src/mame/drivers/cliffhgr.c
@@ -284,7 +284,7 @@ static ADDRESS_MAP_START( mainmem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( mainport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x44, 0x44) AM_WRITE(TMS9928A_vram_w)
AM_RANGE(0x45, 0x45) AM_READ(TMS9928A_vram_r)
AM_RANGE(0x46, 0x46) AM_WRITE(cliff_sound_overlay_w)
diff --git a/src/mame/drivers/coinmstr.c b/src/mame/drivers/coinmstr.c
index bc76eef4ec0..034c7946aa6 100644
--- a/src/mame/drivers/coinmstr.c
+++ b/src/mame/drivers/coinmstr.c
@@ -129,7 +129,8 @@ ADDRESS_MAP_END
// Different I/O mappping for every game
static ADDRESS_MAP_START( quizmstr_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) | AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(question_r)
AM_RANGE(0x00, 0x03) AM_WRITE(question_w)
AM_RANGE(0x40, 0x40) AM_WRITE(AY8910_control_port_0_w)
@@ -145,7 +146,7 @@ static ADDRESS_MAP_START( quizmstr_io_map, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( trailblz_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(question_r)
AM_RANGE(0x00, 0x03) AM_WRITE(question_w)
AM_RANGE(0x40, 0x40) AM_DEVWRITE(MC6845, "crtc", mc6845_address_w)
@@ -159,7 +160,8 @@ static ADDRESS_MAP_START( trailblz_io_map, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( supnudg2_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) | AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(question_r)
AM_RANGE(0x00, 0x03) AM_WRITE(question_w)
AM_RANGE(0x40, 0x41) AM_READNOP
diff --git a/src/mame/drivers/cop01.c b/src/mame/drivers/cop01.c
index bc7feef0860..fa1ae16a2b9 100644
--- a/src/mame/drivers/cop01.c
+++ b/src/mame/drivers/cop01.c
@@ -127,7 +127,7 @@ static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(input_port_0_r)
AM_RANGE(0x01, 0x01) AM_READ(input_port_1_r)
AM_RANGE(0x02, 0x02) AM_READ(input_port_2_r)
@@ -136,7 +136,7 @@ static ADDRESS_MAP_START( readport, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( mightguy_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(input_port_0_r)
AM_RANGE(0x01, 0x01) AM_READ(input_port_1_r)
AM_RANGE(0x02, 0x02) AM_READ(input_port_2_r)
@@ -144,7 +144,7 @@ static ADDRESS_MAP_START( mightguy_readport, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x40, 0x43) AM_WRITE(cop01_vreg_w)
AM_RANGE(0x44, 0x44) AM_WRITE(cop01_sound_command_w)
AM_RANGE(0x45, 0x45) AM_WRITE(watchdog_reset_w) /* ? */
@@ -162,12 +162,12 @@ static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x06, 0x06) AM_READ(cop01_sound_command_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(AY8910_control_port_0_w)
AM_RANGE(0x01, 0x01) AM_WRITE(AY8910_write_port_0_w)
AM_RANGE(0x02, 0x02) AM_WRITE(AY8910_control_port_1_w)
@@ -180,13 +180,13 @@ ADDRESS_MAP_END
static READ8_HANDLER( kludge ) { static int timer; return timer++; }
static ADDRESS_MAP_START( mightguy_sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x03, 0x03) AM_READ(kludge) /* 1412M2? */
AM_RANGE(0x06, 0x06) AM_READ(cop01_sound_command_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( mightguy_sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(YM3526_control_port_0_w)
AM_RANGE(0x01, 0x01) AM_WRITE(YM3526_write_port_0_w)
AM_RANGE(0x02, 0x02) AM_WRITE(MWA8_NOP) /* 1412M2? */
diff --git a/src/mame/drivers/copsnrob.c b/src/mame/drivers/copsnrob.c
index 0364095b968..09d6bf216e5 100644
--- a/src/mame/drivers/copsnrob.c
+++ b/src/mame/drivers/copsnrob.c
@@ -105,7 +105,7 @@ static WRITE8_HANDLER( copsnrob_led_w )
*************************************/
static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(13) )
+ ADDRESS_MAP_GLOBAL_MASK(0x1fff)
AM_RANGE(0x0000, 0x01ff) AM_RAM
AM_RANGE(0x0500, 0x0503) AM_WRITE(MWA8_RAM)
// AM_RANGE(0x0504, 0x0507) AM_WRITE(MWA8_NOP) // ???
diff --git a/src/mame/drivers/couple.c b/src/mame/drivers/couple.c
index 65754fcc3cd..0b5f5dba13c 100644
--- a/src/mame/drivers/couple.c
+++ b/src/mame/drivers/couple.c
@@ -154,7 +154,7 @@ static ADDRESS_MAP_START( merit_mem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( merit_io, ADDRESS_SPACE_IO, 8 )
-// ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+// ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0xc00c, 0xc00c) AM_WRITE(AY8910_control_port_0_w)
AM_RANGE(0xc10c, 0xc10c) AM_WRITE(AY8910_write_port_0_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/cowrace.c b/src/mame/drivers/cowrace.c
index b65428668b4..5d179bb9888 100644
--- a/src/mame/drivers/cowrace.c
+++ b/src/mame/drivers/cowrace.c
@@ -94,7 +94,7 @@ AM_RANGE(0x38c2, 0x38c2) AM_READWRITE( ret_ff, cowrace_38c2_w )
ADDRESS_MAP_END
static ADDRESS_MAP_START( io_map_cowrace, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_NOP
ADDRESS_MAP_END
@@ -105,7 +105,7 @@ static ADDRESS_MAP_START( mem_map_sound_cowrace, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( io_map_sound_cowrace, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x40, 0x40) AM_READWRITE(YM2203_read_port_0_r,YM2203_write_port_0_w)
AM_RANGE(0x41, 0x41) AM_WRITE(YM2203_control_port_0_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/cps1.c b/src/mame/drivers/cps1.c
index 52f30b40bdf..2aab359677f 100644
--- a/src/mame/drivers/cps1.c
+++ b/src/mame/drivers/cps1.c
@@ -509,22 +509,16 @@ static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xf006, 0xf006) AM_WRITE(cps1_oki_pin7_w) /* controls pin 7 of OKI chip */
ADDRESS_MAP_END
-ADDRESS_MAP_START( qsound_readmem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM)
- AM_RANGE(0x8000, 0xbfff) AM_READ(MRA8_BANK1) /* banked (contains music data) */
- AM_RANGE(0xc000, 0xcfff) AM_READ(MRA8_RAM)
- AM_RANGE(0xd007, 0xd007) AM_READ(qsound_status_r)
- AM_RANGE(0xf000, 0xffff) AM_READ(MRA8_RAM)
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START( qsound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0xbfff) AM_WRITE(MWA8_ROM)
- AM_RANGE(0xc000, 0xcfff) AM_WRITE(MWA8_RAM) AM_BASE(&qsound_sharedram1)
+ADDRESS_MAP_START( qsound_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0x7fff) AM_ROM
+ AM_RANGE(0x8000, 0xbfff) AM_ROMBANK(1) /* banked (contains music data) */
+ AM_RANGE(0xc000, 0xcfff) AM_RAM AM_BASE(&qsound_sharedram1)
AM_RANGE(0xd000, 0xd000) AM_WRITE(qsound_data_h_w)
AM_RANGE(0xd001, 0xd001) AM_WRITE(qsound_data_l_w)
AM_RANGE(0xd002, 0xd002) AM_WRITE(qsound_cmd_w)
AM_RANGE(0xd003, 0xd003) AM_WRITE(qsound_banksw_w)
- AM_RANGE(0xf000, 0xffff) AM_WRITE(MWA8_RAM) AM_BASE(&qsound_sharedram2)
+ AM_RANGE(0xd007, 0xd007) AM_READ(qsound_status_r)
+ AM_RANGE(0xf000, 0xffff) AM_RAM AM_BASE(&qsound_sharedram2)
ADDRESS_MAP_END
/***********************************************************
@@ -3523,7 +3517,7 @@ static MACHINE_DRIVER_START( qsound )
MDRV_CPU_VBLANK_INT("main", cps1_qsound_interrupt) /* ??? interrupts per frame */
MDRV_CPU_REPLACE("sound", Z80, 8000000)
- MDRV_CPU_PROGRAM_MAP(qsound_readmem,qsound_writemem)
+ MDRV_CPU_PROGRAM_MAP(qsound_map,0)
MDRV_CPU_PERIODIC_INT(irq0_line_hold, 250) /* ?? */
MDRV_NVRAM_HANDLER(qsound)
diff --git a/src/mame/drivers/cps2.c b/src/mame/drivers/cps2.c
index 786ee17d815..b0e0a57b572 100644
--- a/src/mame/drivers/cps2.c
+++ b/src/mame/drivers/cps2.c
@@ -1244,7 +1244,7 @@ static MACHINE_DRIVER_START( cps2 )
MDRV_CPU_VBLANK_INT_HACK(cps2_interrupt,262) // 262 /* ??? interrupts per frame */
MDRV_CPU_ADD(Z80, 8000000)
- MDRV_CPU_PROGRAM_MAP(qsound_readmem,qsound_writemem)
+ MDRV_CPU_PROGRAM_MAP(qsound_map,0)
MDRV_CPU_PERIODIC_INT(irq0_line_hold, 251) /* 251 is good (see 'mercy mercy mercy'section of sgemf attract mode for accurate sound sync */
// MDRV_INTERLEAVE(262) /* 262 scanlines, for raster effects */
diff --git a/src/mame/drivers/crbaloon.c b/src/mame/drivers/crbaloon.c
index 7508d0ad669..4108ea53780 100644
--- a/src/mame/drivers/crbaloon.c
+++ b/src/mame/drivers/crbaloon.c
@@ -200,7 +200,7 @@ static WRITE8_HANDLER( port_music_w )
*************************************/
static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(15) ) /* A15 is not decoded */
+ ADDRESS_MAP_GLOBAL_MASK(0x7fff) /* A15 is not decoded */
AM_RANGE(0x0000, 0x3fff) AM_ROM /* not fully populated */
AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0x0400) AM_RAM
AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0x0400) AM_READWRITE(MRA8_RAM, crbaloon_videoram_w) AM_BASE(&crbaloon_videoram)
@@ -217,11 +217,11 @@ ADDRESS_MAP_END
*************************************/
static ADDRESS_MAP_START( main_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(4) )
- AM_RANGE(0x00, 0x00) AM_MIRROR(0x0c) AM_READ(port_tag_to_handler8("DSW0"))
- AM_RANGE(0x01, 0x01) AM_MIRROR(0x0c) AM_READ(port_tag_to_handler8("IN0"))
+ ADDRESS_MAP_GLOBAL_MASK(0xf)
+ AM_RANGE(0x00, 0x00) AM_MIRROR(0x0c) AM_READ_PORT("DSW0")
+ AM_RANGE(0x01, 0x01) AM_MIRROR(0x0c) AM_READ_PORT("IN0")
AM_RANGE(0x02, 0x02) AM_MIRROR(0x0c) AM_MASK(0x0c) AM_READ(pc3259_r)
- AM_RANGE(0x03, 0x03) AM_MIRROR(0x0c) AM_READ(port_tag_to_handler8("IN1"))
+ AM_RANGE(0x03, 0x03) AM_MIRROR(0x0c) AM_READ_PORT("IN1")
AM_RANGE(0x00, 0x00) AM_WRITE(MWA8_NOP) /* not connected */
AM_RANGE(0x01, 0x01) AM_WRITE(MWA8_NOP) /* watchdog */
diff --git a/src/mame/drivers/crospang.c b/src/mame/drivers/crospang.c
index 4311c4f40a9..5da1b5b9b70 100644
--- a/src/mame/drivers/crospang.c
+++ b/src/mame/drivers/crospang.c
@@ -134,14 +134,14 @@ static ADDRESS_MAP_START( crospang_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( crospang_sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(YM3812_status_port_0_r)
AM_RANGE(0x02, 0x02) AM_READ(OKIM6295_status_0_r)
AM_RANGE(0x06, 0x06) AM_READ(soundlatch_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( crospang_sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(YM3812_control_port_0_w)
AM_RANGE(0x01, 0x01) AM_WRITE(YM3812_write_port_0_w)
AM_RANGE(0x02, 0x02) AM_WRITE(OKIM6295_data_0_w)
diff --git a/src/mame/drivers/crshrace.c b/src/mame/drivers/crshrace.c
index 36c157d9a1f..16b24432c97 100644
--- a/src/mame/drivers/crshrace.c
+++ b/src/mame/drivers/crshrace.c
@@ -230,14 +230,14 @@ static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x04, 0x04) AM_READ(soundlatch_r)
AM_RANGE(0x08, 0x08) AM_READ(YM2610_status_port_0_A_r)
AM_RANGE(0x0a, 0x0a) AM_READ(YM2610_status_port_0_B_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(crshrace_sh_bankswitch_w)
AM_RANGE(0x04, 0x04) AM_WRITE(pending_command_clear_w)
AM_RANGE(0x08, 0x08) AM_WRITE(YM2610_control_port_0_A_w)
diff --git a/src/mame/drivers/cshooter.c b/src/mame/drivers/cshooter.c
index fcc6e36e15a..a0ea27e7d44 100644
--- a/src/mame/drivers/cshooter.c
+++ b/src/mame/drivers/cshooter.c
@@ -318,11 +318,11 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
ADDRESS_MAP_END
@@ -359,11 +359,11 @@ static ADDRESS_MAP_START( s2_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( s_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
ADDRESS_MAP_END
static ADDRESS_MAP_START( s_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/cubocd32.c b/src/mame/drivers/cubocd32.c
index e27597f17c0..5357028a5b3 100644
--- a/src/mame/drivers/cubocd32.c
+++ b/src/mame/drivers/cubocd32.c
@@ -152,7 +152,7 @@ static READ32_HANDLER( dipswitch_r )
}
static ADDRESS_MAP_START( cd32_map, ADDRESS_SPACE_PROGRAM, 32 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x000000, 0x1fffff) AM_RAMBANK(1) AM_BASE(&amiga_chip_ram32) AM_SIZE(&amiga_chip_ram_size)
AM_RANGE(0x800000, 0x800003) AM_READ( dipswitch_r )
AM_RANGE(0xb80000, 0xb8003f) AM_READWRITE(amiga_akiko32_r, amiga_akiko32_w)
diff --git a/src/mame/drivers/cultures.c b/src/mame/drivers/cultures.c
index e77d69bd688..ffd7f84b5a1 100644
--- a/src/mame/drivers/cultures.c
+++ b/src/mame/drivers/cultures.c
@@ -152,7 +152,7 @@ static ADDRESS_MAP_START( cultures_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( cultures_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x03) AM_RAM //?
AM_RANGE(0x10, 0x13) AM_RAM //?
AM_RANGE(0x20, 0x23) AM_RAM AM_BASE(&bg0_regs_x)
diff --git a/src/mame/drivers/cvs.c b/src/mame/drivers/cvs.c
index 18a9333f2df..5879b3c005b 100644
--- a/src/mame/drivers/cvs.c
+++ b/src/mame/drivers/cvs.c
@@ -521,7 +521,7 @@ MACHINE_START( cvs )
*************************************/
static ADDRESS_MAP_START( cvs_main_cpu_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(15) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x13ff) AM_ROM
AM_RANGE(0x1400, 0x14ff) AM_MIRROR(0x6000) AM_READWRITE(cvs_bullet_ram_or_palette_r, cvs_bullet_ram_or_palette_w) AM_BASE(&cvs_bullet_ram)
AM_RANGE(0x1500, 0x15ff) AM_MIRROR(0x6000) AM_READWRITE(cvs_s2636_2_or_character_ram_r, cvs_s2636_2_or_character_ram_w) AM_BASE(&cvs_s2636_2_ram)
@@ -551,7 +551,7 @@ ADDRESS_MAP_END
*************************************/
static ADDRESS_MAP_START( cvs_dac_cpu_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(15) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x0fff) AM_ROM
AM_RANGE(0x1000, 0x107f) AM_RAM
AM_RANGE(0x1800, 0x1800) AM_READ(soundlatch_r)
@@ -574,7 +574,7 @@ ADDRESS_MAP_END
*************************************/
static ADDRESS_MAP_START( cvs_speech_cpu_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(15) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x07ff) AM_ROM
AM_RANGE(0x1d00, 0x1d00) AM_WRITE(cvs_speech_rom_address_lo_w)
AM_RANGE(0x1d40, 0x1d40) AM_WRITE(cvs_speech_rom_address_hi_w)
diff --git a/src/mame/drivers/dacholer.c b/src/mame/drivers/dacholer.c
index f716b227f31..a98c0d61178 100644
--- a/src/mame/drivers/dacholer.c
+++ b/src/mame/drivers/dacholer.c
@@ -68,7 +68,7 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( main_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(input_port_0_r)
AM_RANGE(0x01, 0x01) AM_READ(input_port_1_r)
AM_RANGE(0x02, 0x02) AM_READ(input_port_2_r)
@@ -89,7 +89,7 @@ static ADDRESS_MAP_START( snd_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( snd_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(soundlatch_r)
AM_RANGE(0x04, 0x04) AM_WRITENOP // 0 or 1
AM_RANGE(0x08, 0x08) AM_WRITE(snd_irq_w)
diff --git a/src/mame/drivers/darius.c b/src/mame/drivers/darius.c
index 9959a9c9723..8d5335d2f2a 100644
--- a/src/mame/drivers/darius.c
+++ b/src/mame/drivers/darius.c
@@ -562,14 +562,14 @@ static WRITE8_HANDLER( adpcm_data_w )
}
static ADDRESS_MAP_START( darius_sound2_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(adpcm_command_read)
AM_RANGE(0x02, 0x02) AM_READ(readport2) /* ??? */
AM_RANGE(0x03, 0x03) AM_READ(readport3) /* ??? */
ADDRESS_MAP_END
static ADDRESS_MAP_START( darius_sound2_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(adpcm_nmi_disable)
AM_RANGE(0x01, 0x01) AM_WRITE(adpcm_nmi_enable)
AM_RANGE(0x02, 0x02) AM_WRITE(adpcm_data_w)
diff --git a/src/mame/drivers/dbz.c b/src/mame/drivers/dbz.c
index b40f68cca9f..9a9e18dbc16 100644
--- a/src/mame/drivers/dbz.c
+++ b/src/mame/drivers/dbz.c
@@ -212,7 +212,7 @@ static ADDRESS_MAP_START( dbz_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( dbz_sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(MWA8_NOP)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/dcheese.c b/src/mame/drivers/dcheese.c
index f2f73925927..7d974ff9a26 100644
--- a/src/mame/drivers/dcheese.c
+++ b/src/mame/drivers/dcheese.c
@@ -219,7 +219,7 @@ static WRITE8_HANDLER( bsmt_data_w )
*************************************/
static ADDRESS_MAP_START( main_cpu_map, ADDRESS_SPACE_PROGRAM, 16 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM
AM_RANGE(0x200000, 0x200001) AM_READWRITE(port_0_r, watchdog_reset16_w)
@@ -241,7 +241,7 @@ ADDRESS_MAP_END
*************************************/
static ADDRESS_MAP_START( sound_cpu_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x07ff) AM_READWRITE(sound_status_r, sound_control_w)
AM_RANGE(0x0800, 0x0fff) AM_READ(sound_command_r)
AM_RANGE(0x1000, 0x10ff) AM_MIRROR(0x0700) AM_WRITE(bsmt_data_w)
diff --git a/src/mame/drivers/ddenlovr.c b/src/mame/drivers/ddenlovr.c
index 5099dc3c4e1..4856912e907 100644
--- a/src/mame/drivers/ddenlovr.c
+++ b/src/mame/drivers/ddenlovr.c
@@ -1865,7 +1865,7 @@ static ADDRESS_MAP_START( quizchq_writemem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x8000, 0x81ff) AM_WRITE(rongrong_palette_w )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( quizchq_readport, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+static ADDRESS_MAP_START( quizchq_readport, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x03, 0x03) AM_READ(rongrong_gfxrom_r )
AM_RANGE(0x1b, 0x1b) AM_READ(rongrong_blitter_busy_r )
AM_RANGE(0x1c, 0x1c) AM_READ(rongrong_input_r )
@@ -1875,7 +1875,7 @@ static ADDRESS_MAP_START( quizchq_readport, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_FL
AM_RANGE(0xa0, 0xaf) AM_READ(msm6242_r ) // 6242RTC
ADDRESS_MAP_END
-static ADDRESS_MAP_START( quizchq_writeport, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+static ADDRESS_MAP_START( quizchq_writeport, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_WRITE(rongrong_blitter_w )
AM_RANGE(0x1b, 0x1b) AM_WRITE(rongrong_blitter_busy_w )
AM_RANGE(0x1e, 0x1e) AM_WRITE(rongrong_select_w )
@@ -1910,7 +1910,7 @@ static ADDRESS_MAP_START( rongrong_writemem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xf000, 0xf1ff) AM_WRITE(rongrong_palette_w )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( rongrong_readport, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+static ADDRESS_MAP_START( rongrong_readport, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x03, 0x03) AM_READ(rongrong_gfxrom_r )
AM_RANGE(0x1b, 0x1b) AM_READ(rongrong_blitter_busy_r )
AM_RANGE(0x1c, 0x1c) AM_READ(rongrong_input_r )
@@ -1920,7 +1920,7 @@ static ADDRESS_MAP_START( rongrong_readport, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_F
AM_RANGE(0xa2, 0xa3) AM_READ(rongrong_input2_r )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( rongrong_writeport, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+static ADDRESS_MAP_START( rongrong_writeport, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_WRITE(rongrong_blitter_w )
AM_RANGE(0x1b, 0x1b) AM_WRITE(rongrong_blitter_busy_w )
AM_RANGE(0x1e, 0x1e) AM_WRITE(rongrong_select_w )
@@ -2028,7 +2028,7 @@ static ADDRESS_MAP_START( mmpanic_writemem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x8000, 0x81ff) AM_WRITE(rongrong_palette_w )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mmpanic_readport, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+static ADDRESS_MAP_START( mmpanic_readport, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x0f) AM_READ(msm6242_r ) // 6242RTC
AM_RANGE(0x38, 0x38) AM_READ(unk_r ) // ? must be 78 on startup
AM_RANGE(0x58, 0x58) AM_READ(unk_r ) // ? must be 78 on startup
@@ -2042,7 +2042,7 @@ static ADDRESS_MAP_START( mmpanic_readport, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_FL
AM_RANGE(0x9c, 0x9c) AM_READ(input_port_4_r ) // DSW 1&2 high bits
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mmpanic_writeport, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+static ADDRESS_MAP_START( mmpanic_writeport, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x0f) AM_WRITE(msm6242_w ) // 6242RTC
// Layers 0-3:
AM_RANGE(0x20, 0x23) AM_WRITE(ddenlovr_palette_base_w )
@@ -2088,13 +2088,13 @@ static ADDRESS_MAP_START( mmpanic_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x6000, 0x66ff) AM_WRITE(MWA8_RAM ) // RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mmpanic_sound_readport, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+static ADDRESS_MAP_START( mmpanic_sound_readport, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(soundlatch_r )
AM_RANGE(0x02, 0x02) AM_READ(MRA8_NOP ) // read just before port 00
AM_RANGE(0x04, 0x04) AM_READ(MRA8_NOP ) // read only once at the start
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mmpanic_sound_writeport, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+static ADDRESS_MAP_START( mmpanic_sound_writeport, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x04, 0x04) AM_WRITE(MWA8_NOP ) // 0, during IRQ
AM_RANGE(0x06, 0x06) AM_WRITE(MWA8_NOP ) // almost always 1, sometimes 0
AM_RANGE(0x08, 0x08) AM_WRITE(YM2413_register_port_0_w )
@@ -2200,7 +2200,7 @@ static WRITE8_HANDLER( funkyfig_lockout_w )
}
}
-static ADDRESS_MAP_START( funkyfig_readport, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+static ADDRESS_MAP_START( funkyfig_readport, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ( OKIM6295_status_0_r ) // Sound
AM_RANGE(0x04, 0x04) AM_READ( funkyfig_busy_r )
AM_RANGE(0x1c, 0x1c) AM_READ( funkyfig_dsw_r )
@@ -2212,7 +2212,7 @@ static ADDRESS_MAP_START( funkyfig_readport, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_F
// Other cabinets?
ADDRESS_MAP_END
-static ADDRESS_MAP_START( funkyfig_writeport, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+static ADDRESS_MAP_START( funkyfig_writeport, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE( OKIM6295_data_0_w ) // Sound
AM_RANGE(0x01, 0x01) AM_WRITE( mmpanic_leds_w ) // Leds
AM_RANGE(0x02, 0x02) AM_WRITE( mmpanic_soundlatch_w ) //
@@ -2237,7 +2237,7 @@ ADDRESS_MAP_END
/* Sound CPU */
-static ADDRESS_MAP_START( funkyfig_sound_readport, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+static ADDRESS_MAP_START( funkyfig_sound_readport, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x02, 0x02) AM_READ(soundlatch_r )
AM_RANGE(0x04, 0x04) AM_READ(MRA8_NOP ) // read only once at the start
ADDRESS_MAP_END
@@ -2387,7 +2387,7 @@ static READ8_HANDLER( hanakanz_rand_r )
return mame_rand(Machine);
}
-static ADDRESS_MAP_START( hanakanz_readport, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+static ADDRESS_MAP_START( hanakanz_readport, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x2c, 0x2c) AM_READ( hanakanz_busy_r )
AM_RANGE(0x32, 0x32) AM_READ( hanakanz_dsw_r )
AM_RANGE(0x83, 0x84) AM_READ( hanakanz_gfxrom_r )
@@ -2398,7 +2398,7 @@ static ADDRESS_MAP_START( hanakanz_readport, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_F
AM_RANGE(0xe0, 0xef) AM_READ( msm6242_r ) // 6242RTC
ADDRESS_MAP_END
-static ADDRESS_MAP_START( hanakanz_writeport, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+static ADDRESS_MAP_START( hanakanz_writeport, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x2c, 0x2c) AM_WRITE( hanakanz_oki_bank_w )
AM_RANGE(0x2e, 0x2e) AM_WRITE( hanakanz_blitter_reg_w )
AM_RANGE(0x30, 0x30) AM_WRITE( hanakanz_rombank_w )
@@ -2414,7 +2414,7 @@ static ADDRESS_MAP_START( hanakanz_writeport, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_
ADDRESS_MAP_END
-static ADDRESS_MAP_START( hkagerou_readport, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+static ADDRESS_MAP_START( hkagerou_readport, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x2c, 0x2c) AM_READ( hanakanz_busy_r )
AM_RANGE(0x32, 0x32) AM_READ( hanakanz_dsw_r )
AM_RANGE(0x83, 0x84) AM_READ( hanakanz_gfxrom_r )
@@ -2425,7 +2425,7 @@ static ADDRESS_MAP_START( hkagerou_readport, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_F
AM_RANGE(0xe0, 0xef) AM_READ( msm6242_r ) // 6242RTC
ADDRESS_MAP_END
-static ADDRESS_MAP_START( hkagerou_writeport, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+static ADDRESS_MAP_START( hkagerou_writeport, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x2c, 0x2c) AM_WRITE( hanakanz_oki_bank_w )
AM_RANGE(0x2e, 0x2e) AM_WRITE( hanakanz_blitter_reg_w )
AM_RANGE(0x30, 0x30) AM_WRITE( hanakanz_rombank_w )
@@ -2453,7 +2453,7 @@ static READ8_HANDLER( mjreach1_protection_r )
return mjreach1_protection_val;
}
-static ADDRESS_MAP_START( mjreach1_readport, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+static ADDRESS_MAP_START( mjreach1_readport, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x2c, 0x2c) AM_READ( hanakanz_busy_r )
AM_RANGE(0x32, 0x32) AM_READ( hanakanz_dsw_r )
AM_RANGE(0x83, 0x84) AM_READ( hanakanz_gfxrom_r )
@@ -2465,7 +2465,7 @@ static ADDRESS_MAP_START( mjreach1_readport, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_F
AM_RANGE(0xe0, 0xef) AM_READ( msm6242_r ) // 6242RTC
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mjreach1_writeport, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+static ADDRESS_MAP_START( mjreach1_writeport, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x2c, 0x2c) AM_WRITE( hanakanz_oki_bank_w )
AM_RANGE(0x2e, 0x2e) AM_WRITE( hanakanz_blitter_reg_w )
AM_RANGE(0x30, 0x30) AM_WRITE( hanakanz_rombank_w )
@@ -2713,7 +2713,7 @@ static WRITE8_HANDLER( mjmyster_blitter_w )
blitter_w(0,offset,data,0xfc);
}
-static ADDRESS_MAP_START( mjmyster_readport, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+static ADDRESS_MAP_START( mjmyster_readport, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x03, 0x03) AM_READ( rongrong_gfxrom_r )
AM_RANGE(0x22, 0x22) AM_READ( mjmyster_coins_r )
AM_RANGE(0x23, 0x23) AM_READ( mjmyster_keyb_r )
@@ -2725,7 +2725,7 @@ static ADDRESS_MAP_START( mjmyster_readport, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_F
AM_RANGE(0xc3, 0xc3) AM_READ( mjmyster_dsw_r )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mjmyster_writeport, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+static ADDRESS_MAP_START( mjmyster_writeport, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_WRITE( mjmyster_blitter_w )
AM_RANGE(0x1c, 0x1c) AM_WRITE( mjmyster_rambank_w )
AM_RANGE(0x1e, 0x1e) AM_WRITE( mmpanic_rombank_w )
@@ -2891,7 +2891,7 @@ static WRITE8_HANDLER( hginga_blitter_w )
blitter_w(0,offset,data,0xfc);
}
-static ADDRESS_MAP_START( hginga_readport, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+static ADDRESS_MAP_START( hginga_readport, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x03, 0x03) AM_READ( rongrong_gfxrom_r )
AM_RANGE(0x1c, 0x1c) AM_READ( MRA8_NOP )
AM_RANGE(0x24, 0x24) AM_READ( AY8910_read_port_0_r )
@@ -2901,7 +2901,7 @@ static ADDRESS_MAP_START( hginga_readport, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_FLA
AM_RANGE(0xb8, 0xb8) AM_READ( unk_r ) // ? must be 78 on startup
ADDRESS_MAP_END
-static ADDRESS_MAP_START( hginga_writeport, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+static ADDRESS_MAP_START( hginga_writeport, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_WRITE( hginga_blitter_w )
AM_RANGE(0x1c, 0x1c) AM_WRITE( mjmyster_rambank_w )
AM_RANGE(0x1e, 0x1e) AM_WRITE( hginga_rombank_w )
@@ -3004,7 +3004,7 @@ static ADDRESS_MAP_START( hgokou_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( hgokou_readport, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+static ADDRESS_MAP_START( hgokou_readport, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x03, 0x03) AM_READ(rongrong_gfxrom_r )
AM_RANGE(0x1c, 0x1c) AM_READ(MRA8_NOP ) // ? ack on RTC int
AM_RANGE(0x20, 0x2f) AM_READ(msm6242_r ) // 6242RTC
@@ -3014,7 +3014,7 @@ static ADDRESS_MAP_START( hgokou_readport, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_FLA
AM_RANGE(0x84, 0x84) AM_READ(AY8910_read_port_0_r )
AM_RANGE(0xb0, 0xb0) AM_READ(hanakanz_rand_r )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( hgokou_writeport, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+static ADDRESS_MAP_START( hgokou_writeport, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_WRITE(hginga_blitter_w )
AM_RANGE(0x1c, 0x1c) AM_WRITE(mjmyster_rambank_w )
AM_RANGE(0x1e, 0x1e) AM_WRITE(hginga_rombank_w )
@@ -3101,7 +3101,7 @@ static ADDRESS_MAP_START( hparadis_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
// the RTC seems unused
-static ADDRESS_MAP_START( hparadis_readport, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+static ADDRESS_MAP_START( hparadis_readport, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x03, 0x03) AM_READ(rongrong_gfxrom_r )
AM_RANGE(0x1b, 0x1b) AM_READ(rongrong_blitter_busy_r )
AM_RANGE(0x1c, 0x1c) AM_READ(hparadis_dsw_r )
@@ -3109,7 +3109,7 @@ static ADDRESS_MAP_START( hparadis_readport, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_F
AM_RANGE(0x98, 0x98) AM_READ(unk_r ) // ? must be 78 on startup
AM_RANGE(0xa2, 0xa3) AM_READ(hparadis_input_r )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( hparadis_writeport, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+static ADDRESS_MAP_START( hparadis_writeport, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_WRITE(rongrong_blitter_w )
AM_RANGE(0x1b, 0x1b) AM_WRITE(rongrong_blitter_busy_w )
AM_RANGE(0x1e, 0x1e) AM_WRITE(hparadis_select_w )
@@ -3148,7 +3148,7 @@ static READ8_HANDLER( mjmywrld_coins_r )
return 0xff;
}
-static ADDRESS_MAP_START( mjmywrld_readport, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+static ADDRESS_MAP_START( mjmywrld_readport, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x03, 0x03) AM_READ( rongrong_gfxrom_r )
AM_RANGE(0x22, 0x22) AM_READ( mjmywrld_coins_r )
AM_RANGE(0x23, 0x23) AM_READ( mjmyster_keyb_r )
@@ -3160,7 +3160,7 @@ static ADDRESS_MAP_START( mjmywrld_readport, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_F
AM_RANGE(0xe0, 0xe0) AM_READ( mjmyster_dsw_r )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mjmywrld_writeport, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+static ADDRESS_MAP_START( mjmywrld_writeport, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_WRITE( mjmyster_blitter_w )
AM_RANGE(0x1c, 0x1c) AM_WRITE( mjmyster_rambank_w )
AM_RANGE(0x1e, 0x1e) AM_WRITE( hginga_rombank_w )
diff --git a/src/mame/drivers/ddragon.c b/src/mame/drivers/ddragon.c
index b61b06a9e0a..abc44769a43 100644
--- a/src/mame/drivers/ddragon.c
+++ b/src/mame/drivers/ddragon.c
@@ -613,7 +613,7 @@ ADDRESS_MAP_END
*************************************/
static ADDRESS_MAP_START( mcu_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(11) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7ff)
AM_RANGE(0x0000, 0x0007) AM_READWRITE(MRA8_RAM, darktowr_mcu_w) AM_BASE(&darktowr_mcu_ports)
AM_RANGE(0x0008, 0x007f) AM_RAM
AM_RANGE(0x0080, 0x07ff) AM_ROM
diff --git a/src/mame/drivers/deco_mlc.c b/src/mame/drivers/deco_mlc.c
index a34990043c3..c669d9e6571 100644
--- a/src/mame/drivers/deco_mlc.c
+++ b/src/mame/drivers/deco_mlc.c
@@ -296,7 +296,7 @@ static READ32_HANDLER(stadhr96_prot_146_r)
/******************************************************************************/
static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 32 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(24) )
+ ADDRESS_MAP_GLOBAL_MASK(0xffffff)
AM_RANGE(0x0000000, 0x00fffff) AM_READ(MRA32_ROM)
AM_RANGE(0x0100000, 0x011ffff) AM_READ(MRA32_RAM)
AM_RANGE(0x0200000, 0x020000f) AM_READ(MRA32_NOP) /* IRQ control? */
@@ -315,7 +315,7 @@ static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 32 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 32 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(24) )
+ ADDRESS_MAP_GLOBAL_MASK(0xffffff)
AM_RANGE(0x0000000, 0x00fffff) AM_WRITE(MWA32_ROM)
AM_RANGE(0x0100000, 0x011ffff) AM_WRITE(MWA32_RAM) AM_BASE(&mlc_ram)
AM_RANGE(0x0200000, 0x020007f) AM_WRITE(mlc_irq_w) AM_BASE(&irq_ram)
diff --git a/src/mame/drivers/deniam.c b/src/mame/drivers/deniam.c
index fc01e15b1b4..a45c6ec4ec9 100644
--- a/src/mame/drivers/deniam.c
+++ b/src/mame/drivers/deniam.c
@@ -128,13 +128,13 @@ static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x01, 0x01) AM_READ(soundlatch_r)
AM_RANGE(0x05, 0x05) AM_READ(OKIM6295_status_0_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x02, 0x02) AM_WRITE(YM3812_control_port_0_w)
AM_RANGE(0x03, 0x03) AM_WRITE(YM3812_write_port_0_w)
AM_RANGE(0x05, 0x05) AM_WRITE(OKIM6295_data_0_w)
diff --git a/src/mame/drivers/destroyr.c b/src/mame/drivers/destroyr.c
index b62633b8a53..1079726d6af 100644
--- a/src/mame/drivers/destroyr.c
+++ b/src/mame/drivers/destroyr.c
@@ -165,7 +165,7 @@ static READ8_HANDLER( destroyr_scanline_r )
static ADDRESS_MAP_START( destroyr_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(15) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x00ff) AM_MIRROR(0xf00) AM_RAM
AM_RANGE(0x1000, 0x1fff) AM_READWRITE(destroyr_input_r, destroyr_output_w)
AM_RANGE(0x2000, 0x2fff) AM_READ(input_port_2_r)
diff --git a/src/mame/drivers/discoboy.c b/src/mame/drivers/discoboy.c
index 3fc7fff9c2b..ffccb629371 100644
--- a/src/mame/drivers/discoboy.c
+++ b/src/mame/drivers/discoboy.c
@@ -308,7 +308,7 @@ static READ8_HANDLER( discoboy_port_06_r )
}
static ADDRESS_MAP_START( readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(input_port_0_r) // DSWA
AM_RANGE(0x01, 0x01) AM_READ(input_port_1_r) // Coins
AM_RANGE(0x02, 0x02) AM_READ(input_port_2_r) // P1
@@ -319,7 +319,7 @@ static ADDRESS_MAP_START( readport, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(discoboy_port_00_w)
AM_RANGE(0x01, 0x01) AM_WRITE(discoboy_port_01_w)
AM_RANGE(0x03, 0x03) AM_WRITE(discoboy_port_03_w)
@@ -358,11 +358,11 @@ static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/djboy.c b/src/mame/drivers/djboy.c
index 575c1bf9f18..69db4b96391 100644
--- a/src/mame/drivers/djboy.c
+++ b/src/mame/drivers/djboy.c
@@ -747,7 +747,7 @@ static ADDRESS_MAP_START( cpu0_am, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( cpu0_port_am, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(cpu0_bankswitch_w)
ADDRESS_MAP_END
@@ -763,7 +763,7 @@ static ADDRESS_MAP_START( cpu1_am, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( cpu1_port_am, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(cpu1_bankswitch_w)
AM_RANGE(0x02, 0x02) AM_WRITE(trigger_nmi_on_sound_cpu2)
AM_RANGE(0x04, 0x04) AM_READ(beast_data_r) AM_WRITE(beast_data_w)
@@ -783,7 +783,7 @@ static ADDRESS_MAP_START( cpu2_am, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( cpu2_port_am, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(cpu2_bankswitch_w)
AM_RANGE(0x02, 0x02) AM_READ(YM2203_status_port_0_r) AM_WRITE(YM2203_control_port_0_w)
AM_RANGE(0x03, 0x03) AM_READ(YM2203_read_port_0_r) AM_WRITE(YM2203_write_port_0_w)
diff --git a/src/mame/drivers/dkong.c b/src/mame/drivers/dkong.c
index cc5b19519e7..cc93013ed34 100644
--- a/src/mame/drivers/dkong.c
+++ b/src/mame/drivers/dkong.c
@@ -827,7 +827,7 @@ static ADDRESS_MAP_START( dkong3_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( dkong3_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READWRITE(z80dma_0_r, z80dma_0_w) /* dma controller */
//AM_RANGE(0x00, 0x00) AM_WRITE(MWA8_NOP) /* dma controller */
ADDRESS_MAP_END
@@ -835,7 +835,7 @@ ADDRESS_MAP_END
/* Epos conversions */
static ADDRESS_MAP_START( epos_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0xff) AM_READ(epos_decrypt_rom) /* Switch protection logic */
ADDRESS_MAP_END
diff --git a/src/mame/drivers/dlair.c b/src/mame/drivers/dlair.c
index ca44a86fc38..8f174b8d558 100644
--- a/src/mame/drivers/dlair.c
+++ b/src/mame/drivers/dlair.c
@@ -527,7 +527,7 @@ ADDRESS_MAP_END
/* complete memory map derived from schematics */
static ADDRESS_MAP_START( dleuro_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x03) AM_MIRROR(0x7c) AM_READWRITE(z80ctc_0_r, z80ctc_0_w)
AM_RANGE(0x80, 0x83) AM_MIRROR(0x7c) AM_READWRITE(sio_r, sio_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/docastle.c b/src/mame/drivers/docastle.c
index 96832000e1a..e5f9dcba080 100644
--- a/src/mame/drivers/docastle.c
+++ b/src/mame/drivers/docastle.c
@@ -219,7 +219,7 @@ static ADDRESS_MAP_START( docastle_map3, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( docastle_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_NOP // goes to CRT 46505S
AM_RANGE(0x02, 0x02) AM_NOP // goes to CRT 46505S
ADDRESS_MAP_END
diff --git a/src/mame/drivers/dominob.c b/src/mame/drivers/dominob.c
index 3584ff18c5e..92ef053ba77 100644
--- a/src/mame/drivers/dominob.c
+++ b/src/mame/drivers/dominob.c
@@ -155,7 +155,7 @@ static READ8_HANDLER( dominob_unk_port02_r )
}
static ADDRESS_MAP_START( portmap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x02, 0x02) AM_READ(dominob_unk_port02_r)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/dooyong.c b/src/mame/drivers/dooyong.c
index 760455ef8a9..497a69afe87 100644
--- a/src/mame/drivers/dooyong.c
+++ b/src/mame/drivers/dooyong.c
@@ -261,7 +261,7 @@ static ADDRESS_MAP_START( primella_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( rshark_readmem, ADDRESS_SPACE_PROGRAM, 16 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(20) ) /* super-x needs this and is similar */
+ ADDRESS_MAP_GLOBAL_MASK(0xfffff) /* super-x needs this and is similar */
AM_RANGE(0x000000, 0x03ffff) AM_READ(MRA16_ROM)
AM_RANGE(0x040000, 0x04cfff) AM_READ(MRA16_RAM)
AM_RANGE(0x04d000, 0x04dfff) AM_READ(MRA16_RAM)
@@ -272,7 +272,7 @@ static ADDRESS_MAP_START( rshark_readmem, ADDRESS_SPACE_PROGRAM, 16 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( rshark_writemem, ADDRESS_SPACE_PROGRAM, 16 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(20) ) /* super-x needs this and is similar */
+ ADDRESS_MAP_GLOBAL_MASK(0xfffff) /* super-x needs this and is similar */
AM_RANGE(0x000000, 0x03ffff) AM_WRITE(MWA16_ROM)
AM_RANGE(0x040000, 0x04cfff) AM_WRITE(MWA16_RAM)
AM_RANGE(0x04d000, 0x04dfff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
@@ -287,7 +287,7 @@ static ADDRESS_MAP_START( rshark_writemem, ADDRESS_SPACE_PROGRAM, 16 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( superx_readmem, ADDRESS_SPACE_PROGRAM, 16 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(20) )
+ ADDRESS_MAP_GLOBAL_MASK(0xfffff)
AM_RANGE(0x000000, 0x03ffff) AM_READ(MRA16_ROM)
AM_RANGE(0x0d0000, 0x0dcfff) AM_READ(MRA16_RAM)
AM_RANGE(0x0dd000, 0x0ddfff) AM_READ(MRA16_RAM)
@@ -298,7 +298,7 @@ static ADDRESS_MAP_START( superx_readmem, ADDRESS_SPACE_PROGRAM, 16 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( superx_writemem, ADDRESS_SPACE_PROGRAM, 16 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(20) )
+ ADDRESS_MAP_GLOBAL_MASK(0xfffff)
AM_RANGE(0x000000, 0x03ffff) AM_WRITE(MWA16_ROM)
AM_RANGE(0x0d0000, 0x0dcfff) AM_WRITE(MWA16_RAM)
AM_RANGE(0x0dd000, 0x0ddfff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
@@ -313,7 +313,7 @@ static ADDRESS_MAP_START( superx_writemem, ADDRESS_SPACE_PROGRAM, 16 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( popbingo_readmem, ADDRESS_SPACE_PROGRAM, 16 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(20) )
+ ADDRESS_MAP_GLOBAL_MASK(0xfffff)
AM_RANGE(0x000000, 0x03ffff) AM_READ(MRA16_ROM)
AM_RANGE(0x040000, 0x04cfff) AM_READ(MRA16_RAM)
AM_RANGE(0x04d000, 0x04dfff) AM_READ(MRA16_RAM) // sprites
@@ -324,7 +324,7 @@ static ADDRESS_MAP_START( popbingo_readmem, ADDRESS_SPACE_PROGRAM, 16 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( popbingo_writemem, ADDRESS_SPACE_PROGRAM, 16 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(20) )
+ ADDRESS_MAP_GLOBAL_MASK(0xfffff)
AM_RANGE(0x000000, 0x03ffff) AM_WRITE(MWA16_ROM)
AM_RANGE(0x040000, 0x04cfff) AM_WRITE(MWA16_RAM)
AM_RANGE(0x04d000, 0x04dfff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
diff --git a/src/mame/drivers/dorachan.c b/src/mame/drivers/dorachan.c
index ea8ee5ec2e4..b83f3c96e61 100644
--- a/src/mame/drivers/dorachan.c
+++ b/src/mame/drivers/dorachan.c
@@ -151,7 +151,7 @@ ADDRESS_MAP_END
*************************************/
static ADDRESS_MAP_START( dorachan_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x01, 0x01) AM_WRITE(MWA8_NOP)
AM_RANGE(0x02, 0x02) AM_WRITE(MWA8_NOP)
AM_RANGE(0x03, 0x03) AM_WRITE(dorachan_ctrl_w)
diff --git a/src/mame/drivers/dotrikun.c b/src/mame/drivers/dotrikun.c
index 1419a973b91..e4e450745a1 100644
--- a/src/mame/drivers/dotrikun.c
+++ b/src/mame/drivers/dotrikun.c
@@ -39,12 +39,12 @@ static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(input_port_0_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(dotrikun_color_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/dribling.c b/src/mame/drivers/dribling.c
index c9e2513fd43..3663c0624e1 100644
--- a/src/mame/drivers/dribling.c
+++ b/src/mame/drivers/dribling.c
@@ -228,13 +228,13 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0xff) AM_READ(ioread)
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0xff) AM_WRITE(iowrite)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/drmicro.c b/src/mame/drivers/drmicro.c
index 1bdb649ae34..07c160bb714 100644
--- a/src/mame/drivers/drmicro.c
+++ b/src/mame/drivers/drmicro.c
@@ -88,7 +88,7 @@ static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(input_port_0_r)
AM_RANGE(0x01, 0x01) AM_READ(input_port_1_r)
AM_RANGE(0x03, 0x03) AM_READ(input_port_2_r)
@@ -97,7 +97,7 @@ static ADDRESS_MAP_START( readport, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(SN76496_0_w)
AM_RANGE(0x01, 0x01) AM_WRITE(SN76496_1_w)
AM_RANGE(0x02, 0x02) AM_WRITE(SN76496_2_w)
diff --git a/src/mame/drivers/dwarfd.c b/src/mame/drivers/dwarfd.c
index 355038774b9..94ec8a5a15f 100644
--- a/src/mame/drivers/dwarfd.c
+++ b/src/mame/drivers/dwarfd.c
@@ -364,7 +364,7 @@ static ADDRESS_MAP_START( mem_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x01, 0x01) AM_READ(AY8910_read_port_0_r)
AM_RANGE(0x02, 0x02) AM_WRITE(AY8910_write_port_0_w)
AM_RANGE(0x03, 0x03) AM_WRITE(AY8910_control_port_0_w)
diff --git a/src/mame/drivers/dynadice.c b/src/mame/drivers/dynadice.c
index f2d22e34cab..6927edddd07 100644
--- a/src/mame/drivers/dynadice.c
+++ b/src/mame/drivers/dynadice.c
@@ -86,7 +86,7 @@ static ADDRESS_MAP_START( dynadice_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( dynadice_sound_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(soundlatch_r)
AM_RANGE(0x01, 0x01) AM_WRITE(soundlatch_clear_w)
AM_RANGE(0x02, 0x02) AM_WRITE(sound_data_w)
diff --git a/src/mame/drivers/dynax.c b/src/mame/drivers/dynax.c
index 0278f6a9d9d..82a4c5d9c24 100644
--- a/src/mame/drivers/dynax.c
+++ b/src/mame/drivers/dynax.c
@@ -508,7 +508,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( hanamai_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE( 0x00, 0x00 ) AM_WRITE ( dynax_extra_scrollx_w ) // screen scroll X
AM_RANGE( 0x20, 0x20 ) AM_WRITE ( dynax_extra_scrolly_w ) // screen scroll Y
AM_RANGE( 0x41, 0x47 ) AM_WRITE ( dynax_blitter_rev2_w ) // Blitter
@@ -546,7 +546,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( hnoridur_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE( 0x01, 0x07 ) AM_WRITE ( dynax_blitter_rev2_w ) // Blitter
// AM_RANGE( 0x10, 0x10 ) AM_WRITE ( MWA8_NOP ) // CRT Controller
// AM_RANGE( 0x11, 0x11 ) AM_WRITE ( MWA8_NOP ) // CRT Controller
@@ -673,7 +673,7 @@ static WRITE8_HANDLER( yarunara_blit_romregion_w )
}
static ADDRESS_MAP_START( yarunara_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE( 0x00, 0x01 ) AM_WRITE ( yarunara_input_w ) // Controls
AM_RANGE( 0x02, 0x03 ) AM_READ ( yarunara_input_r ) //
AM_RANGE( 0x11, 0x17 ) AM_WRITE ( dynax_blitter_rev2_w ) // Blitter
@@ -707,7 +707,7 @@ ADDRESS_MAP_END
// Almost identical to hnoridur
static ADDRESS_MAP_START( mcnpshnt_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE( 0x01, 0x07 ) AM_WRITE ( dynax_blitter_rev2_w ) // Blitter
// AM_RANGE( 0x10, 0x10 ) AM_WRITE ( MWA8_NOP ) // CRT Controller
// AM_RANGE( 0x11, 0x11 ) AM_WRITE ( MWA8_NOP ) // CRT Controller
@@ -746,7 +746,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sprtmtch_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE( 0x01, 0x07 ) AM_WRITE ( dynax_blitter_rev2_w ) // Blitter
AM_RANGE( 0x10, 0x10 ) AM_READWRITE ( YM2203_status_port_0_r, YM2203_control_port_0_w ) // YM2203
AM_RANGE( 0x11, 0x11 ) AM_READWRITE ( YM2203_read_port_0_r, YM2203_write_port_0_w ) // 2 x DSW
@@ -775,7 +775,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( mjfriday_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE( 0x00, 0x00 ) AM_WRITE ( dynax_blit_pen_w ) // Destination Pen
AM_RANGE( 0x01, 0x01 ) AM_WRITE ( dynax_blit_palette01_w ) // Layers Palettes (Low Bits)
AM_RANGE( 0x02, 0x02 ) AM_WRITE ( dynax_rombank_w ) // BANK ROM Select
@@ -802,7 +802,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( nanajign_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE( 0x00, 0x00 ) AM_WRITE ( adpcm_reset_w ) // MSM5205 reset
AM_RANGE( 0x02, 0x02 ) AM_WRITE ( adpcm_data_w ) // MSM5205 data
AM_RANGE( 0x04, 0x04 ) AM_WRITE ( YM2413_register_port_0_w ) // YM2413
@@ -876,7 +876,7 @@ static WRITE8_HANDLER( jantouki_rombank_w )
}
static ADDRESS_MAP_START( jantouki_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
// AM_RANGE( 0x40, 0x41 ) AM_WRITE ( MWA8_NOP ) // 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
@@ -931,7 +931,7 @@ static READ8_HANDLER( jantouki_soundlatch_status_r )
}
static ADDRESS_MAP_START( jantouki_sound_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE( 0x00, 0x00 ) AM_WRITE ( jantouki_sound_rombank_w ) // BANK ROM Select
AM_RANGE( 0x10, 0x10 ) AM_WRITE ( jantouki_sound_vblank_ack_w ) // VBlank IRQ Ack
AM_RANGE( 0x21, 0x21 ) AM_READ ( AY8910_read_port_0_r ) // AY8910
@@ -970,7 +970,7 @@ static WRITE8_HANDLER( mjelctrn_blitter_ack_w )
}
static ADDRESS_MAP_START( mjelctrn_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE( 0x00, 0x00 ) AM_WRITE ( adpcm_reset_w ) // MSM5205 reset
AM_RANGE( 0x02, 0x02 ) AM_WRITE ( adpcm_data_w ) // MSM5205 data
AM_RANGE( 0x04, 0x04 ) AM_WRITE ( YM2413_register_port_0_w ) // YM2413
@@ -1110,7 +1110,7 @@ static READ8_HANDLER( unk_r )
}
static ADDRESS_MAP_START( htengoku_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE( 0x01, 0x07 ) AM_WRITE ( dynax_blitter_rev2_w ) // Blitter
AM_RANGE( 0x20, 0x20 ) AM_WRITE ( htengoku_select_w ) // Controls
AM_RANGE( 0x21, 0x21 ) AM_WRITE ( htengoku_coin_w ) //
diff --git a/src/mame/drivers/egghunt.c b/src/mame/drivers/egghunt.c
index db2aa6b7af6..023e4d4471c 100644
--- a/src/mame/drivers/egghunt.c
+++ b/src/mame/drivers/egghunt.c
@@ -204,7 +204,7 @@ static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(input_port_0_r)
AM_RANGE(0x01, 0x01) AM_READ(input_port_1_r)
AM_RANGE(0x02, 0x02) AM_READ(input_port_2_r)
@@ -214,7 +214,7 @@ static ADDRESS_MAP_START( readport, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(egghunt_vidram_bank_w)
AM_RANGE(0x01, 0x01) AM_WRITE(egghunt_gfx_banking_w)
AM_RANGE(0x03, 0x03) AM_WRITE(egghunt_soundlatch_w)
diff --git a/src/mame/drivers/enigma2.c b/src/mame/drivers/enigma2.c
index bc8d82bb70a..1e1ce066b73 100644
--- a/src/mame/drivers/enigma2.c
+++ b/src/mame/drivers/enigma2.c
@@ -402,7 +402,7 @@ static const struct AY8910interface ay8910_interface =
static ADDRESS_MAP_START( engima2_main_cpu_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(15) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x1fff) AM_ROM AM_WRITENOP
AM_RANGE(0x2000, 0x3fff) AM_MIRROR(0x4000) AM_RAM AM_BASE(&enigma2_ram)
AM_RANGE(0x4000, 0x4fff) AM_ROM AM_WRITENOP
@@ -427,7 +427,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( engima2a_main_cpu_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(3) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7)
AM_RANGE(0x00, 0x00) AM_NOP
AM_RANGE(0x01, 0x01) AM_READWRITE(input_port_0_r, MWA8_NOP)
AM_RANGE(0x02, 0x02) AM_READWRITE(input_port_1_r, MWA8_NOP)
diff --git a/src/mame/drivers/epos.c b/src/mame/drivers/epos.c
index 45783bd29e1..496cf6f6c97 100644
--- a/src/mame/drivers/epos.c
+++ b/src/mame/drivers/epos.c
@@ -90,7 +90,7 @@ ADDRESS_MAP_END
*************************************/
static ADDRESS_MAP_START( readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(input_port_0_r)
AM_RANGE(0x01, 0x01) AM_READ(input_port_1_r)
AM_RANGE(0x02, 0x02) AM_READ(input_port_2_r)
@@ -99,7 +99,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(watchdog_reset_w)
AM_RANGE(0x01, 0x01) AM_WRITE(epos_port_1_w)
AM_RANGE(0x02, 0x02) AM_WRITE(AY8910_write_port_0_w)
@@ -108,13 +108,13 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( dealer_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x13) AM_READ(ppi8255_0_r)
AM_RANGE(0x38, 0x38) AM_READ(input_port_0_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( dealer_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x13) AM_WRITE(ppi8255_0_w)
AM_RANGE(0x20, 0x24) AM_WRITE(dealer_decrypt_rom)
// AM_RANGE(0x40, 0x40) AM_WRITE(watchdog_reset_w)
diff --git a/src/mame/drivers/esd16.c b/src/mame/drivers/esd16.c
index 3912b80b6fd..ea22bb9ec52 100644
--- a/src/mame/drivers/esd16.c
+++ b/src/mame/drivers/esd16.c
@@ -291,14 +291,14 @@ static READ8_HANDLER( esd16_sound_command_r )
}
static ADDRESS_MAP_START( multchmp_sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x02, 0x02) AM_READ(OKIM6295_status_0_r ) // M6295
AM_RANGE(0x03, 0x03) AM_READ(esd16_sound_command_r ) // From Main CPU
AM_RANGE(0x06, 0x06) AM_READ(MRA8_NOP ) // ? At the start
ADDRESS_MAP_END
static ADDRESS_MAP_START( multchmp_sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(YM3812_control_port_0_w ) // YM3812
AM_RANGE(0x01, 0x01) AM_WRITE(YM3812_write_port_0_w )
AM_RANGE(0x02, 0x02) AM_WRITE(OKIM6295_data_0_w ) // M6295
diff --git a/src/mame/drivers/esh.c b/src/mame/drivers/esh.c
index 50ad356d383..01573039fe3 100644
--- a/src/mame/drivers/esh.c
+++ b/src/mame/drivers/esh.c
@@ -154,7 +154,7 @@ ADDRESS_MAP_END
/* IO MAPS */
static ADDRESS_MAP_START( z80_0_io, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0xf0,0xf0) AM_READ_PORT("IN0")
AM_RANGE(0xf1,0xf1) AM_READ_PORT("IN1")
AM_RANGE(0xf2,0xf2) AM_READ_PORT("IN2")
diff --git a/src/mame/drivers/espial.c b/src/mame/drivers/espial.c
index 05e519af463..8e1aefd4b34 100644
--- a/src/mame/drivers/espial.c
+++ b/src/mame/drivers/espial.c
@@ -145,7 +145,7 @@ static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(AY8910_control_port_0_w)
AM_RANGE(0x01, 0x01) AM_WRITE(AY8910_write_port_0_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/exctsccr.c b/src/mame/drivers/exctsccr.c
index c1f8ab4772b..ee3f2acd1f4 100644
--- a/src/mame/drivers/exctsccr.c
+++ b/src/mame/drivers/exctsccr.c
@@ -177,7 +177,7 @@ static ADDRESS_MAP_START( sub_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x82, 0x82) AM_WRITE(AY8910_write_port_0_w)
AM_RANGE(0x83, 0x83) AM_WRITE(AY8910_control_port_0_w)
AM_RANGE(0x86, 0x86) AM_WRITE(AY8910_write_port_1_w)
diff --git a/src/mame/drivers/f1gp.c b/src/mame/drivers/f1gp.c
index 21b51315b68..c4ab5c29947 100644
--- a/src/mame/drivers/f1gp.c
+++ b/src/mame/drivers/f1gp.c
@@ -193,14 +193,14 @@ static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x14, 0x14) AM_READ(soundlatch_r)
AM_RANGE(0x18, 0x18) AM_READ(YM2610_status_port_0_A_r)
AM_RANGE(0x1a, 0x1a) AM_READ(YM2610_status_port_0_B_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(f1gp_sh_bankswitch_w) // f1gp
AM_RANGE(0x0c, 0x0c) AM_WRITE(f1gp_sh_bankswitch_w) // f1gp2
AM_RANGE(0x14, 0x14) AM_WRITE(pending_command_clear_w)
diff --git a/src/mame/drivers/firetrk.c b/src/mame/drivers/firetrk.c
index 246eae48213..8f675ae5397 100644
--- a/src/mame/drivers/firetrk.c
+++ b/src/mame/drivers/firetrk.c
@@ -314,7 +314,7 @@ static WRITE8_HANDLER( crash_reset_w )
static ADDRESS_MAP_START( firetrk_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(14) )
+ 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(MWA8_RAM) AM_BASE(&firetrk_scroll_y)
@@ -340,7 +340,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( superbug_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(13) )
+ ADDRESS_MAP_GLOBAL_MASK(0x1fff)
AM_RANGE(0x0000, 0x00ff) AM_RAM
AM_RANGE(0x0100, 0x0100) AM_MIRROR(0x001f) AM_WRITE(MWA8_RAM) AM_BASE(&firetrk_scroll_y)
AM_RANGE(0x0120, 0x0120) AM_MIRROR(0x001f) AM_WRITE(MWA8_RAM) AM_BASE(&firetrk_scroll_x)
@@ -364,7 +364,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( montecar_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(14) )
+ 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(MWA8_RAM) AM_BASE(&firetrk_scroll_y)
diff --git a/src/mame/drivers/flstory.c b/src/mame/drivers/flstory.c
index 9a5fbfd68aa..6b1a4603375 100644
--- a/src/mame/drivers/flstory.c
+++ b/src/mame/drivers/flstory.c
@@ -274,7 +274,7 @@ static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( flstory_m68705_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(11) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7ff)
AM_RANGE(0x0000, 0x0000) AM_READWRITE(flstory_68705_portA_r, flstory_68705_portA_w)
AM_RANGE(0x0001, 0x0001) AM_READWRITE(flstory_68705_portB_r, flstory_68705_portB_w)
AM_RANGE(0x0002, 0x0002) AM_READWRITE(flstory_68705_portC_r, flstory_68705_portC_w)
diff --git a/src/mame/drivers/flyball.c b/src/mame/drivers/flyball.c
index 3615f096600..83c3aaf7d76 100644
--- a/src/mame/drivers/flyball.c
+++ b/src/mame/drivers/flyball.c
@@ -151,7 +151,7 @@ static WRITE8_HANDLER( flyball_misc_w )
static ADDRESS_MAP_START( flyball_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(13) )
+ ADDRESS_MAP_GLOBAL_MASK(0x1fff)
AM_RANGE(0x0000, 0x00ff) AM_MIRROR(0x100) AM_RAM
AM_RANGE(0x0800, 0x0800) AM_NOP
AM_RANGE(0x0801, 0x0801) AM_WRITE(flyball_pitcher_pic_w)
diff --git a/src/mame/drivers/fortecar.c b/src/mame/drivers/fortecar.c
index cf82fda22bf..a06ef68b7e8 100644
--- a/src/mame/drivers/fortecar.c
+++ b/src/mame/drivers/fortecar.c
@@ -39,7 +39,7 @@ READ8_HANDLER( fortecar_read62 )
#endif
static ADDRESS_MAP_START( fortecar_ports, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x40, 0x40) AM_WRITE(MWA8_NOP)
AM_RANGE(0x41, 0x41) AM_WRITE(MWA8_NOP)
// AM_RANGE(0x62, 0x62) AM_READ(fortecar_read62) // nvram eeprom?
diff --git a/src/mame/drivers/freekick.c b/src/mame/drivers/freekick.c
index 970207d6c9c..741f9fece03 100644
--- a/src/mame/drivers/freekick.c
+++ b/src/mame/drivers/freekick.c
@@ -274,18 +274,18 @@ static ADDRESS_MAP_START( gigas_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( gigas_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(gigas_spinner_r)
AM_RANGE(0x01, 0x01) AM_READ(MRA8_NOP) //unused dip 3
ADDRESS_MAP_END
static ADDRESS_MAP_START( gigas_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(spinner_select_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( oigas_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(gigas_spinner_r)
AM_RANGE(0x01, 0x01) AM_READ(MRA8_NOP) //unused dip 3
AM_RANGE(0x02, 0x02) AM_READ(oigas_2_r)
@@ -293,18 +293,18 @@ static ADDRESS_MAP_START( oigas_readport, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( oigas_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(spinner_select_w)
AM_RANGE(0x05, 0x05) AM_WRITE(oigas_5_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( freekckb_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0xff, 0xff) AM_READ(freekick_ff_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( freekckb_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0xff, 0xff) AM_WRITE(freekick_ff_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/frogger.c b/src/mame/drivers/frogger.c
index c900154e1b5..39e911c5bf8 100644
--- a/src/mame/drivers/frogger.c
+++ b/src/mame/drivers/frogger.c
@@ -130,12 +130,12 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( frogger_sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x40, 0x40) AM_READ(AY8910_read_port_0_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( frogger_sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x40, 0x40) AM_WRITE(AY8910_write_port_0_w)
AM_RANGE(0x80, 0x80) AM_WRITE(AY8910_control_port_0_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/fromanc2.c b/src/mame/drivers/fromanc2.c
index 07c66d37cd2..9db1695ae29 100644
--- a/src/mame/drivers/fromanc2.c
+++ b/src/mame/drivers/fromanc2.c
@@ -460,13 +460,13 @@ static ADDRESS_MAP_START( fromanc2_writemem_sub, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( fromanc2_readport_sub, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x02, 0x02) AM_READ(fromanc2_maincpu_r_l) // to MAIN CPU
AM_RANGE(0x04, 0x04) AM_READ(fromanc2_maincpu_r_h) // to MAIN CPU
ADDRESS_MAP_END
static ADDRESS_MAP_START( fromanc2_writeport_sub, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(fromanc2_subcpu_rombank_w)
AM_RANGE(0x02, 0x02) AM_WRITE(fromanc2_maincpu_w_l) // from MAIN CPU
AM_RANGE(0x04, 0x04) AM_WRITE(fromanc2_maincpu_w_h) // from MAIN CPU
@@ -489,7 +489,7 @@ static ADDRESS_MAP_START( fromanc2_writemem_sound, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( fromanc2_readport_sound, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(soundlatch_r) // snd cmd (1P)
AM_RANGE(0x04, 0x04) AM_READ(soundlatch2_r) // snd cmd (2P)
AM_RANGE(0x09, 0x09) AM_READ(MRA8_NOP) // ?
@@ -499,7 +499,7 @@ static ADDRESS_MAP_START( fromanc2_readport_sound, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( fromanc2_writeport_sound, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(MWA8_NOP) // ?
AM_RANGE(0x08, 0x08) AM_WRITE(YM2610_control_port_0_A_w)
AM_RANGE(0x09, 0x09) AM_WRITE(YM2610_data_port_0_A_w)
diff --git a/src/mame/drivers/fromance.c b/src/mame/drivers/fromance.c
index 3a732441311..d5a3a07784e 100644
--- a/src/mame/drivers/fromance.c
+++ b/src/mame/drivers/fromance.c
@@ -328,14 +328,14 @@ ADDRESS_MAP_END
*************************************/
static ADDRESS_MAP_START( nekkyoku_readport_sub, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x12, 0x12) AM_READ(MRA8_NOP) // unknown
AM_RANGE(0xe1, 0xe1) AM_READ(fromance_busycheck_sub_r)
AM_RANGE(0xe6, 0xe6) AM_READ(fromance_commanddata_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( nekkyoku_writeport_sub, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x10) AM_WRITE(fromance_crtc_data_w)
AM_RANGE(0x11, 0x11) AM_WRITE(fromance_crtc_register_w)
AM_RANGE(0xe0, 0xe0) AM_WRITE(fromance_rombank_w)
@@ -349,14 +349,14 @@ static ADDRESS_MAP_START( nekkyoku_writeport_sub, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( fromance_readport_sub, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x12, 0x12) AM_READ(MRA8_NOP) // unknown
AM_RANGE(0x21, 0x21) AM_READ(fromance_busycheck_sub_r)
AM_RANGE(0x26, 0x26) AM_READ(fromance_commanddata_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( idolmj_writeport_sub, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x10) AM_WRITE(fromance_crtc_data_w)
AM_RANGE(0x11, 0x11) AM_WRITE(fromance_crtc_register_w)
AM_RANGE(0x20, 0x20) AM_WRITE(fromance_rombank_w)
@@ -370,7 +370,7 @@ static ADDRESS_MAP_START( idolmj_writeport_sub, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( fromance_writeport_sub, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x10) AM_WRITE(fromance_crtc_data_w)
AM_RANGE(0x11, 0x11) AM_WRITE(fromance_crtc_register_w)
AM_RANGE(0x20, 0x20) AM_WRITE(fromance_rombank_w)
diff --git a/src/mame/drivers/funkybee.c b/src/mame/drivers/funkybee.c
index 239dca0d0ad..cb06116edb9 100644
--- a/src/mame/drivers/funkybee.c
+++ b/src/mame/drivers/funkybee.c
@@ -126,12 +126,12 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x02, 0x02) AM_READ(AY8910_read_port_0_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(AY8910_control_port_0_w)
AM_RANGE(0x01, 0x01) AM_WRITE(AY8910_write_port_0_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/funybubl.c b/src/mame/drivers/funybubl.c
index 19cf61d8c7e..72ebf9a7d2c 100644
--- a/src/mame/drivers/funybubl.c
+++ b/src/mame/drivers/funybubl.c
@@ -108,7 +108,7 @@ static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(input_port_0_r)
AM_RANGE(0x01, 0x01) AM_READ(input_port_1_r)
AM_RANGE(0x02, 0x02) AM_READ(input_port_2_r)
@@ -117,7 +117,7 @@ static ADDRESS_MAP_START( readport, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(funybubl_vidram_bank_w) // vidram bank
AM_RANGE(0x01, 0x01) AM_WRITE(funybubl_cpurombank_w) // rom bank?
AM_RANGE(0x03, 0x03) AM_WRITE(funybubl_soundcommand_w)
diff --git a/src/mame/drivers/fuukifg2.c b/src/mame/drivers/fuukifg2.c
index e2627c8ff14..6d9da3b27f0 100644
--- a/src/mame/drivers/fuukifg2.c
+++ b/src/mame/drivers/fuukifg2.c
@@ -155,14 +155,14 @@ static ADDRESS_MAP_START( fuuki16_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( fuuki16_sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x11, 0x11) AM_READ(soundlatch_r ) // From Main CPU
AM_RANGE(0x50, 0x50) AM_READ(YM3812_status_port_0_r ) // YM3812
AM_RANGE(0x60, 0x60) AM_READ(OKIM6295_status_0_r ) // M6295
ADDRESS_MAP_END
static ADDRESS_MAP_START( fuuki16_sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(fuuki16_sound_rombank_w ) // ROM Bank
AM_RANGE(0x11, 0x11) AM_WRITE(MWA8_NOP ) // ? To Main CPU
AM_RANGE(0x20, 0x20) AM_WRITE(fuuki16_oki_banking_w ) // Oki Banking
diff --git a/src/mame/drivers/fuukifg3.c b/src/mame/drivers/fuukifg3.c
index 5bbb801b453..1fb8de454d8 100644
--- a/src/mame/drivers/fuukifg3.c
+++ b/src/mame/drivers/fuukifg3.c
@@ -360,12 +360,12 @@ static ADDRESS_MAP_START( fuuki32_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( fuuki32_sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x40, 0x40) AM_READ(YMF262_status_0_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( fuuki32_sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(fuuki32_sound_bw_w)
AM_RANGE(0x30, 0x30) AM_WRITE(MWA8_NOP)
AM_RANGE(0x40, 0x40) AM_WRITE(YMF262_register_A_0_w)
diff --git a/src/mame/drivers/gaelco3d.c b/src/mame/drivers/gaelco3d.c
index a8ddab47f13..7da11123f64 100644
--- a/src/mame/drivers/gaelco3d.c
+++ b/src/mame/drivers/gaelco3d.c
@@ -728,7 +728,7 @@ static WRITE32_HANDLER( led_1_020_w ) { if ((mem_mask & 0xffff) != 0xffff) led_1
*************************************/
static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x000000, 0x1fffff) AM_ROM
AM_RANGE(0x400000, 0x40ffff) AM_READWRITE(MRA16_RAM, gaelco3d_paletteram_w) AM_BASE(&paletteram16)
AM_RANGE(0x51000c, 0x51000d) AM_READ(input_port_0_word_r)
diff --git a/src/mame/drivers/gaiden.c b/src/mame/drivers/gaiden.c
index 0170604cb34..8f62cc2e87d 100644
--- a/src/mame/drivers/gaiden.c
+++ b/src/mame/drivers/gaiden.c
@@ -457,7 +457,7 @@ static ADDRESS_MAP_START( drgnbowl_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( drgnbowl_sound_port_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(YM2151_register_port_0_w)
AM_RANGE(0x01, 0x01) AM_READWRITE(YM2151_status_port_0_r, YM2151_data_port_0_w)
AM_RANGE(0x80, 0x80) AM_READWRITE(OKIM6295_status_0_r, OKIM6295_data_0_w)
diff --git a/src/mame/drivers/galaxia.c b/src/mame/drivers/galaxia.c
index 44c0c084db5..a8741674b7e 100644
--- a/src/mame/drivers/galaxia.c
+++ b/src/mame/drivers/galaxia.c
@@ -77,12 +77,12 @@ static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x02, 0x02) AM_READ(input_port_0_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/galaxian.c b/src/mame/drivers/galaxian.c
index d131b090276..f0f3077c8f3 100644
--- a/src/mame/drivers/galaxian.c
+++ b/src/mame/drivers/galaxian.c
@@ -550,12 +550,12 @@ static ADDRESS_MAP_START( mshuttle_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( mshuttle_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x0c, 0x0c) AM_READ(AY8910_read_port_0_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( mshuttle_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x08, 0x08) AM_WRITE(AY8910_control_port_0_w)
AM_RANGE(0x09, 0x09) AM_WRITE(AY8910_write_port_0_w)
ADDRESS_MAP_END
@@ -727,7 +727,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( checkman_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0, 0) AM_WRITE(checkman_sound_command_w)
ADDRESS_MAP_END
@@ -744,13 +744,13 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( checkman_sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x03, 0x03) AM_READ(soundlatch_r)
AM_RANGE(0x06, 0x06) AM_READ(AY8910_read_port_0_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( checkman_sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x04, 0x04) AM_WRITE(AY8910_control_port_0_w)
AM_RANGE(0x05, 0x05) AM_WRITE(AY8910_write_port_0_w)
ADDRESS_MAP_END
@@ -805,12 +805,12 @@ static ADDRESS_MAP_START( kingball_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( kingball_sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(soundlatch_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( kingball_sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(DAC_0_data_w)
ADDRESS_MAP_END
@@ -1030,7 +1030,7 @@ static ADDRESS_MAP_START( ozon1_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( ozon1_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(AY8910_write_port_0_w)
AM_RANGE(0x01, 0x01) AM_WRITE(AY8910_control_port_0_w)
ADDRESS_MAP_END
@@ -1082,7 +1082,7 @@ static ADDRESS_MAP_START( bongo, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( bongo_io, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(AY8910_control_port_0_w)
AM_RANGE(0x01, 0x01) AM_WRITE(AY8910_write_port_0_w)
AM_RANGE(0x02, 0x02) AM_READ(AY8910_read_port_0_r)
@@ -1140,7 +1140,7 @@ static ADDRESS_MAP_START( harem_cpu2, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( harem_cpu2_io, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x04, 0x04) AM_WRITE(AY8910_control_port_0_w)
AM_RANGE(0x08, 0x08) AM_WRITE(AY8910_write_port_0_w)
AM_RANGE(0x10, 0x10) AM_WRITE(AY8910_control_port_1_w)
diff --git a/src/mame/drivers/galivan.c b/src/mame/drivers/galivan.c
index 142112e30ad..295b09e1839 100644
--- a/src/mame/drivers/galivan.c
+++ b/src/mame/drivers/galivan.c
@@ -126,7 +126,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(input_port_0_r)
AM_RANGE(0x01, 0x01) AM_READ(input_port_1_r)
AM_RANGE(0x02, 0x02) AM_READ(input_port_2_r)
@@ -136,7 +136,7 @@ static ADDRESS_MAP_START( readport, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x40, 0x40) AM_WRITE(galivan_gfxbank_w)
AM_RANGE(0x41, 0x42) AM_WRITE(galivan_scrollx_w)
AM_RANGE(0x43, 0x44) AM_WRITE(galivan_scrolly_w)
@@ -146,7 +146,7 @@ static ADDRESS_MAP_START( writeport, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( ninjemak_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x80, 0x80) AM_READ(input_port_0_r)
AM_RANGE(0x81, 0x81) AM_READ(input_port_1_r)
AM_RANGE(0x82, 0x82) AM_READ(input_port_2_r)
@@ -156,7 +156,7 @@ static ADDRESS_MAP_START( ninjemak_readport, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( ninjemak_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x80, 0x80) AM_WRITE(ninjemak_gfxbank_w)
AM_RANGE(0x85, 0x85) AM_WRITE(galivan_sound_command_w)
// AM_RANGE(0x86, 0x86) AM_WRITE(MWA8_NOP) // ??
@@ -176,13 +176,13 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
/* AM_RANGE(0x04, 0x04) AM_READ(MRA8_NOP) value read and *discarded* */
AM_RANGE(0x06, 0x06) AM_READ(galivan_sound_command_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(YM3526_control_port_0_w)
AM_RANGE(0x01, 0x01) AM_WRITE(YM3526_write_port_0_w)
AM_RANGE(0x02, 0x02) AM_WRITE(DAC_0_data_w)
diff --git a/src/mame/drivers/gauntlet.c b/src/mame/drivers/gauntlet.c
index 376d966ce04..9bb2ab699b0 100644
--- a/src/mame/drivers/gauntlet.c
+++ b/src/mame/drivers/gauntlet.c
@@ -314,7 +314,7 @@ static WRITE8_HANDLER( mixer_w )
/* full map verified from schematics */
static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x000000, 0x07ffff) AM_MIRROR(0x280000) AM_ROM
/* MBUS */
@@ -353,7 +353,7 @@ ADDRESS_MAP_END
/* full map verified from schematics */
static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x0fff) AM_MIRROR(0x2000) AM_RAM
AM_RANGE(0x1000, 0x100f) AM_MIRROR(0x27c0) AM_WRITE(atarigen_6502_sound_w)
AM_RANGE(0x1010, 0x101f) AM_MIRROR(0x27c0) AM_READ(atarigen_6502_sound_r)
diff --git a/src/mame/drivers/gladiatr.c b/src/mame/drivers/gladiatr.c
index 123c4f1858e..d12b66a7491 100644
--- a/src/mame/drivers/gladiatr.c
+++ b/src/mame/drivers/gladiatr.c
@@ -400,7 +400,7 @@ static ADDRESS_MAP_START( ppking_cpu3_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( ppking_cpu1_io, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(gladiatr_spritebuffer_w)
AM_RANGE(0x04, 0x04) AM_NOP // WRITE(ppking_irq_patch_w)
AM_RANGE(0x9e, 0x9f) AM_READ(qx0_r) AM_WRITE(qx0_w)
@@ -408,7 +408,7 @@ static ADDRESS_MAP_START( ppking_cpu1_io, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( ppking_cpu2_io, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(YM2203_status_port_0_r) AM_WRITE(YM2203_control_port_0_w)
AM_RANGE(0x01, 0x01) AM_READ(YM2203_read_port_0_r) AM_WRITE(YM2203_write_port_0_w)
AM_RANGE(0x20, 0x21) AM_READ(qx1_r) AM_WRITE(qx1_w)
@@ -445,7 +445,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( gladiatr_cpu1_io, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(gladiatr_spritebuffer_w)
AM_RANGE(0x01, 0x01) AM_WRITE(gladiatr_spritebank_w)
AM_RANGE(0x02, 0x02) AM_WRITE(gladiatr_bankswitch_w)
@@ -456,7 +456,7 @@ static ADDRESS_MAP_START( gladiatr_cpu1_io, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( gladiatr_cpu2_io, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READWRITE(YM2203_status_port_0_r, YM2203_control_port_0_w)
AM_RANGE(0x01, 0x01) AM_READWRITE(YM2203_read_port_0_r, YM2203_write_port_0_w)
AM_RANGE(0x20, 0x21) AM_READWRITE(TAITO8741_1_r, TAITO8741_1_w)
diff --git a/src/mame/drivers/goldstar.c b/src/mame/drivers/goldstar.c
index e3f7d481be3..994b0809b7d 100644
--- a/src/mame/drivers/goldstar.c
+++ b/src/mame/drivers/goldstar.c
@@ -86,7 +86,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x10) AM_READ(input_port_8_r)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/gottlieb.c b/src/mame/drivers/gottlieb.c
index e70e75c665f..b4e04e41936 100644
--- a/src/mame/drivers/gottlieb.c
+++ b/src/mame/drivers/gottlieb.c
@@ -410,7 +410,7 @@ logerror("current frame : %d\n",current_frame);
static ADDRESS_MAP_START( reactor_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(16) )
+ ADDRESS_MAP_GLOBAL_MASK(0xffff)
AM_RANGE(0x00000, 0x01fff) AM_RAM
AM_RANGE(0x02000, 0x020ff) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
AM_RANGE(0x03000, 0x033ff) AM_MIRROR(0x0400) AM_READWRITE(MRA8_RAM, gottlieb_videoram_w) AM_BASE(&videoram)
@@ -426,7 +426,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( gottlieb_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(16) )
+ ADDRESS_MAP_GLOBAL_MASK(0xffff)
AM_RANGE(0x00000, 0x00fff) AM_RAM AM_BASE(&generic_nvram) AM_SIZE(&generic_nvram_size)
AM_RANGE(0x01000, 0x01fff) AM_RAM AM_REGION(REGION_CPU1, 0x1000) /* or ROM */
AM_RANGE(0x02000, 0x02fff) AM_RAM AM_REGION(REGION_CPU1, 0x2000) /* or ROM */
@@ -446,7 +446,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( gottlieb_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
/* A15 not decoded except in expansion socket */
- ADDRESS_MAP_FLAGS( AMEF_ABITS(15) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x007f) AM_MIRROR(0x0180) AM_RAM
AM_RANGE(0x0200, 0x021f) AM_MIRROR(0x01e0) AM_READWRITE(gottlieb_riot_r, MWA8_RAM) AM_BASE(&gottlieb_riot_regs)
AM_RANGE(0x1000, 0x1000) AM_WRITE(DAC_0_data_w)
diff --git a/src/mame/drivers/gpworld.c b/src/mame/drivers/gpworld.c
index 293eec7ebcf..9de330bdb06 100644
--- a/src/mame/drivers/gpworld.c
+++ b/src/mame/drivers/gpworld.c
@@ -279,7 +279,7 @@ ADDRESS_MAP_END
/* I/O MAP */
static ADDRESS_MAP_START( mainport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x01,0x01) AM_WRITE(misc_io_write)
AM_RANGE(0x80,0x80) AM_READ_PORT("IN0")
AM_RANGE(0x81,0x81) AM_READ_PORT("IN1")
diff --git a/src/mame/drivers/grchamp.c b/src/mame/drivers/grchamp.c
index 4d3d15cd029..e5115660a1e 100644
--- a/src/mame/drivers/grchamp.c
+++ b/src/mame/drivers/grchamp.c
@@ -523,7 +523,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( main_portmap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_MIRROR(0x78) AM_READ_PORT("ACCEL")
AM_RANGE(0x02, 0x02) AM_MIRROR(0x78) AM_READ(sub_to_main_comm_r)
AM_RANGE(0x03, 0x03) AM_MIRROR(0x78) AM_READ_PORT("WHEEL")
@@ -552,7 +552,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sub_portmap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x03) AM_READ(main_to_sub_comm_r)
AM_RANGE(0x00, 0x0f) AM_MIRROR(0x70) AM_WRITE(cpu1_outputs_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/gstriker.c b/src/mame/drivers/gstriker.c
index 919f2a5ce62..f90e9c4d839 100644
--- a/src/mame/drivers/gstriker.c
+++ b/src/mame/drivers/gstriker.c
@@ -335,14 +335,14 @@ static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(YM2610_status_port_0_A_r)
AM_RANGE(0x02, 0x02) AM_READ(YM2610_status_port_0_B_r)
AM_RANGE(0x0c, 0x0c) AM_READ(soundlatch_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(YM2610_control_port_0_A_w)
AM_RANGE(0x01, 0x01) AM_WRITE(YM2610_data_port_0_A_w)
AM_RANGE(0x02, 0x02) AM_WRITE(YM2610_control_port_0_B_w)
diff --git a/src/mame/drivers/gsword.c b/src/mame/drivers/gsword.c
index da8c00d27ff..5cc3746b1b0 100644
--- a/src/mame/drivers/gsword.c
+++ b/src/mame/drivers/gsword.c
@@ -377,12 +377,12 @@ static ADDRESS_MAP_START( cpu1_map, 0 , 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( cpu1_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x7e, 0x7f) AM_WRITE(TAITO8741_0_w) AM_READ(TAITO8741_0_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( josvolly_cpu1_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x7e, 0x7f) AM_WRITE(josvolly_8741_0_w) AM_READ(josvolly_8741_0_r)
ADDRESS_MAP_END
@@ -394,7 +394,7 @@ static ADDRESS_MAP_START( cpu2_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( cpu2_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_WRITE(TAITO8741_2_w) AM_READ(TAITO8741_2_r)
AM_RANGE(0x20, 0x21) AM_WRITE(TAITO8741_3_w) AM_READ(TAITO8741_3_r)
AM_RANGE(0x40, 0x41) AM_WRITE(TAITO8741_1_w) AM_READ(TAITO8741_1_r)
@@ -431,7 +431,7 @@ static ADDRESS_MAP_START( josvolly_cpu2_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( josvolly_cpu2_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(gsword_AY8910_control_port_0_w) AM_READ(gsword_fake_0_r)
AM_RANGE(0x01, 0x01) AM_WRITE(AY8910_write_port_0_w) AM_READ(AY8910_read_port_0_r)
AM_RANGE(0x40, 0x40) AM_WRITE(gsword_AY8910_control_port_1_w) AM_READ(gsword_fake_1_r)
diff --git a/src/mame/drivers/gtipoker.c b/src/mame/drivers/gtipoker.c
index 843f0b08a92..6436c6e1a5f 100644
--- a/src/mame/drivers/gtipoker.c
+++ b/src/mame/drivers/gtipoker.c
@@ -25,7 +25,7 @@ static ADDRESS_MAP_START( gtipoker_memmap, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( gtipoker_iomap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0xbc, 0xbc) AM_READ(gtipoker_unk_r)
AM_RANGE(0xbe, 0xbe) AM_READ(gtipoker_unk_r)
AM_RANGE(0xde, 0xde) AM_READ(gtipoker_unk_r)
diff --git a/src/mame/drivers/gundealr.c b/src/mame/drivers/gundealr.c
index 99405327347..5a6bdc193ce 100644
--- a/src/mame/drivers/gundealr.c
+++ b/src/mame/drivers/gundealr.c
@@ -174,7 +174,7 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( main_portmap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(YM2203_control_port_0_w)
AM_RANGE(0x01, 0x01) AM_READWRITE(YM2203_read_port_0_r, YM2203_write_port_0_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/gyruss.c b/src/mame/drivers/gyruss.c
index 3ce6265b821..1192c55e6cc 100644
--- a/src/mame/drivers/gyruss.c
+++ b/src/mame/drivers/gyruss.c
@@ -113,7 +113,7 @@ static ADDRESS_MAP_START( audio_cpu1_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( audio_cpu1_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(AY8910_control_port_0_w)
AM_RANGE(0x01, 0x01) AM_READ(AY8910_read_port_0_r)
AM_RANGE(0x02, 0x02) AM_WRITE(AY8910_write_port_0_w)
diff --git a/src/mame/drivers/hal21.c b/src/mame/drivers/hal21.c
index f9642529382..6272ce4a5d4 100644
--- a/src/mame/drivers/hal21.c
+++ b/src/mame/drivers/hal21.c
@@ -604,7 +604,7 @@ static ADDRESS_MAP_START( hal21_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( hal21_sound_portmap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x0000, 0x0000) AM_NOP // external sound ROM detection?
ADDRESS_MAP_END
diff --git a/src/mame/drivers/hanaawas.c b/src/mame/drivers/hanaawas.c
index d68d8099460..99fbb45928b 100644
--- a/src/mame/drivers/hanaawas.c
+++ b/src/mame/drivers/hanaawas.c
@@ -94,14 +94,14 @@ static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(hanaawas_input_port_0_r)
AM_RANGE(0x01, 0x01) AM_READNOP /* it must return 0 */
AM_RANGE(0x10, 0x10) AM_READ(AY8910_read_port_0_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(hanaawas_inputs_mux_w)
AM_RANGE(0x10, 0x10) AM_WRITE(AY8910_control_port_0_w)
AM_RANGE(0x11, 0x11) AM_WRITE(AY8910_write_port_0_w)
diff --git a/src/mame/drivers/harddriv.c b/src/mame/drivers/harddriv.c
index 2a91a791d7f..f3ea0c0b469 100644
--- a/src/mame/drivers/harddriv.c
+++ b/src/mame/drivers/harddriv.c
@@ -256,7 +256,7 @@ static const struct dsp32_config dsp32c_config =
*************************************/
static ADDRESS_MAP_START( driver_68k_map, ADDRESS_SPACE_PROGRAM, 16 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x600000, 0x603fff) AM_READ(hd68k_port0_r)
AM_RANGE(0x604000, 0x607fff) AM_WRITE(hd68k_nwr_w)
@@ -275,7 +275,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( driver_gsp_map, ADDRESS_SPACE_PROGRAM, 16 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x00000000, 0x0000200f) AM_NOP /* hit during self-test */
AM_RANGE(0x02000000, 0x0207ffff) AM_READWRITE(hdgsp_vram_2bpp_r, hdgsp_vram_1bpp_w)
AM_RANGE(0xc0000000, 0xc00001ff) AM_READWRITE(tms34010_io_register_r, hdgsp_io_w)
@@ -288,7 +288,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( driver_msp_map, ADDRESS_SPACE_PROGRAM, 16 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x00000000, 0x000fffff) AM_RAM AM_SHARE(1) AM_BASE(&hdmsp_ram)
AM_RANGE(0x00700000, 0x007fffff) AM_RAM AM_SHARE(1)
AM_RANGE(0xc0000000, 0xc00001ff) AM_READWRITE(tms34010_io_register_r, tms34010_io_register_w)
@@ -304,7 +304,7 @@ ADDRESS_MAP_END
*************************************/
static ADDRESS_MAP_START( multisync_68k_map, ADDRESS_SPACE_PROGRAM, 16 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x600000, 0x603fff) AM_READWRITE(atarigen_sound_upper_r, atarigen_sound_upper_w)
AM_RANGE(0x604000, 0x607fff) AM_READWRITE(hd68k_sound_reset_r, hd68k_nwr_w)
@@ -323,7 +323,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( multisync_gsp_map, ADDRESS_SPACE_PROGRAM, 16 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x00000000, 0x0000200f) AM_NOP /* hit during self-test */
AM_RANGE(0x02000000, 0x020fffff) AM_READWRITE(hdgsp_vram_2bpp_r, hdgsp_vram_2bpp_w)
AM_RANGE(0xc0000000, 0xc00001ff) AM_READWRITE(tms34010_io_register_r, hdgsp_io_w)
@@ -343,7 +343,7 @@ ADDRESS_MAP_END
*************************************/
static ADDRESS_MAP_START( multisync2_68k_map, ADDRESS_SPACE_PROGRAM, 16 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x000000, 0x1fffff) AM_ROM
AM_RANGE(0x604000, 0x607fff) AM_WRITE(hd68k_nwr_w)
AM_RANGE(0x608000, 0x60bfff) AM_WRITE(watchdog_reset16_w)
@@ -362,7 +362,7 @@ ADDRESS_MAP_END
/* GSP is identical to original multisync */
static ADDRESS_MAP_START( multisync2_gsp_map, ADDRESS_SPACE_PROGRAM, 16 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x00000000, 0x0000200f) AM_NOP /* hit during self-test */
AM_RANGE(0x02000000, 0x020fffff) AM_READWRITE(hdgsp_vram_2bpp_r, hdgsp_vram_2bpp_w)
AM_RANGE(0xc0000000, 0xc00001ff) AM_READWRITE(tms34010_io_register_r, hdgsp_io_w)
@@ -382,13 +382,13 @@ ADDRESS_MAP_END
*************************************/
static ADDRESS_MAP_START( adsp_program_map, ADDRESS_SPACE_PROGRAM, 32 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x1fff) AM_RAM AM_BASE(&hdadsp_pgm_memory)
ADDRESS_MAP_END
static ADDRESS_MAP_START( adsp_data_map, ADDRESS_SPACE_DATA, 16 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x1fff) AM_RAM AM_BASE(&hdadsp_data_memory)
AM_RANGE(0x2000, 0x2fff) AM_READWRITE(hdadsp_special_r, hdadsp_special_w)
ADDRESS_MAP_END
@@ -402,13 +402,13 @@ ADDRESS_MAP_END
*************************************/
static ADDRESS_MAP_START( ds3_program_map, ADDRESS_SPACE_PROGRAM, 32 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x3fff) AM_RAM AM_BASE(&hdadsp_pgm_memory)
ADDRESS_MAP_END
static ADDRESS_MAP_START( ds3_data_map, ADDRESS_SPACE_DATA, 16 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x1fff) AM_RAM AM_BASE(&hdadsp_data_memory)
AM_RANGE(0x3800, 0x3bff) AM_RAM /* internal RAM */
AM_RANGE(0x3fe0, 0x3fff) AM_READWRITE(hdds3_control_r, hdds3_control_w) /* adsp control regs */
@@ -417,13 +417,13 @@ ADDRESS_MAP_END
#if 0
static ADDRESS_MAP_START( ds3snd_program_map, ADDRESS_SPACE_PROGRAM, 32 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x3fff) AM_RAM
ADDRESS_MAP_END
static ADDRESS_MAP_START( ds3snd_data_map, ADDRESS_SPACE_DATA, 16 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x1fff) AM_RAM
AM_RANGE(0x3800, 0x3bff) AM_RAM /* internal RAM */
AM_RANGE(0x3fe0, 0x3fff) AM_READWRITE(hdds3_control_r, hdds3_control_w) /* adsp control regs */
@@ -460,7 +460,7 @@ ADDRESS_MAP_END
*************************************/
static ADDRESS_MAP_START( dsk_dsp32_map, ADDRESS_SPACE_PROGRAM, 32 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x000000, 0x001fff) AM_RAM
AM_RANGE(0x600000, 0x63ffff) AM_RAM
AM_RANGE(0xfff800, 0xffffff) AM_RAM
@@ -475,7 +475,7 @@ ADDRESS_MAP_END
*************************************/
static ADDRESS_MAP_START( dsk2_dsp32_map, ADDRESS_SPACE_PROGRAM, 32 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x000000, 0x001fff) AM_RAM
AM_RANGE(0x200000, 0x23ffff) AM_RAM
AM_RANGE(0x400000, 0x5fffff) AM_ROM AM_REGION(REGION_USER4, 0)
@@ -491,7 +491,7 @@ ADDRESS_MAP_END
*************************************/
static ADDRESS_MAP_START( driversnd_68k_map, ADDRESS_SPACE_PROGRAM, 16 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x000000, 0x01ffff) AM_ROM
AM_RANGE(0xff0000, 0xff0fff) AM_READWRITE(hdsnd68k_data_r, hdsnd68k_data_w)
AM_RANGE(0xff1000, 0xff1fff) AM_READWRITE(hdsnd68k_switches_r, hdsnd68k_latches_w)
@@ -505,7 +505,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( driversnd_dsp_program_map, ADDRESS_SPACE_PROGRAM, 16 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x000, 0xfff) AM_RAM AM_BASE(&hdsnddsp_ram)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/hitme.c b/src/mame/drivers/hitme.c
index f56fd102db8..614c7050471 100644
--- a/src/mame/drivers/hitme.c
+++ b/src/mame/drivers/hitme.c
@@ -215,7 +215,7 @@ static WRITE8_HANDLER( output_port_1_w )
*/
static ADDRESS_MAP_START( hitme_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS(AMEF_ABITS(13))
+ ADDRESS_MAP_GLOBAL_MASK(0x1fff)
AM_RANGE(0x0000, 0x07ff) AM_ROM
AM_RANGE(0x0c00, 0x0eff) AM_READWRITE(MRA8_RAM, hitme_vidram_w) AM_BASE(&hitme_vidram)
AM_RANGE(0x1000, 0x10ff) AM_MIRROR(0x300) AM_RAM
diff --git a/src/mame/drivers/hnayayoi.c b/src/mame/drivers/hnayayoi.c
index 019a2a9e0ab..25d612d21c1 100644
--- a/src/mame/drivers/hnayayoi.c
+++ b/src/mame/drivers/hnayayoi.c
@@ -115,7 +115,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( hnayayoi_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x02, 0x02) AM_READ(YM2203_status_port_0_r)
AM_RANGE(0x03, 0x03) AM_READ(YM2203_read_port_0_r)
AM_RANGE(0x04, 0x04) AM_READ(input_port_2_r)
@@ -125,7 +125,7 @@ static ADDRESS_MAP_START( hnayayoi_readport, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( hnayayoi_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(YM2203_control_port_0_w)
AM_RANGE(0x01, 0x01) AM_WRITE(YM2203_write_port_0_w)
AM_RANGE(0x06, 0x06) AM_WRITE(adpcm_data_w)
@@ -173,11 +173,11 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( hnfubuki_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
ADDRESS_MAP_END
static ADDRESS_MAP_START( hnfubuki_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
ADDRESS_MAP_END
@@ -195,7 +195,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( untoucha_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x11, 0x11) AM_READ(YM2203_status_port_0_r)
AM_RANGE(0x51, 0x51) AM_READ(YM2203_read_port_0_r)
AM_RANGE(0x16, 0x16) AM_READ(keyboard_0_r) // bit 7 = blitter busy flag
@@ -204,7 +204,7 @@ static ADDRESS_MAP_START( untoucha_readport, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( untoucha_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x10) AM_WRITE(YM2203_control_port_0_w)
AM_RANGE(0x50, 0x50) AM_WRITE(YM2203_write_port_0_w)
AM_RANGE(0x13, 0x13) AM_WRITE(adpcm_data_w)
diff --git a/src/mame/drivers/hng64.c b/src/mame/drivers/hng64.c
index 011f860f5e2..e7b4337ef45 100644
--- a/src/mame/drivers/hng64.c
+++ b/src/mame/drivers/hng64.c
@@ -1218,7 +1218,7 @@ static ADDRESS_MAP_START( hng_comm_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( hng_comm_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
/* Reserved for the KL5C80 internal hardware */
AM_RANGE(0x00,0x07) AM_WRITE( hng64_comm_io_mmu ) AM_BASE(&hng64_com_mmu_mem)
// AM_RANGE(0x08,0x1f) AM_NOP /* Reserved */
diff --git a/src/mame/drivers/holeland.c b/src/mame/drivers/holeland.c
index c95cd4729a2..a71f4bb2a61 100644
--- a/src/mame/drivers/holeland.c
+++ b/src/mame/drivers/holeland.c
@@ -61,14 +61,14 @@ static ADDRESS_MAP_START( crzrally_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x01, 0x01) AM_READ(watchdog_reset_r) /* ? */
AM_RANGE(0x04, 0x04) AM_READ(AY8910_read_port_0_r)
AM_RANGE(0x06, 0x06) AM_READ(AY8910_read_port_1_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x04, 0x04) AM_WRITE(AY8910_control_port_0_w)
AM_RANGE(0x05, 0x05) AM_WRITE(AY8910_write_port_0_w)
AM_RANGE(0x06, 0x06) AM_WRITE(AY8910_control_port_1_w)
diff --git a/src/mame/drivers/homerun.c b/src/mame/drivers/homerun.c
index 1db44b13158..e16cb6ce779 100644
--- a/src/mame/drivers/homerun.c
+++ b/src/mame/drivers/homerun.c
@@ -98,7 +98,7 @@ static READ8_HANDLER(homerun_40_r)
}
static ADDRESS_MAP_START( homerun_iomap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x10) AM_WRITE(MWA8_NOP) /* ?? */
AM_RANGE(0x20, 0x20) AM_WRITE(MWA8_NOP) /* ?? */
AM_RANGE(0x30, 0x33) AM_READWRITE(ppi8255_0_r, ppi8255_0_w)
diff --git a/src/mame/drivers/hyhoo.c b/src/mame/drivers/hyhoo.c
index b34b0d3d643..b3e2015d081 100644
--- a/src/mame/drivers/hyhoo.c
+++ b/src/mame/drivers/hyhoo.c
@@ -66,7 +66,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( readport_hyhoo, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x7f) AM_READ(nb1413m3_sndrom_r)
AM_RANGE(0x81, 0x81) AM_READ(AY8910_read_port_0_r)
AM_RANGE(0x90, 0x90) AM_READ(nb1413m3_inputport0_r)
@@ -79,7 +79,7 @@ static ADDRESS_MAP_START( readport_hyhoo, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport_hyhoo, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
// AM_RANGE(0x00, 0x00) AM_WRITE(nb1413m3_nmi_clock_w)
AM_RANGE(0x82, 0x82) AM_WRITE(AY8910_write_port_0_w)
AM_RANGE(0x83, 0x83) AM_WRITE(AY8910_control_port_0_w)
diff --git a/src/mame/drivers/imolagp.c b/src/mame/drivers/imolagp.c
index 41d42d09683..c07a3b2b550 100644
--- a/src/mame/drivers/imolagp.c
+++ b/src/mame/drivers/imolagp.c
@@ -316,7 +316,7 @@ static WRITE8_HANDLER( vreg_data_w )
}
static ADDRESS_MAP_START( readport_master, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(trigger_slave_nmi_r)
ADDRESS_MAP_END
@@ -338,7 +338,7 @@ static ADDRESS_MAP_START( imolagp_master, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( readport_slave, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x05,0x05) AM_READ(imola_slave_port05r)
AM_RANGE(0x06,0x06) AM_READ(imola_slave_port06r)
AM_RANGE(0x81,0x81) AM_READ(imola_slave_port81r)
diff --git a/src/mame/drivers/intrscti.c b/src/mame/drivers/intrscti.c
index decdf996a59..c1c3d7bc4a4 100644
--- a/src/mame/drivers/intrscti.c
+++ b/src/mame/drivers/intrscti.c
@@ -36,7 +36,7 @@ static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ( unk_r )
AM_RANGE(0x01, 0x01) AM_READ( unk_r )
ADDRESS_MAP_END
diff --git a/src/mame/drivers/inufuku.c b/src/mame/drivers/inufuku.c
index 4f41fc1e334..ecbddf2ba10 100644
--- a/src/mame/drivers/inufuku.c
+++ b/src/mame/drivers/inufuku.c
@@ -245,7 +245,7 @@ static ADDRESS_MAP_START( inufuku_writemem_sound, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( inufuku_readport_sound, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x04, 0x04) AM_READ(soundlatch_r)
AM_RANGE(0x08, 0x08) AM_READ(YM2610_status_port_0_A_r)
AM_RANGE(0x09, 0x09) AM_READ(YM2610_read_port_0_r)
@@ -253,7 +253,7 @@ static ADDRESS_MAP_START( inufuku_readport_sound, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( inufuku_writeport_sound, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(inufuku_soundrombank_w)
AM_RANGE(0x04, 0x04) AM_WRITE(pending_command_clear_w)
AM_RANGE(0x08, 0x08) AM_WRITE(YM2610_control_port_0_A_w)
diff --git a/src/mame/drivers/ironhors.c b/src/mame/drivers/ironhors.c
index 362244bc7c0..d61aa8c0360 100644
--- a/src/mame/drivers/ironhors.c
+++ b/src/mame/drivers/ironhors.c
@@ -92,7 +92,7 @@ static ADDRESS_MAP_START( slave_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( slave_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READWRITE(YM2203_status_port_0_r, YM2203_control_port_0_w)
AM_RANGE(0x01, 0x01) AM_WRITE(YM2203_write_port_0_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/istellar.c b/src/mame/drivers/istellar.c
index dff67bf1fd9..7eac69c4a70 100644
--- a/src/mame/drivers/istellar.c
+++ b/src/mame/drivers/istellar.c
@@ -175,7 +175,7 @@ ADDRESS_MAP_END
/* IO MAPS */
static ADDRESS_MAP_START( z80_0_io, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00,0x00) AM_READ_PORT("IN0")
AM_RANGE(0x02,0x02) AM_READ_PORT("DSW1")
AM_RANGE(0x03,0x03) AM_READ_PORT("DSW2")
@@ -184,14 +184,14 @@ static ADDRESS_MAP_START( z80_0_io, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( z80_1_io, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00,0x00) AM_NOP /*AM_READWRITE(z80_1_slatch_read,z80_1_slatch_write)*/
AM_RANGE(0x01,0x01) AM_NOP /*AM_READWRITE(z80_1_nmienable,z80_1_soundwrite_front)*/
AM_RANGE(0x02,0x02) AM_NOP /*AM_WRITE(z80_1_soundwrite_rear)*/
ADDRESS_MAP_END
static ADDRESS_MAP_START( z80_2_io, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00,0x00) AM_READWRITE(z80_2_ldp_read,z80_2_ldp_write)
AM_RANGE(0x01,0x01) AM_READWRITE(z80_2_latch2_read,z80_2_latch1_write)
AM_RANGE(0x02,0x02) AM_READ(z80_2_nmienable)
diff --git a/src/mame/drivers/itech8.c b/src/mame/drivers/itech8.c
index 19d8bcf5215..dc9bff954a8 100644
--- a/src/mame/drivers/itech8.c
+++ b/src/mame/drivers/itech8.c
@@ -1050,7 +1050,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( slikz80_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READWRITE(slikz80_port_r, slikz80_port_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/jack.c b/src/mame/drivers/jack.c
index 1c3177e40c3..519b4be61c9 100644
--- a/src/mame/drivers/jack.c
+++ b/src/mame/drivers/jack.c
@@ -195,12 +195,12 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x40, 0x40) AM_READ(AY8910_read_port_0_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x80, 0x80) AM_WRITE(AY8910_control_port_0_w)
AM_RANGE(0x40, 0x40) AM_WRITE(AY8910_write_port_0_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/jcross.c b/src/mame/drivers/jcross.c
index f3b27d4b617..7fcee0172cd 100644
--- a/src/mame/drivers/jcross.c
+++ b/src/mame/drivers/jcross.c
@@ -96,7 +96,7 @@ static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_portmap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READNOP
ADDRESS_MAP_END
diff --git a/src/mame/drivers/jongkyo.c b/src/mame/drivers/jongkyo.c
index d8396f5281f..bfebfaa68fd 100644
--- a/src/mame/drivers/jongkyo.c
+++ b/src/mame/drivers/jongkyo.c
@@ -180,7 +180,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( jongkyo_portmap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
// R 01 keyboard
AM_RANGE(0x01, 0x01) AM_READ(AY8910_read_port_0_r)
AM_RANGE(0x02, 0x02) AM_WRITE(AY8910_write_port_0_w)
diff --git a/src/mame/drivers/jrpacman.c b/src/mame/drivers/jrpacman.c
index b4af17749d7..abe029f776a 100644
--- a/src/mame/drivers/jrpacman.c
+++ b/src/mame/drivers/jrpacman.c
@@ -143,7 +143,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( port_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0, 0) AM_WRITE(jrpacman_interrupt_vector_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/kaneko16.c b/src/mame/drivers/kaneko16.c
index 61e0f399646..636277390b5 100644
--- a/src/mame/drivers/kaneko16.c
+++ b/src/mame/drivers/kaneko16.c
@@ -859,7 +859,7 @@ static ADDRESS_MAP_START( blazeon_soundmem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( blazeon_soundport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x02, 0x02) AM_WRITE(YM2151_register_port_0_w)
AM_RANGE(0x03, 0x03) AM_READWRITE(YM2151_status_port_0_r, YM2151_data_port_0_w)
AM_RANGE(0x06, 0x06) AM_READ(soundlatch_r)
diff --git a/src/mame/drivers/kchamp.c b/src/mame/drivers/kchamp.c
index ca7cfc05155..2e39385112d 100644
--- a/src/mame/drivers/kchamp.c
+++ b/src/mame/drivers/kchamp.c
@@ -141,7 +141,7 @@ static WRITE8_HANDLER( sound_msm_w ) {
}
static ADDRESS_MAP_START( readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(input_port_0_r) /* Player 1 controls - ACTIVE LOW */
AM_RANGE(0x40, 0x40) AM_READ(input_port_1_r) /* Player 2 controls - ACTIVE LOW */
AM_RANGE(0x80, 0x80) AM_READ(input_port_2_r) /* Coins & Start - ACTIVE LOW */
@@ -149,7 +149,7 @@ static ADDRESS_MAP_START( readport, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(kchamp_flipscreen_w)
AM_RANGE(0x01, 0x01) AM_WRITE(control_w)
AM_RANGE(0x02, 0x02) AM_WRITE(sound_reset_w)
@@ -157,12 +157,12 @@ static ADDRESS_MAP_START( writeport, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x01, 0x01) AM_READ(soundlatch_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(AY8910_write_port_0_w)
AM_RANGE(0x01, 0x01) AM_WRITE(AY8910_control_port_0_w)
AM_RANGE(0x02, 0x02) AM_WRITE(AY8910_write_port_1_w)
@@ -216,7 +216,7 @@ static WRITE8_HANDLER( kc_sound_control_w ) {
}
static ADDRESS_MAP_START( kc_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x90, 0x90) AM_READ(input_port_0_r) /* Player 1 controls - ACTIVE LOW */
AM_RANGE(0x98, 0x98) AM_READ(input_port_1_r) /* Player 2 controls - ACTIVE LOW */
AM_RANGE(0xa0, 0xa0) AM_READ(input_port_2_r) /* Coins & Start - ACTIVE LOW */
@@ -225,19 +225,19 @@ static ADDRESS_MAP_START( kc_readport, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( kc_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x80, 0x80) AM_WRITE(kchamp_flipscreen_w)
AM_RANGE(0x81, 0x81) AM_WRITE(control_w)
AM_RANGE(0xa8, 0xa8) AM_WRITE(sound_command_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( kc_sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x06, 0x06) AM_READ(soundlatch_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( kc_sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(AY8910_write_port_0_w)
AM_RANGE(0x01, 0x01) AM_WRITE(AY8910_control_port_0_w)
AM_RANGE(0x02, 0x02) AM_WRITE(AY8910_write_port_1_w)
diff --git a/src/mame/drivers/kingobox.c b/src/mame/drivers/kingobox.c
index cb35db0c5b6..09db9f03d3a 100644
--- a/src/mame/drivers/kingobox.c
+++ b/src/mame/drivers/kingobox.c
@@ -155,12 +155,12 @@ static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x08, 0x08) AM_READ(AY8910_read_port_0_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(DAC_0_data_w)
AM_RANGE(0x08, 0x08) AM_WRITE(AY8910_write_port_0_w)
AM_RANGE(0x0c, 0x0c) AM_WRITE(AY8910_control_port_0_w)
@@ -231,12 +231,12 @@ static ADDRESS_MAP_START( rk_sprite_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( rk_sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x02, 0x02) AM_READ(AY8910_read_port_0_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( rk_sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(DAC_0_data_w)
AM_RANGE(0x02, 0x02) AM_WRITE(AY8910_write_port_0_w)
AM_RANGE(0x03, 0x03) AM_WRITE(AY8910_control_port_0_w)
diff --git a/src/mame/drivers/kingpin.c b/src/mame/drivers/kingpin.c
index 7532b567ad5..f451d7c3290 100644
--- a/src/mame/drivers/kingpin.c
+++ b/src/mame/drivers/kingpin.c
@@ -93,7 +93,7 @@ static ADDRESS_MAP_START( kingpin_program_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( kingpin_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(io_read_missing_dips)
AM_RANGE(0x01, 0x01) AM_READ(input_port_2_r)
/* AM_RANGE(0x02, 0x02) AM_READ(io_read_missing_dips) */
@@ -104,7 +104,7 @@ static ADDRESS_MAP_START( kingpin_readport, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( kingpin_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
/* AM_RANGE(0x02, 0x02) AM_WRITE(NO IDEA) */
/* AM_RANGE(0x12, 0x12) AM_WRITE(NO IDEA) */
/* AM_RANGE(0x13, 0x13) AM_WRITE(NO IDEA) */
diff --git a/src/mame/drivers/kinst.c b/src/mame/drivers/kinst.c
index e94c8ffedcc..cd431b69708 100644
--- a/src/mame/drivers/kinst.c
+++ b/src/mame/drivers/kinst.c
@@ -410,7 +410,7 @@ static READ32_HANDLER( kinst_speedup_r )
*************************************/
static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 32 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x00000000, 0x0007ffff) AM_RAM AM_BASE(&rambase)
AM_RANGE(0x08000000, 0x087fffff) AM_RAM AM_BASE(&rambase2)
AM_RANGE(0x10000080, 0x100000ff) AM_READWRITE(kinst_control_r, kinst_control_w) AM_BASE(&kinst_control)
diff --git a/src/mame/drivers/kncljoe.c b/src/mame/drivers/kncljoe.c
index 557d7fefc8f..785b2b1129e 100644
--- a/src/mame/drivers/kncljoe.c
+++ b/src/mame/drivers/kncljoe.c
@@ -121,7 +121,7 @@ static WRITE8_HANDLER(unused_w)
}
static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(15) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x0fff) AM_WRITENOP
AM_RANGE(0x1000, 0x1fff) AM_WRITE(sound_irq_ack_w)
AM_RANGE(0x2000, 0x7fff) AM_ROM
diff --git a/src/mame/drivers/koikoi.c b/src/mame/drivers/koikoi.c
index 8089816abf7..957b217008d 100644
--- a/src/mame/drivers/koikoi.c
+++ b/src/mame/drivers/koikoi.c
@@ -127,7 +127,7 @@ static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x02, 0x02) AM_WRITENOP //unknown , many writes
AM_RANGE(0x03, 0x03) AM_READ( AY8910_read_port_0_r )
AM_RANGE(0x07, 0x07) AM_WRITE(AY8910_control_port_0_w)
diff --git a/src/mame/drivers/kyugo.c b/src/mame/drivers/kyugo.c
index 51079b1c3a0..3933dcdd598 100644
--- a/src/mame/drivers/kyugo.c
+++ b/src/mame/drivers/kyugo.c
@@ -79,7 +79,7 @@ ADDRESS_MAP_END
#define Main_PortMap( name, base ) \
static ADDRESS_MAP_START( name##_portmap, ADDRESS_SPACE_IO, 8 ) \
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) \
+ ADDRESS_MAP_GLOBAL_MASK(0xff) \
AM_RANGE(base+0, base+0) AM_WRITE(interrupt_enable_w) \
AM_RANGE(base+1, base+1) AM_WRITE(kyugo_flipscreen_w) \
AM_RANGE(base+2, base+2) AM_WRITE(kyugo_sub_cpu_control_w) \
@@ -123,7 +123,7 @@ Sub_MemMap( flashgla, 0x7fff, 0xe000, 0xc040, 0xc080, 0xc0c0 )
#define Sub_PortMap( name, ay0_base, ay1_base ) \
static ADDRESS_MAP_START( name##_sub_portmap, ADDRESS_SPACE_IO, 8 ) \
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) \
+ ADDRESS_MAP_GLOBAL_MASK(0xff) \
AM_RANGE(ay0_base+0, ay0_base+0) AM_WRITE(AY8910_control_port_0_w) \
AM_RANGE(ay0_base+1, ay0_base+1) AM_WRITE(AY8910_write_port_0_w) \
AM_RANGE(ay0_base+2, ay0_base+2) AM_READ(AY8910_read_port_0_r) \
diff --git a/src/mame/drivers/ladybug.c b/src/mame/drivers/ladybug.c
index cf18606fcd0..c1e40d3eee3 100644
--- a/src/mame/drivers/ladybug.c
+++ b/src/mame/drivers/ladybug.c
@@ -124,7 +124,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sraider_cpu2_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(SN76496_0_w)
AM_RANGE(0x08, 0x08) AM_WRITE(SN76496_1_w)
AM_RANGE(0x10, 0x10) AM_WRITE(SN76496_2_w)
diff --git a/src/mame/drivers/laserbas.c b/src/mame/drivers/laserbas.c
index a1b6dd299ff..d63fe42447d 100644
--- a/src/mame/drivers/laserbas.c
+++ b/src/mame/drivers/laserbas.c
@@ -90,7 +90,7 @@ static ADDRESS_MAP_START( laserbas_memory, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( laserbas_io, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x1f) AM_WRITE(vrambank_w)
AM_RANGE(0x20, 0x20) AM_READ(read_unk) AM_WRITENOP//write = ram/rom bank ? at fc00-f800 ?
AM_RANGE(0x21, 0x21) AM_READ(input_port_0_r)
diff --git a/src/mame/drivers/lasso.c b/src/mame/drivers/lasso.c
index 24bf1c0f8e1..68c5bae5f5e 100644
--- a/src/mame/drivers/lasso.c
+++ b/src/mame/drivers/lasso.c
@@ -198,7 +198,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( pinbo_audio_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(AY8910_control_port_0_w)
AM_RANGE(0x01, 0x01) AM_WRITE(AY8910_write_port_0_w)
AM_RANGE(0x02, 0x02) AM_READ(AY8910_read_port_0_r)
diff --git a/src/mame/drivers/lastfght.c b/src/mame/drivers/lastfght.c
index 8f3fc03e9ce..077f3b2fa92 100644
--- a/src/mame/drivers/lastfght.c
+++ b/src/mame/drivers/lastfght.c
@@ -347,7 +347,7 @@ static WRITE16_HANDLER( lastfght_sound_w )
***************************************************************************/
static ADDRESS_MAP_START( lastfght_map, ADDRESS_SPACE_PROGRAM, 16 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(24) )
+ ADDRESS_MAP_GLOBAL_MASK(0xffffff)
AM_RANGE( 0x000000, 0x07ffff ) AM_ROM AM_REGION(REGION_CPU1, 0)
AM_RANGE( 0x080000, 0x0fffff ) AM_ROM AM_REGION(REGION_CPU1, 0)
diff --git a/src/mame/drivers/leland.c b/src/mame/drivers/leland.c
index e33043ed9bd..0f75e413512 100644
--- a/src/mame/drivers/leland.c
+++ b/src/mame/drivers/leland.c
@@ -71,7 +71,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( master_map_io, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0xf0, 0xf0) AM_WRITE(leland_master_alt_bankswitch_w)
AM_RANGE(0xf2, 0xf2) AM_READWRITE(leland_80186_response_r, leland_80186_command_lo_w)
AM_RANGE(0xf4, 0xf4) AM_WRITE(leland_80186_command_hi_w)
@@ -107,7 +107,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( slave_map_io, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x1f) AM_READWRITE(leland_svram_port_r, leland_svram_port_w)
AM_RANGE(0x40, 0x5f) AM_READWRITE(leland_svram_port_r, leland_svram_port_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/lgp.c b/src/mame/drivers/lgp.c
index bab5160451f..5406879fab9 100644
--- a/src/mame/drivers/lgp.c
+++ b/src/mame/drivers/lgp.c
@@ -153,13 +153,13 @@ ADDRESS_MAP_END
/* IO MAPS */
static ADDRESS_MAP_START( main_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
// AM_RANGE(0xfd,0xfd) AM_READ_PORT("IN_TEST")
// AM_RANGE(0xfe,0xfe) AM_READ_PORT("IN_TEST")
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/lkage.c b/src/mame/drivers/lkage.c
index c33252ee228..accaf25ef38 100644
--- a/src/mame/drivers/lkage.c
+++ b/src/mame/drivers/lkage.c
@@ -114,7 +114,7 @@ static ADDRESS_MAP_START( readport, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( m68705_readmem, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(11) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7ff)
AM_RANGE(0x0000, 0x0000) AM_READ(lkage_68705_portA_r)
AM_RANGE(0x0001, 0x0001) AM_READ(lkage_68705_portB_r)
AM_RANGE(0x0002, 0x0002) AM_READ(lkage_68705_portC_r)
@@ -123,7 +123,7 @@ static ADDRESS_MAP_START( m68705_readmem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( m68705_writemem, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(11) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7ff)
AM_RANGE(0x0000, 0x0000) AM_WRITE(lkage_68705_portA_w)
AM_RANGE(0x0001, 0x0001) AM_WRITE(lkage_68705_portB_w)
AM_RANGE(0x0002, 0x0002) AM_WRITE(lkage_68705_portC_w)
diff --git a/src/mame/drivers/lockon.c b/src/mame/drivers/lockon.c
index 2135dc92345..f39ba4f22af 100644
--- a/src/mame/drivers/lockon.c
+++ b/src/mame/drivers/lockon.c
@@ -173,7 +173,7 @@ static WRITE16_HANDLER( emres_w )
*************************************/
static ADDRESS_MAP_START( main_v30, ADDRESS_SPACE_PROGRAM, 16 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x00000, 0x03fff) AM_RAM
AM_RANGE(0x04000, 0x04003) AM_READWRITE(lockon_crtc_r, lockon_crtc_w)
AM_RANGE(0x06000, 0x06001) AM_READ(input_port_0_word_r)
@@ -195,7 +195,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( ground_v30, ADDRESS_SPACE_PROGRAM, 16 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x00000, 0x03fff) AM_RAM
AM_RANGE(0x04000, 0x04fff) AM_RAM AM_BASE(&lockon_scene_ram)
AM_RANGE(0x08000, 0x08fff) AM_RAM AM_BASE(&lockon_ground_ram) AM_SIZE(&lockon_groundram_size)
@@ -208,7 +208,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( object_v30, ADDRESS_SPACE_PROGRAM, 16 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x00000, 0x03fff) AM_RAM
AM_RANGE(0x04000, 0x04001) AM_READWRITE(lockon_obj_4000_r, lockon_obj_4000_w)
AM_RANGE(0x08000, 0x08fff) AM_WRITE(lockon_tza112_w)
@@ -218,7 +218,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_prg, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ 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, MWA8_NOP)
@@ -226,7 +226,7 @@ static ADDRESS_MAP_START( sound_prg, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_io, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READWRITE(YM2203_status_port_0_r, YM2203_control_port_0_w)
AM_RANGE(0x01, 0x01) AM_READWRITE(YM2203_read_port_0_r, YM2203_write_port_0_w)
AM_RANGE(0x02, 0x02) AM_NOP
diff --git a/src/mame/drivers/looping.c b/src/mame/drivers/looping.c
index 5b5bfea8171..667d0a27ebe 100644
--- a/src/mame/drivers/looping.c
+++ b/src/mame/drivers/looping.c
@@ -494,7 +494,7 @@ ADDRESS_MAP_END
/* complete memory map derived from schematics */
static ADDRESS_MAP_START( looping_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(14) )
+ ADDRESS_MAP_GLOBAL_MASK(0x3fff)
AM_RANGE(0x0000, 0x37ff) AM_ROM
AM_RANGE(0x3800, 0x3bff) AM_RAM
AM_RANGE(0x3c00, 0x3c00) AM_MIRROR(0x00f4) AM_READWRITE(AY8910_read_port_0_r, AY8910_control_port_0_w)
diff --git a/src/mame/drivers/lsasquad.c b/src/mame/drivers/lsasquad.c
index a779cdb6b93..7e61ae6b795 100644
--- a/src/mame/drivers/lsasquad.c
+++ b/src/mame/drivers/lsasquad.c
@@ -253,7 +253,7 @@ static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( m68705_readmem, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(11) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7ff)
AM_RANGE(0x0000, 0x0000) AM_READ(lsasquad_68705_portA_r)
AM_RANGE(0x0001, 0x0001) AM_READ(lsasquad_68705_portB_r)
AM_RANGE(0x0002, 0x0002) AM_READ(lsasquad_mcu_status_r)
@@ -262,7 +262,7 @@ static ADDRESS_MAP_START( m68705_readmem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( m68705_writemem, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(11) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7ff)
AM_RANGE(0x0000, 0x0000) AM_WRITE(lsasquad_68705_portA_w)
AM_RANGE(0x0001, 0x0001) AM_WRITE(lsasquad_68705_portB_w)
AM_RANGE(0x0004, 0x0004) AM_WRITE(lsasquad_68705_ddrA_w)
diff --git a/src/mame/drivers/lvcards.c b/src/mame/drivers/lvcards.c
index a25d5391248..450504ab910 100644
--- a/src/mame/drivers/lvcards.c
+++ b/src/mame/drivers/lvcards.c
@@ -175,7 +175,7 @@ static ADDRESS_MAP_START( lvcards_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( lvcards_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READWRITE(AY8910_read_port_0_r, AY8910_write_port_0_w)
AM_RANGE(0x01, 0x01) AM_WRITE(AY8910_control_port_0_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/lwings.c b/src/mame/drivers/lwings.c
index fa48ddf72ea..39ee826f028 100644
--- a/src/mame/drivers/lwings.c
+++ b/src/mame/drivers/lwings.c
@@ -371,17 +371,17 @@ static ADDRESS_MAP_START( adpcm_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( avengers_adpcm_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(avengers_adpcm_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( adpcm_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(soundlatch_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( adpcm_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x01, 0x01) AM_WRITE(msm5205_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/m52.c b/src/mame/drivers/m52.c
index 23b6441c995..3acd474972e 100644
--- a/src/mame/drivers/m52.c
+++ b/src/mame/drivers/m52.c
@@ -90,7 +90,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( main_portmap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_MIRROR(0x1f) AM_WRITE(m52_scroll_w)
AM_RANGE(0x40, 0x40) AM_MIRROR(0x1f) AM_WRITE(m52_bg1xpos_w)
AM_RANGE(0x60, 0x60) AM_MIRROR(0x1f) AM_WRITE(m52_bg1ypos_w)
diff --git a/src/mame/drivers/m62.c b/src/mame/drivers/m62.c
index 16f0743f0f3..06e93391531 100644
--- a/src/mame/drivers/m62.c
+++ b/src/mame/drivers/m62.c
@@ -177,7 +177,7 @@ static ADDRESS_MAP_START( kungfum_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( kungfum_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(input_port_0_r) /* coin */
AM_RANGE(0x01, 0x01) AM_READ(input_port_1_r) /* player 1 control */
AM_RANGE(0x02, 0x02) AM_READ(input_port_2_r) /* player 2 control */
@@ -186,7 +186,7 @@ static ADDRESS_MAP_START( kungfum_readport, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( kungfum_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(irem_sound_cmd_w)
AM_RANGE(0x01, 0x01) AM_WRITE(m62_flipscreen_w) /* + coin counters */
ADDRESS_MAP_END
@@ -207,7 +207,7 @@ static ADDRESS_MAP_START( battroad_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( battroad_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(irem_sound_cmd_w)
AM_RANGE(0x01, 0x01) AM_WRITE(m62_flipscreen_w) /* + coin counters */
AM_RANGE(0x80, 0x80) AM_WRITE(m62_vscroll_low_w)
@@ -244,7 +244,7 @@ static ADDRESS_MAP_START( ldrun2_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( ldrun2_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(input_port_0_r) /* coin */
AM_RANGE(0x01, 0x01) AM_READ(input_port_1_r) /* player 1 control */
AM_RANGE(0x02, 0x02) AM_READ(input_port_2_r) /* player 2 control */
@@ -254,7 +254,7 @@ static ADDRESS_MAP_START( ldrun2_readport, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( ldrun2_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(irem_sound_cmd_w)
AM_RANGE(0x01, 0x01) AM_WRITE(m62_flipscreen_w) /* + coin counters */
AM_RANGE(0x80, 0x81) AM_WRITE(ldrun2_bankswitch_w)
@@ -277,7 +277,7 @@ static ADDRESS_MAP_START( ldrun3_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( ldrun3_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(irem_sound_cmd_w)
AM_RANGE(0x01, 0x01) AM_WRITE(m62_flipscreen_w) /* + coin counters */
AM_RANGE(0x80, 0x80) AM_WRITE(m62_vscroll_low_w)
@@ -300,7 +300,7 @@ static ADDRESS_MAP_START( ldrun4_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( ldrun4_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(irem_sound_cmd_w)
AM_RANGE(0x01, 0x01) AM_WRITE(m62_flipscreen_w) /* + coin counters */
AM_RANGE(0x82, 0x82) AM_WRITE(m62_hscroll_high_w)
@@ -339,7 +339,7 @@ static ADDRESS_MAP_START( kidniki_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( kidniki_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(irem_sound_cmd_w)
AM_RANGE(0x01, 0x01) AM_WRITE(m62_flipscreen_w) /* + coin counters */
AM_RANGE(0x80, 0x80) AM_WRITE(m62_hscroll_low_w)
@@ -413,7 +413,7 @@ static ADDRESS_MAP_START( youjyudn_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( youjyudn_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(irem_sound_cmd_w)
AM_RANGE(0x01, 0x01) AM_WRITE(m62_flipscreen_w) /* + coin counters */
AM_RANGE(0x80, 0x80) AM_WRITE(m62_hscroll_high_w)
diff --git a/src/mame/drivers/m72.c b/src/mame/drivers/m72.c
index ab36f9cae10..07f24a67bca 100644
--- a/src/mame/drivers/m72.c
+++ b/src/mame/drivers/m72.c
@@ -834,7 +834,7 @@ static ADDRESS_MAP_START( sound_rom_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_portmap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(YM2151_register_port_0_w)
AM_RANGE(0x01, 0x01) AM_READWRITE(YM2151_status_port_0_r, YM2151_data_port_0_w)
AM_RANGE(0x02, 0x02) AM_READ(soundlatch_r)
@@ -844,7 +844,7 @@ static ADDRESS_MAP_START( sound_portmap, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( rtype2_sound_portmap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(YM2151_register_port_0_w)
AM_RANGE(0x01, 0x01) AM_READWRITE(YM2151_status_port_0_r, YM2151_data_port_0_w)
AM_RANGE(0x80, 0x80) AM_READ(soundlatch_r)
@@ -855,7 +855,7 @@ static ADDRESS_MAP_START( rtype2_sound_portmap, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( poundfor_sound_portmap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x13) AM_WRITE(poundfor_sample_addr_w)
AM_RANGE(0x40, 0x40) AM_WRITE(YM2151_register_port_0_w)
AM_RANGE(0x41, 0x41) AM_READWRITE(YM2151_status_port_0_r, YM2151_data_port_0_w)
@@ -1956,7 +1956,7 @@ MACHINE_DRIVER_END
static ADDRESS_MAP_START( mcu_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x0fff) AM_ROM
ADDRESS_MAP_END
@@ -1978,7 +1978,7 @@ static READ8_HANDLER(m72_mcu_data_r )
}
static ADDRESS_MAP_START( mcu_data_map, ADDRESS_SPACE_DATA, 8 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
/* shared at b0000 - b0fff on the main cpu */
AM_RANGE(0xc000, 0xcfff) AM_READWRITE(m72_mcu_data_r,m72_mcu_data_w )
ADDRESS_MAP_END
diff --git a/src/mame/drivers/m90.c b/src/mame/drivers/m90.c
index 5a635849b36..c4cddabd8c6 100644
--- a/src/mame/drivers/m90.c
+++ b/src/mame/drivers/m90.c
@@ -121,14 +121,14 @@ static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x01, 0x01) AM_READ(YM2151_status_port_0_r)
AM_RANGE(0x80, 0x80) AM_READ(soundlatch_r)
AM_RANGE(0x84, 0x84) AM_READ(m72_sample_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(YM2151_register_port_0_w)
AM_RANGE(0x01, 0x01) AM_WRITE(YM2151_data_port_0_w)
AM_RANGE(0x80, 0x81) AM_WRITE(rtype2_sample_addr_w)
@@ -137,14 +137,14 @@ static ADDRESS_MAP_START( sound_writeport, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( bbmanw_sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x41, 0x41) AM_READ(YM2151_status_port_0_r)
AM_RANGE(0x42, 0x42) AM_READ(soundlatch_r)
// AM_RANGE(0x41, 0x41) AM_READ(m72_sample_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( bbmanw_sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x40, 0x40) AM_WRITE(YM2151_register_port_0_w)
AM_RANGE(0x41, 0x41) AM_WRITE(YM2151_data_port_0_w)
AM_RANGE(0x42, 0x42) AM_WRITE(m72_sound_irq_ack_w)
diff --git a/src/mame/drivers/macs.c b/src/mame/drivers/macs.c
index edb1228d8fd..fcb846204f1 100644
--- a/src/mame/drivers/macs.c
+++ b/src/mame/drivers/macs.c
@@ -129,7 +129,7 @@ static WRITE8_HANDLER( macs_output_w )
}
static ADDRESS_MAP_START( macs_io, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0xbf) AM_READ(st0016_vregs_r) AM_WRITE(st0016_vregs_w) /* video/crt regs ? */
AM_RANGE(0xc0, 0xc7) AM_READWRITE(macs_input_r,macs_output_w)
AM_RANGE(0xe0, 0xe0) AM_WRITENOP /* renju = $40, neratte = 0 */
diff --git a/src/mame/drivers/magmax.c b/src/mame/drivers/magmax.c
index dd56bc58020..772fce2848b 100644
--- a/src/mame/drivers/magmax.c
+++ b/src/mame/drivers/magmax.c
@@ -227,12 +227,12 @@ static ADDRESS_MAP_START( magmax_soundwritemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( magmax_soundreadport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x06, 0x06) AM_READ(magmax_sound_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( magmax_soundwriteport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(AY8910_control_port_0_w)
AM_RANGE(0x01, 0x01) AM_WRITE(AY8910_write_port_0_w)
AM_RANGE(0x02, 0x02) AM_WRITE(AY8910_control_port_1_w)
diff --git a/src/mame/drivers/mainsnk.c b/src/mame/drivers/mainsnk.c
index d1eb1e3631b..efa2660fec2 100644
--- a/src/mame/drivers/mainsnk.c
+++ b/src/mame/drivers/mainsnk.c
@@ -152,7 +152,7 @@ static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_portmap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READNOP
ADDRESS_MAP_END
diff --git a/src/mame/drivers/marineb.c b/src/mame/drivers/marineb.c
index 78afe78e5f1..2f3ed41642f 100644
--- a/src/mame/drivers/marineb.c
+++ b/src/mame/drivers/marineb.c
@@ -71,13 +71,13 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( marineb_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x08, 0x08) AM_WRITE(AY8910_control_port_0_w)
AM_RANGE(0x09, 0x09) AM_WRITE(AY8910_write_port_0_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( wanted_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(AY8910_control_port_0_w)
AM_RANGE(0x01, 0x01) AM_WRITE(AY8910_write_port_0_w)
AM_RANGE(0x02, 0x02) AM_WRITE(AY8910_control_port_1_w)
diff --git a/src/mame/drivers/marinedt.c b/src/mame/drivers/marinedt.c
index febb4d05bf8..14e15e8d459 100644
--- a/src/mame/drivers/marinedt.c
+++ b/src/mame/drivers/marinedt.c
@@ -187,7 +187,7 @@ static READ8_HANDLER( marinedt_obj1_yq_r )
static ADDRESS_MAP_START( marinedt_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(input_port_0_r) //dips coinage
AM_RANGE(0x01, 0x01) AM_READ(marinedt_port1_r) //trackball xy muxed
AM_RANGE(0x02, 0x02) AM_READ(marinedt_obj1_x_r)
@@ -283,7 +283,7 @@ static WRITE8_HANDLER( marinedt_pf_w )
}
static ADDRESS_MAP_START( marinedt_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x02, 0x02) AM_WRITE(marinedt_obj1_a_w)
AM_RANGE(0x03, 0x03) AM_WRITE(marinedt_obj1_x_w)
AM_RANGE(0x04, 0x04) AM_WRITE(marinedt_obj1_y_w)
diff --git a/src/mame/drivers/mario.c b/src/mame/drivers/mario.c
index 008321663c1..0aa08dee7d1 100644
--- a/src/mame/drivers/mario.c
+++ b/src/mame/drivers/mario.c
@@ -188,7 +188,7 @@ static ADDRESS_MAP_START( masao_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( mario_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READWRITE(z80dma_0_r, z80dma_0_w) /* dma controller */
//AM_RANGE(0x00, 0x00) AM_WRITE(MWA8_NOP) /*Z80 DMA Ctrl port */
ADDRESS_MAP_END
diff --git a/src/mame/drivers/marvins.c b/src/mame/drivers/marvins.c
index 9b5ff3af6cd..fcee4808a32 100644
--- a/src/mame/drivers/marvins.c
+++ b/src/mame/drivers/marvins.c
@@ -145,7 +145,7 @@ static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_portmap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READNOP
ADDRESS_MAP_END
diff --git a/src/mame/drivers/mastboy.c b/src/mame/drivers/mastboy.c
index 596dd5024dc..4dccf09b959 100644
--- a/src/mame/drivers/mastboy.c
+++ b/src/mame/drivers/mastboy.c
@@ -686,7 +686,7 @@ static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 )
- //ADDRESS_MAP_FLAGS( AMEF_ABITS(16) )
+ //ADDRESS_MAP_GLOBAL_MASK(0xffff)
AM_RANGE(0x0000, 0x3fff) AM_WRITE(MWA8_ROM) // Internal ROM
AM_RANGE(0x4000, 0x7fff) AM_WRITE(MWA8_ROM) // External ROM
AM_RANGE(0x8000, 0x8fff) AM_WRITE(MWA8_RAM) AM_BASE(&mastboy_workram)// work ram
diff --git a/src/mame/drivers/matmania.c b/src/mame/drivers/matmania.c
index 78c00a440c9..a24beecf7ce 100644
--- a/src/mame/drivers/matmania.c
+++ b/src/mame/drivers/matmania.c
@@ -168,7 +168,7 @@ static ADDRESS_MAP_START( maniach_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( mcu_readmem, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(11) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7ff)
AM_RANGE(0x0000, 0x0000) AM_READ(maniach_68705_portA_r)
AM_RANGE(0x0001, 0x0001) AM_READ(maniach_68705_portB_r)
AM_RANGE(0x0002, 0x0002) AM_READ(maniach_68705_portC_r)
@@ -177,7 +177,7 @@ static ADDRESS_MAP_START( mcu_readmem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( mcu_writemem, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(11) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7ff)
AM_RANGE(0x0000, 0x0000) AM_WRITE(maniach_68705_portA_w)
AM_RANGE(0x0001, 0x0001) AM_WRITE(maniach_68705_portB_w)
AM_RANGE(0x0002, 0x0002) AM_WRITE(maniach_68705_portC_w)
diff --git a/src/mame/drivers/maxaflex.c b/src/mame/drivers/maxaflex.c
index 671c00cd0c9..fb2ec03dd30 100644
--- a/src/mame/drivers/maxaflex.c
+++ b/src/mame/drivers/maxaflex.c
@@ -251,7 +251,7 @@ static ADDRESS_MAP_START(a600xl_mem, ADDRESS_SPACE_PROGRAM, 8)
ADDRESS_MAP_END
static ADDRESS_MAP_START( mcu_mem, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(11) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7ff)
AM_RANGE(0x0000, 0x0000) AM_READ( mcu_portA_r ) AM_WRITE( mcu_portA_w )
AM_RANGE(0x0001, 0x0001) AM_READ( mcu_portB_r ) AM_WRITE( mcu_portB_w )
AM_RANGE(0x0002, 0x0002) AM_READ( mcu_portC_r ) AM_WRITE( mcu_portC_w )
diff --git a/src/mame/drivers/mayumi.c b/src/mame/drivers/mayumi.c
index 215b6df95b1..ef143ce7993 100644
--- a/src/mame/drivers/mayumi.c
+++ b/src/mame/drivers/mayumi.c
@@ -82,14 +82,14 @@ static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x30, 0x30) AM_READ(input_port_12_r)
AM_RANGE(0xc1, 0xc2) AM_READ(key_matrix_r) // 0xc0-c3 8255ppi
AM_RANGE(0xd1, 0xd1) AM_READ(YM2203_read_port_0_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x30, 0x30) AM_WRITE(bank_sel_w)
AM_RANGE(0xc0, 0xc0) AM_WRITE(input_sel_w)
AM_RANGE(0xc3, 0xc3) AM_WRITE(MWA8_NOP) // 0xc0-c3 8255ppi
diff --git a/src/mame/drivers/mazerbla.c b/src/mame/drivers/mazerbla.c
index 52f1ec14243..32d33bdbd4b 100644
--- a/src/mame/drivers/mazerbla.c
+++ b/src/mame/drivers/mazerbla.c
@@ -471,13 +471,13 @@ static WRITE8_HANDLER(zpu_coin_counter_w)
}
static ADDRESS_MAP_START( readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x4c, 0x4f) AM_READ(ls670_1_r)
AM_RANGE(0x62, 0x62) AM_READ(zpu_inputs_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x4c, 0x4f) AM_WRITE(ls670_0_w)
AM_RANGE(0x60, 0x60) AM_WRITE(zpu_bcd_decoder_w)
AM_RANGE(0x68, 0x68) AM_WRITE(zpu_coin_counter_w)
@@ -513,12 +513,12 @@ static WRITE8_HANDLER( vsb_ls273_audio_control_w )
static ADDRESS_MAP_START( readport_cpu2, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x80, 0x83) AM_READ(ls670_0_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport_cpu2, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(vsb_ls273_audio_control_w)
AM_RANGE(0x80, 0x83) AM_WRITE(ls670_1_w)
ADDRESS_MAP_END
@@ -624,12 +624,12 @@ static READ8_HANDLER( cfb_port_02_r )
}
static ADDRESS_MAP_START( readport_cpu3, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x02, 0x02) AM_READ(cfb_port_02_r) /* VCU status ? */
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport_cpu3_mb, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x01, 0x01) AM_WRITE(cfb_backgnd_color_w)
AM_RANGE(0x02, 0x02) AM_WRITE(cfb_led_w)
AM_RANGE(0x03, 0x03) AM_WRITE(cfb_zpu_int_req_set_w)
@@ -639,7 +639,7 @@ ADDRESS_MAP_END
/* Great Guns has a little different banking layout */
static ADDRESS_MAP_START( writeport_cpu3_gg, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(MWA8_NOP)
AM_RANGE(0x01, 0x01) AM_WRITE(cfb_backgnd_color_w)
AM_RANGE(0x02, 0x02) AM_WRITE(cfb_led_w)
@@ -1090,11 +1090,11 @@ static WRITE8_HANDLER( main_sound_w )
static ADDRESS_MAP_START( gg_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x62, 0x62) AM_READ(zpu_inputs_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( gg_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x4c, 0x4c) AM_WRITE(main_sound_w)
AM_RANGE(0x60, 0x60) AM_WRITE(zpu_bcd_decoder_w)
AM_RANGE(0x66, 0x66) AM_WRITE(MWA8_NOP)
diff --git a/src/mame/drivers/mcatadv.c b/src/mame/drivers/mcatadv.c
index a160f6ee618..9e127b4d2ce 100644
--- a/src/mame/drivers/mcatadv.c
+++ b/src/mame/drivers/mcatadv.c
@@ -264,12 +264,12 @@ static ADDRESS_MAP_START( mcatadv_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( mcatadv_sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x80, 0x80) AM_READ(soundlatch_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( mcatadv_sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x80, 0x80) AM_WRITE(soundlatch2_w)
ADDRESS_MAP_END
@@ -287,14 +287,14 @@ static ADDRESS_MAP_START( nost_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( nost_sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x04, 0x05) AM_READ(YM2610_status_port_0_A_r)
AM_RANGE(0x06, 0x07) AM_READ(YM2610_status_port_0_B_r)
AM_RANGE(0x80, 0x80) AM_READ(soundlatch_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( nost_sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(YM2610_control_port_0_A_w)
AM_RANGE(0x01, 0x01) AM_WRITE(YM2610_data_port_0_A_w)
AM_RANGE(0x02, 0x02) AM_WRITE(YM2610_control_port_0_B_w)
diff --git a/src/mame/drivers/mcr.c b/src/mame/drivers/mcr.c
index 8cf20484d5e..d6b7977058a 100644
--- a/src/mame/drivers/mcr.c
+++ b/src/mame/drivers/mcr.c
@@ -608,7 +608,7 @@ static WRITE8_HANDLER( demoderb_op4_w )
/* address map verified from schematics */
static ADDRESS_MAP_START( cpu_90009_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x6fff) AM_ROM
AM_RANGE(0x7000, 0x77ff) AM_MIRROR(0x0800) AM_RAM AM_BASE(&generic_nvram) AM_SIZE(&generic_nvram_size)
AM_RANGE(0xf000, 0xf1ff) AM_MIRROR(0x0200) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
@@ -619,7 +619,8 @@ ADDRESS_MAP_END
/* upper I/O map determined by PAL; only SSIO ports are verified from schematics */
static ADDRESS_MAP_START( cpu_90009_portmap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) | AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
SSIO_INPUT_PORTS
AM_RANGE(0xe0, 0xe0) AM_WRITE(watchdog_reset_w)
AM_RANGE(0xe8, 0xe8) AM_WRITE(MWA8_NOP)
@@ -636,7 +637,7 @@ ADDRESS_MAP_END
/* address map verified from schematics */
static ADDRESS_MAP_START( cpu_90010_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_MIRROR(0x1800) AM_RAM AM_BASE(&generic_nvram) AM_SIZE(&generic_nvram_size)
AM_RANGE(0xe000, 0xe1ff) AM_MIRROR(0x1600) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
@@ -645,7 +646,8 @@ ADDRESS_MAP_END
/* upper I/O map determined by PAL; only SSIO ports are verified from schematics */
static ADDRESS_MAP_START( cpu_90010_portmap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) | AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
SSIO_INPUT_PORTS
AM_RANGE(0xe0, 0xe0) AM_WRITE(watchdog_reset_w)
AM_RANGE(0xe8, 0xe8) AM_WRITE(MWA8_NOP)
@@ -662,7 +664,7 @@ ADDRESS_MAP_END
/* address map verified from schematics */
static ADDRESS_MAP_START( cpu_91490_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0xdfff) AM_ROM
AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_BASE(&generic_nvram) AM_SIZE(&generic_nvram_size)
AM_RANGE(0xe800, 0xe9ff) AM_MIRROR(0x0200) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
@@ -672,7 +674,8 @@ ADDRESS_MAP_END
/* upper I/O map determined by PAL; only SSIO ports are verified from schematics */
static ADDRESS_MAP_START( cpu_91490_portmap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) | AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
SSIO_INPUT_PORTS
AM_RANGE(0xe0, 0xe0) AM_WRITE(watchdog_reset_w)
AM_RANGE(0xe8, 0xe8) AM_WRITE(MWA8_NOP)
@@ -689,14 +692,15 @@ ADDRESS_MAP_END
/* address map verified from schematics */
static ADDRESS_MAP_START( ipu_91695_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0xe000, 0xffff) AM_RAM
ADDRESS_MAP_END
/* I/O verified from schematics */
static ADDRESS_MAP_START( ipu_91695_portmap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) | AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x03) AM_MIRROR(0xe0) AM_READWRITE(mcr_ipu_pio_0_r, mcr_ipu_pio_0_w)
AM_RANGE(0x04, 0x07) AM_MIRROR(0xe0) AM_READWRITE(mcr_ipu_sio_r, mcr_ipu_sio_w)
AM_RANGE(0x08, 0x0b) AM_MIRROR(0xe0) AM_READWRITE(z80ctc_1_r, z80ctc_1_w)
diff --git a/src/mame/drivers/mcr3.c b/src/mame/drivers/mcr3.c
index 8a2117b33d6..36c2c93e26a 100644
--- a/src/mame/drivers/mcr3.c
+++ b/src/mame/drivers/mcr3.c
@@ -449,7 +449,7 @@ static READ8_HANDLER( turbotag_kludge_r )
/* address map verified from schematics */
static ADDRESS_MAP_START( mcrmono_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0xdfff) AM_ROM
AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_BASE(&generic_nvram) AM_SIZE(&generic_nvram_size)
AM_RANGE(0xe800, 0xe9ff) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
@@ -461,7 +461,8 @@ ADDRESS_MAP_END
/* I/O map verified from schematics */
static ADDRESS_MAP_START( mcrmono_portmap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) | AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_MIRROR(0x78) AM_READ_PORT("MONO.IP0")
AM_RANGE(0x01, 0x01) AM_MIRROR(0x78) AM_READ_PORT("MONO.IP1")
AM_RANGE(0x02, 0x02) AM_MIRROR(0x78) AM_READ_PORT("MONO.IP2")
@@ -482,7 +483,7 @@ ADDRESS_MAP_END
/* address map verified from schematics */
static ADDRESS_MAP_START( spyhunt_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0xdfff) AM_ROM
AM_RANGE(0xe000, 0xe7ff) AM_READWRITE(MRA8_RAM, spyhunt_videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size)
AM_RANGE(0xe800, 0xebff) AM_MIRROR(0x0400) AM_READWRITE(MRA8_RAM, spyhunt_alpharam_w) AM_BASE(&spyhunt_alpharam)
@@ -493,7 +494,8 @@ ADDRESS_MAP_END
/* upper I/O map determined by PAL; only SSIO ports and scroll registers are verified from schematics */
static ADDRESS_MAP_START( spyhunt_portmap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) | AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
SSIO_INPUT_PORTS
AM_RANGE(0x84, 0x86) AM_WRITE(mcr_scroll_value_w)
AM_RANGE(0xe0, 0xe0) AM_WRITE(watchdog_reset_w)
diff --git a/src/mame/drivers/mcr68.c b/src/mame/drivers/mcr68.c
index 584a3e266aa..9298d595ae6 100644
--- a/src/mame/drivers/mcr68.c
+++ b/src/mame/drivers/mcr68.c
@@ -302,7 +302,8 @@ static READ16_HANDLER( trisport_port_1_r )
*************************************/
static ADDRESS_MAP_START( mcr68_map, ADDRESS_SPACE_PROGRAM, 16 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(21) | AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
+ ADDRESS_MAP_GLOBAL_MASK(0x1fffff)
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x060000, 0x063fff) AM_RAM
AM_RANGE(0x070000, 0x070fff) AM_READWRITE(MRA16_RAM, mcr68_videoram_w) AM_BASE(&videoram16) AM_SIZE(&videoram_size)
@@ -325,7 +326,7 @@ ADDRESS_MAP_END
*************************************/
static ADDRESS_MAP_START( zwackery_map, ADDRESS_SPACE_PROGRAM, 16 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x000000, 0x037fff) AM_ROM
AM_RANGE(0x080000, 0x080fff) AM_RAM
AM_RANGE(0x084000, 0x084fff) AM_RAM
@@ -347,7 +348,8 @@ ADDRESS_MAP_END
*************************************/
static ADDRESS_MAP_START( pigskin_map, ADDRESS_SPACE_PROGRAM, 16 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(21) | AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
+ ADDRESS_MAP_GLOBAL_MASK(0x1fffff)
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x080000, 0x08ffff) AM_READ(pigskin_port_1_r)
AM_RANGE(0x0a0000, 0x0affff) AM_READ(pigskin_port_2_r)
@@ -371,7 +373,8 @@ ADDRESS_MAP_END
*************************************/
static ADDRESS_MAP_START( trisport_map, ADDRESS_SPACE_PROGRAM, 16 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(21) | AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
+ ADDRESS_MAP_GLOBAL_MASK(0x1fffff)
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x080000, 0x08ffff) AM_READ(trisport_port_1_r)
AM_RANGE(0x0a0000, 0x0affff) AM_READ(input_port_2_word_r)
diff --git a/src/mame/drivers/megadriv.c b/src/mame/drivers/megadriv.c
index 2b0d1fd8ba5..f3c0bac0d29 100644
--- a/src/mame/drivers/megadriv.c
+++ b/src/mame/drivers/megadriv.c
@@ -2430,7 +2430,7 @@ static READ8_HANDLER( megadriv_z80_unmapped_read )
}
static ADDRESS_MAP_START( z80_portmap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x0000 , 0xff) AM_NOP
ADDRESS_MAP_END
diff --git a/src/mame/drivers/megaplay.c b/src/mame/drivers/megaplay.c
index 2a0b27aca06..fa4cd23f541 100644
--- a/src/mame/drivers/megaplay.c
+++ b/src/mame/drivers/megaplay.c
@@ -626,14 +626,14 @@ static WRITE8_HANDLER (megaplay_bios_port_be_bf_w)
}
static ADDRESS_MAP_START( megaplay_bios_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
// AM_RANGE(0xdc, 0xdc) AM_READ(megatech_bios_port_dc_r) // player inputs
// AM_RANGE(0xdd, 0xdd) AM_READ(megatech_bios_port_dd_r) // other player 2 inputs
AM_RANGE(0xbe, 0xbf) AM_READ(megaplay_bios_port_be_bf_r) /* VDP */
ADDRESS_MAP_END
static ADDRESS_MAP_START( megaplay_bios_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
// AM_RANGE(0x3f, 0x3f) AM_WRITE(megatech_bios_port_ctrl_w)
AM_RANGE(0x7f, 0x7f) AM_WRITE(SN76496_1_w) /* SN76489 */
AM_RANGE(0xbe, 0xbf) AM_WRITE(megaplay_bios_port_be_bf_w) /* VDP */
diff --git a/src/mame/drivers/megasys1.c b/src/mame/drivers/megasys1.c
index 312bad4e6c7..8e10a8c7f9e 100644
--- a/src/mame/drivers/megasys1.c
+++ b/src/mame/drivers/megasys1.c
@@ -198,7 +198,7 @@ static INTERRUPT_GEN( interrupt_A )
static ADDRESS_MAP_START( readmem_A, ADDRESS_SPACE_PROGRAM, 16 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(20) )
+ ADDRESS_MAP_GLOBAL_MASK(0xfffff)
AM_RANGE(0x000000, 0x05ffff) AM_READ(MRA16_ROM)
AM_RANGE(0x080000, 0x080001) AM_READ(coins_r)
AM_RANGE(0x080002, 0x080003) AM_READ(player1_r)
@@ -215,7 +215,7 @@ static ADDRESS_MAP_START( readmem_A, ADDRESS_SPACE_PROGRAM, 16 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( writemem_A, ADDRESS_SPACE_PROGRAM, 16 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(20) )
+ ADDRESS_MAP_GLOBAL_MASK(0xfffff)
AM_RANGE(0x000000, 0x05ffff) AM_WRITE(MWA16_ROM)
AM_RANGE(0x084000, 0x0843ff) AM_WRITE(megasys1_vregs_A_w) AM_BASE(&megasys1_vregs)
AM_RANGE(0x088000, 0x0887ff) AM_WRITE(paletteram16_RRRRGGGGBBBBRGBx_word_w) AM_BASE(&paletteram16)
@@ -291,7 +291,7 @@ static WRITE16_HANDLER( ip_select_w )
static ADDRESS_MAP_START( readmem_B, ADDRESS_SPACE_PROGRAM, 16 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(20) )
+ ADDRESS_MAP_GLOBAL_MASK(0xfffff)
AM_RANGE(0x000000, 0x03ffff) AM_READ(MRA16_ROM)
AM_RANGE(0x044000, 0x044fff) AM_READ(MRA16_RAM)
AM_RANGE(0x048000, 0x0487ff) AM_READ(MRA16_RAM)
@@ -305,7 +305,7 @@ static ADDRESS_MAP_START( readmem_B, ADDRESS_SPACE_PROGRAM, 16 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( writemem_B, ADDRESS_SPACE_PROGRAM, 16 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(20) )
+ ADDRESS_MAP_GLOBAL_MASK(0xfffff)
AM_RANGE(0x000000, 0x03ffff) AM_WRITE(MWA16_ROM)
AM_RANGE(0x044000, 0x0443ff) AM_WRITE(megasys1_vregs_A_w) AM_BASE(&megasys1_vregs)
AM_RANGE(0x048000, 0x0487ff) AM_WRITE(paletteram16_RRRRGGGGBBBBRGBx_word_w) AM_BASE(&paletteram16)
@@ -329,7 +329,7 @@ ADDRESS_MAP_END
#define interrupt_C interrupt_B
static ADDRESS_MAP_START( readmem_C, ADDRESS_SPACE_PROGRAM, 16 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(21) )
+ ADDRESS_MAP_GLOBAL_MASK(0x1fffff)
AM_RANGE(0x000000, 0x07ffff) AM_READ(MRA16_ROM)
AM_RANGE(0x0c0000, 0x0cffff) AM_READ(megasys1_vregs_C_r)
AM_RANGE(0x0d2000, 0x0d3fff) AM_READ(MRA16_RAM)
@@ -342,7 +342,7 @@ static ADDRESS_MAP_START( readmem_C, ADDRESS_SPACE_PROGRAM, 16 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( writemem_C, ADDRESS_SPACE_PROGRAM, 16 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(21) )
+ ADDRESS_MAP_GLOBAL_MASK(0x1fffff)
AM_RANGE(0x000000, 0x07ffff) AM_WRITE(MWA16_ROM)
AM_RANGE(0x0c0000, 0x0cffff) AM_WRITE(megasys1_vregs_C_w) AM_BASE(&megasys1_vregs)
AM_RANGE(0x0d2000, 0x0d3fff) AM_WRITE(MWA16_RAM) AM_BASE(&megasys1_objectram)
@@ -558,12 +558,12 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(YM2203_status_port_0_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(YM2203_control_port_0_w)
AM_RANGE(0x01, 0x01) AM_WRITE(YM2203_write_port_0_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/megatech.c b/src/mame/drivers/megatech.c
index 89a5774137a..7eebb9b3777 100644
--- a/src/mame/drivers/megatech.c
+++ b/src/mame/drivers/megatech.c
@@ -583,7 +583,7 @@ static WRITE8_HANDLER (megatech_bios_port_7f_w)
static ADDRESS_MAP_START( megatech_bios_portmap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x3f, 0x3f) AM_WRITE(megatech_bios_port_ctrl_w)
AM_RANGE(0x7f, 0x7f) AM_READWRITE(sms_vcounter_r, megatech_bios_port_7f_w)
diff --git a/src/mame/drivers/megazone.c b/src/mame/drivers/megazone.c
index ec88dfc6207..3fd2957e506 100644
--- a/src/mame/drivers/megazone.c
+++ b/src/mame/drivers/megazone.c
@@ -135,12 +135,12 @@ static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x02) AM_READ(AY8910_read_port_0_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(AY8910_control_port_0_w)
AM_RANGE(0x02, 0x02) AM_WRITE(AY8910_write_port_0_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/meijinsn.c b/src/mame/drivers/meijinsn.c
index 6288c766c38..0ecb4088f25 100644
--- a/src/mame/drivers/meijinsn.c
+++ b/src/mame/drivers/meijinsn.c
@@ -159,7 +159,7 @@ static ADDRESS_MAP_START( meijinsn_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( meijinsn_sound_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(AY8910_control_port_0_w)
AM_RANGE(0x01, 0x01) AM_READWRITE(AY8910_read_port_0_r, AY8910_write_port_0_w)
AM_RANGE(0x02, 0x02) AM_WRITE(soundlatch_clear_w)
diff --git a/src/mame/drivers/metro.c b/src/mame/drivers/metro.c
index 025a308336d..294db09a256 100644
--- a/src/mame/drivers/metro.c
+++ b/src/mame/drivers/metro.c
@@ -1966,14 +1966,14 @@ static ADDRESS_MAP_START( blzntrnd_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( blzntrnd_sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x40, 0x40) AM_READ(soundlatch_r)
AM_RANGE(0x80, 0x80) AM_READ(YM2610_status_port_0_A_r)
AM_RANGE(0x82, 0x82) AM_READ(YM2610_status_port_0_B_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( blzntrnd_sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(blzntrnd_sh_bankswitch_w)
AM_RANGE(0x40, 0x40) AM_WRITE(MWA8_NOP)
AM_RANGE(0x80, 0x80) AM_WRITE(YM2610_control_port_0_A_w)
diff --git a/src/mame/drivers/mexico86.c b/src/mame/drivers/mexico86.c
index 0b7a58fbb38..de9bc169e9b 100644
--- a/src/mame/drivers/mexico86.c
+++ b/src/mame/drivers/mexico86.c
@@ -130,7 +130,7 @@ static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( m68705_readmem, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(11) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7ff)
AM_RANGE(0x0000, 0x0000) AM_READ(mexico86_68705_portA_r)
AM_RANGE(0x0001, 0x0001) AM_READ(mexico86_68705_portB_r)
AM_RANGE(0x0002, 0x0002) AM_READ(input_port_0_r) /* COIN */
@@ -139,7 +139,7 @@ static ADDRESS_MAP_START( m68705_readmem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( m68705_writemem, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(11) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7ff)
AM_RANGE(0x0000, 0x0000) AM_WRITE(mexico86_68705_portA_w)
AM_RANGE(0x0001, 0x0001) AM_WRITE(mexico86_68705_portB_w)
AM_RANGE(0x0004, 0x0004) AM_WRITE(mexico86_68705_ddrA_w)
diff --git a/src/mame/drivers/mgolf.c b/src/mame/drivers/mgolf.c
index e104e269e69..87e4f51664b 100644
--- a/src/mame/drivers/mgolf.c
+++ b/src/mame/drivers/mgolf.c
@@ -180,7 +180,7 @@ static WRITE8_HANDLER( mgolf_wram_w )
static ADDRESS_MAP_START( cpu_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(14) )
+ ADDRESS_MAP_GLOBAL_MASK(0x3fff)
AM_RANGE(0x0040, 0x0040) AM_READ(input_port_0_r)
AM_RANGE(0x0041, 0x0041) AM_READ(mgolf_dial_r)
diff --git a/src/mame/drivers/midtunit.c b/src/mame/drivers/midtunit.c
index a6bb626027d..5870bdd9442 100644
--- a/src/mame/drivers/midtunit.c
+++ b/src/mame/drivers/midtunit.c
@@ -39,7 +39,7 @@
*************************************/
static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x00000000, 0x003fffff) AM_READWRITE(midtunit_vram_r, midtunit_vram_w)
AM_RANGE(0x01000000, 0x013fffff) AM_RAM
AM_RANGE(0x01400000, 0x0141ffff) AM_READWRITE(midtunit_cmos_r, midtunit_cmos_w) AM_BASE(&generic_nvram16) AM_SIZE(&generic_nvram_size)
diff --git a/src/mame/drivers/midzeus.c b/src/mame/drivers/midzeus.c
index 085992c6bbe..fd02ff498ab 100644
--- a/src/mame/drivers/midzeus.c
+++ b/src/mame/drivers/midzeus.c
@@ -587,7 +587,7 @@ static READ32_HANDLER( invasn_gun_r )
*************************************/
static ADDRESS_MAP_START( zeus_map, ADDRESS_SPACE_PROGRAM, 32 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x000000, 0x03ffff) AM_RAM AM_BASE(&ram_base)
AM_RANGE(0x400000, 0x41ffff) AM_RAM
AM_RANGE(0x808000, 0x80807f) AM_READWRITE(tms32031_control_r, tms32031_control_w) AM_BASE(&tms32031_control)
@@ -602,7 +602,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( zeus2_map, ADDRESS_SPACE_PROGRAM, 32 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x000000, 0x03ffff) AM_RAM AM_BASE(&ram_base)
AM_RANGE(0x400000, 0x43ffff) AM_RAM
AM_RANGE(0x808000, 0x80807f) AM_READWRITE(tms32031_control_r, tms32031_control_w) AM_BASE(&tms32031_control)
diff --git a/src/mame/drivers/mitchell.c b/src/mame/drivers/mitchell.c
index 94a7cbb4562..9aea1419c75 100644
--- a/src/mame/drivers/mitchell.c
+++ b/src/mame/drivers/mitchell.c
@@ -388,7 +388,7 @@ static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x02) AM_READ(input_r) /* Super Pang needs a kludge to initialize EEPROM.
The Mahjong games and Block Block need special input treatment */
AM_RANGE(0x03, 0x03) AM_READ(input_port_12_r) /* mgakuen only */
@@ -397,7 +397,7 @@ static ADDRESS_MAP_START( readport, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(pang_gfxctrl_w) /* Palette bank, layer enable, coin counters, more */
AM_RANGE(0x01, 0x01) AM_WRITE(input_w)
AM_RANGE(0x02, 0x02) AM_WRITE(pang_bankswitch_w) /* Code bank register */
@@ -425,7 +425,7 @@ static ADDRESS_MAP_START( spangb_memmap, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( spangb_portmap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x02) AM_READ(input_r) /* Super Pang needs a kludge to initialize EEPROM. */
AM_RANGE(0x00, 0x00) AM_WRITE(pang_gfxctrl_w) /* Palette bank, layer enable, coin counters, more */
AM_RANGE(0x02, 0x02) AM_WRITE(pang_bankswitch_w) /* Code bank register */
@@ -457,7 +457,7 @@ static ADDRESS_MAP_START( spangb_sound_memmap, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( spangb_sound_portmap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
ADDRESS_MAP_END
/**** Monsters World ****/
@@ -491,7 +491,7 @@ extern WRITE8_HANDLER( mstworld_gfxctrl_w );
extern WRITE8_HANDLER( mstworld_video_bank_w );
static ADDRESS_MAP_START( mstworld_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(input_port_1_r) /* coins */
AM_RANGE(0x01, 0x01) AM_READ(input_port_2_r) /* p1 */
AM_RANGE(0x02, 0x02) AM_READ(input_port_3_r) /* p2 */
@@ -502,7 +502,7 @@ static ADDRESS_MAP_START( mstworld_readport, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( mstworld_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(mstworld_gfxctrl_w) /* Palette bank, layer enable, coin counters, more */
AM_RANGE(0x02, 0x02) AM_WRITE(pang_bankswitch_w) /* Code bank register */
AM_RANGE(0x03, 0x03) AM_WRITE(mstworld_sound_w) /* write to sound cpu */
diff --git a/src/mame/drivers/mjkjidai.c b/src/mame/drivers/mjkjidai.c
index 54b4a67a8ac..90323728999 100644
--- a/src/mame/drivers/mjkjidai.c
+++ b/src/mame/drivers/mjkjidai.c
@@ -172,7 +172,7 @@ static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(keyboard_r)
AM_RANGE(0x01, 0x01) AM_READ(MRA8_NOP) // ???
AM_RANGE(0x02, 0x02) AM_READ(input_port_2_r)
@@ -181,7 +181,7 @@ static ADDRESS_MAP_START( readport, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x01, 0x02) AM_WRITE(keyboard_select_w)
AM_RANGE(0x10, 0x10) AM_WRITE(mjkjidai_ctrl_w) // rom bank, coin counter, flip screen etc
AM_RANGE(0x20, 0x20) AM_WRITE(SN76496_0_w)
diff --git a/src/mame/drivers/mjsister.c b/src/mame/drivers/mjsister.c
index b4350c3b77c..4e2b6036488 100644
--- a/src/mame/drivers/mjsister.c
+++ b/src/mame/drivers/mjsister.c
@@ -162,14 +162,14 @@ static ADDRESS_MAP_START( mjsister_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( mjsister_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x11, 0x11) AM_READ(AY8910_read_port_0_r)
AM_RANGE(0x20, 0x20) AM_READ(mjsister_keys_r)
AM_RANGE(0x21, 0x21) AM_READ(input_port_2_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( mjsister_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_WRITE(MWA8_NOP) /* HD46505? */
AM_RANGE(0x10, 0x10) AM_WRITE(AY8910_control_port_0_w)
AM_RANGE(0x12, 0x12) AM_WRITE(AY8910_write_port_0_w)
diff --git a/src/mame/drivers/model1.c b/src/mame/drivers/model1.c
index 975480a9fcf..e9af012361f 100644
--- a/src/mame/drivers/model1.c
+++ b/src/mame/drivers/model1.c
@@ -658,7 +658,7 @@ extern WRITE16_HANDLER( model1_tgp_vr_adr_w );
extern READ16_HANDLER( model1_vr_tgp_ram_r );
extern WRITE16_HANDLER( model1_vr_tgp_ram_w );
extern void model1_vr_tgp_reset( void );
-ADDRESS_MAP_EXTERN( model1_vr_tgp_map );
+ADDRESS_MAP_EXTERN( model1_vr_tgp_map, 32 );
static int model1_sound_irq;
diff --git a/src/mame/drivers/mogura.c b/src/mame/drivers/mogura.c
index 1130b992628..0c3fce63026 100644
--- a/src/mame/drivers/mogura.c
+++ b/src/mame/drivers/mogura.c
@@ -87,7 +87,7 @@ static WRITE8_HANDLER( mogura_tileram_w )
static ADDRESS_MAP_START( readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x08, 0x08) AM_READ(input_port_0_r)
AM_RANGE(0x0c, 0x0c) AM_READ(input_port_1_r)
AM_RANGE(0x0d, 0x0d) AM_READ(input_port_2_r)
@@ -105,7 +105,7 @@ static WRITE8_HANDLER(dac_w)
static ADDRESS_MAP_START( writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(MWA8_NOP) // ??
AM_RANGE(0x14, 0x14) AM_WRITE(dac_w) /* 4 bit DAC x 2. MSB = left, LSB = right */
ADDRESS_MAP_END
diff --git a/src/mame/drivers/mosaic.c b/src/mame/drivers/mosaic.c
index 722d3eec523..d007bedd90e 100644
--- a/src/mame/drivers/mosaic.c
+++ b/src/mame/drivers/mosaic.c
@@ -127,7 +127,7 @@ static ADDRESS_MAP_START( gfire2_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x30, 0x30) AM_READ(MRA8_NOP) /* Z180 internal registers */
AM_RANGE(0x70, 0x70) AM_READ(YM2203_status_port_0_r)
AM_RANGE(0x71, 0x71) AM_READ(YM2203_read_port_0_r)
@@ -137,7 +137,7 @@ static ADDRESS_MAP_START( readport, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x3f) AM_WRITE(MWA8_NOP) /* Z180 internal registers */
AM_RANGE(0x70, 0x70) AM_WRITE(YM2203_control_port_0_w)
AM_RANGE(0x71, 0x71) AM_WRITE(YM2203_write_port_0_w)
@@ -145,7 +145,7 @@ static ADDRESS_MAP_START( writeport, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( gfire2_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x30, 0x30) AM_READ(MRA8_NOP) /* Z180 internal registers */
AM_RANGE(0x70, 0x70) AM_READ(YM2203_status_port_0_r)
AM_RANGE(0x71, 0x71) AM_READ(YM2203_read_port_0_r)
@@ -155,7 +155,7 @@ static ADDRESS_MAP_START( gfire2_readport, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( gfire2_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x3f) AM_WRITE(MWA8_NOP) /* Z180 internal registers */
AM_RANGE(0x70, 0x70) AM_WRITE(YM2203_control_port_0_w)
AM_RANGE(0x71, 0x71) AM_WRITE(YM2203_write_port_0_w)
diff --git a/src/mame/drivers/mouser.c b/src/mame/drivers/mouser.c
index 9db89a9d562..9b45c17e105 100644
--- a/src/mame/drivers/mouser.c
+++ b/src/mame/drivers/mouser.c
@@ -93,11 +93,11 @@ static ADDRESS_MAP_START( writemem2, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( readport2, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport2, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(AY8910_write_port_0_w)
AM_RANGE(0x01, 0x01) AM_WRITE(AY8910_control_port_0_w)
AM_RANGE(0x80, 0x80) AM_WRITE(AY8910_write_port_1_w)
diff --git a/src/mame/drivers/mquake.c b/src/mame/drivers/mquake.c
index d56ee673650..8683dacd9c5 100644
--- a/src/mame/drivers/mquake.c
+++ b/src/mame/drivers/mquake.c
@@ -149,7 +149,7 @@ static WRITE16_HANDLER( coin_chip_w )
*************************************/
static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x000000, 0x07ffff) AM_RAMBANK(1) AM_BASE(&amiga_chip_ram) AM_SIZE(&amiga_chip_ram_size)
AM_RANGE(0xbfd000, 0xbfefff) AM_READWRITE(amiga_cia_r, amiga_cia_w)
AM_RANGE(0xc00000, 0xdfffff) AM_READWRITE(amiga_custom_r, amiga_custom_w) AM_BASE(&amiga_custom_regs)
diff --git a/src/mame/drivers/mrflea.c b/src/mame/drivers/mrflea.c
index a303b57483d..90cd7281ca6 100644
--- a/src/mame/drivers/mrflea.c
+++ b/src/mame/drivers/mrflea.c
@@ -171,13 +171,13 @@ static READ8_HANDLER( mrflea_interrupt_type_r ){
/*******************************************************/
static ADDRESS_MAP_START( readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x41, 0x41) AM_READ(mrflea_main_r)
AM_RANGE(0x42, 0x42) AM_READ(mrflea_main_status_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(MWA8_NOP) /* watchdog? */
AM_RANGE(0x40, 0x40) AM_WRITE(mrflea_io_w)
AM_RANGE(0x43, 0x43) AM_WRITE(MWA8_NOP) /* 0xa6,0x0d,0x05 */
@@ -227,7 +227,7 @@ static READ8_HANDLER( mrflea_input3_r ){
/*******************************************************/
static ADDRESS_MAP_START( readport_io, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x10) AM_READ(mrflea_interrupt_type_r) /* ? */
AM_RANGE(0x20, 0x20) AM_READ(mrflea_io_r)
AM_RANGE(0x22, 0x22) AM_READ(mrflea_io_status_r)
@@ -256,7 +256,7 @@ static WRITE8_HANDLER( mrflea_data3_w ){
}
static ADDRESS_MAP_START( writeport_io, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(MWA8_NOP) /* watchdog */
AM_RANGE(0x10, 0x10) AM_WRITE(MWA8_NOP) /* irq ACK */
AM_RANGE(0x11, 0x11) AM_WRITE(MWA8_NOP) /* 0x83,0x00,0xfc */
diff --git a/src/mame/drivers/mrjong.c b/src/mame/drivers/mrjong.c
index 876a94db1b2..36ce7181edc 100644
--- a/src/mame/drivers/mrjong.c
+++ b/src/mame/drivers/mrjong.c
@@ -84,7 +84,7 @@ static READ8_HANDLER( io_0x03_r )
}
static ADDRESS_MAP_START( readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(input_port_0_r) // Input 1
AM_RANGE(0x01, 0x01) AM_READ(input_port_1_r) // Input 2
AM_RANGE(0x02, 0x02) AM_READ(input_port_2_r) // DipSw 1
@@ -92,7 +92,7 @@ static ADDRESS_MAP_START( readport, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(io_0x00_w)
AM_RANGE(0x01, 0x01) AM_WRITE(SN76496_0_w)
AM_RANGE(0x02, 0x02) AM_WRITE(SN76496_1_w)
diff --git a/src/mame/drivers/msisaac.c b/src/mame/drivers/msisaac.c
index 4c15667cf5b..4e1e2150601 100644
--- a/src/mame/drivers/msisaac.c
+++ b/src/mame/drivers/msisaac.c
@@ -346,7 +346,7 @@ ADDRESS_MAP_END
#ifdef USE_MCU
static ADDRESS_MAP_START( mcu_readmem, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(11) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7ff)
AM_RANGE(0x0000, 0x0000) AM_READ(buggychl_68705_portA_r)
AM_RANGE(0x0001, 0x0001) AM_READ(buggychl_68705_portB_r)
AM_RANGE(0x0002, 0x0002) AM_READ(buggychl_68705_portC_r)
@@ -355,7 +355,7 @@ static ADDRESS_MAP_START( mcu_readmem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( mcu_writemem, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(11) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7ff)
AM_RANGE(0x0000, 0x0000) AM_WRITE(buggychl_68705_portA_w)
AM_RANGE(0x0001, 0x0001) AM_WRITE(buggychl_68705_portB_w)
AM_RANGE(0x0002, 0x0002) AM_WRITE(buggychl_68705_portC_w)
diff --git a/src/mame/drivers/mw8080bw.c b/src/mame/drivers/mw8080bw.c
index 300a7306392..1ecae2a982e 100644
--- a/src/mame/drivers/mw8080bw.c
+++ b/src/mame/drivers/mw8080bw.c
@@ -206,7 +206,7 @@ size_t mw8080bw_ram_size;
static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(15) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x1fff) AM_ROM AM_WRITENOP
AM_RANGE(0x2000, 0x3fff) AM_MIRROR(0x4000) AM_RAM AM_BASE(&mw8080bw_ram) AM_SIZE(&mw8080bw_ram_size)
AM_RANGE(0x4000, 0x5fff) AM_ROM AM_WRITENOP
@@ -325,7 +325,7 @@ static CUSTOM_INPUT( seawolf_erase_input_r )
static ADDRESS_MAP_START( seawolf_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(3) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7)
AM_RANGE(0x00, 0x00) AM_MIRROR(0x04) AM_READ(mw8080bw_shift_result_rev_r)
AM_RANGE(0x01, 0x01) AM_MIRROR(0x04) AM_READ(input_port_0_r)
AM_RANGE(0x02, 0x02) AM_MIRROR(0x04) AM_READ(input_port_1_r)
@@ -431,7 +431,7 @@ static WRITE8_HANDLER( gunfight_io_w )
static ADDRESS_MAP_START( gunfight_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(3) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7)
AM_RANGE(0x00, 0x00) AM_MIRROR(0x04) AM_READ(input_port_0_r)
AM_RANGE(0x01, 0x01) AM_MIRROR(0x04) AM_READ(input_port_1_r)
AM_RANGE(0x02, 0x02) AM_MIRROR(0x04) AM_READ(input_port_2_r)
@@ -620,7 +620,7 @@ static WRITE8_HANDLER( tornbase_io_w )
static ADDRESS_MAP_START( tornbase_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(3) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7)
AM_RANGE(0x00, 0x00) AM_MIRROR(0x04) AM_READ(input_port_0_r)
AM_RANGE(0x01, 0x01) AM_MIRROR(0x04) AM_READ(input_port_1_r)
AM_RANGE(0x02, 0x02) AM_MIRROR(0x04) AM_READ(input_port_2_r)
@@ -738,7 +738,7 @@ MACHINE_DRIVER_END
*************************************/
static ADDRESS_MAP_START( zzzap_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(3) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7)
AM_RANGE(0x00, 0x00) AM_MIRROR(0x04) AM_READ(input_port_0_r)
AM_RANGE(0x01, 0x01) AM_MIRROR(0x04) AM_READ(input_port_1_r)
AM_RANGE(0x02, 0x02) AM_MIRROR(0x04) AM_READ(input_port_2_r)
@@ -903,7 +903,7 @@ static WRITE8_HANDLER( maze_io_w )
static ADDRESS_MAP_START( maze_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(2) )
+ ADDRESS_MAP_GLOBAL_MASK(0x3)
AM_RANGE(0x00, 0x00) AM_READ(input_port_0_r)
AM_RANGE(0x01, 0x01) AM_READ(input_port_1_r)
@@ -972,7 +972,7 @@ static MACHINE_START( boothill )
static ADDRESS_MAP_START( boothill_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(3) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7)
AM_RANGE(0x00, 0x00) AM_MIRROR(0x04) AM_READ(input_port_0_r)
AM_RANGE(0x01, 0x01) AM_MIRROR(0x04) AM_READ(input_port_1_r)
AM_RANGE(0x02, 0x02) AM_MIRROR(0x04) AM_READ(input_port_2_r)
@@ -1062,7 +1062,7 @@ static WRITE8_HANDLER( checkmat_io_w )
static ADDRESS_MAP_START( checkmat_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(2) )
+ ADDRESS_MAP_GLOBAL_MASK(0x3)
AM_RANGE(0x00, 0x00) AM_READ(input_port_0_r)
AM_RANGE(0x01, 0x01) AM_READ(input_port_1_r)
AM_RANGE(0x02, 0x02) AM_READ(input_port_2_r)
@@ -1204,7 +1204,7 @@ static CUSTOM_INPUT( desertgu_dip_sw_0_1_r )
static ADDRESS_MAP_START( desertgu_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(3) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7)
AM_RANGE(0x00, 0x00) AM_MIRROR(0x04) AM_READ(mw8080bw_shift_result_rev_r)
AM_RANGE(0x01, 0x01) AM_MIRROR(0x04) AM_READ(input_port_0_r)
AM_RANGE(0x02, 0x02) AM_MIRROR(0x04) AM_READ(input_port_1_r)
@@ -1324,7 +1324,7 @@ static CUSTOM_INPUT( dplay_pitch_right_input_r )
static ADDRESS_MAP_START( dplay_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(3) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7)
AM_RANGE(0x00, 0x00) AM_MIRROR(0x04) AM_READ(input_port_0_r)
AM_RANGE(0x01, 0x01) AM_MIRROR(0x04) AM_READ(input_port_1_r)
AM_RANGE(0x02, 0x02) AM_MIRROR(0x04) AM_READ(input_port_2_r)
@@ -1498,7 +1498,7 @@ static MACHINE_START( gmissile )
static ADDRESS_MAP_START( gmissile_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(3) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7)
AM_RANGE(0x00, 0x00) AM_MIRROR(0x04) AM_READ(input_port_0_r)
AM_RANGE(0x01, 0x01) AM_MIRROR(0x04) AM_READ(input_port_1_r)
AM_RANGE(0x02, 0x02) AM_MIRROR(0x04) AM_READ(input_port_2_r)
@@ -1590,7 +1590,7 @@ static MACHINE_START( m4 )
static ADDRESS_MAP_START( m4_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(3) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7)
AM_RANGE(0x00, 0x00) AM_MIRROR(0x04) AM_READ(input_port_0_r)
AM_RANGE(0x01, 0x01) AM_MIRROR(0x04) AM_READ(input_port_1_r)
AM_RANGE(0x02, 0x02) AM_MIRROR(0x04) AM_READ(input_port_2_r)
@@ -1710,7 +1710,7 @@ static CUSTOM_INPUT( clowns_controller_r )
static ADDRESS_MAP_START( clowns_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(3) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7)
AM_RANGE(0x00, 0x00) AM_MIRROR(0x04) AM_READ(input_port_0_r)
AM_RANGE(0x01, 0x01) AM_MIRROR(0x04) AM_READ(input_port_1_r)
AM_RANGE(0x02, 0x02) AM_MIRROR(0x04) AM_READ(input_port_2_r)
@@ -1845,7 +1845,7 @@ MACHINE_DRIVER_END
*************************************/
static ADDRESS_MAP_START( shuffle_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(4) ) /* yes, 4, and no mirroring on the read handlers */
+ ADDRESS_MAP_GLOBAL_MASK(0xf) /* yes, 4, and no mirroring on the read handlers */
AM_RANGE(0x01, 0x01) AM_READ(mb14241_0_shift_result_r)
AM_RANGE(0x02, 0x02) AM_READ(input_port_0_r)
AM_RANGE(0x03, 0x03) AM_READ(mw8080bw_shift_result_rev_r)
@@ -1923,7 +1923,7 @@ MACHINE_DRIVER_END
*************************************/
static ADDRESS_MAP_START( dogpatch_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(3) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7)
AM_RANGE(0x00, 0x00) AM_MIRROR(0x04) AM_READ(input_port_0_r)
AM_RANGE(0x01, 0x01) AM_MIRROR(0x04) AM_READ(input_port_1_r)
AM_RANGE(0x02, 0x02) AM_MIRROR(0x04) AM_READ(input_port_2_r)
@@ -2132,7 +2132,7 @@ static WRITE8_HANDLER( spcenctr_io_w )
static ADDRESS_MAP_START( spcenctr_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_MIRROR(0xfc) AM_READ(input_port_0_r)
AM_RANGE(0x01, 0x01) AM_MIRROR(0xfc) AM_READ(input_port_1_r)
AM_RANGE(0x02, 0x02) AM_MIRROR(0xfc) AM_READ(input_port_2_r)
@@ -2243,7 +2243,7 @@ void phantom2_set_cloud_counter(UINT16 data)
static ADDRESS_MAP_START( phantom2_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(3) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7)
AM_RANGE(0x00, 0x00) AM_MIRROR(0x04) AM_READ(mw8080bw_shift_result_rev_r)
AM_RANGE(0x01, 0x01) AM_MIRROR(0x04) AM_READ(input_port_0_r)
AM_RANGE(0x02, 0x02) AM_MIRROR(0x04) AM_READ(input_port_1_r)
@@ -2366,7 +2366,7 @@ static WRITE8_HANDLER( bowler_lights_2_w )
static ADDRESS_MAP_START( bowler_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(4) ) /* no masking on the reads, all 4 bits are decoded */
+ ADDRESS_MAP_GLOBAL_MASK(0xf) /* no masking on the reads, all 4 bits are decoded */
AM_RANGE(0x01, 0x01) AM_READ(bowler_shift_result_r)
AM_RANGE(0x02, 0x02) AM_READ(input_port_0_r)
AM_RANGE(0x03, 0x03) AM_READ(mw8080bw_shift_result_rev_r)
@@ -2560,7 +2560,7 @@ int invaders_is_cabinet_cocktail()
static ADDRESS_MAP_START( invaders_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(3) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7)
AM_RANGE(0x00, 0x00) AM_MIRROR(0x04) AM_READ(input_port_0_r)
AM_RANGE(0x01, 0x01) AM_MIRROR(0x04) AM_READ(input_port_1_r)
AM_RANGE(0x02, 0x02) AM_MIRROR(0x04) AM_READ(input_port_2_r)
@@ -2690,7 +2690,7 @@ static CUSTOM_INPUT( blueshrk_coin_input_r )
static ADDRESS_MAP_START( blueshrk_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(3) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7)
AM_RANGE(0x00, 0x00) AM_MIRROR(0x04) AM_READ(mw8080bw_shift_result_rev_r)
AM_RANGE(0x01, 0x01) AM_MIRROR(0x04) AM_READ(input_port_0_r)
AM_RANGE(0x02, 0x02) AM_MIRROR(0x04) AM_READ(input_port_1_r)
@@ -2768,7 +2768,7 @@ static UINT32 invad2ct_coin_input_r(void *param)
static ADDRESS_MAP_START( invad2ct_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(3) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7)
AM_RANGE(0x00, 0x00) AM_MIRROR(0x04) AM_READ(input_port_0_r)
AM_RANGE(0x01, 0x01) AM_MIRROR(0x04) AM_READ(input_port_1_r)
AM_RANGE(0x02, 0x02) AM_MIRROR(0x04) AM_READ(input_port_2_r)
diff --git a/src/mame/drivers/mystston.c b/src/mame/drivers/mystston.c
index 69480c3ccba..5bd08ee2077 100644
--- a/src/mame/drivers/mystston.c
+++ b/src/mame/drivers/mystston.c
@@ -110,10 +110,10 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x07e0, 0x0fff) AM_RAM
AM_RANGE(0x1000, 0x17ff) AM_RAM AM_BASE_MEMBER(mystston_state, fg_videoram)
AM_RANGE(0x1800, 0x1fff) AM_RAM AM_BASE_MEMBER(mystston_state, bg_videoram)
- AM_RANGE(0x2000, 0x2000) AM_MIRROR(0x1f8f) AM_READWRITE(port_tag_to_handler8("IN0"), mystston_video_control_w) AM_BASE_MEMBER(mystston_state, video_control)
- AM_RANGE(0x2010, 0x2010) AM_MIRROR(0x1f8f) AM_READWRITE(port_tag_to_handler8("IN1"), irq_clear_w)
- AM_RANGE(0x2020, 0x2020) AM_MIRROR(0x1f8f) AM_READWRITE(port_tag_to_handler8("DSW0"), MWA8_RAM) AM_BASE_MEMBER(mystston_state, scroll)
- AM_RANGE(0x2030, 0x2030) AM_MIRROR(0x1f8f) AM_READWRITE(port_tag_to_handler8("DSW1"), MWA8_RAM) AM_BASE_MEMBER(mystston_state, ay8910_data)
+ 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(MWA8_RAM) AM_BASE_MEMBER(mystston_state, scroll)
+ AM_RANGE(0x2030, 0x2030) AM_MIRROR(0x1f8f) AM_READ_PORT("DSW1") AM_WRITE(MWA8_RAM) AM_BASE_MEMBER(mystston_state, ay8910_data)
AM_RANGE(0x2040, 0x2040) AM_MIRROR(0x1f8f) AM_READWRITE(MRA8_NOP, 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)
diff --git a/src/mame/drivers/n8080.c b/src/mame/drivers/n8080.c
index 04613ebd885..f690903234d 100644
--- a/src/mame/drivers/n8080.c
+++ b/src/mame/drivers/n8080.c
@@ -44,7 +44,7 @@ static INTERRUPT_GEN( interrupt )
static ADDRESS_MAP_START( main_cpu_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(15) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x7fff) AM_RAM AM_BASE(&videoram)
ADDRESS_MAP_END
@@ -58,7 +58,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( main_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(3) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7)
AM_RANGE(0x00, 0x00) AM_READ(input_port_0_r)
AM_RANGE(0x01, 0x01) AM_READ(input_port_1_r)
AM_RANGE(0x02, 0x02) AM_READ(input_port_2_r)
diff --git a/src/mame/drivers/nbmj8688.c b/src/mame/drivers/nbmj8688.c
index 941044c258f..6a7867ebca7 100644
--- a/src/mame/drivers/nbmj8688.c
+++ b/src/mame/drivers/nbmj8688.c
@@ -341,7 +341,7 @@ static READ8_HANDLER( ff_r )
}
static ADDRESS_MAP_START( readport_secolove, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x7f) AM_READ(nb1413m3_sndrom_r)
AM_RANGE(0x81, 0x81) AM_READ(AY8910_read_port_0_r)
AM_RANGE(0x90, 0x90) AM_READ(nb1413m3_inputport0_r)
@@ -353,7 +353,7 @@ static ADDRESS_MAP_START( readport_secolove, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport_secolove, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(nb1413m3_nmi_clock_w)
AM_RANGE(0x82, 0x82) AM_WRITE(AY8910_write_port_0_w)
AM_RANGE(0x83, 0x83) AM_WRITE(AY8910_control_port_0_w)
@@ -367,7 +367,7 @@ static ADDRESS_MAP_START( writeport_secolove, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport_crystalg, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(nb1413m3_nmi_clock_w)
AM_RANGE(0x82, 0x82) AM_WRITE(AY8910_write_port_0_w)
AM_RANGE(0x83, 0x83) AM_WRITE(AY8910_control_port_0_w)
@@ -382,7 +382,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( readport_otonano, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x7f) AM_READ(nb1413m3_sndrom_r)
AM_RANGE(0x80, 0x80) AM_READ(YM3812_status_port_0_r)
AM_RANGE(0x90, 0x90) AM_READ(nb1413m3_inputport0_r)
@@ -394,7 +394,7 @@ static ADDRESS_MAP_START( readport_otonano, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport_otonano, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(nb1413m3_nmi_clock_w)
AM_RANGE(0x20, 0x3f) AM_WRITE(nbmj8688_clut_w)
AM_RANGE(0x50, 0x50) AM_WRITE(mjsikaku_romsel_w)
@@ -410,7 +410,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( readport_kaguya, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x7f) AM_READ(nb1413m3_sndrom_r)
AM_RANGE(0x81, 0x81) AM_READ(AY8910_read_port_0_r)
AM_RANGE(0x90, 0x90) AM_READ(nb1413m3_inputport0_r)
@@ -422,7 +422,7 @@ static ADDRESS_MAP_START( readport_kaguya, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport_kaguya, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(nb1413m3_nmi_clock_w)
AM_RANGE(0x20, 0x3f) AM_WRITE(nbmj8688_clut_w)
AM_RANGE(0x50, 0x50) AM_WRITE(mjsikaku_romsel_w)
@@ -438,7 +438,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport_iemoto, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(nb1413m3_nmi_clock_w)
AM_RANGE(0x20, 0x3f) AM_WRITE(nbmj8688_clut_w)
AM_RANGE(0x10, 0x10) AM_WRITE(nb1413m3_sndrombank2_w)
@@ -455,7 +455,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport_seiha, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(nb1413m3_nmi_clock_w)
AM_RANGE(0x10, 0x10) AM_WRITE(nb1413m3_sndrombank2_w)
AM_RANGE(0x20, 0x3f) AM_WRITE(nbmj8688_clut_w)
@@ -472,7 +472,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport_p16bit_LCD, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(nb1413m3_nmi_clock_w)
AM_RANGE(0x42, 0x42) AM_WRITE(nbmj8688_HD61830B_0_data_w)
AM_RANGE(0x43, 0x43) AM_WRITE(nbmj8688_HD61830B_0_instr_w)
@@ -493,7 +493,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( readport_mjsikaku, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x7f) AM_READ(nb1413m3_sndrom_r)
AM_RANGE(0x90, 0x90) AM_READ(nb1413m3_inputport0_r)
AM_RANGE(0xa0, 0xa0) AM_READ(nb1413m3_inputport1_r)
@@ -504,7 +504,7 @@ static ADDRESS_MAP_START( readport_mjsikaku, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport_mjsikaku, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(nb1413m3_nmi_clock_w)
AM_RANGE(0x10, 0x10) AM_WRITE(nb1413m3_sndrombank2_w)
AM_RANGE(0x20, 0x3f) AM_WRITE(nbmj8688_clut_w)
@@ -521,7 +521,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( readport_mmsikaku, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x7f) AM_READ(nb1413m3_sndrom_r)
AM_RANGE(0x81, 0x81) AM_READ(AY8910_read_port_0_r)
AM_RANGE(0x90, 0x90) AM_READ(nb1413m3_inputport0_r)
@@ -533,7 +533,7 @@ static ADDRESS_MAP_START( readport_mmsikaku, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport_mmsikaku, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(nb1413m3_nmi_clock_w)
AM_RANGE(0x10, 0x10) AM_WRITE(nb1413m3_sndrombank2_w)
AM_RANGE(0x20, 0x3f) AM_WRITE(nbmj8688_clut_w)
diff --git a/src/mame/drivers/nbmj8891.c b/src/mame/drivers/nbmj8891.c
index 8cde95dc8bc..2ea2474f0f1 100644
--- a/src/mame/drivers/nbmj8891.c
+++ b/src/mame/drivers/nbmj8891.c
@@ -509,7 +509,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( readport_gionbana, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x7f) AM_READ(nb1413m3_sndrom_r)
AM_RANGE(0x90, 0x90) AM_READ(nb1413m3_inputport0_r)
AM_RANGE(0xa0, 0xa0) AM_READ(nb1413m3_inputport1_r)
@@ -520,7 +520,7 @@ static ADDRESS_MAP_START( readport_gionbana, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport_gionbana, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(nb1413m3_nmi_clock_w)
AM_RANGE(0x20, 0x27) AM_WRITE(nbmj8891_blitter_w)
AM_RANGE(0x40, 0x40) AM_WRITE(nbmj8891_clutsel_w)
@@ -537,7 +537,7 @@ static ADDRESS_MAP_START( writeport_gionbana, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport_mgion, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(nb1413m3_nmi_clock_w)
AM_RANGE(0x30, 0x37) AM_WRITE(nbmj8891_blitter_w)
AM_RANGE(0x40, 0x40) AM_WRITE(nbmj8891_clutsel_w)
@@ -554,7 +554,7 @@ static ADDRESS_MAP_START( writeport_mgion, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( readport_omotesnd, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x7f) AM_READ(nb1413m3_sndrom_r)
AM_RANGE(0x81, 0x81) AM_READ(AY8910_read_port_0_r)
AM_RANGE(0x90, 0x90) AM_READ(nb1413m3_inputport0_r)
@@ -567,7 +567,7 @@ static ADDRESS_MAP_START( readport_omotesnd, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport_omotesnd, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x07) AM_WRITE(nbmj8891_blitter_w)
AM_RANGE(0x30, 0x30) AM_WRITE(nbmj8891_vramsel_w)
AM_RANGE(0x10, 0x10) AM_WRITE(nbmj8891_romsel_w)
@@ -586,7 +586,7 @@ AM_RANGE(0xc0, 0xc0) AM_WRITE(MWA8_NOP)
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport_hanamomo, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(nb1413m3_nmi_clock_w)
AM_RANGE(0x30, 0x37) AM_WRITE(nbmj8891_blitter_w)
AM_RANGE(0x40, 0x40) AM_WRITE(nbmj8891_clutsel_w)
@@ -603,7 +603,7 @@ static ADDRESS_MAP_START( writeport_hanamomo, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport_msjiken, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(nb1413m3_nmi_clock_w)
AM_RANGE(0x40, 0x40) AM_WRITE(nbmj8891_clutsel_w)
AM_RANGE(0x50, 0x57) AM_WRITE(nbmj8891_blitter_w)
@@ -620,7 +620,7 @@ static ADDRESS_MAP_START( writeport_msjiken, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport_scandal, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x40, 0x4f) AM_WRITE(nbmj8891_clut_w)
AM_RANGE(0x00, 0x07) AM_WRITE(nbmj8891_blitter_w)
AM_RANGE(0x10, 0x10) AM_WRITE(nbmj8891_romsel_w)
@@ -637,7 +637,7 @@ static ADDRESS_MAP_START( writeport_scandal, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( readport_scandalm, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x7f) AM_READ(nb1413m3_sndrom_r)
AM_RANGE(0x81, 0x81) AM_READ(AY8910_read_port_0_r)
AM_RANGE(0x90, 0x90) AM_READ(nb1413m3_inputport0_r)
@@ -649,7 +649,7 @@ static ADDRESS_MAP_START( readport_scandalm, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport_scandalm, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x40, 0x4f) AM_WRITE(nbmj8891_clut_w)
AM_RANGE(0x00, 0x07) AM_WRITE(nbmj8891_blitter_w)
AM_RANGE(0x10, 0x10) AM_WRITE(nbmj8891_romsel_w)
@@ -666,7 +666,7 @@ static ADDRESS_MAP_START( writeport_scandalm, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport_bananadr, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x40, 0x4f) AM_WRITE(nbmj8891_clut_w)
AM_RANGE(0x00, 0x07) AM_WRITE(nbmj8891_blitter_w)
AM_RANGE(0x10, 0x10) AM_WRITE(nbmj8891_romsel_w)
@@ -684,7 +684,7 @@ static ADDRESS_MAP_START( writeport_bananadr, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( readport_lovehous, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x7f) AM_READ(nb1413m3_sndrom_r)
AM_RANGE(0x90, 0x90) AM_READ(nb1413m3_inputport0_r)
AM_RANGE(0xa0, 0xa0) AM_READ(nb1413m3_inputport1_r)
@@ -695,7 +695,7 @@ static ADDRESS_MAP_START( readport_lovehous, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport_lovehous, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(nb1413m3_nmi_clock_w)
AM_RANGE(0x40, 0x40) AM_WRITE(nbmj8891_clutsel_w)
AM_RANGE(0x50, 0x57) AM_WRITE(nbmj8891_blitter_w)
@@ -712,7 +712,7 @@ static ADDRESS_MAP_START( writeport_lovehous, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( readport_maiko, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x7f) AM_READ(nb1413m3_sndrom_r)
AM_RANGE(0x90, 0x90) AM_READ(nb1413m3_inputport0_r)
AM_RANGE(0xa0, 0xa0) AM_READ(nb1413m3_inputport1_r)
@@ -723,7 +723,7 @@ static ADDRESS_MAP_START( readport_maiko, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport_maiko, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(nb1413m3_nmi_clock_w)
AM_RANGE(0x40, 0x40) AM_WRITE(nbmj8891_clutsel_w)
AM_RANGE(0x50, 0x57) AM_WRITE(nbmj8891_blitter_w)
@@ -740,7 +740,7 @@ static ADDRESS_MAP_START( writeport_maiko, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( readport_taiwanmb, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x7f) AM_READ(nb1413m3_sndrom_r)
AM_RANGE(0x81, 0x81) AM_READ(AY8910_read_port_0_r)
AM_RANGE(0x90, 0x90) AM_READ(nb1413m3_inputport0_r)
@@ -754,7 +754,7 @@ static ADDRESS_MAP_START( readport_taiwanmb, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport_taiwanmb, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x82, 0x82) AM_WRITE(AY8910_write_port_0_w)
AM_RANGE(0x83, 0x83) AM_WRITE(AY8910_control_port_0_w)
// AM_RANGE(0x90, 0x90) AM_WRITE(MWA8_NOP) // ?
diff --git a/src/mame/drivers/nbmj8991.c b/src/mame/drivers/nbmj8991.c
index a79fbd473a0..3c4284134ff 100644
--- a/src/mame/drivers/nbmj8991.c
+++ b/src/mame/drivers/nbmj8991.c
@@ -329,7 +329,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( readport_galkoku, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x7f) AM_READ(nb1413m3_sndrom_r)
AM_RANGE(0x90, 0x90) AM_READ(nb1413m3_inputport0_r)
AM_RANGE(0xa0, 0xa0) AM_READ(nb1413m3_inputport1_r)
@@ -340,7 +340,7 @@ static ADDRESS_MAP_START( readport_galkoku, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport_galkoku, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x7f) AM_WRITE(nbmj8991_blitter_w)
AM_RANGE(0x80, 0x80) AM_WRITE(YM3812_control_port_0_w)
AM_RANGE(0x81, 0x81) AM_WRITE(YM3812_write_port_0_w)
@@ -353,7 +353,7 @@ static ADDRESS_MAP_START( writeport_galkoku, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( readport_hyouban, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x7f) AM_READ(nb1413m3_sndrom_r)
AM_RANGE(0x81, 0x81) AM_READ(AY8910_read_port_0_r)
AM_RANGE(0x90, 0x90) AM_READ(nb1413m3_inputport0_r)
@@ -365,7 +365,7 @@ static ADDRESS_MAP_START( readport_hyouban, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport_hyouban, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x7f) AM_WRITE(nbmj8991_blitter_w)
AM_RANGE(0x82, 0x82) AM_WRITE(AY8910_write_port_0_w)
AM_RANGE(0x83, 0x83) AM_WRITE(AY8910_control_port_0_w)
@@ -379,7 +379,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( readport_pstadium, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x90, 0x90) AM_READ(nb1413m3_inputport0_r)
AM_RANGE(0xa0, 0xa0) AM_READ(nb1413m3_inputport1_r)
AM_RANGE(0xb0, 0xb0) AM_READ(nb1413m3_inputport2_r)
@@ -389,7 +389,7 @@ static ADDRESS_MAP_START( readport_pstadium, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport_pstadium, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x7f) AM_WRITE(nbmj8991_blitter_w)
AM_RANGE(0x80, 0x80) AM_WRITE(nbmj8991_sound_w)
AM_RANGE(0xa0, 0xa0) AM_WRITE(nb1413m3_inputportsel_w)
@@ -400,7 +400,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport_av2mj1bb, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x7f) AM_WRITE(nbmj8991_blitter_w)
AM_RANGE(0x80, 0x80) AM_WRITE(nbmj8991_sound_w)
AM_RANGE(0xa0, 0xa0) AM_WRITE(nb1413m3_inputportsel_w)
@@ -424,12 +424,12 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_readport_nbmj8991, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(nbmj8991_sound_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_writeport_nbmj8991, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(DAC_0_WRITE)
AM_RANGE(0x02, 0x02) AM_WRITE(DAC_1_WRITE)
AM_RANGE(0x04, 0x04) AM_WRITE(nbmj8991_soundbank_w)
diff --git a/src/mame/drivers/nbmj9195.c b/src/mame/drivers/nbmj9195.c
index c7a4d142c09..71d8a73fe2e 100644
--- a/src/mame/drivers/nbmj9195.c
+++ b/src/mame/drivers/nbmj9195.c
@@ -653,7 +653,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( readport_mjuraden, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x13) AM_READ(z80ctc_0_r)
AM_RANGE(0x50, 0x50) AM_READ(tmpz84c011_0_pa_r)
AM_RANGE(0x51, 0x51) AM_READ(tmpz84c011_0_pb_r)
@@ -670,7 +670,7 @@ static ADDRESS_MAP_START( readport_mjuraden, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport_mjuraden, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x13) AM_WRITE(z80ctc_0_w)
AM_RANGE(0x50, 0x50) AM_WRITE(tmpz84c011_0_pa_w)
AM_RANGE(0x51, 0x51) AM_WRITE(tmpz84c011_0_pb_w)
@@ -695,7 +695,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( readport_koinomp, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x13) AM_READ(z80ctc_0_r)
AM_RANGE(0x50, 0x50) AM_READ(tmpz84c011_0_pa_r)
AM_RANGE(0x51, 0x51) AM_READ(tmpz84c011_0_pb_r)
@@ -713,7 +713,7 @@ static ADDRESS_MAP_START( readport_koinomp, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport_koinomp, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x13) AM_WRITE(z80ctc_0_w)
AM_RANGE(0x50, 0x50) AM_WRITE(tmpz84c011_0_pa_w)
AM_RANGE(0x51, 0x51) AM_WRITE(tmpz84c011_0_pb_w)
@@ -741,7 +741,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( readport_patimono, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x13) AM_READ(z80ctc_0_r)
AM_RANGE(0x50, 0x50) AM_READ(tmpz84c011_0_pa_r)
AM_RANGE(0x51, 0x51) AM_READ(tmpz84c011_0_pb_r)
@@ -759,7 +759,7 @@ static ADDRESS_MAP_START( readport_patimono, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport_patimono, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x13) AM_WRITE(z80ctc_0_w)
AM_RANGE(0x50, 0x50) AM_WRITE(tmpz84c011_0_pa_w)
AM_RANGE(0x51, 0x51) AM_WRITE(tmpz84c011_0_pb_w)
@@ -786,7 +786,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( readport_mmehyou, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x13) AM_READ(z80ctc_0_r)
AM_RANGE(0x50, 0x50) AM_READ(tmpz84c011_0_pa_r)
AM_RANGE(0x51, 0x51) AM_READ(tmpz84c011_0_pb_r)
@@ -803,7 +803,7 @@ static ADDRESS_MAP_START( readport_mmehyou, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport_mmehyou, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x13) AM_WRITE(z80ctc_0_w)
AM_RANGE(0x50, 0x50) AM_WRITE(tmpz84c011_0_pa_w)
AM_RANGE(0x51, 0x51) AM_WRITE(tmpz84c011_0_pb_w)
@@ -828,7 +828,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( readport_gal10ren, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x13) AM_READ(z80ctc_0_r)
AM_RANGE(0x50, 0x50) AM_READ(tmpz84c011_0_pa_r)
AM_RANGE(0x51, 0x51) AM_READ(tmpz84c011_0_pb_r)
@@ -846,7 +846,7 @@ static ADDRESS_MAP_START( readport_gal10ren, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport_gal10ren, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x13) AM_WRITE(z80ctc_0_w)
AM_RANGE(0x50, 0x50) AM_WRITE(tmpz84c011_0_pa_w)
AM_RANGE(0x51, 0x51) AM_WRITE(tmpz84c011_0_pb_w)
@@ -873,7 +873,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( readport_renaiclb, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x13) AM_READ(z80ctc_0_r)
AM_RANGE(0x50, 0x50) AM_READ(tmpz84c011_0_pa_r)
AM_RANGE(0x51, 0x51) AM_READ(tmpz84c011_0_pb_r)
@@ -891,7 +891,7 @@ static ADDRESS_MAP_START( readport_renaiclb, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport_renaiclb, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x13) AM_WRITE(z80ctc_0_w)
AM_RANGE(0x50, 0x50) AM_WRITE(tmpz84c011_0_pa_w)
AM_RANGE(0x51, 0x51) AM_WRITE(tmpz84c011_0_pb_w)
@@ -918,7 +918,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( readport_mjlaman, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x13) AM_READ(z80ctc_0_r)
AM_RANGE(0x50, 0x50) AM_READ(tmpz84c011_0_pa_r)
AM_RANGE(0x51, 0x51) AM_READ(tmpz84c011_0_pb_r)
@@ -936,7 +936,7 @@ static ADDRESS_MAP_START( readport_mjlaman, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport_mjlaman, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x13) AM_WRITE(z80ctc_0_w)
AM_RANGE(0x50, 0x50) AM_WRITE(tmpz84c011_0_pa_w)
AM_RANGE(0x51, 0x51) AM_WRITE(tmpz84c011_0_pb_w)
@@ -963,7 +963,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( readport_mkeibaou, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x13) AM_READ(z80ctc_0_r)
AM_RANGE(0x50, 0x50) AM_READ(tmpz84c011_0_pa_r)
AM_RANGE(0x51, 0x51) AM_READ(tmpz84c011_0_pb_r)
@@ -981,7 +981,7 @@ static ADDRESS_MAP_START( readport_mkeibaou, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport_mkeibaou, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x13) AM_WRITE(z80ctc_0_w)
AM_RANGE(0x50, 0x50) AM_WRITE(tmpz84c011_0_pa_w)
AM_RANGE(0x51, 0x51) AM_WRITE(tmpz84c011_0_pb_w)
@@ -1008,7 +1008,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( readport_pachiten, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x13) AM_READ(z80ctc_0_r)
AM_RANGE(0x50, 0x50) AM_READ(tmpz84c011_0_pa_r)
AM_RANGE(0x51, 0x51) AM_READ(tmpz84c011_0_pb_r)
@@ -1026,7 +1026,7 @@ static ADDRESS_MAP_START( readport_pachiten, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport_pachiten, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x13) AM_WRITE(z80ctc_0_w)
AM_RANGE(0x50, 0x50) AM_WRITE(tmpz84c011_0_pa_w)
AM_RANGE(0x51, 0x51) AM_WRITE(tmpz84c011_0_pb_w)
@@ -1053,7 +1053,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( readport_sailorws, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x13) AM_READ(z80ctc_0_r)
AM_RANGE(0x50, 0x50) AM_READ(tmpz84c011_0_pa_r)
AM_RANGE(0x51, 0x51) AM_READ(tmpz84c011_0_pb_r)
@@ -1071,7 +1071,7 @@ static ADDRESS_MAP_START( readport_sailorws, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport_sailorws, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x13) AM_WRITE(z80ctc_0_w)
AM_RANGE(0x50, 0x50) AM_WRITE(tmpz84c011_0_pa_w)
AM_RANGE(0x51, 0x51) AM_WRITE(tmpz84c011_0_pb_w)
@@ -1098,7 +1098,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( readport_sailorwr, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x13) AM_READ(z80ctc_0_r)
AM_RANGE(0x50, 0x50) AM_READ(tmpz84c011_0_pa_r)
AM_RANGE(0x51, 0x51) AM_READ(tmpz84c011_0_pb_r)
@@ -1116,7 +1116,7 @@ static ADDRESS_MAP_START( readport_sailorwr, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport_sailorwr, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x13) AM_WRITE(z80ctc_0_w)
AM_RANGE(0x50, 0x50) AM_WRITE(tmpz84c011_0_pa_w)
AM_RANGE(0x51, 0x51) AM_WRITE(tmpz84c011_0_pb_w)
@@ -1143,7 +1143,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( readport_psailor1, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x13) AM_READ(z80ctc_0_r)
AM_RANGE(0x50, 0x50) AM_READ(tmpz84c011_0_pa_r)
AM_RANGE(0x51, 0x51) AM_READ(tmpz84c011_0_pb_r)
@@ -1161,7 +1161,7 @@ static ADDRESS_MAP_START( readport_psailor1, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport_psailor1, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x13) AM_WRITE(z80ctc_0_w)
AM_RANGE(0x50, 0x50) AM_WRITE(tmpz84c011_0_pa_w)
AM_RANGE(0x51, 0x51) AM_WRITE(tmpz84c011_0_pb_w)
@@ -1188,7 +1188,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( readport_psailor2, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x13) AM_READ(z80ctc_0_r)
AM_RANGE(0x50, 0x50) AM_READ(tmpz84c011_0_pa_r)
AM_RANGE(0x51, 0x51) AM_READ(tmpz84c011_0_pb_r)
@@ -1206,7 +1206,7 @@ static ADDRESS_MAP_START( readport_psailor2, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport_psailor2, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x13) AM_WRITE(z80ctc_0_w)
AM_RANGE(0x50, 0x50) AM_WRITE(tmpz84c011_0_pa_w)
AM_RANGE(0x51, 0x51) AM_WRITE(tmpz84c011_0_pb_w)
@@ -1233,7 +1233,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( readport_otatidai, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x13) AM_READ(z80ctc_0_r)
AM_RANGE(0x50, 0x50) AM_READ(tmpz84c011_0_pa_r)
AM_RANGE(0x51, 0x51) AM_READ(tmpz84c011_0_pb_r)
@@ -1251,7 +1251,7 @@ static ADDRESS_MAP_START( readport_otatidai, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport_otatidai, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x13) AM_WRITE(z80ctc_0_w)
AM_RANGE(0x50, 0x50) AM_WRITE(tmpz84c011_0_pa_w)
AM_RANGE(0x51, 0x51) AM_WRITE(tmpz84c011_0_pb_w)
@@ -1278,7 +1278,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( readport_yosimoto, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x13) AM_READ(z80ctc_0_r)
AM_RANGE(0x50, 0x50) AM_READ(tmpz84c011_0_pa_r)
AM_RANGE(0x51, 0x51) AM_READ(tmpz84c011_0_pb_r)
@@ -1296,7 +1296,7 @@ static ADDRESS_MAP_START( readport_yosimoto, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport_yosimoto, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x13) AM_WRITE(z80ctc_0_w)
AM_RANGE(0x50, 0x50) AM_WRITE(tmpz84c011_0_pa_w)
AM_RANGE(0x51, 0x51) AM_WRITE(tmpz84c011_0_pb_w)
@@ -1323,7 +1323,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( readport_jituroku, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x13) AM_READ(z80ctc_0_r)
AM_RANGE(0x50, 0x50) AM_READ(tmpz84c011_0_pa_r)
AM_RANGE(0x51, 0x51) AM_READ(tmpz84c011_0_pb_r)
@@ -1341,7 +1341,7 @@ static ADDRESS_MAP_START( readport_jituroku, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport_jituroku, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x13) AM_WRITE(z80ctc_0_w)
AM_RANGE(0x50, 0x50) AM_WRITE(tmpz84c011_0_pa_w)
AM_RANGE(0x51, 0x51) AM_WRITE(tmpz84c011_0_pb_w)
@@ -1368,7 +1368,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( readport_ngpgal, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x13) AM_READ(z80ctc_0_r)
AM_RANGE(0x50, 0x50) AM_READ(tmpz84c011_0_pa_r)
AM_RANGE(0x51, 0x51) AM_READ(tmpz84c011_0_pb_r)
@@ -1385,7 +1385,7 @@ static ADDRESS_MAP_START( readport_ngpgal, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport_ngpgal, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x13) AM_WRITE(z80ctc_0_w)
AM_RANGE(0x50, 0x50) AM_WRITE(tmpz84c011_0_pa_w)
AM_RANGE(0x51, 0x51) AM_WRITE(tmpz84c011_0_pb_w)
@@ -1410,7 +1410,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( readport_mjgottsu, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x13) AM_READ(z80ctc_0_r)
AM_RANGE(0x50, 0x50) AM_READ(tmpz84c011_0_pa_r)
AM_RANGE(0x51, 0x51) AM_READ(tmpz84c011_0_pb_r)
@@ -1427,7 +1427,7 @@ static ADDRESS_MAP_START( readport_mjgottsu, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport_mjgottsu, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x13) AM_WRITE(z80ctc_0_w)
AM_RANGE(0x50, 0x50) AM_WRITE(tmpz84c011_0_pa_w)
AM_RANGE(0x51, 0x51) AM_WRITE(tmpz84c011_0_pb_w)
@@ -1452,7 +1452,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( readport_cmehyou, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x13) AM_READ(z80ctc_0_r)
AM_RANGE(0x50, 0x50) AM_READ(tmpz84c011_0_pa_r)
AM_RANGE(0x51, 0x51) AM_READ(tmpz84c011_0_pb_r)
@@ -1469,7 +1469,7 @@ static ADDRESS_MAP_START( readport_cmehyou, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport_cmehyou, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x13) AM_WRITE(z80ctc_0_w)
AM_RANGE(0x50, 0x50) AM_WRITE(tmpz84c011_0_pa_w)
AM_RANGE(0x51, 0x51) AM_WRITE(tmpz84c011_0_pb_w)
@@ -1494,7 +1494,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( readport_mjkoiura, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x13) AM_READ(z80ctc_0_r)
AM_RANGE(0x50, 0x50) AM_READ(tmpz84c011_0_pa_r)
AM_RANGE(0x51, 0x51) AM_READ(tmpz84c011_0_pb_r)
@@ -1511,7 +1511,7 @@ static ADDRESS_MAP_START( readport_mjkoiura, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport_mjkoiura, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x13) AM_WRITE(z80ctc_0_w)
AM_RANGE(0x50, 0x50) AM_WRITE(tmpz84c011_0_pa_w)
AM_RANGE(0x51, 0x51) AM_WRITE(tmpz84c011_0_pb_w)
@@ -1536,7 +1536,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( readport_mkoiuraa, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x13) AM_READ(z80ctc_0_r)
AM_RANGE(0x50, 0x50) AM_READ(tmpz84c011_0_pa_r)
AM_RANGE(0x51, 0x51) AM_READ(tmpz84c011_0_pb_r)
@@ -1553,7 +1553,7 @@ static ADDRESS_MAP_START( readport_mkoiuraa, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport_mkoiuraa, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x13) AM_WRITE(z80ctc_0_w)
AM_RANGE(0x50, 0x50) AM_WRITE(tmpz84c011_0_pa_w)
AM_RANGE(0x51, 0x51) AM_WRITE(tmpz84c011_0_pb_w)
@@ -1578,7 +1578,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( readport_mscoutm, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x13) AM_READ(z80ctc_0_r)
AM_RANGE(0x50, 0x50) AM_READ(tmpz84c011_0_pa_r)
AM_RANGE(0x51, 0x51) AM_READ(tmpz84c011_0_pb_r)
@@ -1599,7 +1599,7 @@ static ADDRESS_MAP_START( readport_mscoutm, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport_mscoutm, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x13) AM_WRITE(z80ctc_0_w)
AM_RANGE(0x50, 0x50) AM_WRITE(tmpz84c011_0_pa_w)
AM_RANGE(0x51, 0x51) AM_WRITE(tmpz84c011_0_pb_w)
@@ -1625,7 +1625,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( readport_imekura, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x13) AM_READ(z80ctc_0_r)
AM_RANGE(0x50, 0x50) AM_READ(tmpz84c011_0_pa_r)
AM_RANGE(0x51, 0x51) AM_READ(tmpz84c011_0_pb_r)
@@ -1646,7 +1646,7 @@ static ADDRESS_MAP_START( readport_imekura, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport_imekura, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x13) AM_WRITE(z80ctc_0_w)
AM_RANGE(0x50, 0x50) AM_WRITE(tmpz84c011_0_pa_w)
AM_RANGE(0x51, 0x51) AM_WRITE(tmpz84c011_0_pb_w)
@@ -1672,7 +1672,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( readport_mjegolf, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x13) AM_READ(z80ctc_0_r)
AM_RANGE(0x50, 0x50) AM_READ(tmpz84c011_0_pa_r)
AM_RANGE(0x51, 0x51) AM_READ(tmpz84c011_0_pb_r)
@@ -1693,7 +1693,7 @@ static ADDRESS_MAP_START( readport_mjegolf, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport_mjegolf, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x13) AM_WRITE(z80ctc_0_w)
AM_RANGE(0x50, 0x50) AM_WRITE(tmpz84c011_0_pa_w)
AM_RANGE(0x51, 0x51) AM_WRITE(tmpz84c011_0_pb_w)
@@ -1719,7 +1719,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x13) AM_READ(z80ctc_1_r)
AM_RANGE(0x50, 0x50) AM_READ(tmpz84c011_1_pa_r)
AM_RANGE(0x51, 0x51) AM_READ(tmpz84c011_1_pb_r)
@@ -1734,7 +1734,7 @@ static ADDRESS_MAP_START( sound_readport, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x13) AM_WRITE(z80ctc_1_w)
AM_RANGE(0x50, 0x50) AM_WRITE(tmpz84c011_1_pa_w)
AM_RANGE(0x51, 0x51) AM_WRITE(tmpz84c011_1_pb_w)
diff --git a/src/mame/drivers/ninjakd2.c b/src/mame/drivers/ninjakd2.c
index 90080f66f70..8e0d000df75 100644
--- a/src/mame/drivers/ninjakd2.c
+++ b/src/mame/drivers/ninjakd2.c
@@ -466,7 +466,7 @@ static ADDRESS_MAP_START( ninjakd2_sound_cpu, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( ninjakd2_sound_io, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(YM2203_control_port_0_w)
AM_RANGE(0x01, 0x01) AM_WRITE(YM2203_write_port_0_w)
AM_RANGE(0x80, 0x80) AM_WRITE(YM2203_control_port_1_w)
diff --git a/src/mame/drivers/niyanpai.c b/src/mame/drivers/niyanpai.c
index 5ec16315540..5d4f96f3996 100644
--- a/src/mame/drivers/niyanpai.c
+++ b/src/mame/drivers/niyanpai.c
@@ -504,7 +504,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x13) AM_READ(z80ctc_0_r)
AM_RANGE(0x50, 0x50) AM_READ(tmpz84c011_0_pa_r)
AM_RANGE(0x51, 0x51) AM_READ(tmpz84c011_0_pb_r)
@@ -519,7 +519,7 @@ static ADDRESS_MAP_START( sound_readport, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x13) AM_WRITE(z80ctc_0_w)
AM_RANGE(0x50, 0x50) AM_WRITE(tmpz84c011_0_pa_w)
AM_RANGE(0x51, 0x51) AM_WRITE(tmpz84c011_0_pb_w)
diff --git a/src/mame/drivers/nmg5.c b/src/mame/drivers/nmg5.c
index 80a3b9867e2..b35eee42133 100644
--- a/src/mame/drivers/nmg5.c
+++ b/src/mame/drivers/nmg5.c
@@ -344,7 +344,7 @@ static ADDRESS_MAP_START( pclubys_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(oki_banking_w)
AM_RANGE(0x10, 0x10) AM_READWRITE(YM3812_status_port_0_r, YM3812_control_port_0_w)
AM_RANGE(0x11, 0x11) AM_WRITE(YM3812_write_port_0_w)
diff --git a/src/mame/drivers/nmk16.c b/src/mame/drivers/nmk16.c
index 9485f3e47b1..4265f7631b0 100644
--- a/src/mame/drivers/nmk16.c
+++ b/src/mame/drivers/nmk16.c
@@ -451,13 +451,13 @@ static ADDRESS_MAP_START( tharrier_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( tharrier_sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(YM2203_status_port_0_r)
AM_RANGE(0x01, 0x01) AM_READ(YM2203_read_port_0_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( tharrier_sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(YM2203_control_port_0_w)
AM_RANGE(0x01, 0x01) AM_WRITE(YM2203_write_port_0_w)
ADDRESS_MAP_END
@@ -1106,7 +1106,7 @@ static ADDRESS_MAP_START( macross2_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( macross2_sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(YM2203_status_port_0_r)
AM_RANGE(0x01, 0x01) AM_READ(YM2203_read_port_0_r)
AM_RANGE(0x80, 0x80) AM_READ(OKIM6295_status_0_r)
@@ -1114,7 +1114,7 @@ static ADDRESS_MAP_START( macross2_sound_readport, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( macross2_sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(YM2203_control_port_0_w)
AM_RANGE(0x01, 0x01) AM_WRITE(YM2203_write_port_0_w)
AM_RANGE(0x80, 0x80) AM_WRITE(OKIM6295_data_0_w)
@@ -4822,7 +4822,7 @@ static WRITE16_HANDLER( afega_scroll1_w )
static ADDRESS_MAP_START( afega, ADDRESS_SPACE_PROGRAM, 16 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(20) )
+ ADDRESS_MAP_GLOBAL_MASK(0xfffff)
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x080000, 0x080001) AM_READ(input_port_0_word_r) // Buttons
AM_RANGE(0x080002, 0x080003) AM_READ(input_port_1_word_r) // P1 + P2
diff --git a/src/mame/drivers/nova2001.c b/src/mame/drivers/nova2001.c
index 304c9da5223..cb0c3d4841d 100644
--- a/src/mame/drivers/nova2001.c
+++ b/src/mame/drivers/nova2001.c
@@ -242,7 +242,7 @@ static ADDRESS_MAP_START( pkunwar_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( pkunwar_io, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(pkunwar_flipscreen_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/nycaptor.c b/src/mame/drivers/nycaptor.c
index 9b141c2a924..b1830365646 100644
--- a/src/mame/drivers/nycaptor.c
+++ b/src/mame/drivers/nycaptor.c
@@ -413,7 +413,7 @@ static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( m68705_readmem, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(11) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7ff)
AM_RANGE(0x0000, 0x0000) AM_READ(nycaptor_68705_portA_r)
AM_RANGE(0x0001, 0x0001) AM_READ(nycaptor_68705_portB_r)
AM_RANGE(0x0002, 0x0002) AM_READ(nycaptor_68705_portC_r)
@@ -422,7 +422,7 @@ static ADDRESS_MAP_START( m68705_readmem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( m68705_writemem, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(11) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7ff)
AM_RANGE(0x0000, 0x0000) AM_WRITE(nycaptor_68705_portA_w)
AM_RANGE(0x0001, 0x0001) AM_WRITE(nycaptor_68705_portB_w)
AM_RANGE(0x0002, 0x0002) AM_WRITE(nycaptor_68705_portC_w)
diff --git a/src/mame/drivers/nyny.c b/src/mame/drivers/nyny.c
index 4709788b2d1..bbd73485473 100644
--- a/src/mame/drivers/nyny.c
+++ b/src/mame/drivers/nyny.c
@@ -535,7 +535,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( nyny_audio_1_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(15) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x007f) AM_RAM /* internal RAM */
AM_RANGE(0x0080, 0x0fff) AM_NOP
AM_RANGE(0x1000, 0x1000) AM_MIRROR(0x0fff) AM_READWRITE(soundlatch_r, audio_1_answer_w)
@@ -552,7 +552,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( nyny_audio_2_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(15) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x007f) AM_RAM /* internal RAM */
AM_RANGE(0x0080, 0x0fff) AM_NOP
AM_RANGE(0x1000, 0x1000) AM_MIRROR(0x0fff) AM_READ(soundlatch2_r)
diff --git a/src/mame/drivers/ojankohs.c b/src/mame/drivers/ojankohs.c
index 0c3c226e4c2..8c018aa3af2 100644
--- a/src/mame/drivers/ojankohs.c
+++ b/src/mame/drivers/ojankohs.c
@@ -277,7 +277,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( readport_ojankohs, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(input_port_0_r)
AM_RANGE(0x01, 0x01) AM_READ(ojankohs_keymatrix_r)
AM_RANGE(0x02, 0x02) AM_READ(input_port_1_r)
@@ -285,7 +285,7 @@ static ADDRESS_MAP_START( readport_ojankohs, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport_ojankohs, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(ojankohs_portselect_w)
AM_RANGE(0x01, 0x01) AM_WRITE(ojankohs_rombank_w)
AM_RANGE(0x02, 0x02) AM_WRITE(ojankohs_gfxreg_w)
@@ -299,7 +299,7 @@ static ADDRESS_MAP_START( writeport_ojankohs, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport_ojankoy, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(ojankohs_portselect_w)
AM_RANGE(0x01, 0x01) AM_WRITE(ojankoy_rombank_w)
AM_RANGE(0x02, 0x02) AM_WRITE(ojankoy_coinctr_w)
@@ -310,7 +310,7 @@ static ADDRESS_MAP_START( writeport_ojankoy, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( readport_ccasino, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(input_port_0_r)
AM_RANGE(0x01, 0x01) AM_READ(ojankohs_keymatrix_r)
AM_RANGE(0x02, 0x02) AM_READ(input_port_1_r)
@@ -320,7 +320,7 @@ static ADDRESS_MAP_START( readport_ccasino, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport_ccasino, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(ojankohs_portselect_w)
AM_RANGE(0x01, 0x01) AM_WRITE(ojankohs_rombank_w)
AM_RANGE(0x02, 0x02) AM_WRITE(ccasino_coinctr_w)
@@ -335,13 +335,13 @@ static ADDRESS_MAP_START( writeport_ccasino, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( readport_ojankoc, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0xfc, 0xfd) AM_READ(ojankoc_keymatrix_r)
AM_RANGE(0xff, 0xff) AM_READ(AY8910_read_port_0_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport_ojankoc, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x1f) AM_WRITE(ojankoc_palette_w)
AM_RANGE(0xf9, 0xf9) AM_WRITE(ojankohs_msm5205_w)
AM_RANGE(0xfb, 0xfb) AM_WRITE(ojankoc_ctrl_w)
diff --git a/src/mame/drivers/omegrace.c b/src/mame/drivers/omegrace.c
index be47fd49ae4..2b4fb63c1ca 100644
--- a/src/mame/drivers/omegrace.c
+++ b/src/mame/drivers/omegrace.c
@@ -344,7 +344,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( port_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x08, 0x08) AM_READ(omegrace_vg_go_r)
AM_RANGE(0x09, 0x09) AM_READ(watchdog_reset_r)
AM_RANGE(0x0a, 0x0a) AM_WRITE(avgdvg_reset_w)
@@ -373,7 +373,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_port, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READWRITE(soundlatch_r, AY8910_control_port_0_w)
AM_RANGE(0x01, 0x01) AM_WRITE(AY8910_write_port_0_w)
AM_RANGE(0x02, 0x02) AM_WRITE(AY8910_control_port_1_w)
diff --git a/src/mame/drivers/onetwo.c b/src/mame/drivers/onetwo.c
index 6ff5b1c8604..08029fdea1a 100644
--- a/src/mame/drivers/onetwo.c
+++ b/src/mame/drivers/onetwo.c
@@ -112,7 +112,7 @@ static ADDRESS_MAP_START( main_cpu, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( main_cpu_io, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READWRITE(input_port_0_r, onetwo_coin_counters_w)
AM_RANGE(0x01, 0x01) AM_READWRITE(input_port_1_r, onetwo_soundlatch_w)
AM_RANGE(0x02, 0x02) AM_READWRITE(input_port_2_r, onetwo_cpubank_w)
@@ -129,7 +129,7 @@ static ADDRESS_MAP_START( sound_cpu, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_cpu_io, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READWRITE(YM3812_status_port_0_r, YM3812_control_port_0_w)
AM_RANGE(0x20, 0x20) AM_WRITE(YM3812_write_port_0_w)
AM_RANGE(0x40, 0x40) AM_READWRITE(OKIM6295_status_0_r, OKIM6295_data_0_w)
diff --git a/src/mame/drivers/pacman.c b/src/mame/drivers/pacman.c
index aa63f0da8c1..a6638fc9a00 100644
--- a/src/mame/drivers/pacman.c
+++ b/src/mame/drivers/pacman.c
@@ -1128,44 +1128,44 @@ ADDRESS_MAP_END
*************************************/
static ADDRESS_MAP_START( writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(pacman_interrupt_vector_w) /* Pac-Man only */
ADDRESS_MAP_END
static ADDRESS_MAP_START( vanvan_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x01, 0x01) AM_WRITE(SN76496_0_w)
AM_RANGE(0x02, 0x02) AM_WRITE(SN76496_1_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( dremshpr_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x06, 0x06) AM_WRITE(AY8910_write_port_0_w)
AM_RANGE(0x07, 0x07) AM_WRITE(AY8910_control_port_0_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( piranha_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(piranha_interrupt_vector_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( nmouse_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(nmouse_interrupt_vector_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( theglobp_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0xff) AM_READ(theglobp_decrypt_rom) /* Switch protection logic */
ADDRESS_MAP_END
static ADDRESS_MAP_START( acitya_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0xff) AM_READ(acitya_decrypt_rom) /* Switch protection logic */
ADDRESS_MAP_END
static ADDRESS_MAP_START( mschamp_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(mschamp_kludge_r)
ADDRESS_MAP_END
@@ -1196,13 +1196,13 @@ static ADDRESS_MAP_START( s2650games_writeport, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( crushs_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x01, 0x01) AM_READ(input_port_3_r)
AM_RANGE(0x02, 0x02) AM_READ(input_port_2_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( crushs_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(AY8910_write_port_0_w)
AM_RANGE(0x01, 0x01) AM_WRITE(AY8910_control_port_0_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/paranoia.c b/src/mame/drivers/paranoia.c
index e13553a87a0..a34b6fe3dbf 100644
--- a/src/mame/drivers/paranoia.c
+++ b/src/mame/drivers/paranoia.c
@@ -121,7 +121,7 @@ static WRITE8_HANDLER(paranoia_z80_io_37_w)
}
static ADDRESS_MAP_START(paranoia_z80_io_map, ADDRESS_SPACE_IO, 8)
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE( 0x01, 0x01 ) AM_READ( paranoia_z80_io_01_r )
AM_RANGE( 0x02, 0x02 ) AM_READ( paranoia_z80_io_02_r )
AM_RANGE( 0x17, 0x17 ) AM_WRITE( paranoia_z80_io_17_w )
diff --git a/src/mame/drivers/pass.c b/src/mame/drivers/pass.c
index 9bd72b54205..df2e6cdac5f 100644
--- a/src/mame/drivers/pass.c
+++ b/src/mame/drivers/pass.c
@@ -153,14 +153,14 @@ static ADDRESS_MAP_START( pass_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( pass_sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(soundlatch_r)
AM_RANGE(0x70, 0x70) AM_READ(YM2203_status_port_0_r)
AM_RANGE(0x71, 0x71) AM_READ(YM2203_read_port_0_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( pass_sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x70, 0x70) AM_WRITE(YM2203_control_port_0_w)
AM_RANGE(0x71, 0x71) AM_WRITE(YM2203_write_port_0_w)
AM_RANGE(0x80, 0x80) AM_WRITE(OKIM6295_data_0_w)
diff --git a/src/mame/drivers/pastelg.c b/src/mame/drivers/pastelg.c
index 9dbb2a4e9b5..ee4c8c7fbc4 100644
--- a/src/mame/drivers/pastelg.c
+++ b/src/mame/drivers/pastelg.c
@@ -69,7 +69,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( readport_pastelg, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x7f) AM_READ(nb1413m3_sndrom_r)
AM_RANGE(0x81, 0x81) AM_READ(AY8910_read_port_0_r)
AM_RANGE(0x90, 0x90) AM_READ(nb1413m3_inputport0_r)
@@ -81,7 +81,7 @@ static ADDRESS_MAP_START( readport_pastelg, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport_pastelg, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
// AM_RANGE(0x00, 0x00) AM_WRITE(MWA8_NOP)
AM_RANGE(0x82, 0x82) AM_WRITE(AY8910_write_port_0_w)
AM_RANGE(0x83, 0x83) AM_WRITE(AY8910_control_port_0_w)
diff --git a/src/mame/drivers/pbaction.c b/src/mame/drivers/pbaction.c
index 80308234e68..5790698b081 100644
--- a/src/mame/drivers/pbaction.c
+++ b/src/mame/drivers/pbaction.c
@@ -106,7 +106,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x10) AM_WRITE(AY8910_control_port_0_w)
AM_RANGE(0x11, 0x11) AM_WRITE(AY8910_write_port_0_w)
AM_RANGE(0x20, 0x20) AM_WRITE(AY8910_control_port_1_w)
diff --git a/src/mame/drivers/peplus.c b/src/mame/drivers/peplus.c
index 44b2d6d78c9..93e9c895d63 100644
--- a/src/mame/drivers/peplus.c
+++ b/src/mame/drivers/peplus.c
@@ -760,7 +760,7 @@ static ADDRESS_MAP_START( peplus_datamap, ADDRESS_SPACE_DATA, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( peplus_iomap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS(AMEF_ABITS(8))
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
// I/O Ports
AM_RANGE(0x00, 0x03) AM_READ(peplus_io_r) AM_WRITE(peplus_io_w) AM_BASE(&io_port)
diff --git a/src/mame/drivers/pipedrm.c b/src/mame/drivers/pipedrm.c
index f4a472d28ca..98ec322db81 100644
--- a/src/mame/drivers/pipedrm.c
+++ b/src/mame/drivers/pipedrm.c
@@ -234,7 +234,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( main_portmap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x10) AM_WRITE(fromance_crtc_data_w)
AM_RANGE(0x11, 0x11) AM_WRITE(fromance_crtc_register_w)
AM_RANGE(0x20, 0x20) AM_READWRITE(input_port_0_r, sound_command_w)
@@ -262,7 +262,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_portmap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x04, 0x04) AM_WRITE(sound_bankswitch_w)
AM_RANGE(0x16, 0x16) AM_READ(sound_command_r)
AM_RANGE(0x17, 0x17) AM_WRITE(pending_command_clear_w)
@@ -274,7 +274,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( hatris_sound_portmap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x02, 0x02) AM_WRITE(YM2608_control_port_0_B_w)
AM_RANGE(0x03, 0x03) AM_WRITE(YM2608_data_port_0_B_w)
AM_RANGE(0x04, 0x04) AM_READ(sound_command_r)
diff --git a/src/mame/drivers/pipeline.c b/src/mame/drivers/pipeline.c
index 6165fa95f71..469b302dddb 100644
--- a/src/mame/drivers/pipeline.c
+++ b/src/mame/drivers/pipeline.c
@@ -232,7 +232,7 @@ static ADDRESS_MAP_START( cpu1_mem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_port, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x03) AM_READ(z80ctc_0_r) AM_WRITE(z80ctc_0_w)
AM_RANGE(0x06, 0x07) AM_NOP
ADDRESS_MAP_END
diff --git a/src/mame/drivers/pitnrun.c b/src/mame/drivers/pitnrun.c
index 40b2030199f..57425523ace 100644
--- a/src/mame/drivers/pitnrun.c
+++ b/src/mame/drivers/pitnrun.c
@@ -156,7 +156,7 @@ static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(soundlatch_clear_w)
AM_RANGE(0x8c, 0x8c) AM_WRITE(AY8910_control_port_1_w)
AM_RANGE(0x8d, 0x8d) AM_WRITE(AY8910_write_port_1_w)
@@ -168,7 +168,7 @@ static ADDRESS_MAP_START( sound_writeport, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x8f, 0x8f) AM_READ(AY8910_read_port_0_r)
ADDRESS_MAP_END
@@ -185,7 +185,7 @@ static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( mcu_readmem, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(11) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7ff)
AM_RANGE(0x0000, 0x0000) AM_READ(pitnrun_68705_portA_r)
AM_RANGE(0x0001, 0x0001) AM_READ(pitnrun_68705_portB_r)
AM_RANGE(0x0002, 0x0002) AM_READ(pitnrun_68705_portC_r)
@@ -195,7 +195,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( mcu_writemem, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(11) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7ff)
AM_RANGE(0x0000, 0x0000) AM_WRITE(pitnrun_68705_portA_w)
AM_RANGE(0x0001, 0x0001) AM_WRITE(pitnrun_68705_portB_w)
AM_RANGE(0x0003, 0x007f) AM_WRITE(MWA8_RAM)
diff --git a/src/mame/drivers/pkscram.c b/src/mame/drivers/pkscram.c
index 481c2714c2c..aec0a12d82a 100644
--- a/src/mame/drivers/pkscram.c
+++ b/src/mame/drivers/pkscram.c
@@ -95,7 +95,7 @@ static WRITE16_HANDLER( pkscramble_output_w )
}
static ADDRESS_MAP_START( pkscramble_map, ADDRESS_SPACE_PROGRAM, 16 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(19) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7ffff)
AM_RANGE(0x000000, 0x01ffff) AM_ROM
AM_RANGE(0x040000, 0x0400ff) AM_RAM AM_BASE(&generic_nvram16) AM_SIZE(&generic_nvram_size)
AM_RANGE(0x041000, 0x043fff) AM_RAM // main ram
diff --git a/src/mame/drivers/playch10.c b/src/mame/drivers/playch10.c
index 56a899b341e..e9fc8ffa28a 100644
--- a/src/mame/drivers/playch10.c
+++ b/src/mame/drivers/playch10.c
@@ -435,7 +435,7 @@ static ADDRESS_MAP_START( bios_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( bios_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READWRITE(pc10_port_0_r, pc10_SDCS_w)
AM_RANGE(0x01, 0x01) AM_READWRITE(input_port_1_r, pc10_CNTRLMASK_w)
AM_RANGE(0x02, 0x02) AM_READWRITE(input_port_2_r, pc10_DISPMASK_w)
diff --git a/src/mame/drivers/plygonet.c b/src/mame/drivers/plygonet.c
index c63e7174669..dbf92a5c65d 100644
--- a/src/mame/drivers/plygonet.c
+++ b/src/mame/drivers/plygonet.c
@@ -610,7 +610,7 @@ ADDRESS_MAP_END
/**********************************************************************************/
static ADDRESS_MAP_START( dsp56156_p_map, ADDRESS_SPACE_PROGRAM, 16 )
-// ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+// ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x7000, 0x7fff) AM_RAM AM_BASE(&dsp56k_p_mirror) // is it 0x1000 words?
AM_RANGE(0x8000, 0x87ff) AM_RAM // the processor memtests here
ADDRESS_MAP_END
diff --git a/src/mame/drivers/polepos.c b/src/mame/drivers/polepos.c
index a4f92490a5e..26625fee369 100644
--- a/src/mame/drivers/polepos.c
+++ b/src/mame/drivers/polepos.c
@@ -458,7 +458,7 @@ static ADDRESS_MAP_START( z80_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( z80_io, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READWRITE(polepos_adc_r, MWA8_NOP)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/polyplay.c b/src/mame/drivers/polyplay.c
index c6bdda3bb4b..178b884ef03 100644
--- a/src/mame/drivers/polyplay.c
+++ b/src/mame/drivers/polyplay.c
@@ -173,7 +173,7 @@ ADDRESS_MAP_END
/* port mapping */
static ADDRESS_MAP_START( polyplay_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x80, 0x81) AM_WRITE(polyplay_sound_channel)
AM_RANGE(0x82, 0x82) AM_WRITE(polyplay_start_timer2)
AM_RANGE(0x83, 0x83) AM_READ(polyplay_random_read)
diff --git a/src/mame/drivers/poolshrk.c b/src/mame/drivers/poolshrk.c
index da7dbf0be5e..80cf360fb36 100644
--- a/src/mame/drivers/poolshrk.c
+++ b/src/mame/drivers/poolshrk.c
@@ -98,7 +98,7 @@ static READ8_HANDLER( poolshrk_irq_reset_r )
static ADDRESS_MAP_START( poolshrk_cpu_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(15) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x00ff) AM_MIRROR(0x2300) AM_RAM
AM_RANGE(0x0400, 0x07ff) AM_MIRROR(0x2000) AM_WRITE(MWA8_RAM) AM_BASE(&poolshrk_playfield_ram)
AM_RANGE(0x0800, 0x080f) AM_MIRROR(0x23f0) AM_WRITE(MWA8_RAM) AM_BASE(&poolshrk_hpos_ram)
diff --git a/src/mame/drivers/popeye.c b/src/mame/drivers/popeye.c
index 58a929963e0..49ec46fac6d 100644
--- a/src/mame/drivers/popeye.c
+++ b/src/mame/drivers/popeye.c
@@ -147,7 +147,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(input_port_0_r)
AM_RANGE(0x01, 0x01) AM_READ(input_port_1_r)
AM_RANGE(0x02, 0x02) AM_READ(input_port_2_r)
@@ -155,7 +155,7 @@ static ADDRESS_MAP_START( readport, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(AY8910_control_port_0_w)
AM_RANGE(0x01, 0x01) AM_WRITE(AY8910_write_port_0_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/powerins.c b/src/mame/drivers/powerins.c
index 7a41c2d3262..98ae347726b 100644
--- a/src/mame/drivers/powerins.c
+++ b/src/mame/drivers/powerins.c
@@ -134,7 +134,7 @@ static ADDRESS_MAP_START( writemem_snd, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( powerins_io_snd, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READWRITE(YM2203_status_port_0_r, YM2203_control_port_0_w)
AM_RANGE(0x01, 0x01) AM_READWRITE(YM2203_read_port_0_r, YM2203_write_port_0_w)
AM_RANGE(0x80, 0x80) AM_READWRITE(OKIM6295_status_0_r, OKIM6295_data_0_w)
@@ -143,7 +143,7 @@ static ADDRESS_MAP_START( powerins_io_snd, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( powerinb_io_snd, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READWRITE(powerinb_fake_ym2203_r, MWA8_NOP)
AM_RANGE(0x01, 0x01) AM_NOP
AM_RANGE(0x80, 0x80) AM_READWRITE(OKIM6295_status_0_r, OKIM6295_data_0_w)
diff --git a/src/mame/drivers/ppmast93.c b/src/mame/drivers/ppmast93.c
index 18ffcf5f72d..2f5b336532a 100644
--- a/src/mame/drivers/ppmast93.c
+++ b/src/mame/drivers/ppmast93.c
@@ -168,7 +168,7 @@ static ADDRESS_MAP_START( ppmast93_cpu1_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( ppmast93_cpu1_io, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(input_port_0_r)
AM_RANGE(0x02, 0x02) AM_READ(input_port_1_r)
AM_RANGE(0x04, 0x04) AM_READ(input_port_2_r)
diff --git a/src/mame/drivers/prehisle.c b/src/mame/drivers/prehisle.c
index 49a02f25453..8f9a895130e 100644
--- a/src/mame/drivers/prehisle.c
+++ b/src/mame/drivers/prehisle.c
@@ -78,12 +78,12 @@ static ADDRESS_MAP_START( prehisle_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( prehisle_sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(YM3812_status_port_0_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( prehisle_sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(YM3812_control_port_0_w)
AM_RANGE(0x20, 0x20) AM_WRITE(YM3812_write_port_0_w)
AM_RANGE(0x40, 0x40) AM_WRITE(D7759_write_port_0_w)
diff --git a/src/mame/drivers/psikyo.c b/src/mame/drivers/psikyo.c
index f1da4e0ba24..17c4f618d77 100644
--- a/src/mame/drivers/psikyo.c
+++ b/src/mame/drivers/psikyo.c
@@ -411,14 +411,14 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sngkace_sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(YM2610_status_port_0_A_r )
AM_RANGE(0x02, 0x02) AM_READ(YM2610_status_port_0_B_r )
AM_RANGE(0x08, 0x08) AM_READ(psikyo_soundlatch_r )
ADDRESS_MAP_END
static ADDRESS_MAP_START( sngkace_sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(YM2610_control_port_0_A_w )
AM_RANGE(0x01, 0x01) AM_WRITE(YM2610_data_port_0_A_w )
AM_RANGE(0x02, 0x02) AM_WRITE(YM2610_control_port_0_B_w )
@@ -457,14 +457,14 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( gunbird_sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x04, 0x04) AM_READ(YM2610_status_port_0_A_r )
AM_RANGE(0x06, 0x06) AM_READ(YM2610_status_port_0_B_r )
AM_RANGE(0x08, 0x08) AM_READ(psikyo_soundlatch_r )
ADDRESS_MAP_END
static ADDRESS_MAP_START( gunbird_sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(gunbird_sound_bankswitch_w )
AM_RANGE(0x04, 0x04) AM_WRITE(YM2610_control_port_0_A_w )
AM_RANGE(0x05, 0x05) AM_WRITE(YM2610_data_port_0_A_w )
@@ -479,13 +479,13 @@ ADDRESS_MAP_END
***************************************************************************/
static ADDRESS_MAP_START( s1945_sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x08, 0x08) AM_READ(YMF278B_status_port_0_r )
AM_RANGE(0x10, 0x10) AM_READ(psikyo_soundlatch_r )
ADDRESS_MAP_END
static ADDRESS_MAP_START( s1945_sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(gunbird_sound_bankswitch_w )
AM_RANGE(0x02, 0x03) AM_WRITE(MWA8_NOP )
AM_RANGE(0x08, 0x08) AM_WRITE(YMF278B_control_port_0_A_w )
diff --git a/src/mame/drivers/psychic5.c b/src/mame/drivers/psychic5.c
index b132b2ec339..dee464db300 100644
--- a/src/mame/drivers/psychic5.c
+++ b/src/mame/drivers/psychic5.c
@@ -412,7 +412,7 @@ static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(YM2203_control_port_0_w)
AM_RANGE(0x01, 0x01) AM_WRITE(YM2203_write_port_0_w)
AM_RANGE(0x80, 0x80) AM_WRITE(YM2203_control_port_1_w)
diff --git a/src/mame/drivers/punchout.c b/src/mame/drivers/punchout.c
index 6e2a544d55f..c8b931ce916 100644
--- a/src/mame/drivers/punchout.c
+++ b/src/mame/drivers/punchout.c
@@ -424,7 +424,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(input_port_0_r)
AM_RANGE(0x01, 0x01) AM_READ(input_port_1_r)
AM_RANGE(0x02, 0x02) AM_READ(input_port_2_r)
@@ -445,7 +445,7 @@ static ADDRESS_MAP_START( readport, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_WRITE(MWA8_NOP) /* the 2A03 #1 is not present */
AM_RANGE(0x02, 0x02) AM_WRITE(soundlatch_w)
AM_RANGE(0x03, 0x03) AM_WRITE(soundlatch2_w)
diff --git a/src/mame/drivers/pushman.c b/src/mame/drivers/pushman.c
index e7f1f408c87..4167c11d035 100644
--- a/src/mame/drivers/pushman.c
+++ b/src/mame/drivers/pushman.c
@@ -181,7 +181,7 @@ static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(YM2203_control_port_0_w)
AM_RANGE(0x01, 0x01) AM_WRITE(YM2203_write_port_0_w)
AM_RANGE(0x80, 0x80) AM_WRITE(YM2203_control_port_1_w)
@@ -189,7 +189,7 @@ static ADDRESS_MAP_START( sound_writeport, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( bballs_readmem, ADDRESS_SPACE_PROGRAM, 16 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(20) )
+ ADDRESS_MAP_GLOBAL_MASK(0xfffff)
AM_RANGE(0x00000, 0x1ffff) AM_READ(MRA16_ROM)
AM_RANGE(0x60000, 0x60007) AM_READ(bballs_68705_r)
AM_RANGE(0xe0800, 0xe17ff) AM_READ(MRA16_RAM)
@@ -202,7 +202,7 @@ static ADDRESS_MAP_START( bballs_readmem, ADDRESS_SPACE_PROGRAM, 16 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( bballs_writemem, ADDRESS_SPACE_PROGRAM, 16 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(20) )
+ ADDRESS_MAP_GLOBAL_MASK(0xfffff)
AM_RANGE(0x00000, 0x1ffff) AM_WRITE(MWA16_ROM)
AM_RANGE(0x60000, 0x60007) AM_WRITE(bballs_68705_w)
AM_RANGE(0xe0800, 0xe17ff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16)
diff --git a/src/mame/drivers/qix.c b/src/mame/drivers/qix.c
index 8e9035ae8d2..346de6b579d 100644
--- a/src/mame/drivers/qix.c
+++ b/src/mame/drivers/qix.c
@@ -269,7 +269,7 @@ ADDRESS_MAP_END
*************************************/
static ADDRESS_MAP_START( mcu_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(11) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7ff)
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)
diff --git a/src/mame/drivers/quizdna.c b/src/mame/drivers/quizdna.c
index 3174c2f1fc8..27d89b5c70b 100644
--- a/src/mame/drivers/quizdna.c
+++ b/src/mame/drivers/quizdna.c
@@ -67,7 +67,7 @@ static ADDRESS_MAP_START( gekiretu_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( quizdna_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x80, 0x80) AM_READ(input_port_2_r)
AM_RANGE(0x81, 0x81) AM_READ(input_port_3_r)
AM_RANGE(0x90, 0x90) AM_READ(input_port_4_r)
@@ -79,7 +79,7 @@ static ADDRESS_MAP_START( quizdna_readport, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( quizdna_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x02, 0x03) AM_WRITE(quizdna_bg_xscroll_w)
AM_RANGE(0x04, 0x04) AM_WRITE(quizdna_bg_yscroll_w)
AM_RANGE(0x05, 0x06) AM_WRITE(MWA8_NOP) /* unknown */
@@ -91,7 +91,7 @@ static ADDRESS_MAP_START( quizdna_writeport, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( gakupara_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_WRITE(quizdna_bg_xscroll_w)
AM_RANGE(0x02, 0x02) AM_WRITE(quizdna_bg_yscroll_w)
AM_RANGE(0x03, 0x04) AM_WRITE(MWA8_NOP) /* unknown */
@@ -103,7 +103,7 @@ static ADDRESS_MAP_START( gakupara_writeport, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( gekiretu_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x02, 0x03) AM_WRITE(quizdna_bg_xscroll_w)
AM_RANGE(0x04, 0x04) AM_WRITE(quizdna_bg_yscroll_w)
AM_RANGE(0x05, 0x06) AM_WRITE(MWA8_NOP) /* unknown */
diff --git a/src/mame/drivers/quizo.c b/src/mame/drivers/quizo.c
index 30f7dacf97d..eaadb1365d8 100644
--- a/src/mame/drivers/quizo.c
+++ b/src/mame/drivers/quizo.c
@@ -124,7 +124,7 @@ static ADDRESS_MAP_START( memmap, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( portmap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(input_port_0_r)
AM_RANGE(0x10, 0x10) AM_READ(input_port_1_r)
AM_RANGE(0x40, 0x40) AM_READ(input_port_2_r)
diff --git a/src/mame/drivers/rallyx.c b/src/mame/drivers/rallyx.c
index 22ee0d0deb0..928e7013da1 100644
--- a/src/mame/drivers/rallyx.c
+++ b/src/mame/drivers/rallyx.c
@@ -323,7 +323,7 @@ static ADDRESS_MAP_START( rallyx_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0, 0) AM_WRITE(rallyx_interrupt_vector_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/rampart.c b/src/mame/drivers/rampart.c
index 229f4c65725..724ca48fec3 100644
--- a/src/mame/drivers/rampart.c
+++ b/src/mame/drivers/rampart.c
@@ -172,7 +172,7 @@ static WRITE16_HANDLER( latch_w )
/* full memory map deduced from schematics and GALs */
static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(23) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7fffff)
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x140000, 0x147fff) AM_MIRROR(0x438000) AM_ROM
AM_RANGE(0x200000, 0x21ffff) AM_RAM AM_BASE(&rampart_bitmap)
diff --git a/src/mame/drivers/rcasino.c b/src/mame/drivers/rcasino.c
index 3ea0f03a3de..d64be28272d 100644
--- a/src/mame/drivers/rcasino.c
+++ b/src/mame/drivers/rcasino.c
@@ -176,7 +176,7 @@ static ADDRESS_MAP_START( rcasino_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( rcasino_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x01, 0x01) AM_READ(AY8910_read_port_0_r)
AM_RANGE(0x02, 0x02) AM_WRITE(AY8910_write_port_0_w)
AM_RANGE(0x03, 0x03) AM_WRITE(AY8910_control_port_0_w)
diff --git a/src/mame/drivers/redalert.c b/src/mame/drivers/redalert.c
index f74d6a7fb2d..e4fa4348881 100644
--- a/src/mame/drivers/redalert.c
+++ b/src/mame/drivers/redalert.c
@@ -121,9 +121,9 @@ static ADDRESS_MAP_START( redalert_main_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x2000, 0x3fff) AM_READWRITE(MRA8_RAM, redalert_bitmap_videoram_w) AM_BASE(&redalert_bitmap_videoram)
AM_RANGE(0x4000, 0x4fff) AM_RAM AM_BASE(&redalert_charmap_videoram)
AM_RANGE(0x5000, 0xbfff) AM_ROM
- AM_RANGE(0xc000, 0xc000) AM_MIRROR(0x0f8f) AM_READWRITE(port_tag_to_handler8("C000"), MWA8_NOP)
- AM_RANGE(0xc010, 0xc010) AM_MIRROR(0x0f8f) AM_READWRITE(port_tag_to_handler8("C010"), MWA8_NOP)
- AM_RANGE(0xc020, 0xc020) AM_MIRROR(0x0f8f) AM_READWRITE(port_tag_to_handler8("C020"), MWA8_NOP)
+ 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(MRA8_NOP, redalert_audio_command_w)
AM_RANGE(0xc040, 0xc040) AM_MIRROR(0x0f8f) AM_READWRITE(MRA8_NOP, MWA8_RAM) AM_BASE(&redalert_video_control)
AM_RANGE(0xc050, 0xc050) AM_MIRROR(0x0f8f) AM_READWRITE(MRA8_NOP, MWA8_RAM) AM_BASE(&redalert_bitmap_color)
@@ -138,9 +138,9 @@ static ADDRESS_MAP_START( demoneye_main_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x2000, 0x3fff) AM_READWRITE(MRA8_RAM, redalert_bitmap_videoram_w) AM_BASE(&redalert_bitmap_videoram)
AM_RANGE(0x4000, 0x5fff) AM_RAM AM_BASE(&redalert_charmap_videoram)
AM_RANGE(0x6000, 0xbfff) AM_ROM
- AM_RANGE(0xc000, 0xc000) AM_MIRROR(0x0f8f) AM_READWRITE(port_tag_to_handler8("C000"), MWA8_NOP)
- AM_RANGE(0xc010, 0xc010) AM_MIRROR(0x0f8f) AM_READWRITE(port_tag_to_handler8("C010"), MWA8_NOP)
- AM_RANGE(0xc020, 0xc020) AM_MIRROR(0x0f8f) AM_READWRITE(port_tag_to_handler8("C020"), MWA8_NOP)
+ 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(MRA8_NOP, demoneye_audio_command_w)
AM_RANGE(0xc040, 0xc040) AM_MIRROR(0x0f8f) AM_READWRITE(MRA8_NOP, MWA8_RAM) AM_BASE(&redalert_video_control)
AM_RANGE(0xc050, 0xc050) AM_MIRROR(0x0f8f) AM_READWRITE(MRA8_NOP, MWA8_RAM) AM_BASE(&redalert_bitmap_color)
diff --git a/src/mame/drivers/relief.c b/src/mame/drivers/relief.c
index 337cdbc9144..f9ec2e79388 100644
--- a/src/mame/drivers/relief.c
+++ b/src/mame/drivers/relief.c
@@ -173,7 +173,8 @@ static WRITE16_HANDLER( ym2413_w )
*************************************/
static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) | AMEF_ABITS(22) )
+ ADDRESS_MAP_UNMAP_HIGH
+ ADDRESS_MAP_GLOBAL_MASK(0x3fffff)
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x140000, 0x140003) AM_WRITE(ym2413_w)
AM_RANGE(0x140010, 0x140011) AM_READWRITE(adpcm_r, adpcm_w)
diff --git a/src/mame/drivers/retofinv.c b/src/mame/drivers/retofinv.c
index 20a7b278608..6dadd69d3c7 100644
--- a/src/mame/drivers/retofinv.c
+++ b/src/mame/drivers/retofinv.c
@@ -175,7 +175,7 @@ static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( mcu_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(11) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7ff)
AM_RANGE(0x0000, 0x0000) AM_READWRITE(retofinv_68705_portA_r, retofinv_68705_portA_w)
AM_RANGE(0x0001, 0x0001) AM_READWRITE(retofinv_68705_portB_r, retofinv_68705_portB_w)
AM_RANGE(0x0002, 0x0002) AM_READWRITE(retofinv_68705_portC_r, retofinv_68705_portC_w)
diff --git a/src/mame/drivers/route16.c b/src/mame/drivers/route16.c
index 49c151d0498..3a44ae5db78 100644
--- a/src/mame/drivers/route16.c
+++ b/src/mame/drivers/route16.c
@@ -295,7 +295,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( cpu1_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(9) )
+ ADDRESS_MAP_GLOBAL_MASK(0x1ff)
AM_RANGE(0x0000, 0x0000) AM_MIRROR(0x00ff) AM_WRITE(AY8910_write_port_0_w)
AM_RANGE(0x0100, 0x0100) AM_MIRROR(0x00ff) AM_WRITE(AY8910_control_port_0_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/royalmah.c b/src/mame/drivers/royalmah.c
index 160954d90dd..b1afbfc58e4 100644
--- a/src/mame/drivers/royalmah.c
+++ b/src/mame/drivers/royalmah.c
@@ -375,7 +375,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( royalmah_iomap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE( 0x01, 0x01 ) AM_READ( AY8910_read_port_0_r )
AM_RANGE( 0x02, 0x02 ) AM_WRITE( AY8910_write_port_0_w )
AM_RANGE( 0x03, 0x03 ) AM_WRITE( AY8910_control_port_0_w )
@@ -384,7 +384,7 @@ static ADDRESS_MAP_START( royalmah_iomap, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( ippatsu_iomap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE( 0x01, 0x01 ) AM_READ( AY8910_read_port_0_r )
AM_RANGE( 0x02, 0x02 ) AM_WRITE( AY8910_write_port_0_w )
AM_RANGE( 0x03, 0x03 ) AM_WRITE( AY8910_control_port_0_w )
@@ -395,7 +395,7 @@ static ADDRESS_MAP_START( ippatsu_iomap, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( suzume_iomap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE( 0x01, 0x01 ) AM_READ( AY8910_read_port_0_r )
AM_RANGE( 0x02, 0x02 ) AM_WRITE( AY8910_write_port_0_w )
AM_RANGE( 0x03, 0x03 ) AM_WRITE( AY8910_control_port_0_w )
@@ -406,7 +406,7 @@ static ADDRESS_MAP_START( suzume_iomap, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( dondenmj_iomap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE( 0x01, 0x01 ) AM_READ( AY8910_read_port_0_r )
AM_RANGE( 0x02, 0x02 ) AM_WRITE( AY8910_write_port_0_w )
AM_RANGE( 0x03, 0x03 ) AM_WRITE(AY8910_control_port_0_w)
@@ -418,7 +418,7 @@ static ADDRESS_MAP_START( dondenmj_iomap, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( mjdiplob_iomap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE( 0x01, 0x01 ) AM_READ( AY8910_read_port_0_r )
AM_RANGE( 0x02, 0x02 ) AM_WRITE( AY8910_write_port_0_w )
AM_RANGE( 0x03, 0x03 ) AM_WRITE( AY8910_control_port_0_w )
@@ -430,7 +430,7 @@ static ADDRESS_MAP_START( mjdiplob_iomap, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( tontonb_iomap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE( 0x01, 0x01 ) AM_READ( AY8910_read_port_0_r )
AM_RANGE( 0x02, 0x02 ) AM_WRITE( AY8910_write_port_0_w )
AM_RANGE( 0x03, 0x03 ) AM_WRITE( AY8910_control_port_0_w )
@@ -442,7 +442,7 @@ static ADDRESS_MAP_START( tontonb_iomap, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( majs101b_iomap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE( 0x01, 0x01 ) AM_READ( AY8910_read_port_0_r )
AM_RANGE( 0x02, 0x02 ) AM_WRITE( AY8910_write_port_0_w )
AM_RANGE( 0x03, 0x03 ) AM_WRITE( AY8910_control_port_0_w )
@@ -452,7 +452,7 @@ static ADDRESS_MAP_START( majs101b_iomap, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( mjderngr_iomap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE( 0x01, 0x01 ) AM_READ( AY8910_read_port_0_r )
AM_RANGE( 0x02, 0x02 ) AM_WRITE( AY8910_write_port_0_w )
AM_RANGE( 0x03, 0x03 ) AM_WRITE( AY8910_control_port_0_w )
@@ -466,7 +466,7 @@ static ADDRESS_MAP_START( mjderngr_iomap, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( mjapinky_iomap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE( 0x00, 0x00 ) AM_WRITE( mjapinky_bank_w )
AM_RANGE( 0x01, 0x01 ) AM_READ( AY8910_read_port_0_r )
AM_RANGE( 0x02, 0x02 ) AM_WRITE( AY8910_write_port_0_w )
@@ -535,7 +535,7 @@ static WRITE8_HANDLER( janptr96_coin_counter_w )
}
static ADDRESS_MAP_START( janptr96_iomap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE( 0x00, 0x00 ) AM_WRITE( janptr96_rombank_w ) // BANK ROM Select
AM_RANGE( 0x1e, 0x1e ) AM_READWRITE( janptr96_dswsel_r, janptr96_dswsel_w )
AM_RANGE( 0x1c, 0x1c ) AM_READ( janptr96_dsw_r )
diff --git a/src/mame/drivers/rpunch.c b/src/mame/drivers/rpunch.c
index 064ccf5d806..3447f412374 100644
--- a/src/mame/drivers/rpunch.c
+++ b/src/mame/drivers/rpunch.c
@@ -239,7 +239,7 @@ static WRITE8_HANDLER( upd_data_w )
*************************************/
static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 16 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(20) )
+ ADDRESS_MAP_GLOBAL_MASK(0xfffff)
AM_RANGE(0x000000, 0x03ffff) AM_READ(MRA16_ROM)
AM_RANGE(0x040000, 0x04ffff) AM_READ(MRA16_RAM)
AM_RANGE(0x060000, 0x060fff) AM_READ(MRA16_RAM)
@@ -253,7 +253,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 16 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(20) )
+ ADDRESS_MAP_GLOBAL_MASK(0xfffff)
AM_RANGE(0x000000, 0x03ffff) AM_WRITE(MWA16_ROM)
AM_RANGE(0x040000, 0x04ffff) AM_WRITE(MWA16_RAM) AM_BASE(&rpunch_bitmapram) AM_SIZE(&rpunch_bitmapram_size)
AM_RANGE(0x060000, 0x060fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16)
diff --git a/src/mame/drivers/sandscrp.c b/src/mame/drivers/sandscrp.c
index 85a064ce47d..d7b5365c175 100644
--- a/src/mame/drivers/sandscrp.c
+++ b/src/mame/drivers/sandscrp.c
@@ -269,7 +269,7 @@ static ADDRESS_MAP_START( sandscrp_soundmem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( sandscrp_soundport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(sandscrp_bankswitch_w) // ROM Bank
AM_RANGE(0x02, 0x02) AM_READWRITE(YM2203_status_port_0_r, YM2203_control_port_0_w) // YM2203
AM_RANGE(0x03, 0x03) AM_READWRITE(YM2203_read_port_0_r, YM2203_write_port_0_w) // PORTA/B read
diff --git a/src/mame/drivers/sangho.c b/src/mame/drivers/sangho.c
index 8c83bf0245b..6ca853d9e1d 100644
--- a/src/mame/drivers/sangho.c
+++ b/src/mame/drivers/sangho.c
@@ -77,7 +77,7 @@ static WRITE8_HANDLER(pzlestar_bank_w)
/* Puzzle Star Ports */
static ADDRESS_MAP_START (readport_pzlestar, ADDRESS_SPACE_IO, 8)
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE( 0x98, 0x98) AM_READ( v9938_vram_r )
AM_RANGE( 0x99, 0x99) AM_READ( v9938_status_r )
AM_RANGE( 0xa0, 0xa0) AM_READ( input_port_0_r )
@@ -86,7 +86,7 @@ static ADDRESS_MAP_START (readport_pzlestar, ADDRESS_SPACE_IO, 8)
ADDRESS_MAP_END
static ADDRESS_MAP_START (writeport_pzlestar, ADDRESS_SPACE_IO, 8)
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE( 0x91, 0x91) AM_WRITE( pzlestar_bank_w )
AM_RANGE( 0x7c, 0x7c) AM_WRITE( YM2413_register_port_0_w )
AM_RANGE( 0x7d, 0x7d) AM_WRITE( YM2413_data_port_0_w )
@@ -99,7 +99,7 @@ ADDRESS_MAP_END
/* Sexy Boom Ports */
static ADDRESS_MAP_START (readport_sexyboom, ADDRESS_SPACE_IO, 8)
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE( 0xa0, 0xa0) AM_READ( input_port_0_r )
AM_RANGE( 0xa1, 0xa1) AM_READ( input_port_1_r )
AM_RANGE( 0xf7, 0xf7) AM_READ( input_port_2_r )
@@ -108,7 +108,7 @@ static ADDRESS_MAP_START (readport_sexyboom, ADDRESS_SPACE_IO, 8)
ADDRESS_MAP_END
static ADDRESS_MAP_START (writeport_sexyboom, ADDRESS_SPACE_IO, 8)
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE( 0x7c, 0x7c) AM_WRITE( YM2413_register_port_0_w )
AM_RANGE( 0x7d, 0x7d) AM_WRITE( YM2413_data_port_0_w )
AM_RANGE( 0xf0, 0xf0) AM_WRITE( v9938_vram_w )
diff --git a/src/mame/drivers/sauro.c b/src/mame/drivers/sauro.c
index 74fcdd571a5..b3493b3d2e8 100644
--- a/src/mame/drivers/sauro.c
+++ b/src/mame/drivers/sauro.c
@@ -158,7 +158,7 @@ static ADDRESS_MAP_START( sauro_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( sauro_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(input_port_2_r)
AM_RANGE(0x20, 0x20) AM_READ(input_port_3_r)
AM_RANGE(0x40, 0x40) AM_READ(input_port_0_r)
@@ -166,7 +166,7 @@ static ADDRESS_MAP_START( sauro_readport, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( sauro_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0xa0, 0xa0) AM_WRITE(tecfri_scroll_bg_w)
AM_RANGE(0xa1, 0xa1) AM_WRITE(sauro_scroll_fg_w)
AM_RANGE(0x80, 0x80) AM_WRITE(sauro_sound_command_w)
diff --git a/src/mame/drivers/sbrkout.c b/src/mame/drivers/sbrkout.c
index ba409fa0938..038ed8e17ae 100644
--- a/src/mame/drivers/sbrkout.c
+++ b/src/mame/drivers/sbrkout.c
@@ -331,7 +331,7 @@ static VIDEO_UPDATE( sbrkout )
/* full memory map derived from schematics */
static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(14) )
+ ADDRESS_MAP_GLOBAL_MASK(0x3fff)
AM_RANGE(0x0000, 0x007f) AM_MIRROR(0x380) AM_RAMBANK(1)
AM_RANGE(0x0400, 0x07ff) AM_READWRITE(MRA8_RAM, sbrkout_videoram_w) AM_BASE(&videoram)
AM_RANGE(0x0800, 0x083f) AM_READ(switches_r)
diff --git a/src/mame/drivers/scobra.c b/src/mame/drivers/scobra.c
index fea75fbdf48..563936a07c4 100644
--- a/src/mame/drivers/scobra.c
+++ b/src/mame/drivers/scobra.c
@@ -433,13 +433,13 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( scobra_sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x20, 0x20) AM_READ(AY8910_read_port_0_r)
AM_RANGE(0x80, 0x80) AM_READ(AY8910_read_port_1_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( scobra_sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x10) AM_WRITE(AY8910_control_port_0_w)
AM_RANGE(0x20, 0x20) AM_WRITE(AY8910_write_port_0_w)
AM_RANGE(0x40, 0x40) AM_WRITE(AY8910_control_port_1_w)
@@ -459,23 +459,23 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( hustler_sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x40, 0x40) AM_READ(AY8910_read_port_0_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( hustler_sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x40, 0x40) AM_WRITE(AY8910_write_port_0_w)
AM_RANGE(0x80, 0x80) AM_WRITE(AY8910_control_port_0_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( hustlerb_sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x80, 0x80) AM_READ(AY8910_read_port_0_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( hustlerb_sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x40, 0x40) AM_WRITE(AY8910_control_port_0_w)
AM_RANGE(0x80, 0x80) AM_WRITE(AY8910_write_port_0_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/scotrsht.c b/src/mame/drivers/scotrsht.c
index e5707323a9d..bea1a2b73f1 100644
--- a/src/mame/drivers/scotrsht.c
+++ b/src/mame/drivers/scotrsht.c
@@ -72,7 +72,7 @@ static ADDRESS_MAP_START( scotrsht_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( scotrsht_sound_port, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READWRITE(YM2203_status_port_0_r, YM2203_control_port_0_w)
AM_RANGE(0x01, 0x01) AM_WRITE(YM2203_write_port_0_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/scramble.c b/src/mame/drivers/scramble.c
index f265783a020..d5917db34c3 100644
--- a/src/mame/drivers/scramble.c
+++ b/src/mame/drivers/scramble.c
@@ -424,12 +424,12 @@ static ADDRESS_MAP_START( sfx_sample_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( sfx_sample_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x04, 0x07) AM_READ(ppi8255_2_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( sfx_sample_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x04, 0x07) AM_WRITE(ppi8255_2_w)
AM_RANGE(0x10, 0x10) AM_WRITE(DAC_0_signed_data_w)
ADDRESS_MAP_END
@@ -567,27 +567,27 @@ static ADDRESS_MAP_START( ad2083_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( triplep_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x01, 0x01) AM_READ(AY8910_read_port_0_r)
AM_RANGE(0x02, 0x02) AM_READ(triplep_pip_r)
AM_RANGE(0x03, 0x03) AM_READ(triplep_pap_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( triplep_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(AY8910_write_port_0_w)
AM_RANGE(0x01, 0x01) AM_WRITE(AY8910_control_port_0_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( hotshock_sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x20, 0x20) AM_READ(AY8910_read_port_0_r)
AM_RANGE(0x40, 0x40) AM_READ(AY8910_read_port_1_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( hotshock_sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x10) AM_WRITE(AY8910_control_port_0_w)
AM_RANGE(0x20, 0x20) AM_WRITE(AY8910_write_port_0_w)
AM_RANGE(0x40, 0x40) AM_WRITE(AY8910_write_port_1_w)
@@ -610,7 +610,7 @@ static WRITE8_HANDLER( scorpion_sound_cmd_w )
}
static ADDRESS_MAP_START( scorpion_sound_io, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x04, 0x04) AM_WRITE(AY8910_control_port_0_w)
AM_RANGE(0x08, 0x08) AM_READWRITE(AY8910_read_port_0_r, AY8910_write_port_0_w)
AM_RANGE(0x10, 0x10) AM_WRITE(AY8910_control_port_1_w)
@@ -1971,13 +1971,13 @@ static ADDRESS_MAP_START( scramble_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( scramble_sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x20, 0x20) AM_READ(AY8910_read_port_0_r)
AM_RANGE(0x80, 0x80) AM_READ(AY8910_read_port_1_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( scramble_sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x10) AM_WRITE(AY8910_control_port_0_w)
AM_RANGE(0x20, 0x20) AM_WRITE(AY8910_write_port_0_w)
AM_RANGE(0x40, 0x40) AM_WRITE(AY8910_control_port_1_w)
@@ -2098,12 +2098,12 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( frogger_sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x40, 0x40) AM_READ(AY8910_read_port_0_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( frogger_sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x40, 0x40) AM_WRITE(AY8910_write_port_0_w)
AM_RANGE(0x80, 0x80) AM_WRITE(AY8910_control_port_0_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/seattle.c b/src/mame/drivers/seattle.c
index d20d1978cb3..bb33fbd490e 100644
--- a/src/mame/drivers/seattle.c
+++ b/src/mame/drivers/seattle.c
@@ -1725,7 +1725,7 @@ PCI Mem = 08000000-09FFFFFF
*/
static ADDRESS_MAP_START( seattle_map, ADDRESS_SPACE_PROGRAM, 32 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x00000000, 0x007fffff) AM_RAM AM_BASE(&rambase) // wg3dh only has 4MB; sfrush, blitz99 8MB
AM_RANGE(0x08000000, 0x08ffffff) AM_READWRITE(voodoo_0_r, seattle_voodoo_w)
AM_RANGE(0x0a000000, 0x0a0003ff) AM_READWRITE(ide_controller32_0_r, ide_controller32_0_w)
diff --git a/src/mame/drivers/segae.c b/src/mame/drivers/segae.c
index 8a073745311..8db2723752a 100644
--- a/src/mame/drivers/segae.c
+++ b/src/mame/drivers/segae.c
@@ -344,11 +344,11 @@ static ADDRESS_MAP_START( systeme_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( sms_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
ADDRESS_MAP_END
static ADDRESS_MAP_START( sms_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
ADDRESS_MAP_END
/* Precalculated tables for H/V counters. Note the position the counter 'jumps' is marked with with
diff --git a/src/mame/drivers/segag80r.c b/src/mame/drivers/segag80r.c
index 98ad4af3fb3..caef096081f 100644
--- a/src/mame/drivers/segag80r.c
+++ b/src/mame/drivers/segag80r.c
@@ -347,7 +347,7 @@ ADDRESS_MAP_END
/* complete memory map derived from schematics */
static ADDRESS_MAP_START( main_portmap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0xbe, 0xbf) AM_READWRITE(segag80r_video_port_r, segag80r_video_port_w)
AM_RANGE(0xf9, 0xf9) AM_MIRROR(0x04) AM_WRITE(coin_count_w)
AM_RANGE(0xf8, 0xfb) AM_READ(mangled_ports_r)
@@ -356,7 +356,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sindbadm_portmap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x42, 0x43) AM_READWRITE(segag80r_video_port_r, segag80r_video_port_w)
AM_RANGE(0xf8, 0xfb) AM_READ(mangled_ports_r)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/segag80v.c b/src/mame/drivers/segag80v.c
index bb9b90af590..60611835d39 100644
--- a/src/mame/drivers/segag80v.c
+++ b/src/mame/drivers/segag80v.c
@@ -407,7 +407,7 @@ ADDRESS_MAP_END
/* complete memory map derived from schematics */
static ADDRESS_MAP_START( main_portmap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0xbc, 0xbc) /* AM_READ ??? */
AM_RANGE(0xbd, 0xbe) AM_WRITE(multiply_w)
AM_RANGE(0xbe, 0xbe) AM_READ(multiply_r)
diff --git a/src/mame/drivers/segahang.c b/src/mame/drivers/segahang.c
index c3328a6a7a3..777a91a668f 100644
--- a/src/mame/drivers/segahang.c
+++ b/src/mame/drivers/segahang.c
@@ -359,7 +359,7 @@ static READ8_HANDLER( sound_data_r )
*************************************/
static ADDRESS_MAP_START( hangon_map, ADDRESS_SPACE_PROGRAM, 16 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x20c000, 0x20ffff) AM_RAM
AM_RANGE(0x400000, 0x403fff) AM_READWRITE(MRA16_RAM, segaic16_tileram_0_w) AM_BASE(&segaic16_tileram_0)
@@ -374,7 +374,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sharrier_map, ADDRESS_SPACE_PROGRAM, 16 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x040000, 0x043fff) AM_RAM AM_BASE(&workram)
AM_RANGE(0x100000, 0x107fff) AM_READWRITE(MRA16_RAM, segaic16_tileram_0_w) AM_BASE(&segaic16_tileram_0)
@@ -395,7 +395,8 @@ ADDRESS_MAP_END
*************************************/
static ADDRESS_MAP_START( sub_map, ADDRESS_SPACE_PROGRAM, 16 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) | AMEF_ABITS(19) )
+ ADDRESS_MAP_UNMAP_HIGH
+ ADDRESS_MAP_GLOBAL_MASK(0x7ffff)
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x068000, 0x068fff) AM_RAM AM_SHARE(1)
AM_RANGE(0x07c000, 0x07ffff) AM_RAM AM_SHARE(2)
@@ -410,7 +411,7 @@ ADDRESS_MAP_END
*************************************/
static ADDRESS_MAP_START( sound_map_2203, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_MIRROR(0x0800) AM_RAM
AM_RANGE(0xd000, 0xd000) AM_MIRROR(0x0ffe) AM_READWRITE(YM2203_status_port_0_r, YM2203_control_port_0_w)
@@ -419,27 +420,30 @@ static ADDRESS_MAP_START( sound_map_2203, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_portmap_2203, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) | AMEF_ABITS(8) )
+ ADDRESS_MAP_UNMAP_HIGH
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x40, 0x40) AM_MIRROR(0x3f) AM_READ(sound_data_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_map_2151, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xf000, 0xf0ff) AM_MIRROR(0x700) AM_READWRITE(SegaPCM_r, SegaPCM_w)
AM_RANGE(0xf800, 0xffff) AM_RAM
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_portmap_2151, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) | AMEF_ABITS(8) )
+ ADDRESS_MAP_UNMAP_HIGH
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_MIRROR(0x3e) AM_WRITE(YM2151_register_port_0_w)
AM_RANGE(0x01, 0x01) AM_MIRROR(0x3e) AM_READWRITE(YM2151_status_port_0_r, YM2151_data_port_0_w)
AM_RANGE(0x40, 0x40) AM_MIRROR(0x3f) AM_READ(sound_data_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_portmap_2203x2, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) | AMEF_ABITS(8) )
+ ADDRESS_MAP_UNMAP_HIGH
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_MIRROR(0x3e) AM_READWRITE(YM2203_status_port_0_r, YM2203_control_port_0_w)
AM_RANGE(0x01, 0x01) AM_MIRROR(0x3e) AM_WRITE(YM2203_write_port_0_w)
AM_RANGE(0x40, 0x40) AM_MIRROR(0x3f) AM_READ(sound_data_r)
@@ -456,12 +460,12 @@ ADDRESS_MAP_END
*************************************/
static ADDRESS_MAP_START( mcu_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x0fff) AM_ROM
ADDRESS_MAP_END
static ADDRESS_MAP_START( mcu_data_map, ADDRESS_SPACE_DATA, 8 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
ADDRESS_MAP_END
diff --git a/src/mame/drivers/segald.c b/src/mame/drivers/segald.c
index 2cb8a214b0e..357ee5f245e 100644
--- a/src/mame/drivers/segald.c
+++ b/src/mame/drivers/segald.c
@@ -235,7 +235,7 @@ ADDRESS_MAP_END
/* I/O MAP */
static ADDRESS_MAP_START( mainport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_WRITE(astron_io_bankswitch_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/segaorun.c b/src/mame/drivers/segaorun.c
index d7defcdff69..bf67e2dda51 100644
--- a/src/mame/drivers/segaorun.c
+++ b/src/mame/drivers/segaorun.c
@@ -521,7 +521,7 @@ static NVRAM_HANDLER( outrun )
*************************************/
static ADDRESS_MAP_START( outrun_map, ADDRESS_SPACE_PROGRAM, 16 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x000000, 0xffffff) AM_READWRITE(segaic16_memory_mapper_lsb_r, segaic16_memory_mapper_lsb_w)
ADDRESS_MAP_END
@@ -534,7 +534,8 @@ ADDRESS_MAP_END
*************************************/
static ADDRESS_MAP_START( sub_map, ADDRESS_SPACE_PROGRAM, 16 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) | AMEF_ABITS(20) )
+ ADDRESS_MAP_UNMAP_HIGH
+ ADDRESS_MAP_GLOBAL_MASK(0xfffff)
AM_RANGE(0x000000, 0x05ffff) AM_ROM AM_BASE(&cpu1rom)
AM_RANGE(0x060000, 0x067fff) AM_MIRROR(0x018000) AM_RAM AM_BASE(&cpu1ram)
AM_RANGE(0x080000, 0x080fff) AM_MIRROR(0x00f000) AM_RAM AM_BASE(&segaic16_roadram_0)
@@ -550,14 +551,15 @@ ADDRESS_MAP_END
*************************************/
static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0xefff) AM_ROM
AM_RANGE(0xf000, 0xf0ff) AM_MIRROR(0x0700) AM_READWRITE(SegaPCM_r, SegaPCM_w)
AM_RANGE(0xf800, 0xffff) AM_RAM
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_portmap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) | AMEF_ABITS(8) )
+ ADDRESS_MAP_UNMAP_HIGH
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_MIRROR(0x3e) AM_WRITE(YM2151_register_port_0_w)
AM_RANGE(0x01, 0x01) AM_MIRROR(0x3e) AM_READWRITE(YM2151_status_port_0_r, YM2151_data_port_0_w)
AM_RANGE(0x40, 0x40) AM_MIRROR(0x3f) AM_READ(sound_data_r)
diff --git a/src/mame/drivers/segas16a.c b/src/mame/drivers/segas16a.c
index e20cd35f8a1..6ab2a087f84 100644
--- a/src/mame/drivers/segas16a.c
+++ b/src/mame/drivers/segas16a.c
@@ -809,7 +809,7 @@ static NVRAM_HANDLER( system16a )
*************************************/
static ADDRESS_MAP_START( system16a_map, ADDRESS_SPACE_PROGRAM, 16 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x000000, 0x03ffff) AM_MIRROR(0x380000) AM_ROM
AM_RANGE(0x400000, 0x407fff) AM_MIRROR(0xb88000) AM_READWRITE(MRA16_RAM, segaic16_tileram_0_w) AM_BASE(&segaic16_tileram_0)
AM_RANGE(0x410000, 0x410fff) AM_MIRROR(0xb8f000) AM_READWRITE(MRA16_RAM, segaic16_textram_0_w) AM_BASE(&segaic16_textram_0)
@@ -829,14 +829,15 @@ ADDRESS_MAP_END
*************************************/
static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xe800, 0xe800) AM_READ(sound_data_r)
AM_RANGE(0xf800, 0xffff) AM_RAM
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_portmap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) | AMEF_ABITS(8) )
+ ADDRESS_MAP_UNMAP_HIGH
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_MIRROR(0x3e) AM_WRITE(YM2151_register_port_0_w)
AM_RANGE(0x01, 0x01) AM_MIRROR(0x3e) AM_READWRITE(YM2151_status_port_0_r, YM2151_data_port_0_w)
AM_RANGE(0x80, 0x80) AM_MIRROR(0x3f) AM_WRITE(n7751_command_w)
@@ -852,7 +853,7 @@ ADDRESS_MAP_END
*************************************/
static ADDRESS_MAP_START( n7751_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x03ff) AM_ROM
ADDRESS_MAP_END
@@ -873,12 +874,12 @@ ADDRESS_MAP_END
*************************************/
static ADDRESS_MAP_START( mcu_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x0fff) AM_ROM
ADDRESS_MAP_END
static ADDRESS_MAP_START( mcu_data_map, ADDRESS_SPACE_DATA, 8 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
ADDRESS_MAP_END
diff --git a/src/mame/drivers/segas16b.c b/src/mame/drivers/segas16b.c
index c2236a92365..974d0c5d139 100644
--- a/src/mame/drivers/segas16b.c
+++ b/src/mame/drivers/segas16b.c
@@ -1740,7 +1740,7 @@ static NVRAM_HANDLER( system16b )
*************************************/
static ADDRESS_MAP_START( system16b_map, ADDRESS_SPACE_PROGRAM, 16 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x000000, 0xffffff) AM_READWRITE(segaic16_memory_mapper_lsb_r, segaic16_memory_mapper_lsb_w)
ADDRESS_MAP_END
@@ -1753,7 +1753,7 @@ ADDRESS_MAP_END
*************************************/
static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xdfff) AM_ROMBANK(1)
AM_RANGE(0xe800, 0xe800) AM_READ(soundlatch_r)
@@ -1761,7 +1761,8 @@ static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_portmap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) | AMEF_ABITS(8) )
+ ADDRESS_MAP_UNMAP_HIGH
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_MIRROR(0x3e) AM_WRITE(YM2151_register_port_0_w)
AM_RANGE(0x01, 0x01) AM_MIRROR(0x3e) AM_READWRITE(YM2151_status_port_0_r, YM2151_data_port_0_w)
AM_RANGE(0x40, 0x40) AM_MIRROR(0x3f) AM_WRITE(upd7759_control_w)
@@ -1778,12 +1779,12 @@ ADDRESS_MAP_END
*************************************/
static ADDRESS_MAP_START( mcu_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x0fff) AM_ROM
ADDRESS_MAP_END
static ADDRESS_MAP_START( mcu_data_map, ADDRESS_SPACE_DATA, 8 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x001f) AM_READWRITE(segaic16_memory_mapper_r, segaic16_memory_mapper_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/segas18.c b/src/mame/drivers/segas18.c
index 9fa515608bb..938481e1256 100644
--- a/src/mame/drivers/segas18.c
+++ b/src/mame/drivers/segas18.c
@@ -584,7 +584,7 @@ static NVRAM_HANDLER( system18 )
*************************************/
static ADDRESS_MAP_START( system18_map, ADDRESS_SPACE_PROGRAM, 16 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x000000, 0xffffff) AM_READWRITE(segaic16_memory_mapper_lsb_r, segaic16_memory_mapper_lsb_w)
ADDRESS_MAP_END
@@ -597,7 +597,7 @@ ADDRESS_MAP_END
*************************************/
static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x9fff) AM_ROM AM_REGION(REGION_CPU2, 0x10000)
AM_RANGE(0xa000, 0xbfff) AM_ROMBANK(1)
AM_RANGE(0xc000, 0xc00f) AM_MIRROR(0x0ff0) AM_READWRITE(RF5C68_r, RF5C68_reg_w)
@@ -606,7 +606,8 @@ static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_portmap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) | AMEF_ABITS(8) )
+ ADDRESS_MAP_UNMAP_HIGH
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x80, 0x80) AM_MIRROR(0x0c) AM_READWRITE(YM3438_status_port_0_A_r, YM3438_control_port_0_A_w)
AM_RANGE(0x81, 0x81) AM_MIRROR(0x0c) AM_WRITE(YM3438_data_port_0_A_w)
AM_RANGE(0x82, 0x82) AM_MIRROR(0x0c) AM_WRITE(YM3438_control_port_0_B_w)
@@ -628,12 +629,12 @@ ADDRESS_MAP_END
*************************************/
static ADDRESS_MAP_START( mcu_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x0fff) AM_ROM
ADDRESS_MAP_END
static ADDRESS_MAP_START( mcu_data_map, ADDRESS_SPACE_DATA, 8 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x001f) AM_READWRITE(segaic16_memory_mapper_r, segaic16_memory_mapper_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/segas32.c b/src/mame/drivers/segas32.c
index 411ec6ad1fc..48498b04090 100644
--- a/src/mame/drivers/segas32.c
+++ b/src/mame/drivers/segas32.c
@@ -1183,7 +1183,7 @@ static NVRAM_HANDLER( system32 )
*************************************/
static ADDRESS_MAP_START( system32_map, ADDRESS_SPACE_PROGRAM, 16 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x000000, 0x1fffff) AM_ROM
AM_RANGE(0x200000, 0x20ffff) AM_MIRROR(0x0f0000) AM_RAM AM_BASE(&system32_workram)
AM_RANGE(0x300000, 0x31ffff) AM_MIRROR(0x0e0000) AM_READWRITE(system32_videoram_r, system32_videoram_w) AM_BASE(&system32_videoram)
@@ -1201,7 +1201,8 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( multi32_map, ADDRESS_SPACE_PROGRAM, 32 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) | AMEF_ABITS(24) )
+ ADDRESS_MAP_UNMAP_HIGH
+ ADDRESS_MAP_GLOBAL_MASK(0xffffff)
AM_RANGE(0x000000, 0x1fffff) AM_ROM
AM_RANGE(0x200000, 0x21ffff) AM_MIRROR(0x0e0000) AM_RAM
AM_RANGE(0x300000, 0x31ffff) AM_MIRROR(0x0e0000) AM_READWRITE(multi32_videoram_r, multi32_videoram_w) AM_BASE((UINT32 **)&system32_videoram)
@@ -1238,7 +1239,8 @@ static ADDRESS_MAP_START( system32_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( system32_sound_portmap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) | AMEF_ABITS(8) )
+ ADDRESS_MAP_UNMAP_HIGH
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x80, 0x80) AM_MIRROR(0x0c) AM_READWRITE(YM3438_status_port_0_A_r, YM3438_control_port_0_A_w)
AM_RANGE(0x81, 0x81) AM_MIRROR(0x0c) AM_WRITE(YM3438_data_port_0_A_w)
AM_RANGE(0x82, 0x82) AM_MIRROR(0x0c) AM_WRITE(YM3438_control_port_0_B_w)
@@ -1263,7 +1265,8 @@ static ADDRESS_MAP_START( multi32_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( multi32_sound_portmap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) | AMEF_ABITS(8) )
+ ADDRESS_MAP_UNMAP_HIGH
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x80, 0x80) AM_MIRROR(0x0c) AM_READWRITE(YM3438_status_port_0_A_r, YM3438_control_port_0_A_w)
AM_RANGE(0x81, 0x81) AM_MIRROR(0x0c) AM_WRITE(YM3438_data_port_0_A_w)
AM_RANGE(0x82, 0x82) AM_MIRROR(0x0c) AM_WRITE(YM3438_control_port_0_B_w)
diff --git a/src/mame/drivers/segaxbd.c b/src/mame/drivers/segaxbd.c
index 3f63ba3c932..e929706e586 100644
--- a/src/mame/drivers/segaxbd.c
+++ b/src/mame/drivers/segaxbd.c
@@ -516,7 +516,8 @@ static NVRAM_HANDLER( xboard )
*************************************/
static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) | AMEF_ABITS(22) )
+ ADDRESS_MAP_UNMAP_HIGH
+ ADDRESS_MAP_GLOBAL_MASK(0x3fffff)
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x080000, 0x083fff) AM_MIRROR(0x01c000) AM_RAM AM_SHARE(1) AM_BASE(&backupram1)
AM_RANGE(0x0a0000, 0x0a3fff) AM_MIRROR(0x01c000) AM_RAM AM_SHARE(2) AM_BASE(&backupram2)
@@ -554,7 +555,8 @@ ADDRESS_MAP_END
*************************************/
static ADDRESS_MAP_START( sub_map, ADDRESS_SPACE_PROGRAM, 16 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) | AMEF_ABITS(20) )
+ ADDRESS_MAP_UNMAP_HIGH
+ ADDRESS_MAP_GLOBAL_MASK(0xfffff)
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x080000, 0x083fff) AM_MIRROR(0x01c000) AM_RAM AM_SHARE(3)
AM_RANGE(0x0a0000, 0x0a3fff) AM_MIRROR(0x01c000) AM_RAM AM_SHARE(4)
@@ -575,14 +577,15 @@ ADDRESS_MAP_END
*************************************/
static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0xefff) AM_ROM
AM_RANGE(0xf000, 0xf0ff) AM_MIRROR(0x0700) AM_READWRITE(SegaPCM_r, SegaPCM_w)
AM_RANGE(0xf800, 0xffff) AM_RAM
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_portmap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) | AMEF_ABITS(8) )
+ ADDRESS_MAP_UNMAP_HIGH
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_MIRROR(0x3e) AM_WRITE(YM2151_register_port_0_w)
AM_RANGE(0x01, 0x01) AM_MIRROR(0x3e) AM_READWRITE(YM2151_status_port_0_r, YM2151_data_port_0_w)
AM_RANGE(0x40, 0x40) AM_MIRROR(0x3f) AM_READ(sound_data_r)
@@ -597,13 +600,13 @@ ADDRESS_MAP_END
*************************************/
static ADDRESS_MAP_START( smgp_comm_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x2000, 0x3fff) AM_RAM
ADDRESS_MAP_END
static ADDRESS_MAP_START( smgp_comm_portmap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/segaybd.c b/src/mame/drivers/segaybd.c
index b2a5589c3e5..27525995fe1 100644
--- a/src/mame/drivers/segaybd.c
+++ b/src/mame/drivers/segaybd.c
@@ -386,7 +386,8 @@ static NVRAM_HANDLER( yboard )
*************************************/
static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) | AMEF_ABITS(21) )
+ ADDRESS_MAP_UNMAP_HIGH
+ ADDRESS_MAP_GLOBAL_MASK(0x1fffff)
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x080000, 0x080007) AM_MIRROR(0x001ff8) AM_READWRITE(segaic16_multiply_0_r, segaic16_multiply_0_w)
AM_RANGE(0x082000, 0x083fff) AM_WRITE(sound_data_w)
@@ -407,7 +408,8 @@ ADDRESS_MAP_END
*************************************/
static ADDRESS_MAP_START( subx_map, ADDRESS_SPACE_PROGRAM, 16 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) | AMEF_ABITS(21) )
+ ADDRESS_MAP_UNMAP_HIGH
+ ADDRESS_MAP_GLOBAL_MASK(0x1fffff)
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x080000, 0x080007) AM_MIRROR(0x001ff8) AM_READWRITE(segaic16_multiply_1_r, segaic16_multiply_1_w)
AM_RANGE(0x084000, 0x08401f) AM_MIRROR(0x001fe0) AM_READWRITE(segaic16_divide_1_r, segaic16_divide_1_w)
@@ -419,7 +421,8 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( suby_map, ADDRESS_SPACE_PROGRAM, 16 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) | AMEF_ABITS(21) )
+ ADDRESS_MAP_UNMAP_HIGH
+ ADDRESS_MAP_GLOBAL_MASK(0x1fffff)
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x080000, 0x080007) AM_MIRROR(0x001ff8) AM_READWRITE(segaic16_multiply_2_r, segaic16_multiply_2_w)
AM_RANGE(0x084000, 0x08401f) AM_MIRROR(0x001fe0) AM_READWRITE(segaic16_divide_2_r, segaic16_divide_2_w)
@@ -440,14 +443,15 @@ ADDRESS_MAP_END
*************************************/
static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0xefff) AM_ROM
AM_RANGE(0xf000, 0xf0ff) AM_MIRROR(0x0700) AM_READWRITE(SegaPCM_r, SegaPCM_w)
AM_RANGE(0xf800, 0xffff) AM_RAM
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_portmap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) | AMEF_ABITS(8) )
+ ADDRESS_MAP_UNMAP_HIGH
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_MIRROR(0x3e) AM_WRITE(YM2151_register_port_0_w)
AM_RANGE(0x01, 0x01) AM_MIRROR(0x3e) AM_READWRITE(YM2151_status_port_0_r, YM2151_data_port_0_w)
AM_RANGE(0x40, 0x40) AM_MIRROR(0x3f) AM_READ(sound_data_r)
diff --git a/src/mame/drivers/seicross.c b/src/mame/drivers/seicross.c
index af42f7902e4..ee24ad2d4ef 100644
--- a/src/mame/drivers/seicross.c
+++ b/src/mame/drivers/seicross.c
@@ -131,7 +131,7 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( main_portmap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(AY8910_control_port_0_w)
AM_RANGE(0x01, 0x01) AM_WRITE(AY8910_write_port_0_w)
AM_RANGE(0x04, 0x04) AM_READ(AY8910_read_port_0_r)
diff --git a/src/mame/drivers/senjyo.c b/src/mame/drivers/senjyo.c
index eb6bcb6c9a2..b0b42416394 100644
--- a/src/mame/drivers/senjyo.c
+++ b/src/mame/drivers/senjyo.c
@@ -306,13 +306,13 @@ static READ8_HANDLER( pio_r )
}
static ADDRESS_MAP_START( sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x03) AM_READ(pio_r)
AM_RANGE(0x08, 0x0b) AM_READ(z80ctc_0_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x03) AM_WRITE(pio_w)
AM_RANGE(0x08, 0x0b) AM_WRITE(z80ctc_0_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/seta.c b/src/mame/drivers/seta.c
index 1d5f0f26e5c..82f822c82bc 100644
--- a/src/mame/drivers/seta.c
+++ b/src/mame/drivers/seta.c
@@ -2993,12 +2993,12 @@ static ADDRESS_MAP_START( utoukond_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( utoukond_sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(YM3438_status_port_0_A_r)
AM_RANGE(0xc0, 0xc0) AM_READ(soundlatch_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( utoukond_sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(YM3438_control_port_0_A_w)
AM_RANGE(0x01, 0x01) AM_WRITE(YM3438_data_port_0_A_w)
AM_RANGE(0x02, 0x02) AM_WRITE(YM3438_control_port_0_B_w)
diff --git a/src/mame/drivers/sf.c b/src/mame/drivers/sf.c
index 1b3e0940cf1..28a42962710 100644
--- a/src/mame/drivers/sf.c
+++ b/src/mame/drivers/sf.c
@@ -278,13 +278,13 @@ static ADDRESS_MAP_START( sound2_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound2_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x01, 0x01) AM_READ(soundlatch_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound2_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_WRITE(msm5205_w)
AM_RANGE(0x02, 0x02) AM_WRITE(sound2_bank_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/sg1000a.c b/src/mame/drivers/sg1000a.c
index 19e29526ca7..045b0423783 100644
--- a/src/mame/drivers/sg1000a.c
+++ b/src/mame/drivers/sg1000a.c
@@ -137,7 +137,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0xBE, 0xBE) AM_READ(TMS9928A_vram_r)
AM_RANGE(0xBF, 0xBF) AM_READ(TMS9928A_register_r)
AM_RANGE(0xDC, 0xDC) AM_READ(input_port_0_r)
@@ -146,7 +146,7 @@ static ADDRESS_MAP_START( readport, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0xBE, 0xBE) AM_WRITE(TMS9928A_vram_w)
AM_RANGE(0xBF, 0xBF) AM_WRITE(TMS9928A_register_w)
AM_RANGE(0xDF, 0xDF) AM_WRITE(MWA8_NOP) //? 8255 ?
diff --git a/src/mame/drivers/sgladiat.c b/src/mame/drivers/sgladiat.c
index 6ca66a06101..64f12c26e05 100644
--- a/src/mame/drivers/sgladiat.c
+++ b/src/mame/drivers/sgladiat.c
@@ -138,7 +138,7 @@ static ADDRESS_MAP_START( sgladiat_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( sgladiat_sound_portmap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READNOP
ADDRESS_MAP_END
diff --git a/src/mame/drivers/shangha3.c b/src/mame/drivers/shangha3.c
index 0caa357151d..94b88a1a197 100644
--- a/src/mame/drivers/shangha3.c
+++ b/src/mame/drivers/shangha3.c
@@ -195,14 +195,14 @@ static ADDRESS_MAP_START( heberpop_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( heberpop_sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(YM3438_status_port_0_A_r)
AM_RANGE(0x80, 0x80) AM_READ(OKIM6295_status_0_r)
AM_RANGE(0xc0, 0xc0) AM_READ(soundlatch_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( heberpop_sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(YM3438_control_port_0_A_w)
AM_RANGE(0x01, 0x01) AM_WRITE(YM3438_data_port_0_A_w)
AM_RANGE(0x02, 0x02) AM_WRITE(YM3438_control_port_0_B_w)
diff --git a/src/mame/drivers/shangkid.c b/src/mame/drivers/shangkid.c
index de8d260ad20..07f6d7fac8a 100644
--- a/src/mame/drivers/shangkid.c
+++ b/src/mame/drivers/shangkid.c
@@ -352,13 +352,13 @@ static ADDRESS_MAP_START( shangkid_bbx_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( chinhero_bbx_portmap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(shangkid_bbx_AY8910_control_w)
AM_RANGE(0x01, 0x01) AM_WRITE(chinhero_bbx_AY8910_write_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( shangkid_bbx_portmap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(shangkid_bbx_AY8910_control_w)
AM_RANGE(0x01, 0x01) AM_WRITE(shangkid_bbx_AY8910_write_w)
ADDRESS_MAP_END
@@ -376,7 +376,7 @@ static ADDRESS_MAP_START( shangkid_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_portmap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READWRITE(shangkid_soundlatch_r, DAC_0_data_w)
ADDRESS_MAP_END
@@ -466,7 +466,7 @@ static ADDRESS_MAP_START( dynamski_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( dynamski_portmap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
/* ports are reversed */
AM_RANGE(0x00, 0x00) AM_WRITE(AY8910_write_port_0_w)
AM_RANGE(0x01, 0x01) AM_WRITE(AY8910_control_port_0_w)
diff --git a/src/mame/drivers/shisen.c b/src/mame/drivers/shisen.c
index c5111210954..d3c57893b15 100644
--- a/src/mame/drivers/shisen.c
+++ b/src/mame/drivers/shisen.c
@@ -62,7 +62,7 @@ static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(sichuan2_dsw1_r)
AM_RANGE(0x01, 0x01) AM_READ(input_port_4_r)
AM_RANGE(0x02, 0x02) AM_READ(input_port_0_r)
@@ -71,7 +71,7 @@ static ADDRESS_MAP_START( readport, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(sichuan2_coin_w)
AM_RANGE(0x01, 0x01) AM_WRITE(m72_sound_command_byte_w)
AM_RANGE(0x02, 0x02) AM_WRITE(sichuan2_bankswitch_w)
@@ -88,14 +88,14 @@ static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x01, 0x01) AM_READ(YM2151_status_port_0_r)
AM_RANGE(0x80, 0x80) AM_READ(soundlatch_r)
AM_RANGE(0x84, 0x84) AM_READ(m72_sample_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(YM2151_register_port_0_w)
AM_RANGE(0x01, 0x01) AM_WRITE(YM2151_data_port_0_w)
AM_RANGE(0x80, 0x81) AM_WRITE(shisen_sample_addr_w)
diff --git a/src/mame/drivers/shougi.c b/src/mame/drivers/shougi.c
index f4a7ed1ff33..180f5bd72e7 100644
--- a/src/mame/drivers/shougi.c
+++ b/src/mame/drivers/shougi.c
@@ -306,7 +306,7 @@ static READ8_HANDLER ( dummy_r )
}
static ADDRESS_MAP_START( readport_sub, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(dummy_r)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/sidearms.c b/src/mame/drivers/sidearms.c
index 603b4ca9151..404326883e9 100644
--- a/src/mame/drivers/sidearms.c
+++ b/src/mame/drivers/sidearms.c
@@ -228,13 +228,13 @@ static ADDRESS_MAP_START( whizz_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( whizz_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x01, 0x01) AM_READ(YM2151_status_port_0_r)
AM_RANGE(0xc0, 0xc0) AM_READ(soundlatch_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( whizz_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(YM2151_register_port_0_w)
AM_RANGE(0x01, 0x01) AM_WRITE(YM2151_data_port_0_w)
AM_RANGE(0x40, 0x40) AM_WRITE(MWA8_NOP)
diff --git a/src/mame/drivers/skyarmy.c b/src/mame/drivers/skyarmy.c
index da2efe21463..927e2ef59f5 100644
--- a/src/mame/drivers/skyarmy.c
+++ b/src/mame/drivers/skyarmy.c
@@ -250,12 +250,12 @@ static GFXDECODE_START( skyarmy )
GFXDECODE_END
static ADDRESS_MAP_START( readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x06, 0x06) AM_READ(AY8910_read_port_0_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x04, 0x04) AM_WRITE(AY8910_control_port_0_w)
AM_RANGE(0x05, 0x05) AM_WRITE(AY8910_write_port_0_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/skydiver.c b/src/mame/drivers/skydiver.c
index 338b668b3d6..73755fa48e3 100644
--- a/src/mame/drivers/skydiver.c
+++ b/src/mame/drivers/skydiver.c
@@ -182,7 +182,7 @@ static WRITE8_HANDLER( skydiver_whistle_w )
*************************************/
static ADDRESS_MAP_START( skydiver_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(15) )
+ 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_READWRITE(MRA8_RAM, MWA8_RAM) /* RAM B1 */
AM_RANGE(0x0400, 0x07ff) AM_MIRROR(0x4000) AM_READWRITE(MRA8_RAM, skydiver_videoram_w) AM_BASE(&skydiver_videoram) /* RAMs K1,M1,P1,J1,N1,K/L1,L1,H/J1 */
diff --git a/src/mame/drivers/skylncr.c b/src/mame/drivers/skylncr.c
index 89248b6ccc3..00d0163edd5 100644
--- a/src/mame/drivers/skylncr.c
+++ b/src/mame/drivers/skylncr.c
@@ -172,7 +172,7 @@ static WRITE8_HANDLER( skylncr_coin_w )
}
static ADDRESS_MAP_START( io_map_skylncr, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ( input_port_0_r )
AM_RANGE(0x01, 0x01) AM_READ( input_port_1_r )
diff --git a/src/mame/drivers/slapfght.c b/src/mame/drivers/slapfght.c
index d56bd9ef512..2b5bfa23e9d 100644
--- a/src/mame/drivers/slapfght.c
+++ b/src/mame/drivers/slapfght.c
@@ -335,7 +335,7 @@ static ADDRESS_MAP_START( slapbtuk_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(slapfight_port_00_r) /* status register */
ADDRESS_MAP_END
@@ -345,12 +345,12 @@ static READ8_HANDLER(tigerh_status_r)
}
static ADDRESS_MAP_START( tigerh_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(tigerh_status_r) /* status register */
ADDRESS_MAP_END
static ADDRESS_MAP_START( m68705_readmem, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(11) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7ff)
AM_RANGE(0x0000, 0x0000) AM_READ(tigerh_68705_portA_r)
AM_RANGE(0x0001, 0x0001) AM_READ(tigerh_68705_portB_r)
AM_RANGE(0x0002, 0x0002) AM_READ(tigerh_68705_portC_r)
@@ -359,7 +359,7 @@ static ADDRESS_MAP_START( m68705_readmem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( m68705_writemem, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(11) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7ff)
AM_RANGE(0x0000, 0x0000) AM_WRITE(tigerh_68705_portA_w)
AM_RANGE(0x0001, 0x0001) AM_WRITE(tigerh_68705_portB_w)
AM_RANGE(0x0002, 0x0002) AM_WRITE(tigerh_68705_portC_w)
@@ -371,7 +371,7 @@ static ADDRESS_MAP_START( m68705_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( tigerh_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(slapfight_port_00_w)
AM_RANGE(0x01, 0x01) AM_WRITE(slapfight_port_01_w)
AM_RANGE(0x02, 0x03) AM_WRITE(slapfight_flipscreen_w)
@@ -380,7 +380,7 @@ static ADDRESS_MAP_START( tigerh_writeport, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(slapfight_port_00_w)
AM_RANGE(0x01, 0x01) AM_WRITE(slapfight_port_01_w)
AM_RANGE(0x02, 0x03) AM_WRITE(slapfight_flipscreen_w)
diff --git a/src/mame/drivers/snk68.c b/src/mame/drivers/snk68.c
index 8dddc621e67..e3e9cddbcac 100644
--- a/src/mame/drivers/snk68.c
+++ b/src/mame/drivers/snk68.c
@@ -211,12 +211,12 @@ static WRITE8_HANDLER( D7759_write_port_0_w )
}
static ADDRESS_MAP_START( sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(YM3812_status_port_0_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(YM3812_control_port_0_w)
AM_RANGE(0x20, 0x20) AM_WRITE(YM3812_write_port_0_w)
AM_RANGE(0x40, 0x40) AM_WRITE(D7759_write_port_0_w)
diff --git a/src/mame/drivers/snowbros.c b/src/mame/drivers/snowbros.c
index b719325c7c6..9292fc017a1 100644
--- a/src/mame/drivers/snowbros.c
+++ b/src/mame/drivers/snowbros.c
@@ -195,13 +195,13 @@ static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x02, 0x02) AM_READ(YM3812_status_port_0_r)
AM_RANGE(0x04, 0x04) AM_READ(soundlatch_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x02, 0x02) AM_WRITE(YM3812_control_port_0_w)
AM_RANGE(0x03, 0x03) AM_WRITE(YM3812_write_port_0_w)
AM_RANGE(0x04, 0x04) AM_WRITE(soundlatch_w) /* goes back to the main CPU, checked during boot */
@@ -271,13 +271,13 @@ static ADDRESS_MAP_START( honeydol_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( honeydol_sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x02, 0x02) AM_READ(YM3812_status_port_0_r) // not connected?
AM_RANGE(0x04, 0x04) AM_READ(soundlatch_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( honeydol_sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x02, 0x02) AM_WRITE(YM3812_control_port_0_w) // not connected?
AM_RANGE(0x03, 0x03) AM_WRITE(YM3812_write_port_0_w) // not connected?
AM_RANGE(0x04, 0x04) AM_WRITE(soundlatch_w) /* goes back to the main CPU, checked during boot */
@@ -341,13 +341,13 @@ static WRITE8_HANDLER( twinadv_oki_bank_w )
}
static ADDRESS_MAP_START( twinadv_sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x02, 0x02) AM_READ(soundlatch_r)
AM_RANGE(0x06, 0x06) AM_READ(OKIM6295_status_0_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( twinadv_sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x02, 0x02) AM_WRITE(soundlatch_w) // back to 68k?
AM_RANGE(0x04, 0x04) AM_WRITE(twinadv_oki_bank_w) // oki bank?
AM_RANGE(0x06, 0x06) AM_WRITE(OKIM6295_data_0_w)
diff --git a/src/mame/drivers/solomon.c b/src/mame/drivers/solomon.c
index bc529f7fb07..3e011c432ec 100644
--- a/src/mame/drivers/solomon.c
+++ b/src/mame/drivers/solomon.c
@@ -79,7 +79,7 @@ static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_portmap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x10) AM_WRITE(AY8910_control_port_0_w)
AM_RANGE(0x11, 0x11) AM_WRITE(AY8910_write_port_0_w)
AM_RANGE(0x20, 0x20) AM_WRITE(AY8910_control_port_1_w)
diff --git a/src/mame/drivers/spacefb.c b/src/mame/drivers/spacefb.c
index 3f498841d44..a560b31d8d9 100644
--- a/src/mame/drivers/spacefb.c
+++ b/src/mame/drivers/spacefb.c
@@ -199,7 +199,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( spacefb_audio_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(10) )
+ ADDRESS_MAP_GLOBAL_MASK(0x3ff)
AM_RANGE(0x0000, 0x03ff) AM_ROM
ADDRESS_MAP_END
@@ -212,7 +212,7 @@ ADDRESS_MAP_END
*************************************/
static ADDRESS_MAP_START( spacefb_main_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(3) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7)
AM_RANGE(0x00, 0x00) AM_READ(input_port_0_r)
AM_RANGE(0x01, 0x01) AM_READ(input_port_1_r)
AM_RANGE(0x02, 0x02) AM_READ(input_port_2_r)
diff --git a/src/mame/drivers/speedatk.c b/src/mame/drivers/speedatk.c
index 77c47849506..918ec50fe62 100644
--- a/src/mame/drivers/speedatk.c
+++ b/src/mame/drivers/speedatk.c
@@ -170,7 +170,7 @@ static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x40, 0x40) AM_READ(input_port_0_r)
/* are these not used? after they're read it sets bit 7 */
AM_RANGE(0x60, 0x60) AM_READ(MRA8_NOP)
@@ -179,7 +179,7 @@ static ADDRESS_MAP_START( readport, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x01, 0x01) AM_WRITE(speedatk_flip_screen_w)
AM_RANGE(0x40, 0x40) AM_WRITE(AY8910_control_port_0_w)
AM_RANGE(0x41, 0x41) AM_WRITE(AY8910_write_port_0_w)
diff --git a/src/mame/drivers/speedbal.c b/src/mame/drivers/speedbal.c
index 1f08702751e..75e996a9c25 100644
--- a/src/mame/drivers/speedbal.c
+++ b/src/mame/drivers/speedbal.c
@@ -82,7 +82,7 @@ static ADDRESS_MAP_START( main_cpu_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( main_cpu_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(input_port_0_r)
AM_RANGE(0x10, 0x10) AM_READ(input_port_1_r)
AM_RANGE(0x20, 0x20) AM_READ(input_port_2_r)
@@ -99,7 +99,7 @@ static ADDRESS_MAP_START( sound_cpu_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_cpu_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READWRITE(YM3812_status_port_0_r, YM3812_control_port_0_w)
AM_RANGE(0x01, 0x01) AM_WRITE(YM3812_write_port_0_w)
AM_RANGE(0x40, 0x40) AM_WRITENOP
diff --git a/src/mame/drivers/speedspn.c b/src/mame/drivers/speedspn.c
index 004e6c16ef3..db8ee11c7f9 100644
--- a/src/mame/drivers/speedspn.c
+++ b/src/mame/drivers/speedspn.c
@@ -139,7 +139,7 @@ static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x07, 0x07) AM_WRITE(speedspn_global_display_w)
AM_RANGE(0x12, 0x12) AM_WRITE(speedspn_banked_rom_change)
AM_RANGE(0x13, 0x13) AM_WRITE(speedspn_sound_w)
@@ -147,7 +147,7 @@ static ADDRESS_MAP_START( writeport, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x10) AM_READ(input_port_0_r) // inputs
AM_RANGE(0x11, 0x11) AM_READ(input_port_1_r) // inputs
AM_RANGE(0x12, 0x12) AM_READ(input_port_2_r) // inputs
diff --git a/src/mame/drivers/speglsht.c b/src/mame/drivers/speglsht.c
index 4e7901c282d..ad4e38ed312 100644
--- a/src/mame/drivers/speglsht.c
+++ b/src/mame/drivers/speglsht.c
@@ -75,7 +75,7 @@ static ADDRESS_MAP_START( st0016_mem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( st0016_io, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0xbf) AM_READ(st0016_vregs_r) AM_WRITE(st0016_vregs_w)
AM_RANGE(0xe1, 0xe1) AM_WRITE(st0016_rom_bank_w)
AM_RANGE(0xe2, 0xe2) AM_WRITE(st0016_sprite_bank_w)
diff --git a/src/mame/drivers/splash.c b/src/mame/drivers/splash.c
index 6d060119365..977646da74a 100644
--- a/src/mame/drivers/splash.c
+++ b/src/mame/drivers/splash.c
@@ -213,7 +213,7 @@ static ADDRESS_MAP_START( roldf_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( roldf_sound_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x12, 0x12) AM_WRITE(YM2203_control_port_0_w)
AM_RANGE(0x13, 0x13) AM_WRITE(YM2203_write_port_0_w)
AM_RANGE(0x40, 0x40) AM_NOP /* NMI ack */
diff --git a/src/mame/drivers/sprcros2.c b/src/mame/drivers/sprcros2.c
index 9e69a56ad7e..4352e80813c 100644
--- a/src/mame/drivers/sprcros2.c
+++ b/src/mame/drivers/sprcros2.c
@@ -139,7 +139,7 @@ static ADDRESS_MAP_START( sprcros2_m_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( sprcros2_m_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(input_port_0_r)
AM_RANGE(0x01, 0x01) AM_READ(input_port_1_r)
AM_RANGE(0x02, 0x02) AM_READ(input_port_2_r)
@@ -148,7 +148,7 @@ static ADDRESS_MAP_START( sprcros2_m_readport, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( sprcros2_m_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(SN76496_0_w)
AM_RANGE(0x01, 0x01) AM_WRITE(SN76496_1_w)
AM_RANGE(0x02, 0x02) AM_WRITE(SN76496_2_w)
@@ -174,7 +174,7 @@ static ADDRESS_MAP_START( sprcros2_s_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( sprcros2_s_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(sprcros2_bgscrollx_w)
AM_RANGE(0x01, 0x01) AM_WRITE(sprcros2_bgscrolly_w)
AM_RANGE(0x03, 0x03) AM_WRITE(sprcros2_s_port3_w)
diff --git a/src/mame/drivers/sprint4.c b/src/mame/drivers/sprint4.c
index 01d433aeb9f..70bc7caa0ad 100644
--- a/src/mame/drivers/sprint4.c
+++ b/src/mame/drivers/sprint4.c
@@ -238,7 +238,7 @@ static WRITE8_HANDLER( sprint4_attract_w )
static ADDRESS_MAP_START( sprint4_cpu_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(14) )
+ ADDRESS_MAP_GLOBAL_MASK(0x3fff)
AM_RANGE(0x0080, 0x00ff) AM_MIRROR(0x700) AM_READWRITE(sprint4_wram_r, sprint4_wram_w)
AM_RANGE(0x0800, 0x0bff) AM_MIRROR(0x400) AM_READWRITE(MRA8_RAM, sprint4_video_ram_w) AM_BASE(&videoram)
diff --git a/src/mame/drivers/srmp2.c b/src/mame/drivers/srmp2.c
index ccac3b40fa9..a2c76540250 100644
--- a/src/mame/drivers/srmp2.c
+++ b/src/mame/drivers/srmp2.c
@@ -581,7 +581,7 @@ static ADDRESS_MAP_START( srmp3_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( srmp3_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x40, 0x40) AM_READ(input_port_0_r) /* coin, service */
AM_RANGE(0xa1, 0xa1) AM_READ(srmp3_cchip_status_0_r) /* custom chip status ??? */
AM_RANGE(0xc0, 0xc0) AM_READ(srmp3_input_r) /* key matrix */
@@ -590,7 +590,7 @@ static ADDRESS_MAP_START( srmp3_readport, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( srmp3_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x20, 0x20) AM_WRITE(MWA8_NOP) /* elapsed interrupt signal */
AM_RANGE(0x40, 0x40) AM_WRITE(srmp3_flags_w) /* GFX bank, counter, lockout */
AM_RANGE(0x60, 0x60) AM_WRITE(srmp3_rombank_w) /* ROM bank select */
diff --git a/src/mame/drivers/srmp5.c b/src/mame/drivers/srmp5.c
index 7e4b00dcc30..312cd18ed86 100644
--- a/src/mame/drivers/srmp5.c
+++ b/src/mame/drivers/srmp5.c
@@ -200,7 +200,7 @@ ADDRESS_MAP_END
READ8_HANDLER(st0016_dma_r);
static ADDRESS_MAP_START( st0016_io, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0xbf) AM_READ(st0016_vregs_r) AM_WRITE(st0016_vregs_w)
AM_RANGE(0xc0, 0xc3) AM_NOP // data from other cpu ?
AM_RANGE(0xe0, 0xe0) AM_WRITENOP
diff --git a/src/mame/drivers/ssingles.c b/src/mame/drivers/ssingles.c
index 8e6d554eb11..6d6f0aed805 100644
--- a/src/mame/drivers/ssingles.c
+++ b/src/mame/drivers/ssingles.c
@@ -170,7 +170,7 @@ static ADDRESS_MAP_START( ssingles_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( ssingles_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(AY8910_control_port_0_w)
AM_RANGE(0x04, 0x04) AM_WRITE(AY8910_write_port_0_w)
AM_RANGE(0x06, 0x06) AM_WRITE(AY8910_control_port_1_w)
diff --git a/src/mame/drivers/sspeedr.c b/src/mame/drivers/sspeedr.c
index 692d3126efa..266652a1d4a 100644
--- a/src/mame/drivers/sspeedr.c
+++ b/src/mame/drivers/sspeedr.c
@@ -110,7 +110,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(input_port_0_r)
AM_RANGE(0x01, 0x01) AM_READ(input_port_1_r)
AM_RANGE(0x03, 0x03) AM_READ(input_port_2_r)
@@ -119,7 +119,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_WRITE(sspeedr_sound_w)
AM_RANGE(0x02, 0x02) AM_WRITE(sspeedr_lamp_w)
AM_RANGE(0x04, 0x05) AM_WRITE(sspeedr_time_w)
diff --git a/src/mame/drivers/sstrangr.c b/src/mame/drivers/sstrangr.c
index b7a950960d0..d9908e135e3 100644
--- a/src/mame/drivers/sstrangr.c
+++ b/src/mame/drivers/sstrangr.c
@@ -127,7 +127,7 @@ static WRITE8_HANDLER( port_w )
static ADDRESS_MAP_START( sstrangr_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(15) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x2000, 0x3fff) AM_RAM AM_BASE(&sstrngr_ram) AM_SIZE(&sstrngr_ram_size)
AM_RANGE(0x6000, 0x63ff) AM_ROM
diff --git a/src/mame/drivers/st0016.c b/src/mame/drivers/st0016.c
index 0747bb02c62..e356f176c02 100644
--- a/src/mame/drivers/st0016.c
+++ b/src/mame/drivers/st0016.c
@@ -69,7 +69,7 @@ WRITE8_HANDLER(st0016_rom_bank_w)
READ8_HANDLER(st0016_dma_r);
static ADDRESS_MAP_START( st0016_io, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0xbf) AM_READ(st0016_vregs_r) AM_WRITE(st0016_vregs_w) /* video/crt regs ? */
AM_RANGE(0xc0, 0xc0) AM_READ(input_port_0_r) AM_WRITE(mux_select_w)
AM_RANGE(0xc1, 0xc1) AM_READ(input_port_1_r) AM_WRITENOP
@@ -133,7 +133,7 @@ static ADDRESS_MAP_START( v810_mem,ADDRESS_SPACE_PROGRAM, 32 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( st0016_m2_io, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0xbf) AM_READ(st0016_vregs_r) AM_WRITE(st0016_vregs_w)
AM_RANGE(0xc0, 0xc3) AM_READ(latch8_r) AM_WRITE(latch8_w)
diff --git a/src/mame/drivers/suna16.c b/src/mame/drivers/suna16.c
index 059ef751b70..5c7384d4908 100644
--- a/src/mame/drivers/suna16.c
+++ b/src/mame/drivers/suna16.c
@@ -388,21 +388,21 @@ static WRITE8_HANDLER( bssoccer_DAC_2_w )
static ADDRESS_MAP_START( bssoccer_pcm_1_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(soundlatch2_r ) // From The Sound Z80
ADDRESS_MAP_END
static ADDRESS_MAP_START( bssoccer_pcm_1_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_WRITE(bssoccer_DAC_1_w ) // 2 x DAC
AM_RANGE(0x03, 0x03) AM_WRITE(bssoccer_pcm_1_bankswitch_w ) // Rom Bank
ADDRESS_MAP_END
static ADDRESS_MAP_START( bssoccer_pcm_2_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(soundlatch3_r ) // From The Sound Z80
ADDRESS_MAP_END
static ADDRESS_MAP_START( bssoccer_pcm_2_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_WRITE(bssoccer_DAC_2_w ) // 2 x DAC
AM_RANGE(0x03, 0x03) AM_WRITE(bssoccer_pcm_2_bankswitch_w ) // Rom Bank
ADDRESS_MAP_END
@@ -435,11 +435,11 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( uballoon_pcm_1_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(soundlatch2_r ) // From The Sound Z80
ADDRESS_MAP_END
static ADDRESS_MAP_START( uballoon_pcm_1_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_WRITE(bssoccer_DAC_1_w ) // 2 x DAC
AM_RANGE(0x03, 0x03) AM_WRITE(uballoon_pcm_1_bankswitch_w ) // Rom Bank
ADDRESS_MAP_END
@@ -454,7 +454,7 @@ static ADDRESS_MAP_START( bestbest_pcm_1_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( bestbest_pcm_1_iomap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ (soundlatch2_r ) // From The Sound Z80
AM_RANGE(0x00, 0x01) AM_WRITE(bssoccer_DAC_1_w ) // 2 x DAC
AM_RANGE(0x02, 0x03) AM_WRITE(bssoccer_DAC_2_w ) // 2 x DAC
diff --git a/src/mame/drivers/suna8.c b/src/mame/drivers/suna8.c
index 18d13715d98..eb821f7a2f9 100644
--- a/src/mame/drivers/suna8.c
+++ b/src/mame/drivers/suna8.c
@@ -555,12 +555,12 @@ static ADDRESS_MAP_START( hardhead_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( hardhead_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(MRA8_NOP ) // ? IRQ Ack
ADDRESS_MAP_END
static ADDRESS_MAP_START( hardhead_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
ADDRESS_MAP_END
@@ -630,12 +630,12 @@ static ADDRESS_MAP_START( rranger_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( rranger_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(MRA8_NOP ) // ? IRQ Ack
ADDRESS_MAP_END
static ADDRESS_MAP_START( rranger_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
ADDRESS_MAP_END
@@ -721,11 +721,11 @@ static ADDRESS_MAP_START( brickzn_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( brickzn_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
ADDRESS_MAP_END
static ADDRESS_MAP_START( brickzn_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
ADDRESS_MAP_END
@@ -896,11 +896,11 @@ static ADDRESS_MAP_START( starfigh_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( starfigh_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
ADDRESS_MAP_END
static ADDRESS_MAP_START( starfigh_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
ADDRESS_MAP_END
@@ -1022,12 +1022,12 @@ static ADDRESS_MAP_START( hardhead_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( hardhead_sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x01, 0x01) AM_READ(MRA8_NOP ) // ? IRQ Ack
ADDRESS_MAP_END
static ADDRESS_MAP_START( hardhead_sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
ADDRESS_MAP_END
@@ -1053,11 +1053,11 @@ static ADDRESS_MAP_START( rranger_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( rranger_sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
ADDRESS_MAP_END
static ADDRESS_MAP_START( rranger_sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
ADDRESS_MAP_END
@@ -1082,11 +1082,11 @@ static ADDRESS_MAP_START( brickzn_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( brickzn_sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
ADDRESS_MAP_END
static ADDRESS_MAP_START( brickzn_sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
ADDRESS_MAP_END
@@ -1106,11 +1106,11 @@ static WRITE8_HANDLER( brickzn_pcm_w )
}
static ADDRESS_MAP_START( brickzn_pcm_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(soundlatch2_r ) // From Sound CPU
ADDRESS_MAP_END
static ADDRESS_MAP_START( brickzn_pcm_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x03) AM_WRITE(brickzn_pcm_w ) // 4 x DAC
ADDRESS_MAP_END
diff --git a/src/mame/drivers/superdq.c b/src/mame/drivers/superdq.c
index 95e3ea34fc2..ff3190b5dfb 100644
--- a/src/mame/drivers/superdq.c
+++ b/src/mame/drivers/superdq.c
@@ -223,7 +223,7 @@ static ADDRESS_MAP_START( superdq_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( superdq_io, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0") AM_WRITE(superdq_ld_w)
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1")
AM_RANGE(0x02, 0x02) AM_READ_PORT("DSW1")
diff --git a/src/mame/drivers/superqix.c b/src/mame/drivers/superqix.c
index aa94a47c1a5..7f8edc55213 100644
--- a/src/mame/drivers/superqix.c
+++ b/src/mame/drivers/superqix.c
@@ -560,7 +560,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( m68705_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(11) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7ff)
AM_RANGE(0x0000, 0x0000) AM_READ(hotsmash_68705_portA_r)
AM_RANGE(0x0001, 0x0001) AM_WRITE(hotsmash_68705_portB_w)
AM_RANGE(0x0002, 0x0002) AM_READWRITE(hotsmash_68705_portC_r, hotsmash_68705_portC_w)
diff --git a/src/mame/drivers/suprgolf.c b/src/mame/drivers/suprgolf.c
index bc38ba122cc..f89161b93c3 100644
--- a/src/mame/drivers/suprgolf.c
+++ b/src/mame/drivers/suprgolf.c
@@ -96,7 +96,7 @@ static READ8_HANDLER( suprgolf_random )
}
static ADDRESS_MAP_START( io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(input_port_0_r) // Player 1 controls
AM_RANGE(0x01, 0x01) AM_READ(input_port_1_r) // Player 2 controls
AM_RANGE(0x02, 0x02) AM_READ(input_port_2_r) // ??
diff --git a/src/mame/drivers/suprridr.c b/src/mame/drivers/suprridr.c
index 2713eea64fe..32bceef9835 100644
--- a/src/mame/drivers/suprridr.c
+++ b/src/mame/drivers/suprridr.c
@@ -184,7 +184,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( main_portmap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(watchdog_reset_r)
ADDRESS_MAP_END
@@ -203,7 +203,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_portmap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(sound_irq_ack_w)
AM_RANGE(0x8c, 0x8c) AM_WRITE(AY8910_control_port_0_w)
AM_RANGE(0x8d, 0x8d) AM_READWRITE(AY8910_read_port_0_r, AY8910_write_port_0_w)
diff --git a/src/mame/drivers/suprslam.c b/src/mame/drivers/suprslam.c
index e6d94ffe4fc..626331523b3 100644
--- a/src/mame/drivers/suprslam.c
+++ b/src/mame/drivers/suprslam.c
@@ -178,14 +178,14 @@ static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( suprslam_sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x04, 0x04) AM_READ(soundlatch_r)
AM_RANGE(0x08, 0x08) AM_READ(YM2610_status_port_0_A_r)
AM_RANGE(0x0a, 0x0a) AM_READ(YM2610_status_port_0_B_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( suprslam_sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(suprslam_sh_bankswitch_w)
AM_RANGE(0x04, 0x04) AM_WRITE(pending_command_clear_w)
AM_RANGE(0x08, 0x08) AM_WRITE(YM2610_control_port_0_A_w)
diff --git a/src/mame/drivers/system1.c b/src/mame/drivers/system1.c
index a0c790d439b..e894bdc3ddd 100644
--- a/src/mame/drivers/system1.c
+++ b/src/mame/drivers/system1.c
@@ -239,7 +239,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(input_port_0_r) /* joy1 */
AM_RANGE(0x04, 0x04) AM_READ(input_port_1_r) /* joy2 */
AM_RANGE(0x08, 0x08) AM_READ(input_port_2_r) /* coin,start */
@@ -257,7 +257,7 @@ static ADDRESS_MAP_START( readport, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x14, 0x14) AM_WRITE(system1_soundport_w) /* sound commands */
AM_RANGE(0x15, 0x15) AM_WRITE(system1_videomode_w) /* video control and (in some games) bank switching */
AM_RANGE(0x18, 0x18) AM_WRITE(system1_soundport_w) /* mirror address */
@@ -265,7 +265,7 @@ static ADDRESS_MAP_START( writeport, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( wbml_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(input_port_0_r) /* joy1 */
AM_RANGE(0x04, 0x04) AM_READ(input_port_1_r) /* joy2 */
AM_RANGE(0x08, 0x08) AM_READ(input_port_2_r) /* coin,start */
@@ -279,7 +279,7 @@ static ADDRESS_MAP_START( wbml_readport, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( sht_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
// AM_RANGE(0x00, 0x00) AM_READ(input_port_0_r) /* joy1 */
// AM_RANGE(0x04, 0x04) AM_READ(input_port_1_r) /* joy2 */
AM_RANGE(0x08, 0x08) AM_READ(input_port_2_r) /* coin,start */
@@ -304,7 +304,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( nobo_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(input_port_0_r) /* Player 1 inputs */
AM_RANGE(0x04, 0x04) AM_READ(input_port_1_r) /* Player 2 inputs */
AM_RANGE(0x08, 0x08) AM_READ(input_port_2_r) /* System inputs */
@@ -318,20 +318,20 @@ static ADDRESS_MAP_START( nobo_readport, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( wbml_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x14, 0x14) AM_WRITE(system1_soundport_w) /* sound commands */
AM_RANGE(0x15, 0x15) AM_WRITE(chplft_videomode_w)
AM_RANGE(0x16, 0x16) AM_WRITE(wbml_videoram_bank_latch_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( hvymetal_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x18, 0x18) AM_WRITE(system1_soundport_w) /* sound commands */
AM_RANGE(0x19, 0x19) AM_WRITE(hvymetal_videomode_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( brain_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x18, 0x18) AM_WRITE(system1_soundport_w) /* sound commands */
AM_RANGE(0x19, 0x19) AM_WRITE(brain_videomode_w)
ADDRESS_MAP_END
@@ -375,7 +375,7 @@ static WRITE8_HANDLER(mcuenable_hack_w)
}
static ADDRESS_MAP_START( sht_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10,0x10) AM_WRITE(mcuenable_hack_w)
AM_RANGE(0x14, 0x14) AM_WRITE(system1_soundport_w) /* sound commands */
@@ -386,13 +386,13 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( chplft_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x14, 0x14) AM_WRITE(system1_soundport_w) /* sound commands */
AM_RANGE(0x15, 0x15) AM_WRITE(chplft_videomode_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( nobo_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x14, 0x14) AM_WRITE(system1_soundport_w) /* sound commands ? */
AM_RANGE(0x15, 0x15) AM_WRITE(brain_videomode_w) /* video control + bank switching */
AM_RANGE(0x16, 0x16) AM_WRITE(outport16_w) /* Used - check code at 0x05cb */
diff --git a/src/mame/drivers/system16.c b/src/mame/drivers/system16.c
index 38a0f0f4ea7..18162625a48 100644
--- a/src/mame/drivers/system16.c
+++ b/src/mame/drivers/system16.c
@@ -340,13 +340,13 @@ static ADDRESS_MAP_START(tturfbl_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( tturfbl_sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x01, 0x01) AM_READ(YM2151_status_port_0_r)
AM_RANGE(0x80, 0x80) AM_READ(MRA8_NOP)
ADDRESS_MAP_END
static ADDRESS_MAP_START( tturfbl_sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(YM2151_register_port_0_w)
AM_RANGE(0x01, 0x01) AM_WRITE(YM2151_data_port_0_w)
AM_RANGE(0x40, 0x40) AM_WRITE(MWA8_NOP)
@@ -367,13 +367,13 @@ static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x01, 0x01) AM_READ(YM2151_status_port_0_r)
AM_RANGE(0xc0, 0xc0) AM_READ(soundlatch_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(YM2151_register_port_0_w)
AM_RANGE(0x01, 0x01) AM_WRITE(YM2151_data_port_0_w)
ADDRESS_MAP_END
@@ -399,7 +399,7 @@ static WRITE8_HANDLER( upd7759_bank_w ) //*
static ADDRESS_MAP_START( sound_writeport_7759, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(YM2151_register_port_0_w)
AM_RANGE(0x01, 0x01) AM_WRITE(YM2151_data_port_0_w)
AM_RANGE(0x40, 0x40) AM_WRITE(upd7759_bank_w)
diff --git a/src/mame/drivers/system18.c b/src/mame/drivers/system18.c
index 1200407f85e..4c26626230f 100644
--- a/src/mame/drivers/system18.c
+++ b/src/mame/drivers/system18.c
@@ -266,12 +266,12 @@ static ADDRESS_MAP_START(shdancbl_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( shdancbl_sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0xc0, 0xdf) AM_READ(MRA8_NOP)
ADDRESS_MAP_END
static ADDRESS_MAP_START( shdancbl_sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0xa0, 0xbf) AM_WRITE(MWA8_NOP)
ADDRESS_MAP_END
@@ -316,7 +316,7 @@ static WRITE8_HANDLER( sys18_soundbank_w )
static ADDRESS_MAP_START( sound_readport_18, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x80, 0x80) AM_READ(YM3438_status_port_0_A_r)
// AM_RANGE(0x82, 0x82) AM_READ(YM3438_status_port_0_B_r)
// AM_RANGE(0x90, 0x90) AM_READ(YM3438_status_port_1_A_r)
@@ -325,7 +325,7 @@ static ADDRESS_MAP_START( sound_readport_18, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_writeport_18, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x80, 0x80) AM_WRITE(YM3438_control_port_0_A_w)
AM_RANGE(0x81, 0x81) AM_WRITE(YM3438_data_port_0_A_w)
AM_RANGE(0x82, 0x82) AM_WRITE(YM3438_control_port_0_B_w)
diff --git a/src/mame/drivers/tail2nos.c b/src/mame/drivers/tail2nos.c
index c15ebfdcacd..53a52c2a0ec 100644
--- a/src/mame/drivers/tail2nos.c
+++ b/src/mame/drivers/tail2nos.c
@@ -114,7 +114,7 @@ static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x07, 0x07) AM_READ(soundlatch_r)
#if 0
AM_RANGE(0x18, 0x18) AM_READ(YM2610_status_port_0_A_r)
@@ -123,7 +123,7 @@ static ADDRESS_MAP_START( sound_readport, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x07, 0x07) AM_WRITE(MWA8_NOP) /* clear pending command */
AM_RANGE(0x08, 0x08) AM_WRITE(YM2608_control_port_0_A_w)
AM_RANGE(0x09, 0x09) AM_WRITE(YM2608_data_port_0_A_w)
diff --git a/src/mame/drivers/taitosj.c b/src/mame/drivers/taitosj.c
index c0d2f4f896b..f23d63309e9 100644
--- a/src/mame/drivers/taitosj.c
+++ b/src/mame/drivers/taitosj.c
@@ -399,7 +399,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( taitosj_mcu_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(11) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7ff)
AM_RANGE(0x0000, 0x0000) AM_READWRITE(taitosj_68705_portA_r, taitosj_68705_portA_w)
AM_RANGE(0x0001, 0x0001) AM_READWRITE(taitosj_68705_portB_r, taitosj_68705_portB_w)
AM_RANGE(0x0002, 0x0002) AM_READ(taitosj_68705_portC_r)
diff --git a/src/mame/drivers/tankbust.c b/src/mame/drivers/tankbust.c
index 99630261910..e15656a0c03 100644
--- a/src/mame/drivers/tankbust.c
+++ b/src/mame/drivers/tankbust.c
@@ -235,13 +235,13 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( readport2, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0xc0, 0xc0) AM_READ(AY8910_read_port_0_r)
AM_RANGE(0x30, 0x30) AM_READ(AY8910_read_port_1_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport2, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0xc0, 0xc0) AM_WRITE(AY8910_control_port_0_w)
AM_RANGE(0x40, 0x40) AM_WRITE(AY8910_write_port_0_w)
AM_RANGE(0x30, 0x30) AM_WRITE(AY8910_control_port_1_w)
diff --git a/src/mame/drivers/taotaido.c b/src/mame/drivers/taotaido.c
index 1b67699c5de..295412e04e3 100644
--- a/src/mame/drivers/taotaido.c
+++ b/src/mame/drivers/taotaido.c
@@ -167,14 +167,14 @@ static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( taotaido_sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(YM2610_status_port_0_A_r)
AM_RANGE(0x02, 0x02) AM_READ(YM2610_status_port_0_B_r)
AM_RANGE(0x0c, 0x0c) AM_READ(soundlatch_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( taotaido_sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(YM2610_control_port_0_A_w)
AM_RANGE(0x01, 0x01) AM_WRITE(YM2610_data_port_0_A_w)
AM_RANGE(0x02, 0x02) AM_WRITE(YM2610_control_port_0_B_w)
diff --git a/src/mame/drivers/taxidrvr.c b/src/mame/drivers/taxidrvr.c
index 10cca766093..152f8ab9b78 100644
--- a/src/mame/drivers/taxidrvr.c
+++ b/src/mame/drivers/taxidrvr.c
@@ -181,13 +181,13 @@ static ADDRESS_MAP_START( writemem3, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( readport3, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x01, 0x01) AM_READ(AY8910_read_port_0_r)
AM_RANGE(0x03, 0x03) AM_READ(AY8910_read_port_1_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport3, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(AY8910_control_port_0_w)
AM_RANGE(0x01, 0x01) AM_WRITE(AY8910_write_port_0_w)
AM_RANGE(0x02, 0x02) AM_WRITE(AY8910_control_port_1_w)
diff --git a/src/mame/drivers/tecmosys.c b/src/mame/drivers/tecmosys.c
index e3a36559afa..c079822622e 100644
--- a/src/mame/drivers/tecmosys.c
+++ b/src/mame/drivers/tecmosys.c
@@ -372,14 +372,14 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(YMF262_status_0_r)
AM_RANGE(0x40, 0x40) AM_READ(soundlatch_r)
//AM_RANGE(0x60, 0x60) AM_READ(YMZ280B_status_0_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(YMF262_register_A_0_w)
AM_RANGE(0x01, 0x01) AM_WRITE(YMF262_data_A_0_w)
AM_RANGE(0x02, 0x02) AM_WRITE(YMF262_register_B_0_w)
diff --git a/src/mame/drivers/tehkanwc.c b/src/mame/drivers/tehkanwc.c
index 1704c0e71e9..696d66917e9 100644
--- a/src/mame/drivers/tehkanwc.c
+++ b/src/mame/drivers/tehkanwc.c
@@ -286,7 +286,7 @@ static ADDRESS_MAP_START( sound_mem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_port, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READWRITE(AY8910_read_port_0_r, AY8910_write_port_0_w)
AM_RANGE(0x01, 0x01) AM_WRITE(AY8910_control_port_0_w)
AM_RANGE(0x02, 0x02) AM_READWRITE(AY8910_read_port_1_r, AY8910_write_port_1_w)
diff --git a/src/mame/drivers/terracre.c b/src/mame/drivers/terracre.c
index 3fa7d5df884..1a19b1719cb 100644
--- a/src/mame/drivers/terracre.c
+++ b/src/mame/drivers/terracre.c
@@ -306,13 +306,13 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x04, 0x04) AM_READ(soundlatch_clear_r)
AM_RANGE(0x06, 0x06) AM_READ(soundlatch_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_writeport_3526, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(YM3526_control_port_0_w)
AM_RANGE(0x01, 0x01) AM_WRITE(YM3526_write_port_0_w)
AM_RANGE(0x02, 0x02) AM_WRITE(DAC_0_signed_data_w)
@@ -320,7 +320,7 @@ static ADDRESS_MAP_START( sound_writeport_3526, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_writeport_2203, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(YM2203_control_port_0_w)
AM_RANGE(0x01, 0x01) AM_WRITE(YM2203_write_port_0_w)
AM_RANGE(0x02, 0x02) AM_WRITE(DAC_0_signed_data_w)
diff --git a/src/mame/drivers/thayers.c b/src/mame/drivers/thayers.c
index 6c551c46e72..bb75f0b1421 100644
--- a/src/mame/drivers/thayers.c
+++ b/src/mame/drivers/thayers.c
@@ -321,7 +321,7 @@ ADDRESS_MAP_END
/* IO MAPS */
static ADDRESS_MAP_START( mainio, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00,0x04) AM_WRITE(sc01_register_w)
AM_RANGE(0x20,0x20) AM_WRITE(write_cop)
AM_RANGE(0x40,0x40) AM_READ(z80_irq_status_r)
diff --git a/src/mame/drivers/thepit.c b/src/mame/drivers/thepit.c
index 287847b93b4..bb5c481a335 100644
--- a/src/mame/drivers/thepit.c
+++ b/src/mame/drivers/thepit.c
@@ -210,7 +210,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( audio_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(soundlatch_clear_w)
AM_RANGE(0x8c, 0x8c) AM_WRITE(AY8910_control_port_1_w)
AM_RANGE(0x8d, 0x8d) AM_WRITE(AY8910_write_port_1_w)
diff --git a/src/mame/drivers/thief.c b/src/mame/drivers/thief.c
index df0c8d8fd6f..68ff714ec73 100644
--- a/src/mame/drivers/thief.c
+++ b/src/mame/drivers/thief.c
@@ -200,7 +200,7 @@ static ADDRESS_MAP_START( thief_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(MWA8_NOP) /* watchdog */
AM_RANGE(0x10, 0x10) AM_WRITE(thief_video_control_w)
AM_RANGE(0x30, 0x30) AM_WRITE(thief_input_select_w) // 8255
diff --git a/src/mame/drivers/tiamc1.c b/src/mame/drivers/tiamc1.c
index 0150465b83f..b7263643828 100644
--- a/src/mame/drivers/tiamc1.c
+++ b/src/mame/drivers/tiamc1.c
@@ -184,7 +184,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( tiamc1_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x40, 0x4f) AM_WRITE(tiamc1_sprite_y_w) /* sprites Y */
AM_RANGE(0x50, 0x5f) AM_WRITE(tiamc1_sprite_x_w) /* sprites X */
AM_RANGE(0x60, 0x6f) AM_WRITE(tiamc1_sprite_n_w) /* sprites # */
@@ -202,7 +202,7 @@ static ADDRESS_MAP_START( tiamc1_writeport, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( tiamc1_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0xd0, 0xd0) AM_READ(input_port_0_r)
AM_RANGE(0xd1, 0xd1) AM_READ(input_port_1_r)
AM_RANGE(0xd2, 0xd2) AM_READ(input_port_2_r)
diff --git a/src/mame/drivers/tigeroad.c b/src/mame/drivers/tigeroad.c
index fab6e6aa61c..84c40c81860 100644
--- a/src/mame/drivers/tigeroad.c
+++ b/src/mame/drivers/tigeroad.c
@@ -216,7 +216,7 @@ static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x7f, 0x7f) AM_WRITE(soundlatch2_w)
ADDRESS_MAP_END
@@ -230,12 +230,12 @@ static ADDRESS_MAP_START( sample_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( sample_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(soundlatch2_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( sample_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x01, 0x01) AM_WRITE(msm5205_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/timelimt.c b/src/mame/drivers/timelimt.c
index e7cd5dc1e35..e94469e2bc3 100644
--- a/src/mame/drivers/timelimt.c
+++ b/src/mame/drivers/timelimt.c
@@ -83,7 +83,7 @@ static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(watchdog_reset_r)
ADDRESS_MAP_END
@@ -98,13 +98,13 @@ static ADDRESS_MAP_START( writemem_sound, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( readport_sound, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x8c, 0x8d) AM_READ(AY8910_read_port_0_r)
AM_RANGE(0x8e, 0x8f) AM_READ(AY8910_read_port_1_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport_sound, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(soundlatch_clear_w)
AM_RANGE(0x8c, 0x8c) AM_WRITE(AY8910_control_port_0_w)
AM_RANGE(0x8d, 0x8d) AM_WRITE(AY8910_write_port_0_w)
diff --git a/src/mame/drivers/timeplt.c b/src/mame/drivers/timeplt.c
index fc4c74c4dce..ff04dc18659 100644
--- a/src/mame/drivers/timeplt.c
+++ b/src/mame/drivers/timeplt.c
@@ -105,7 +105,7 @@ static WRITE8_HANDLER( timeplt_coin_counter_w )
*************************************/
static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0xa000, 0xa3ff) AM_READWRITE(MRA8_RAM, timeplt_colorram_w) AM_BASE(&colorram)
AM_RANGE(0xa400, 0xa7ff) AM_READWRITE(MRA8_RAM, timeplt_videoram_w) AM_BASE(&videoram)
diff --git a/src/mame/drivers/tnzs.c b/src/mame/drivers/tnzs.c
index dda94cd73cf..66478cc1b8b 100644
--- a/src/mame/drivers/tnzs.c
+++ b/src/mame/drivers/tnzs.c
@@ -482,13 +482,13 @@ static ADDRESS_MAP_START( kabukiz_cpu2_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( tnzsb_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(YM2203_status_port_0_r)
AM_RANGE(0x02, 0x02) AM_READ(soundlatch_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( tnzsb_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(YM2203_control_port_0_w)
AM_RANGE(0x01, 0x01) AM_WRITE(YM2203_write_port_0_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/toaplan1.c b/src/mame/drivers/toaplan1.c
index cb5e962dd84..8ece9cc4135 100644
--- a/src/mame/drivers/toaplan1.c
+++ b/src/mame/drivers/toaplan1.c
@@ -272,7 +272,7 @@ static ADDRESS_MAP_START( toaplan1_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( rallybik_sound_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(input_port_1_r) /* Player 1 */
AM_RANGE(0x10, 0x10) AM_READ(input_port_2_r) /* Player 2 */
AM_RANGE(0x20, 0x20) AM_READ(input_port_5_r) /* Coin/Start inputs */
@@ -285,7 +285,7 @@ static ADDRESS_MAP_START( rallybik_sound_io_map, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( truxton_sound_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(input_port_1_r) /* Player 1 */
AM_RANGE(0x10, 0x10) AM_READ(input_port_2_r) /* Player 2 */
AM_RANGE(0x20, 0x20) AM_READ(input_port_5_r) /* Coin/Start inputs */
@@ -298,7 +298,7 @@ static ADDRESS_MAP_START( truxton_sound_io_map, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( hellfire_sound_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(input_port_3_r) /* DSW1 */
AM_RANGE(0x10, 0x10) AM_READ(input_port_4_r) /* DSW2 */
AM_RANGE(0x20, 0x20) AM_READ(input_port_6_r) /* Territory Jumper Block */
@@ -311,7 +311,7 @@ static ADDRESS_MAP_START( hellfire_sound_io_map, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( zerowing_sound_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(input_port_1_r) /* Player 1 */
AM_RANGE(0x08, 0x08) AM_READ(input_port_2_r) /* Player 2 */
AM_RANGE(0x20, 0x20) AM_READ(input_port_3_r) /* DSW1 */
@@ -324,7 +324,7 @@ static ADDRESS_MAP_START( zerowing_sound_io_map, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( demonwld_sound_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READWRITE(YM3812_status_port_0_r, YM3812_control_port_0_w)
AM_RANGE(0x01, 0x01) AM_WRITE(YM3812_write_port_0_w)
AM_RANGE(0x20, 0x20) AM_READ(input_port_6_r)
@@ -337,7 +337,7 @@ static ADDRESS_MAP_START( demonwld_sound_io_map, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( outzone_sound_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READWRITE(YM3812_status_port_0_r, YM3812_control_port_0_w)
AM_RANGE(0x01, 0x01) AM_WRITE(YM3812_write_port_0_w)
AM_RANGE(0x04, 0x04) AM_WRITE(toaplan1_coin_w) /* Coin counter/lockout */
diff --git a/src/mame/drivers/toaplan2.c b/src/mame/drivers/toaplan2.c
index d574351f0c6..b26230ca4dd 100644
--- a/src/mame/drivers/toaplan2.c
+++ b/src/mame/drivers/toaplan2.c
@@ -1867,7 +1867,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( batrider_sound_z80_port, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x40, 0x40) AM_WRITE(soundlatch3_w)
AM_RANGE(0x42, 0x42) AM_WRITE(soundlatch4_w)
AM_RANGE(0x44, 0x44) AM_WRITE(raizing_sndirq_w)
@@ -1894,7 +1894,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( bbakraid_sound_z80_port, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x40, 0x40) AM_WRITE(soundlatch3_w)
AM_RANGE(0x42, 0x42) AM_WRITE(soundlatch4_w)
AM_RANGE(0x44, 0x44) AM_WRITE(raizing_sndirq_w)
diff --git a/src/mame/drivers/trackfld.c b/src/mame/drivers/trackfld.c
index 75eb5de8e1f..019eaedc497 100644
--- a/src/mame/drivers/trackfld.c
+++ b/src/mame/drivers/trackfld.c
@@ -245,12 +245,12 @@ ADDRESS_MAP_END
/* Reaktor reads / writes some I/O ports, no idea what they're connected to, if anything */
static ADDRESS_MAP_START( reaktor_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x01, 0x01) AM_READ(MRA8_NOP)
ADDRESS_MAP_END
static ADDRESS_MAP_START( reaktor_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(MWA8_NOP)
AM_RANGE(0x01, 0x01) AM_WRITE(MWA8_NOP)
AM_RANGE(0x02, 0x02) AM_WRITE(MWA8_NOP)
diff --git a/src/mame/drivers/trvmadns.c b/src/mame/drivers/trvmadns.c
index 8bb8fee0ac5..31a9b1743b4 100644
--- a/src/mame/drivers/trvmadns.c
+++ b/src/mame/drivers/trvmadns.c
@@ -210,7 +210,7 @@ static ADDRESS_MAP_START( cpu_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(AY8910_control_port_0_w)
AM_RANGE(0x01, 0x01) AM_WRITE(AY8910_write_port_0_w)
AM_RANGE(0x02, 0x02) AM_READ(input_port_0_r)
diff --git a/src/mame/drivers/tsamurai.c b/src/mame/drivers/tsamurai.c
index 9d2dab6792f..66695d6977a 100644
--- a/src/mame/drivers/tsamurai.c
+++ b/src/mame/drivers/tsamurai.c
@@ -226,17 +226,17 @@ static ADDRESS_MAP_START( writemem_m660, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( z80_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
ADDRESS_MAP_END
static ADDRESS_MAP_START( z80_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(AY8910_control_port_0_w)
AM_RANGE(0x01, 0x01) AM_WRITE(AY8910_write_port_0_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( z80_writeport_m660, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(MWA8_NOP) /* ? */
AM_RANGE(0x01, 0x01) AM_WRITE(MWA8_NOP) /* Written continuously. Increments with level. */
AM_RANGE(0x02, 0x02) AM_WRITE(MWA8_NOP) /* Always follows above with 0x01 data */
@@ -327,11 +327,11 @@ ADDRESS_MAP_END
/*******************************************************************************/
static ADDRESS_MAP_START( readport_sound3_m660, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport_sound3_m660, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(AY8910_control_port_0_w)
AM_RANGE(0x01, 0x01) AM_WRITE(AY8910_write_port_0_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/tubep.c b/src/mame/drivers/tubep.c
index c520f40dc73..3ca4ba32746 100644
--- a/src/mame/drivers/tubep.c
+++ b/src/mame/drivers/tubep.c
@@ -180,7 +180,7 @@ static WRITE8_HANDLER( tubep_soundlatch_w )
}
static ADDRESS_MAP_START( tubep_main_portmap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x80, 0x80) AM_READ(input_port_3_r)
AM_RANGE(0x90, 0x90) AM_READ(input_port_4_r)
AM_RANGE(0xa0, 0xa0) AM_READ(input_port_5_r)
@@ -222,7 +222,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( tubep_second_portmap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x7f, 0x7f) AM_WRITE(second_cpu_irq_line_clear_w)
ADDRESS_MAP_END
@@ -258,7 +258,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( tubep_sound_portmap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(AY8910_control_port_0_w)
AM_RANGE(0x01, 0x01) AM_WRITE(AY8910_write_port_0_w)
AM_RANGE(0x02, 0x02) AM_WRITE(AY8910_control_port_1_w)
@@ -422,7 +422,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( rjammer_main_portmap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(input_port_2_r) /* a bug in game code (during attract mode) */
AM_RANGE(0x80, 0x80) AM_READ(input_port_2_r)
AM_RANGE(0x90, 0x90) AM_READ(input_port_3_r)
@@ -446,7 +446,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( rjammer_second_portmap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0xb0, 0xb0) AM_WRITE(rjammer_background_page_w)
AM_RANGE(0xd0, 0xd0) AM_WRITE(rjammer_background_LS377_w)
ADDRESS_MAP_END
@@ -614,7 +614,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( rjammer_sound_portmap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(rjammer_soundlatch_r)
AM_RANGE(0x10, 0x10) AM_WRITE(rjammer_voice_startstop_w)
AM_RANGE(0x18, 0x18) AM_WRITE(rjammer_voice_frequency_select_w)
diff --git a/src/mame/drivers/tumbleb.c b/src/mame/drivers/tumbleb.c
index 4df4a7aef02..2df26c5c3d4 100644
--- a/src/mame/drivers/tumbleb.c
+++ b/src/mame/drivers/tumbleb.c
@@ -899,7 +899,7 @@ static READ8_HANDLER(jumppop_z80latch_r)
}
static ADDRESS_MAP_START( jumppop_sound_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(YM3812_control_port_0_w)
AM_RANGE(0x01, 0x01) AM_WRITE(YM3812_write_port_0_w)
AM_RANGE(0x02, 0x02) AM_READWRITE(OKIM6295_status_0_r, OKIM6295_data_0_w)
diff --git a/src/mame/drivers/turbo.c b/src/mame/drivers/turbo.c
index 531e8f2da4b..af5634c662a 100644
--- a/src/mame/drivers/turbo.c
+++ b/src/mame/drivers/turbo.c
@@ -734,7 +734,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( buckrog_cpu2_portmap, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0xff) AM_READ(buckrog_cpu2_command_r)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/twincobr.c b/src/mame/drivers/twincobr.c
index c350a731c5d..d7a39fa6567 100644
--- a/src/mame/drivers/twincobr.c
+++ b/src/mame/drivers/twincobr.c
@@ -236,7 +236,7 @@ static ADDRESS_MAP_START( sound_program_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READWRITE(YM3812_status_port_0_r, YM3812_control_port_0_w)
AM_RANGE(0x01, 0x01) AM_WRITE(YM3812_write_port_0_w)
AM_RANGE(0x10, 0x10) AM_READ(input_port_5_r) /* Twin Cobra - Coin/Start */
diff --git a/src/mame/drivers/tx1.c b/src/mame/drivers/tx1.c
index 576ef7c9244..f8d9736f1e0 100644
--- a/src/mame/drivers/tx1.c
+++ b/src/mame/drivers/tx1.c
@@ -473,7 +473,7 @@ static ADDRESS_MAP_START( tx1_sound_prg, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( tx1_sound_io, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x40, 0x40) AM_WRITE(AY8910_write_port_0_w)
AM_RANGE(0x41, 0x41) AM_WRITE(AY8910_control_port_0_w)
ADDRESS_MAP_END
@@ -578,7 +578,7 @@ ADDRESS_MAP_END
/* Common */
static ADDRESS_MAP_START( buggyboy_sound_io, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x40, 0x40) AM_READWRITE(AY8910_read_port_0_r, AY8910_write_port_0_w)
AM_RANGE(0x41, 0x41) AM_WRITE(AY8910_control_port_0_w)
AM_RANGE(0x80, 0x80) AM_READWRITE(AY8910_read_port_1_r, AY8910_write_port_1_w)
diff --git a/src/mame/drivers/uapce.c b/src/mame/drivers/uapce.c
index 402f201128e..971b87254f1 100644
--- a/src/mame/drivers/uapce.c
+++ b/src/mame/drivers/uapce.c
@@ -119,7 +119,7 @@ static ADDRESS_MAP_START( z80_map, ADDRESS_SPACE_PROGRAM, 8)
AM_RANGE( 0x0800, 0x0FFF) AM_RAM
AM_RANGE( 0x1000, 0x17FF) AM_WRITE( jamma_if_control_latch_w )
AM_RANGE( 0x1800, 0x1FFF) AM_READ( jamma_if_read_dsw )
- AM_RANGE( 0x2000, 0x27FF) AM_READ( port_tag_to_handler8( "COIN" ) )
+ AM_RANGE( 0x2000, 0x27FF) AM_READ_PORT( "COIN" )
AM_RANGE( 0x2800, 0x2FFF) AM_READ( jamma_if_control_latch_r )
ADDRESS_MAP_END
diff --git a/src/mame/drivers/ultraman.c b/src/mame/drivers/ultraman.c
index d3ab1a38aba..2cd980759bd 100644
--- a/src/mame/drivers/ultraman.c
+++ b/src/mame/drivers/ultraman.c
@@ -162,7 +162,7 @@ static ADDRESS_MAP_START( ultraman_writemem_sound, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( ultraman_writeport_sound, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
// AM_RANGE(0x00, 0x00) AM_WRITE(MWA8_NOP) /* ??? */
ADDRESS_MAP_END
diff --git a/src/mame/drivers/ultratnk.c b/src/mame/drivers/ultratnk.c
index 4159504643e..d04c103c123 100644
--- a/src/mame/drivers/ultratnk.c
+++ b/src/mame/drivers/ultratnk.c
@@ -147,7 +147,7 @@ static WRITE8_HANDLER( ultratnk_explosion_w )
static ADDRESS_MAP_START( ultratnk_cpu_map, ADDRESS_SPACE_PROGRAM, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(14) )
+ ADDRESS_MAP_GLOBAL_MASK(0x3fff)
AM_RANGE(0x0000, 0x007f) AM_MIRROR(0x700) AM_RAM
AM_RANGE(0x0080, 0x00ff) AM_MIRROR(0x700) AM_READWRITE(ultratnk_wram_r, ultratnk_wram_w)
diff --git a/src/mame/drivers/upscope.c b/src/mame/drivers/upscope.c
index 73078ef331b..c725619c886 100644
--- a/src/mame/drivers/upscope.c
+++ b/src/mame/drivers/upscope.c
@@ -233,7 +233,7 @@ static void upscope_cia_1_porta_w(UINT8 data)
*************************************/
static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x000000, 0x07ffff) AM_RAMBANK(1) AM_BASE(&amiga_chip_ram) AM_SIZE(&amiga_chip_ram_size)
AM_RANGE(0xbfd000, 0xbfefff) AM_READWRITE(amiga_cia_r, amiga_cia_w)
AM_RANGE(0xc00000, 0xdfffff) AM_READWRITE(amiga_custom_r, amiga_custom_w) AM_BASE(&amiga_custom_regs)
diff --git a/src/mame/drivers/vastar.c b/src/mame/drivers/vastar.c
index 2879544f9bb..d73d648a832 100644
--- a/src/mame/drivers/vastar.c
+++ b/src/mame/drivers/vastar.c
@@ -147,7 +147,7 @@ static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(interrupt_enable_w)
AM_RANGE(0x01, 0x01) AM_WRITE(flip_screen_w)
AM_RANGE(0x02, 0x02) AM_WRITE(vastar_hold_cpu2_w)
@@ -167,12 +167,12 @@ static ADDRESS_MAP_START( cpu2_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( cpu2_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x02, 0x02) AM_READ(AY8910_read_port_0_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( cpu2_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(AY8910_control_port_0_w)
AM_RANGE(0x01, 0x01) AM_WRITE(AY8910_write_port_0_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/vegas.c b/src/mame/drivers/vegas.c
index 721d1f4842f..b0b2db94db8 100644
--- a/src/mame/drivers/vegas.c
+++ b/src/mame/drivers/vegas.c
@@ -1703,7 +1703,7 @@ static void remap_dynamic_addresses(void)
*************************************/
static ADDRESS_MAP_START( vegas_map_8mb, ADDRESS_SPACE_PROGRAM, 32 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x00000000, 0x007fffff) AM_RAM AM_BASE(&rambase) AM_SIZE(&ramsize)
AM_RANGE(0x1fa00000, 0x1fa00fff) AM_READWRITE(nile_r, nile_w) AM_BASE(&nile_regs)
AM_RANGE(0x1fc00000, 0x1fc7ffff) AM_ROM AM_REGION(REGION_USER1, 0) AM_BASE(&rombase)
@@ -1711,7 +1711,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( vegas_map_32mb, ADDRESS_SPACE_PROGRAM, 32 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x00000000, 0x01ffffff) AM_RAM AM_BASE(&rambase) AM_SIZE(&ramsize)
AM_RANGE(0x1fa00000, 0x1fa00fff) AM_READWRITE(nile_r, nile_w) AM_BASE(&nile_regs)
AM_RANGE(0x1fc00000, 0x1fc7ffff) AM_ROM AM_REGION(REGION_USER1, 0) AM_BASE(&rombase)
diff --git a/src/mame/drivers/vicdual.c b/src/mame/drivers/vicdual.c
index d64642c9253..aabf258e017 100644
--- a/src/mame/drivers/vicdual.c
+++ b/src/mame/drivers/vicdual.c
@@ -294,7 +294,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( depthch_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(4) )
+ ADDRESS_MAP_GLOBAL_MASK(0xf)
/* no decoder, just logic gates, so in theory the
game can read/write from multiple locations at once */
@@ -378,7 +378,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( safari_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(4) )
+ ADDRESS_MAP_GLOBAL_MASK(0xf)
/* no decoder, just logic gates, so in theory the
game can read/write from multiple locations at once */
@@ -460,7 +460,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( frogs_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(4) )
+ ADDRESS_MAP_GLOBAL_MASK(0xf)
/* no decoder, just logic gates, so in theory the
game can read/write from multiple locations at once */
@@ -582,7 +582,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( headon_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(4) )
+ ADDRESS_MAP_GLOBAL_MASK(0xf)
/* no decoder, just logic gates, so in theory the
game can read/write from multiple locations at once */
@@ -591,7 +591,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sspaceat_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(4) )
+ ADDRESS_MAP_GLOBAL_MASK(0xf)
/* no decoder, just logic gates, so in theory the
game can read/write from multiple locations at once */
@@ -792,7 +792,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( headon2_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(5) )
+ ADDRESS_MAP_GLOBAL_MASK(0x1f)
/* no decoder, just logic gates, so in theory the
game can read/write from multiple locations at once */
@@ -801,7 +801,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( digger_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(5) )
+ ADDRESS_MAP_GLOBAL_MASK(0x1f)
/* no decoder, just logic gates, so in theory the
game can read/write from multiple locations at once */
@@ -1063,7 +1063,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( invho2_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(7) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7f)
AM_RANGE(0x00, 0x00) AM_MIRROR(0x7c) AM_READ(input_port_0_r)
AM_RANGE(0x01, 0x01) AM_MIRROR(0x7c) AM_READ(input_port_1_r)
@@ -1077,7 +1077,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( invds_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(7) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7f)
AM_RANGE(0x00, 0x00) AM_MIRROR(0x7c) AM_READ(input_port_0_r)
AM_RANGE(0x01, 0x01) AM_MIRROR(0x7c) AM_READ(input_port_1_r)
@@ -1091,7 +1091,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sspacaho_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(7) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7f)
AM_RANGE(0x00, 0x00) AM_MIRROR(0x7c) AM_READ(input_port_0_r)
AM_RANGE(0x01, 0x01) AM_MIRROR(0x7c) AM_READ(input_port_1_r)
@@ -1105,7 +1105,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( tranqgun_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(4) )
+ ADDRESS_MAP_GLOBAL_MASK(0xf)
AM_RANGE(0x00, 0x00) AM_MIRROR(0x0c) AM_READ(input_port_0_r)
AM_RANGE(0x01, 0x01) AM_MIRROR(0x0c) AM_READ(input_port_1_r)
@@ -1119,7 +1119,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( spacetrk_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(7) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7f)
AM_RANGE(0x00, 0x00) AM_MIRROR(0x7c) AM_READ(input_port_0_r)
AM_RANGE(0x01, 0x01) AM_MIRROR(0x7c) AM_READ(input_port_1_r)
@@ -1133,7 +1133,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( carnival_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(7) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7f)
AM_RANGE(0x00, 0x00) AM_MIRROR(0x7c) AM_READ(input_port_0_r)
AM_RANGE(0x01, 0x01) AM_MIRROR(0x7c) AM_READ(input_port_1_r)
@@ -1147,7 +1147,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( brdrline_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(4) )
+ ADDRESS_MAP_GLOBAL_MASK(0xf)
AM_RANGE(0x00, 0x00) AM_MIRROR(0x0c) AM_READ(input_port_0_r)
AM_RANGE(0x01, 0x01) AM_MIRROR(0x0c) AM_READ(input_port_1_r)
@@ -1161,7 +1161,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( pulsar_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(7) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7f)
AM_RANGE(0x00, 0x00) AM_MIRROR(0x7c) AM_READ(input_port_0_r)
AM_RANGE(0x01, 0x01) AM_MIRROR(0x7c) AM_READ(input_port_1_r)
@@ -1175,7 +1175,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( heiankyo_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(4) )
+ ADDRESS_MAP_GLOBAL_MASK(0xf)
AM_RANGE(0x00, 0x00) AM_MIRROR(0x0c) AM_READ(input_port_0_r)
AM_RANGE(0x01, 0x01) AM_MIRROR(0x0c) AM_READ(input_port_1_r)
@@ -1189,7 +1189,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( alphaho_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(7) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7f)
AM_RANGE(0x00, 0x00) AM_MIRROR(0x7c) AM_READ(input_port_0_r)
AM_RANGE(0x01, 0x01) AM_MIRROR(0x7c) AM_READ(input_port_1_r)
@@ -2006,7 +2006,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( samurai_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(7) )
+ ADDRESS_MAP_GLOBAL_MASK(0x7f)
AM_RANGE(0x00, 0x00) AM_MIRROR(0x7c) AM_READ(input_port_0_r)
AM_RANGE(0x01, 0x01) AM_MIRROR(0x7c) AM_READ(input_port_1_r)
@@ -2124,7 +2124,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( nsub_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(4) )
+ ADDRESS_MAP_GLOBAL_MASK(0xf)
/* no decoder, just logic gates, so in theory the
game can read/write from multiple locations at once */
@@ -2220,7 +2220,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( invinco_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(4) )
+ ADDRESS_MAP_GLOBAL_MASK(0xf)
/* no decoder, just logic gates, so in theory the
game can read/write from multiple locations at once */
diff --git a/src/mame/drivers/victory.c b/src/mame/drivers/victory.c
index dec214a797d..62e1d5cd54a 100644
--- a/src/mame/drivers/victory.c
+++ b/src/mame/drivers/victory.c
@@ -137,7 +137,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( main_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_MIRROR(0x03) AM_READ(input_port_0_r)
AM_RANGE(0x04, 0x04) AM_MIRROR(0x03) AM_READ(input_port_1_r)
AM_RANGE(0x08, 0x08) AM_READ(input_port_2_r)
diff --git a/src/mame/drivers/vigilant.c b/src/mame/drivers/vigilant.c
index f927cee4999..7f284bfab5f 100644
--- a/src/mame/drivers/vigilant.c
+++ b/src/mame/drivers/vigilant.c
@@ -88,7 +88,7 @@ static ADDRESS_MAP_START( vigilant_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( vigilant_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(input_port_0_r)
AM_RANGE(0x01, 0x01) AM_READ(input_port_1_r)
AM_RANGE(0x02, 0x02) AM_READ(input_port_2_r)
@@ -97,7 +97,7 @@ static ADDRESS_MAP_START( vigilant_readport, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( vigilant_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(m72_sound_command_byte_w) /* SD */
AM_RANGE(0x01, 0x01) AM_WRITE(vigilant_out2_w) /* OUT2 */
AM_RANGE(0x04, 0x04) AM_WRITE(vigilant_bank_select_w) /* PBANK */
@@ -124,7 +124,7 @@ static ADDRESS_MAP_START( kikcubic_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( kikcubic_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(input_port_3_r)
AM_RANGE(0x01, 0x01) AM_READ(input_port_4_r)
AM_RANGE(0x02, 0x02) AM_READ(input_port_0_r)
@@ -133,7 +133,7 @@ static ADDRESS_MAP_START( kikcubic_readport, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( kikcubic_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(kikcubic_coin_w) /* also flip screen, and...? */
AM_RANGE(0x04, 0x04) AM_WRITE(vigilant_bank_select_w)
AM_RANGE(0x06, 0x06) AM_WRITE(m72_sound_command_byte_w)
@@ -151,14 +151,14 @@ static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x01, 0x01) AM_READ(YM2151_status_port_0_r)
AM_RANGE(0x80, 0x80) AM_READ(soundlatch_r) /* SDRE */
AM_RANGE(0x84, 0x84) AM_READ(m72_sample_r) /* S ROM C */
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(YM2151_register_port_0_w)
AM_RANGE(0x01, 0x01) AM_WRITE(YM2151_data_port_0_w)
AM_RANGE(0x80, 0x81) AM_WRITE(vigilant_sample_addr_w) /* STL / STH */
@@ -178,7 +178,7 @@ static ADDRESS_MAP_START( buccanrs_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( buccanrs_sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(YM2203_status_port_0_r)
AM_RANGE(0x01, 0x01) AM_READ(YM2203_read_port_0_r)
AM_RANGE(0x02, 0x02) AM_READ(YM2203_status_port_1_r)
@@ -188,7 +188,7 @@ static ADDRESS_MAP_START( buccanrs_sound_readport, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( buccanrs_sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(YM2203_control_port_0_w)
AM_RANGE(0x01, 0x01) AM_WRITE(YM2203_write_port_0_w)
AM_RANGE(0x02, 0x02) AM_WRITE(YM2203_control_port_1_w)
diff --git a/src/mame/drivers/vindictr.c b/src/mame/drivers/vindictr.c
index 8c77c9ce000..510a53d3c8c 100644
--- a/src/mame/drivers/vindictr.c
+++ b/src/mame/drivers/vindictr.c
@@ -80,7 +80,8 @@ static READ16_HANDLER( port1_r )
*************************************/
static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) | AMEF_ABITS(22) )
+ ADDRESS_MAP_UNMAP_HIGH
+ ADDRESS_MAP_GLOBAL_MASK(0x3fffff)
AM_RANGE(0x000000, 0x05ffff) AM_ROM
AM_RANGE(0x0e0000, 0x0e0fff) AM_READWRITE(atarigen_eeprom_r, atarigen_eeprom_w) AM_BASE(&atarigen_eeprom) AM_SIZE(&atarigen_eeprom_size)
AM_RANGE(0x1f0000, 0x1fffff) AM_WRITE(atarigen_eeprom_enable_w)
diff --git a/src/mame/drivers/vroulet.c b/src/mame/drivers/vroulet.c
index fbaebd6a14f..318c7471ec9 100644
--- a/src/mame/drivers/vroulet.c
+++ b/src/mame/drivers/vroulet.c
@@ -113,7 +113,7 @@ static ADDRESS_MAP_START( vroulet_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( vroulet_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READWRITE(AY8910_read_port_0_r, AY8910_write_port_0_w)
AM_RANGE(0x01, 0x01) AM_WRITE(AY8910_control_port_0_w)
AM_RANGE(0x10, 0x13) AM_READWRITE(ppi8255_0_r, ppi8255_0_w)
diff --git a/src/mame/drivers/wardner.c b/src/mame/drivers/wardner.c
index 266f9676947..ea49aad3d39 100644
--- a/src/mame/drivers/wardner.c
+++ b/src/mame/drivers/wardner.c
@@ -197,7 +197,7 @@ static ADDRESS_MAP_START( main_program_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( main_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(wardner_CRTC_reg_sel_w)
AM_RANGE(0x02, 0x02) AM_WRITE(wardner_CRTC_data_w)
AM_RANGE(0x10, 0x13) AM_WRITE(wardner_txscroll_w) /* scroll text layer */
@@ -230,7 +230,7 @@ static ADDRESS_MAP_START( sound_program_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READWRITE(YM3812_status_port_0_r, YM3812_control_port_0_w)
AM_RANGE(0x01, 0x01) AM_WRITE(YM3812_write_port_0_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/welltris.c b/src/mame/drivers/welltris.c
index 0f134561121..2e7bb9e0618 100644
--- a/src/mame/drivers/welltris.c
+++ b/src/mame/drivers/welltris.c
@@ -414,14 +414,14 @@ static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x08, 0x08) AM_READ(YM2610_status_port_0_A_r)
AM_RANGE(0x0a, 0x0a) AM_READ(YM2610_status_port_0_B_r)
AM_RANGE(0x10, 0x10) AM_READ(soundlatch_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(welltris_sh_bankswitch_w)
AM_RANGE(0x08, 0x08) AM_WRITE(YM2610_control_port_0_A_w)
AM_RANGE(0x09, 0x09) AM_WRITE(YM2610_data_port_0_A_w)
diff --git a/src/mame/drivers/wink.c b/src/mame/drivers/wink.c
index 34617da13b1..cf110c16782 100644
--- a/src/mame/drivers/wink.c
+++ b/src/mame/drivers/wink.c
@@ -96,7 +96,7 @@ static WRITE8_HANDLER( prot_w )
static ADDRESS_MAP_START( wink_io, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
/*
i/o 00-1F is used by the video circuits.
it is used to select access to the palet-ram address-bus.
@@ -132,7 +132,7 @@ static ADDRESS_MAP_START( wink_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( wink_sound_io, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READWRITE(AY8910_read_port_0_r, AY8910_write_port_0_w)
AM_RANGE(0x80, 0x80) AM_WRITE(AY8910_control_port_0_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/xybots.c b/src/mame/drivers/xybots.c
index a35cbf614b0..6b44e189580 100644
--- a/src/mame/drivers/xybots.c
+++ b/src/mame/drivers/xybots.c
@@ -83,7 +83,7 @@ static READ16_HANDLER( special_port1_r )
/* full map verified from schematics */
static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x000000, 0x03ffff) AM_MIRROR(0x7c0000) AM_ROM
AM_RANGE(0xff8000, 0xff8fff) AM_MIRROR(0x7f8000) AM_READWRITE(MRA16_RAM, atarigen_alpha_w) AM_BASE(&atarigen_alpha)
AM_RANGE(0xff9000, 0xffadff) AM_MIRROR(0x7f8000) AM_RAM
diff --git a/src/mame/drivers/xyonix.c b/src/mame/drivers/xyonix.c
index ca7eb0ad552..9f7126dfb72 100644
--- a/src/mame/drivers/xyonix.c
+++ b/src/mame/drivers/xyonix.c
@@ -156,7 +156,7 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( port_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x20, 0x20) AM_READWRITE(MRA8_NOP, SN76496_0_w) /* SN76496 ready signal */
AM_RANGE(0x21, 0x21) AM_READWRITE(MRA8_NOP, SN76496_1_w)
AM_RANGE(0x40, 0x40) AM_WRITE(MWA8_NOP) /* NMI ack? */
diff --git a/src/mame/drivers/yumefuda.c b/src/mame/drivers/yumefuda.c
index f1f38530d03..44c345110f3 100644
--- a/src/mame/drivers/yumefuda.c
+++ b/src/mame/drivers/yumefuda.c
@@ -211,7 +211,7 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( port_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x40, 0x40) AM_READWRITE(AY8910_read_port_0_r, AY8910_control_port_0_w)
AM_RANGE(0x41, 0x41) AM_WRITE(AY8910_write_port_0_w)
AM_RANGE(0x80, 0x80) AM_WRITE(mux_w)
diff --git a/src/mame/drivers/yunsun16.c b/src/mame/drivers/yunsun16.c
index 81ae82b0918..a2bc5b66e86 100644
--- a/src/mame/drivers/yunsun16.c
+++ b/src/mame/drivers/yunsun16.c
@@ -184,7 +184,7 @@ static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_port_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x10) AM_READWRITE(YM3812_status_port_0_r, YM3812_control_port_0_w ) // YM3812
AM_RANGE(0x11, 0x11) AM_WRITE(YM3812_write_port_0_w )
AM_RANGE(0x18, 0x18) AM_READ(soundlatch_r ) // From Main CPU
diff --git a/src/mame/drivers/yunsung8.c b/src/mame/drivers/yunsung8.c
index f5ed8bcc121..8be86ae0ae9 100644
--- a/src/mame/drivers/yunsung8.c
+++ b/src/mame/drivers/yunsung8.c
@@ -107,7 +107,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( port_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READWRITE(input_port_0_r, yunsung8_videobank_w ) // read = coins . write = video RAM bank
AM_RANGE(0x01, 0x01) AM_READWRITE(input_port_1_r, yunsung8_bankswitch_w ) // read = P1 . write = ROM Bank + Layers Enable
AM_RANGE(0x02, 0x02) AM_READWRITE(input_port_2_r, soundlatch_w ) // read = P2 . write = To Sound CPU
diff --git a/src/mame/drivers/zn.c b/src/mame/drivers/zn.c
index 59fd2409006..64c3ec6bf39 100644
--- a/src/mame/drivers/zn.c
+++ b/src/mame/drivers/zn.c
@@ -658,24 +658,19 @@ static MACHINE_RESET( coh1000c )
zn_machine_init();
}
-static ADDRESS_MAP_START( qsound_readmem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM)
- AM_RANGE(0x8000, 0xbfff) AM_READ(MRA8_BANK10) /* banked (contains music data) */
- AM_RANGE(0xd007, 0xd007) AM_READ(qsound_status_r)
- AM_RANGE(0xf000, 0xffff) AM_READ(MRA8_RAM)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( qsound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0xbfff) AM_WRITE(MWA8_ROM)
+static ADDRESS_MAP_START( qsound_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0x7fff) AM_ROM
+ AM_RANGE(0x8000, 0xbfff) AM_ROMBANK(10) /* banked (contains music data) */
AM_RANGE(0xd000, 0xd000) AM_WRITE(qsound_data_h_w)
AM_RANGE(0xd001, 0xd001) AM_WRITE(qsound_data_l_w)
AM_RANGE(0xd002, 0xd002) AM_WRITE(qsound_cmd_w)
AM_RANGE(0xd003, 0xd003) AM_WRITE(qsound_bankswitch_w)
- AM_RANGE(0xf000, 0xffff) AM_WRITE(MWA8_RAM)
+ AM_RANGE(0xd007, 0xd007) AM_READ(qsound_status_r)
+ AM_RANGE(0xf000, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( qsound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+static ADDRESS_MAP_START( qsound_portmap, ADDRESS_SPACE_IO, 8 )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(soundlatch_r)
ADDRESS_MAP_END
@@ -689,8 +684,8 @@ static MACHINE_DRIVER_START( coh1000c )
MDRV_CPU_ADD( Z80, 8000000 )
/* audio CPU */ /* 8MHz ?? */
- MDRV_CPU_PROGRAM_MAP( qsound_readmem, qsound_writemem )
- MDRV_CPU_IO_MAP( qsound_readport, 0 )
+ MDRV_CPU_PROGRAM_MAP( qsound_map, 0 )
+ MDRV_CPU_IO_MAP( qsound_portmap, 0 )
MDRV_CPU_VBLANK_INT_HACK( qsound_interrupt, 4 ) /* 4 interrupts per frame ?? */
MDRV_MACHINE_RESET( coh1000c )
@@ -707,8 +702,8 @@ static MACHINE_DRIVER_START( coh1002c )
MDRV_CPU_ADD( Z80, 8000000 )
/* audio CPU */ /* 8MHz ?? */
- MDRV_CPU_PROGRAM_MAP( qsound_readmem, qsound_writemem )
- MDRV_CPU_IO_MAP( qsound_readport, 0 )
+ MDRV_CPU_PROGRAM_MAP( qsound_map, 0 )
+ MDRV_CPU_IO_MAP( qsound_portmap, 0 )
MDRV_CPU_VBLANK_INT_HACK( qsound_interrupt, 4 ) /* 4 interrupts per frame ?? */
MDRV_MACHINE_RESET( coh1000c )
@@ -891,8 +886,8 @@ static MACHINE_DRIVER_START( coh3002c )
/* audio CPU */ /* 8MHz ?? */
MDRV_CPU_ADD( Z80, 8000000 )
- MDRV_CPU_PROGRAM_MAP( qsound_readmem, qsound_writemem )
- MDRV_CPU_IO_MAP( qsound_readport, 0 )
+ MDRV_CPU_PROGRAM_MAP( qsound_map, 0 )
+ MDRV_CPU_IO_MAP( qsound_portmap, 0 )
MDRV_CPU_VBLANK_INT_HACK( qsound_interrupt, 4 ) /* 4 interrupts per frame ?? */
MDRV_MACHINE_RESET( coh3002c )
@@ -2716,7 +2711,7 @@ static ADDRESS_MAP_START( cbaj_z80_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( cbaj_z80_port_map, ADDRESS_SPACE_IO, 8)
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE( 0x84, 0x84 ) AM_READWRITE( YMZ280B_status_0_r, YMZ280B_register_0_w )
AM_RANGE( 0x85, 0x85 ) AM_READWRITE( YMZ280B_status_0_r, YMZ280B_data_0_w )
AM_RANGE( 0x90, 0x90 ) AM_READWRITE( cbaj_z80_latch_r, cbaj_z80_latch_w )
diff --git a/src/mame/drivers/zodiack.c b/src/mame/drivers/zodiack.c
index 6a8e49460bc..fa9ab0319c3 100644
--- a/src/mame/drivers/zodiack.c
+++ b/src/mame/drivers/zodiack.c
@@ -78,7 +78,7 @@ static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( io_map, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(AY8910_control_port_0_w)
AM_RANGE(0x01, 0x01) AM_WRITE(AY8910_write_port_0_w)
ADDRESS_MAP_END
diff --git a/src/mame/includes/cps1.h b/src/mame/includes/cps1.h
index 3c03805a19f..2ae18af1acc 100644
--- a/src/mame/includes/cps1.h
+++ b/src/mame/includes/cps1.h
@@ -3,8 +3,7 @@
/*----------- defined in drivers/cps1.c -----------*/
-ADDRESS_MAP_EXTERN(qsound_readmem);
-ADDRESS_MAP_EXTERN(qsound_writemem);
+ADDRESS_MAP_EXTERN(qsound_map, 8);
READ16_HANDLER( qsound_sharedram1_r );
WRITE16_HANDLER( qsound_sharedram1_w );
diff --git a/src/mame/includes/leland.h b/src/mame/includes/leland.h
index dc3ced3c67c..a547a5015f5 100644
--- a/src/mame/includes/leland.h
+++ b/src/mame/includes/leland.h
@@ -116,10 +116,10 @@ WRITE8_HANDLER( leland_80186_command_lo_w );
WRITE8_HANDLER( leland_80186_command_hi_w );
WRITE8_HANDLER( ataxx_80186_control_w );
-ADDRESS_MAP_EXTERN(leland_80186_map_program);
-ADDRESS_MAP_EXTERN(leland_80186_map_io);
-ADDRESS_MAP_EXTERN(redline_80186_map_io);
-ADDRESS_MAP_EXTERN(ataxx_80186_map_io);
+ADDRESS_MAP_EXTERN(leland_80186_map_program, 16);
+ADDRESS_MAP_EXTERN(leland_80186_map_io, 16);
+ADDRESS_MAP_EXTERN(redline_80186_map_io, 16);
+ADDRESS_MAP_EXTERN(ataxx_80186_map_io, 16);
/*----------- defined in video/leland.c -----------*/
diff --git a/src/mame/machine/asic65.c b/src/mame/machine/asic65.c
index 5f477c5d9a1..07ffcffaf45 100644
--- a/src/mame/machine/asic65.c
+++ b/src/mame/machine/asic65.c
@@ -517,7 +517,7 @@ static READ16_HANDLER( asci65_get_bio )
*************************************/
static ADDRESS_MAP_START( asic65_program_map, ADDRESS_SPACE_PROGRAM, 16 )
- ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) )
+ ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x000, 0xfff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/mame/machine/namco50.h b/src/mame/machine/namco50.h
index 2b5237ea495..969ff20c1b3 100644
--- a/src/mame/machine/namco50.h
+++ b/src/mame/machine/namco50.h
@@ -4,13 +4,13 @@
#define CPUTAG_50XX "50XX"
#define CPUTAG_50XX_2 "50XX_2"
-ADDRESS_MAP_EXTERN( namco_50xx_map_program );
-ADDRESS_MAP_EXTERN( namco_50xx_map_data );
-ADDRESS_MAP_EXTERN( namco_50xx_map_io );
+ADDRESS_MAP_EXTERN( namco_50xx_map_program, 8 );
+ADDRESS_MAP_EXTERN( namco_50xx_map_data, 8 );
+ADDRESS_MAP_EXTERN( namco_50xx_map_io, 8 );
-ADDRESS_MAP_EXTERN( namco_50xx_2_map_program );
-ADDRESS_MAP_EXTERN( namco_50xx_2_map_data );
-ADDRESS_MAP_EXTERN( namco_50xx_2_map_io );
+ADDRESS_MAP_EXTERN( namco_50xx_2_map_program, 8 );
+ADDRESS_MAP_EXTERN( namco_50xx_2_map_data, 8 );
+ADDRESS_MAP_EXTERN( namco_50xx_2_map_io, 8 );
UINT8 namco_50xx_read(void);
void namco_50xx_read_request(void);
diff --git a/src/mame/video/bfm_adr2.h b/src/mame/video/bfm_adr2.h
index f1309dfce32..d17fdcf7056 100644
--- a/src/mame/video/bfm_adr2.h
+++ b/src/mame/video/bfm_adr2.h
@@ -14,7 +14,7 @@ extern void adder2_decode_char_roms(void);
MACHINE_RESET( adder2 );
INTERRUPT_GEN( adder2_vbl );
-ADDRESS_MAP_EXTERN( adder2_memmap );
+ADDRESS_MAP_EXTERN( adder2_memmap, 8 );
VIDEO_START( adder2 );
VIDEO_RESET( adder2 );
diff --git a/src/mame/video/taitoic.c b/src/mame/video/taitoic.c
index bf45038280e..7c34f9fc296 100644
--- a/src/mame/video/taitoic.c
+++ b/src/mame/video/taitoic.c
@@ -580,9 +580,10 @@ INLINE void taitoic_drawscanline(
static int has_write_handler(int cpunum, write16_machine_func handler)
{
- const address_map *map;
- for (map = memory_get_map(cpunum, ADDRESS_SPACE_PROGRAM); map && !IS_AMENTRY_END(map); map++)
- if (map->write.handler16 == handler)
+ const address_map *map = memory_get_map(cpunum, ADDRESS_SPACE_PROGRAM);
+ const address_map_entry *entry;
+ for (entry = map->entrylist; entry != NULL; entry = entry->next)
+ if (entry->write.mhandler16 == handler)
return 1;
return 0;